
script di enumerazione utenti SSH basato su differenze di temporizzazione e risposte di autenticazione. Sfrutta lo stesso vettore di CVE-2018-15473 nelle versioni vulnerabili di OpenSSH (≤ 7.7), sebbene possa anche rivelare pattern in configurazioni moderne.
script di enumerazione utenti SSH basato su differenze di timing e risposte di autenticazione. Sfrutta lo stesso vettore di CVE-2018-15473 nelle versioni vulnerabili di OpenSSH (≤ 7.7), ma può anche rivelare pattern in configurazioni moderne. Funziona in Python 3 + Paramiko e supporta:
⚠️ Uso Etico
Questo script deve essere utilizzato solo in ambienti propri o con autorizzazione esplicita. L'abuso contro sistemi esterni senza permesso può essere illegale.
📖 Uso base ./ssh_enum_py3.py -i -u users.txt -m <multiplier_ms> -t
Esempio: ./ssh_enum_py3.py -i 149.210.234.234 -u users.txt -m 5000 -t 8
⚙️ Opzioni -i, --ip Host/IP target (obbligatorio) -p, --port Porta SSH (default: 22) -u, --userlist File con lista di utenti (uno per riga)
-a, --autotune Calcola parametri raccomandati (multiplier e threshold) -m, --multiplier Soglia in millisecondi sopra la mediana locale -t, --threshold Numero minimo di “voti” (tentativi che superano il cutoff)
--attempts Tentativi per utente (default: 12) --timeout Timeout di connessione/autenticazione (s, default: 6) --banner-timeout Timeout per leggere il banner SSH (s, default: 12) --delay Pausa tra tentativi dello stesso utente (s, default: 0.6) --cooldown-users Pausa tra utenti (s, default: 0) --retries Re tentativi per tentativo in caso di errore di banner/trasporto
🚀 Esempi di utilizzo
Output:
[*] Autotune suggerito: multiplier (ms): 4986 threshold : 8 baseline_med : 3586 ms (avg=3596 ms) error mix : {'AuthFailed': 12}
Autotune + enumerazione nella stessa corsa
./ssh_enum_py3.py -i 149.210.234.234 -a -u users.txt
--timeout 12 --banner-timeout 30 --delay 3 --cooldown-users 15
Enumerazione diretta con parametri fissi
./ssh_enum_py3.py -i 149.210.234.234 -u users.txt -m 4986 -t 8
--attempts 10 --timeout 12 --banner-timeout 30 --retries 5 --delay 3 --cooldown-users 15
📋 Interpretazione dei risultati
likely VALID → Utente probabilmente esistente (ha superato il cutoff in ≥ threshold tentativi).
likely INVALID → Utente probabilmente inesistente (risposte consistenti come “AuthFailed”).
errors={...} → riepilogo codici:
AuthFailed: risposta normale di SSH.
NoBanner: il server ha interrotto prima del banner (tarpit, MaxStartups, WAF).
TransportError: errore di rete/tempo.