JANGOW: 1.0.1

2023. 3. 22. 20:35

1. IP 정보 확인

- IP는 192.168.50.53 확인

 

2. 서비스 정보 확인

- FTP, HTTP 서비스 확인

=> 바로 떠오르는 공격 루트는 FTP 접근 후 웹셸 업로드..! 

 

3. FTP 접근 시도

- anonymous 계정으로 접근하려 했으나 실패

 

4. 하위 디렉터리 검색 

- wordpress 디렉터리로 wordpress CMS 사용으로 판단

 

5. 웹쉘 발견

- 페이지 탐색

 

- Buscar 접근 시 busque.php 페이지로 접근하며 파라미터가 존재

 

- 파라미터에 명령어 입력시 응답 확인

 

6. 웹쉘을 통한 정보 수집

- 우선 wordpress 디렉터리 부터 탐색

 

- DB 연동정보 획득

 

- 리눅스 커널 정보 획득

 

- 리눅스 계정 목록 획득

 

- 추가 DB 계정 정보 획득

   => /etc/passwd 내 jangow01 계정 존재 확인

 

- 방화벽 동작 확인 [여기까지 수많은 삽질이 있었습니다:)..)

* 리눅스 방화벽은 iptables, ufw, firewalld 사용

 

7. 방화벽 정책 확인

- 타겟 시스템에서 Outbound 필터링 port 확인

* 타겟 시스템에서 Kali로 curl 접근 했을 때, kali에서 확인이되면 outbound 허용 / 확인 안되면 차단으로 추정

* 먼저 7777, 9999 시도했으나 트래픽 캡처되지 않음 = 차단

 

- Burpsuite Intruder 기능을 통해 outbound port scan

* Payloads 는 잘 알려진 port를 생각해서 1~1000 까지 스캔을 진행

* 스캔을 진행하기 전에 wireshark로 캡처 ON

 

- 속도가 조금이나마 빨라지라고 Options에서 Dos 모드로 사용했다. 어차피 결과는 wireshark 같은 네트워크 툴로 확인할 예정이기 때문.

- WireShark 확인

* 출발지 IP를 타겟 시스템으로 설정하고

* 상단 메뉴 중 Statistics - Conversations 확인

 

- Kali로 443 port 접근 확인 (나머지는 ufw에서 차단된 것으로 추정)

 

8. 리버스 쉘 획득

- Kali 443 port를 listen 모드로 두고 접근했으나 연결 실패

 

- URL 인코딩하여 다시 시도

 

- 반쪽짜리 쉘 획득 성공 (정상적인 터미널은 아님)

  * www-data 계정은 로그인을 허용하지 않는 계정($SHELL=/usr/bin/nologin)으로 쉘이 정상적이지 않는 듯하다

 

- 사용자 전환 불가

 

9. bash 쉘 획득 및 사용자 전환

- python pty 모듈의 spawn을 통해 bash 쉘 획득

 

- 환경 변수 설정

 

- 백업 파일에서 획득한 계정 정보로 사용자 전환

 

- User Flag 획득

 

10. 권한 상승

- 타겟 시스템의 리눅스 커널은 4.4.0-31로 권한 상승 취약점 존재

- 여러 취약점 중 CVE-2017-16995 poc 코드를 받아서 FTP로 업로드

 

- poc 코드를 jangow01 홈 디렉터리에 업로드

 

- gcc를 통해 poc 코드 컴파일 진행

* -o 옵션은 컴파일하여 생성한 파일 이름 지정

 

- root 권한 획득

 

- Root Flag 획득

 

- 실제 ufw 정책을 확인해보니 outbound 트래픽은 443만 가능했다.

* saída 는 포르투갈어로 출구, exit 란 의미로 outbound 의미

* default 정책을 차단으로 걸고, 443 트래픽만 허용

 

만약 타겟 웹서버가 내부 자산이라면 어떻게 보호할까?

- 웹셸 경로 제거

- 사용자 계정 정보가 담긴 불필요한 파일 제거

- 밑에 경우처럼 같은 패스워드를 사용하면 크래킹 가능하니 패스워드 다르게 사용

- 취약점 관리(커널 취약점이 아니었다면 권한 상승 어려웠을 것)

- 반면 outbound를 방화벽으로 막아버린 것은 훌륭!


기타 여러 삽질들..

0. 계정 획득

- .backup 파일을 나중에 봐서 FTP를 통한 사용자 계정 탈췰 시도

* 패스워드는 config.php 내에 있던 문자열 사용

 

- ftp 접근 가능한 계정 획득

* -L 옵션은 로그인 계정 목록 파일(-l 은 단일 계정)

* -p 옵션은 단인 패스워드(-P 사용시 패스워드 목록 파일 사용)

* -e nsr 옵션은 패스워드 없이 로그인 시도

 

- 로그인 성공

 

0. DB 접근 시도

- php 파일 업로드를 통해 db 접근 시도

- 업로드 파일 내용은 db 접속이 성공하면 G0od!을 출력하고 안되면 Fail이 출력되도록

 

- FTP 접근 후 /tmp 경로에 파일 업로드 및 권한 부여

 

- cp 명령어 통해 /var/www/html/site 경로로 복사한 후 접근했으나 연동 실패

 

'보안 CTF > Vulnhub' 카테고리의 다른 글

NAPPING: 1.0.1  (0) 2023.04.12
EMPIRE: BREAKOUT  (0) 2023.04.03
EMPIRE: LUPINONE  (0) 2023.03.29
THE PLANETS: EARTH  (0) 2023.03.20
Web-Machine-N7  (0) 2023.03.08

+ Recent posts