
Questo script verifica la presenza della vulnerabilità di enumerazione degli username in OpenSSH 7.7 (e versioni precedenti) (CVE-2018-15473). Invia un pacchetto di autenticazione malformato e interpreta la risposta del server SSH per identificare gli username validi.
Questo script verifica la vulnerabilità di enumerazione utenti in OpenSSH 7.7 (e versioni precedenti) (CVE-2018-15473). Invia un pacchetto di autenticazione malformato e interpreta la risposta del server SSH per identificare i nomi utente validi.
https://www.exploit-db.com/download/45233
Compatibilità Python
Convertite tutte le istruzioni print alla sintassi Python 3 (print("...")).
Sostituito map(str.strip, f.readlines()) con una list comprehension per chiarezza e compatibilità.
Compatibilità Paramiko 3.x+ Sostituito:
paramiko.auth_handler.AuthHandler._handler_table[...]
con:
from paramiko.auth_handler import AuthHandler
client_table = AuthHandler._client_handler_table.fget(AuthHandler)
Questo evita TypeError: 'property' object is not subscriptable.
Sostituita la patch diretta:
handler_table[MSG_SERVICE_ACCEPT] = malform_packet
con
client_table[paramiko.common.MSG_SERVICE_ACCEPT] = malform_packet
Ottimizzazione della generazione delle chiavi RSA Evitata la generazione ripetuta di chiavi RSA a 1024 bit (lente e insicure). Introdotta una RSAKey a 2048 bit memorizzata in cache per i test.
Correzioni di logging e output Rimossa la dipendenza dall'obbligatorietà di args.outputFile. Aggiunto fallback a sys.stdout se --outputFile non viene fornito.
Correzioni minori Disattivato il logging interno rumoroso di Paramiko. Sostituiti i pattern di gestione delle eccezioni deprecati o ridondanti. Applicata spaziatura/indentazione coerente (convertite tutte le tabulazioni in 4 spazi).
Installa le dipendenze:
pip3 install -r requirements.txt
python3 open-ssh-ue.py <hostname> --userList wordlist.txt
python3 open-ssh-ue.py hostname \
--userList wordlist.txt \
--threads 10 \
--outputFile results.json \
--outputFormat json
hostname: l'IP o il dominio del server SSH di destinazione.--port: porta SSH (predefinita: 22)--threads: numero di thread concorrenti (predefinito: 5)--userList: percorso di un file di elenco nomi utente (un nome utente per riga)--username: testa un singolo nome utente--outputFile: percorso per salvare i risultati (facoltativo; stampa sul terminale se omesso)--outputFormat: formato di output: list, json o csv (predefinito: list)list: risultato in testo semplice per nome utentejson: elenco strutturato di nomi utente validi/non validicsv: valori separati da virgolaUsa questo strumento solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione al test. L'uso non autorizzato è illegale e non etico.