
Proof-of-concept di exploit per CVE-2025-9074 che dimostra la scrittura di file dal container all'host tramite l'API Docker Engine esposta su Windows. Solo per test autorizzati e scopi educativi.
Autore: w01f
Stato: Proof-of-Concept (solo a scopo educativo / test autorizzati)
Questo progetto dimostra un PoC per CVE-2025-9074, una configurazione errata/esposizione in alcune versioni di Docker Desktop per Windows in cui l'API HTTP del motore Docker all'indirizzo http://192.168.65.7:2375 è raggiungibile dai container (e talvolta tramite SSRF), consentendo a un attaccante di creare un container con un bind mount verso il disco dell'host Windows e scrivere file sull'host.
⚠️ Utilizzare solo in un laboratorio controllato o con esplicita autorizzazione scritta. L'uso improprio può violare leggi e politiche.
http://192.168.65.7:2375)C:\ (come /mnt/host/c all'interno della VM Linux) a /host_root all'interno del containerC:\pwn.txt sull'hostSe il target è vulnerabile, vedrai apparire il file sull'host Windows.
192.168.65.7:2375 (HTTP, nessun TLS).✅ Se
GET http://192.168.65.7:2375/_pingrestituisceOKdall'interno di un container, è probabile che esistano le condizioni per il PoC.
.
├─ cve_2025_9074_poc.py # Python PoC (basato su requests)
└─ README.md # Questo file
pip install requestshttp://192.168.65.7:2375) dal container in cui esegui il PoC# 1) Installa la dipendenza
pip install --no-input requests
# 2) Esegui il PoC
python3 cve_2025_9074_poc.py
# Opzionale: personalizzare nome file o immagine
# python3 cve_2025_9074_poc.py --outfile test.txt --image busybox
Comportamento predefinito:
http://192.168.65.7:2375/mnt/host/c (C:\ di Windows visto dalla VM Linux)/host_rootC:\pwn.txt--host IP del motore host (default: 192.168.65.7)
--port Porta del motore (default: 2375)
--image Immagine del container (default: alpine)
--host-path Percorso sull'host/VM da montare (default: /mnt/host/c)
--mount-path Percorso all'interno del container (default: /host_root)
--outfile Nome del file da creare su C:\ (default: pwn.txt)
Su un sistema vulnerabile, dopo aver eseguito il PoC dovresti trovare:
C:\pwn.txt
contenente il testo pwned_by_CVE_2025_9074.
Il PoC utilizza un container di breve durata. Se vuoi essere meticoloso:
# Da una shell privilegiata con accesso CLI docker:
docker ps -a --format '{{.ID}}\t{{.Image}}\t{{.Command}}'
# Rimuovi per ID container se ne rimangono:
docker rm -f <ID_CONTAINER>
# Rimuovi il file di test sull'host:
del C:\pwn.txt
HostConfig.Binds include percorsi come /mnt/host/c o altri mount di unità host.C:\ da processi attribuibili al contesto della VM Linux di Docker.192.168.65.7:2375 (HTTP) è sospetta./ping non OK / connessione rifiutata: L'API del motore non è raggiungibile dal tuo container; l'host potrebbe essere patchato o non esposto.--host-path mappi correttamente il Windows C:\ dalla VM Linux. Alcuni ambienti differiscono.alpine o passa a busybox con --image busybox.Questo PoC è fornito solo a scopo educativo e per test autorizzati. Eseguirlo su sistemi senza esplicita autorizzazione scritta è illegale e non etico. L'autore e i contributori non sono responsabili per uso improprio o danni.
MIT
Autore: w01f