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
SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker | Kitploit
Strumenti/GitHubGitHub/mr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker
RicognizioneScanner di VulnerabilitàExploitRaccolta InformazioniSicurezza di RetePenetration Testing
GitHubmr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker

SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker

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
12 mesi faNon ancora revisionato

terrapin_check.py

Uno scanner Python leggero per CVE-2023-48795 — la vulnerabilità SSH Terrapin di troncamento del prefisso.

Terrapin è una vulnerabilità a livello di protocollo in SSH che consente a un attaccante che effettua un MitM attivo di troncare le informazioni di estensione negoziate, degradando la sicurezza della connessione — in particolare disabilitando ext-info (usato per gli algoritmi di firma del server) e ping (usato dall'estensione no-auth di OpenSSH).


📋 Indice

  • Informazioni sulla vulnerabilità
  • Come funziona
  • Requisiti
  • Installazione
  • Utilizzo
  • Output
  • Condizioni di vulnerabilità
  • Rimedi
  • Disclaimer

Informazioni sulla vulnerabilità

CampoDettaglio
CVECVE-2023-48795
CVSS5.9 (Medio)
TipoProtocollo SSH — Troncamento del prefisso / Bypass dell'integrità
DivulgazioneDicembre 2023
Versioni interessateOpenSSH < 9.6, PuTTY < 0.80, libssh < 0.10.6 e molti altri
Riferimentiterrapin-attack.com

La vulnerabilità esiste perché alcune combinazioni cipher/MAC SSH — in particolare chacha20-poly1305 e i cipher in modalità CBC con Encrypt-then-MAC — consentono a un attaccante MitM attivo di iniettare e rimuovere i numeri di sequenza SSH durante l'handshake, troncando i dati di estensione negoziati senza essere rilevato.

La correzione ha introdotto un'estensione strict KEX (kex-strict-*[email protected]) che sia client che server devono annunciare per essere immuni.


Come funziona

Lo script esegue solo un banner grab passivo e un parsing di KEXINIT — nessun handshake SSH completo, nessuna autenticazione, nessuno sfruttamento:

  1. Apre una connessione TCP alla porta SSH del target
  2. Scambia i banner di identificazione SSH
  3. Riceve e analizza il pacchetto SSH_MSG_KEXINIT del server
  4. Ispeziona le liste di algoritmi annunciati alla ricerca di combinazioni vulnerabili
  5. Verifica la presenza dell'estensione di mitigazione strict-KEX
  6. Chiude la connessione

Poiché il controllo avviene interamente nella fase di scambio delle chiavi, è non intrusivo e non lascia tracce significative oltre a un normale tentativo di connessione TCP.


Requisiti

  • Python 3.8+
  • Nessuna dipendenza di terze parti — solo libreria standard (socket, struct, argparse, concurrent.futures)

Installazione

root@kitploit:~
git clone https://github.com/Mr-Whiskerss/terrapin_check
cd terrapin_check
chmod +x terrapin_check.py

Utilizzo

Host singolo

root@kitploit:~
python3 terrapin_check.py <host> [port]
root@kitploit:~
python3 terrapin_check.py 192.168.1.10
python3 terrapin_check.py 192.168.1.10 2222

Scansione bulk da file

Un target per riga — accetta il formato host o host:port.

root@kitploit:~
python3 terrapin_check.py -f targets.txt
python3 terrapin_check.py -f targets.txt --threads 20 --timeout 3

Output solo riepilogo (utile per scansioni estese)

root@kitploit:~
python3 terrapin_check.py -f targets.txt --summary

Opzioni complete

root@kitploit:~
usage: terrapin_check.py [-h] [-f FILE] [-p PORT] [--threads THREADS] [--timeout TIMEOUT] [--summary] [host] [port]

positional arguments:
  host                  Target host
  port                  SSH port (default: 22)

options:
  -h, --help            Show this help message and exit
  -f, --file FILE       File containing hosts (host or host:port per line)
  -p, --port-flag PORT  Default port when using -f (default: 22)
  --threads THREADS     Concurrent threads for bulk scan (default: 10)
  --timeout TIMEOUT     Socket timeout in seconds (default: 5.0)
  --summary             Print one-line summary per host only

Codici di uscita

CodiceSignificato
0Nessun host vulnerabile trovato
1Rilevato uno o più host vulnerabili

Questo consente di utilizzare lo script in modo pulito in pipeline e flussi di lavoro automatizzati.


Output

Host singolo (dettagliato)

root@kitploit:~
────────────────────────────────────────────────────────────
  Target : 192.168.1.10:22
  Banner : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
  Status : VULNERABLE

  Strict-KEX : No
  ✗ ChaCha20-Poly1305 advertised → prefix-truncation possible
  ✗ CBC+ETM combination advertised
      CBC ciphers : aes128-cbc, aes256-cbc
      ETM MACs    : [email protected], [email protected]

  KEX algorithms:
    curve25519-sha256
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
────────────────────────────────────────────────────────────

Scansione bulk (riepilogo)

root@kitploit:~
  [VULN]  192.168.1.10:22                  VULNERABLE (CVE-2023-48795)
  [SAFE]  192.168.1.20:22                  Not vulnerable
  [MIT]   192.168.1.30:22                  Algorithms present but strict-KEX mitigates
  [?]     192.168.1.99:22                  ERROR: Connection refused

Condizioni di vulnerabilità

Lo script segnala un host come VULNERABILE se è vera una delle seguenti condizioni e l'estensione strict-KEX non è annunciata:

1. ChaCha20-Poly1305

Il server annuncia [email protected] in una delle due direzioni di cifratura.

2. Combinazione cipher CBC + MAC ETM

Il server annuncia qualsiasi cipher in modalità CBC e qualsiasi MAC ETM insieme:

Cipher CBC controllati: aes128-cbc, aes192-cbc, aes256-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, idea-cbc, arcfour, arcfour128, arcfour256, [email protected]

MAC ETM controllati: [email protected], [email protected], [email protected], [email protected] e varianti

Mitigazione — Strict KEX

Se il server annuncia [email protected] nella sua lista di algoritmi KEX, la connessione è protetta indipendentemente da quali cipher e MAC vengono offerti. In questo caso, lo script riporterà MITIGATED invece di VULNERABLE.


Rimedi

root@kitploit:~
# /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
MACs hmac-sha2-256,hmac-sha2-512

La rimozione degli algoritmi riduce l'agilità dei cipher. L'aggiornamento è sempre il rimedio preferito.


Disclaimer

Questo strumento è destinato esclusivamente a valutazioni di sicurezza autorizzate. Utilizzalo solo contro sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione scritta per il test. L'autore non si assume alcuna responsabilità per un uso improprio.


Parte del toolkit di penetration testing Mr-Whiskerss.

Scarica lo strumento
AzioneDettaglio
Aggiornare OpenSSHAggiornare a ≥ 9.6 sia sul client che sul server. Strict KEX è abilitato per impostazione predefinita.
Applicare patch ad altre implementazioniPuTTY ≥ 0.80, libssh ≥ 0.10.6, Paramiko ≥ 3.4.0, AsyncSSH ≥ 2.14.2
Rimuovere gli algoritmi vulnerabiliSe l'aggiornamento non è immediatamente possibile, rimuovere chacha20-poly1305 e i cipher CBC + MAC ETM da sshd_config: