[vulnhub] Tr0ll: 1 - writeup

[분석환경]
VMware 2017 Pro
Kali Linux 2020.01

[분석도구]
1. netdiscover
2. nmap
3. python
4. nikto
5. wireshark

1. netdiscover

192.168.47.163

2. nmap

nmap -sC -sV 192.168.47.163

스캔 결과로 FTP(21/tcp), SSH(22/tcp), HTTP(80/tcp)포트 열려 있음을 확인

3. nikto

80포트가 열려 있으므로 웹 서버에 대한 스캔을 진행한다.

nikto --host 192.168.47.163

스캔 결과로 Apache(2.4.7) 버전, robots.txt 존재 및 내용에 /secret 경로가 존재함을 확인한다.

4. Browser(HTTP/80)

주소로 접속하여 컨텐츠를 확인한다. 단순 jpg 하나로 구성된 페이지이다.

스캔 결과로 확인한 secret 경로도 확인한다.

역시 다른 트롤(troll)의 그림 하나로 구성된 페이지이다.

5. FTP(21/tcp)

스캔 결과에 FTP 포트가 열려 있었으므로 접속을 시도한다. nmap 결과 익명 연결이 허용되어 있으므로

anonymous 및 패스워드 없이 연결 시에도 접속에 성공한다.

파일 하나가 존재(lol.pcap)한다. get lol.pcap을 통해 다운받는다.

6. pcap 분석

파일을 분석해보면 FTP 통신의 기록이다. secret_stuff.txt 파일을 전송하는 과정이 포함되어 있다.

통신 중 Line-based text data에서 힌트로 의심되는 문자열(sup3rs3cr3tdirlol)을 발견한다.

디렉터리 문자열이라고 되어 있으므로 브라우저에서 접속을 해본다.

roflmao 파일이 존재한다. 다운 받고 file 명령어로 파일을 분석한다. ELF 32-bit 실행 파일임을 확인할 수 있다.

7. Hydra

실행 권한을 부여하고 바이너리를 실행한다.

Find address 0x0856BF 주소를 찾으라는 문자열이 출력되고 종료된다.

역시 브라우저 디렉터리에 문자열을 입력한다. 결과로 폴더 두 개가 나온다. 각각의 폴더는 하나의 텍스트 파일을 가지고 있다.

/good_luck/which_one_lol.txt
/this_folder_contains_the_password/Pass.txt

하나는 계정명, 하나는 패스워드로 추측하였고 각각을 파일로 다운받아서 hydra로 패스워드 크랙을 시도하였다.

hydra 실행 결과

그 결과 overflow, Pass.txt 계정이 유효함을 확인한다.

8. SSH(22/tcp)

찾은 계정으로 로그인에 성공한다.

ssh overflow@192.168.47.163

ssh 연결 성공

하지만 일정한 주기를 가지고 에러 메시지와 함께 연결이 계속 끊어짐을 확인한다.

ssh 연결이 끊어짐

일정 주기를 가지고 있으므로 cronlog를 확인했을 때 2분(*/2)주기로 파이썬 파일이 실행되고 있음을 확인한다.

cleaner.py을 열어 내용을 확인한다. ssh 연결을 끊는 구문은 없지만 tmp 파일을 삭제하는 파일임을 확인한다.

cleaner.py

cleaner.py는 overflow 계정의 권한으로 수정이 가능하므로 sudoers에 overflow를 등록하도록 내용을 변경한다.

2분을 기다리고 SSH 연결이 끊어지고 다시 로그인을 하게 되면 sudo의 사용이 가능해진다.

이를 이용하여 root 권한을 획득한다.

9. Flag!

플래그를 출력한다.

+/ cleaner.py

2분마다 실행되는 cleaner.py에 리버스 쉘 연결을 시도하는 구문을 삽입해서도 권한 획득이 가능하다.

2분마다 실행되면서 ssh 연결을 끊는 파일은 /opt/lmao.py 에 위치한다.

반응형

'Wargame & CTF > Pentest' 카테고리의 다른 글

[vulnhub] PwnLab - Writeup  (0) 2021.03.16
[vulnhub] kioptrix level 2 - walkthrough  (0) 2021.03.05