일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- pentesting
- LPE
- cve-2024-2242
- SQL Injection
- Stored XSS
- kioptrix
- cve-2024-27954
- 악성코드 분석
- broken access control
- 악성코드
- really simple security plugin
- cve-2024-27956
- Burp Suite
- XSS
- cve-2024-5084
- wp-automatic
- 1-day analysis
- cve-2024-10924
- authentication bypass
- Command Injection
- wordpress
- wp-automatic plugin
- plugin
- 모의해킹
- DLL Injection
- nmap
- rce
- 리버스 쉘
- MALWARE
- cve-2024-4439
- Today
- Total
목록분류 전체보기 (96)
Psalm

ssh, http 딱 두가지 포트만 열려있다. Openssh 4.7p1에 대한 무차별 대입공격을 할 수 있는 알고리즘이 있어 해당 프로그램을 사용해봤지만 모두 실패했다. dirbuster로 phpmyadmin페이지가 있는걸 확인했다. apache서버에는 LotusCMS 플랫폼이 구동되고 있다. LotusCMS는 웹을 구성할 수 있는 오픈소스 플랫폼이다. searchsploit으로 lotuscms에서 eval함수로 RCE를 할 수 있는 취약점을 발견했다. RHOST와 LHOST Lport를 설정해주고, payload는 2번째 generic/shell_bind_tcp를 사용한다. 설정을 다하고, 익스프로잇 코드를 실행면 쉘에 접속할 수 있다. home 디렉토리에는 두개의 사용자 계정이 있다. 해당 ..

ssh, http, rpcbind, ssl/http, ipp, mysql 서비스가 돌아가고있다. openssh에 대한 취약점을 찾기위해 searchsploit을 사용했지만 사용가능한 poc는 없었다.ssh username과 password가 있어야만 쓸 수 있었다. 다른 방법을 시도해보자 apache httpd에서도 특정 취약점이 없었다. CUPS 서비스에 RCE를 시도했지만 로컬에서만 접속을 허용하게 해놓아서 익스에 실패했다. 그럼 웹 서버에 접속해서 어떤 내용이 있나 살펴보자 username과 password를 받고 원격 시스템에 접속을 할 수 있다. sqlmap으로 인증을 우회할 수 있는지 확인해본다. 서버는 Post 형식으로 데이터를 받고, sqlmap을 기본으로 설정하면 level, ri..

netdiscover을 사용해 같은 네트워크상에 열려있는 네트워크를 확인한다. 1, 2, 254는 용도가 정해진 ip고, 131번을 한번 스캔해보자 http 서버부터, apache 서버까지 열려있는걸 확인할 수 있다. 해당 ip로 접속해보니 Test Page가 실행되고 있다.먼저 이 서버를 타겟으로 공격을 시도해보겠다. apache 1.3.20을 검색하지 OpenFuckV2.c라는 Buffer Overflow 공격 방법이 나와있다. 여기서 github에 나와있는 코드를 썼고, Readme에 나와있는대로 설정해주었다.nikco로 서버에 대한 정보를 수집하니 Red-Hat/Linux 계열이라는 것을 알게되었고, 그 중 apache 1.3.20버전을 사용하는 0x6b를 사용했다. POC 코드를 실행할 ..

부모 프로세스의 pid의 파일 소유가작 root이면 쉘을 실행한다. /proc 디렉터리를 보면 다양한 프로세스가 실행되고 있다. 이 중 파일 소유자가 root인 프로세스가 이 프로그램을 실행하면된다. 이 중 pid가 1인 init 프로세스를 이용해서 쉘을 획득할 것이다. 부모 프로세스가 자식 프로세스보다 먼저 종료되면 init프로세스가 자식 프로세스의 부모 프로세스가 된다. 이 점을 이용해서 fork 함수를 이용해 코드를 짠다. 실행을 해주면 /tmp/shell 파일이 생겨나고, 실행해주니 쉘이 실행된다. 하지만 uid는 여전히 level19로 실행되고, mount로 확인해보니 /tmp폴더에서 nosuid가 설정되어 있다.(setuid가 걸려있어도 무시됨) 그래서 /home/flag19/로 경로를..

반복적으로 입력을 받아 해당 문자열에 대한 함수를 실행한다. shell을 입력하면 globalsl.loggedin이 설정되어 있으면 /bin/sh가 실행된다. globals.loggedin은 login함수에서 실행이되는데, 파일 열기에 실패하면 이 값이 설정된다. 현재 쉘 세션에서서 최대로 열수있는 파일의 개수가 1024로 설정되어 있다. 이점을 이용해서 쉘을 획득할거다. 1024가 넘어가면 파일 열기에 실패하고, login함수에서 globals.loggedin이 설정되는데, 이 점을 공략할 것이다. 위와같이 login문자열을 1021번 입력하고(stdin, stdout, stderr 파일 디스크립터가 있기때문), closelog, shell을 차례대로 입력한 파일을 만들어준다.그리고 출력인자를 f..

length가 1024바이트 이상이면 else문으로 분기한다. else문에서는 getrand함수를 호출해 특정경로에 랜덤 파일을 생성한다. level11의 rsa키를 flag11/.ssh경로에 주입시켜 로그인시 패스워드 없이 들어갈 수 있게 한다.getrand함수에서는 TEMP 환경변수에 있는 경로에 랜덤파일을 생성 한다. TEMP를 /tmp경로로 지정해준다. 2048비트의 rsa 키를 생성해주면, /home/level11/.ssh 폴더에 private키와 public 키가 생긴다. 이 public키를 /home/flag11/.ssh 에 복사하는게 목표인데, getrand함수에서 어떤 파일이 생성될지가 관건이다. 먼저 /home/flag11/.ssh/에 authorized_keys 파일명으로 심볼링 ..

10007포트에서 파이썬 프로그램 하나가 돌아가고 있다. pickle.load는 바이너리 데이터를 객체로 변환(역직렬화)하는 역할을 한다. 파이썬 docs에서 pickle 내용을 보면 언피클할 때 임의 코드가 실행되어 매우 취약하다고 한다.이렇게 직렬화된 코드를 넣으면 언피클되면서 hello world가 출력된다. 이 점을 활용해 홈 디렉토리에서 pickle에게 전달할 직혈화된 코드를 짠다. /bin/sh을 flag17디렉토리에 복사한 후 setuid를 설정한다. 그럼 이렇게 setuid가 걸린 sh파일이 하나 생성된다. 실행시켜주면 flag17권한으로 flag를 획득할 수 있게된다.reference: https://docs.python.org/3/library/pickle.html#module-..