JANGOW: 1.0.1
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 |