Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker — Scanner Python leve para CVE-2023-48795 (truncamento de prefixo Terrapin do SSH). Realiza captura passiva de banner e análise do KEXINIT para detectar combinações vulneráveis de cifra/MAC e mitigação strict-KEX ausente. | Kitploit
Ferramentas/GitHubGitHub/mr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker
ReconhecimentoScanners de VulnerabilidadesExploraçãoColeta de InformaçõesSegurança de RedeTestes de Penetração
GitHubmr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker

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

Scanner Python leve para CVE-2023-48795 (truncamento de prefixo Terrapin do SSH). Realiza captura passiva de banner e análise do KEXINIT para detectar combinações vulneráveis de cifra/MAC e mitigação strict-KEX ausente.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
11há 3 mesesAinda não revisado
Compartilhar

terrapin_check.py

Um scanner Python leve para a CVE-2023-48795 — a vulnerabilidade de truncamento de prefixo SSH Terrapin.

Terrapin é uma vulnerabilidade a nível de protocolo no SSH que permite a um invasor realizando um MitM ativo truncar as informações de extensão negociadas, rebaixando a segurança da conexão — sendo mais crítico desabilitar ext-info (usado para algoritmos de assinatura do servidor) e ping (usado pela extensão no-auth do OpenSSH).


📋 Índice

  • Sobre a Vulnerabilidade
  • Como Funciona
  • Requisitos
  • Instalação
  • Uso
  • Saída
  • Condições de Vulnerabilidade
  • Remediação
  • Aviso

Sobre a Vulnerabilidade

CampoDetalhe
CVECVE-2023-48795
CVSS5.9 (Médio)
TipoProtocolo SSH — Truncamento de Prefixo / Bypass de Integridade
DivulgaçãoDezembro de 2023
AfetadosOpenSSH < 9.6, PuTTY < 0.80, libssh < 0.10.6 e muitos outros
Referênciasterrapin-attack.com

A vulnerabilidade existe porque certas combinações de cifra/MAC do SSH — especificamente chacha20-poly1305 e cifras em modo CBC com Encrypt-then-MAC — permitem que um invasor MitM ativo injete e remova números de sequência durante o handshake, truncando os dados de extensão negociados sem detecção.

A correção introduziu uma extensão KEX estrita (kex-strict-*[email protected]) que tanto cliente quanto servidor devem anunciar para estarem imunes.


Como Funciona

O script realiza apenas uma captura passiva de banner e análise do KEXINIT — nenhum handshake SSH completo, nenhuma autenticação, nenhuma exploração:

  1. Abre uma conexão TCP na porta SSH do alvo
  2. Troca banners de identificação SSH
  3. Recebe e analisa o pacote SSH_MSG_KEXINIT do servidor
  4. Inspeciona as listas de nomes de algoritmos anunciados em busca de combinações vulneráveis
  5. Verifica a presença da extensão de mitigação KEX estrita
  6. Fecha a conexão

Como a verificação ocorre inteiramente dentro da fase de troca de chaves, ela é não intrusiva e não deixa rastros significativos além de uma tentativa normal de conexão TCP.


Requisitos

  • Python 3.8+
  • Nenhuma dependência de terceiros — apenas stdlib (socket, struct, argparse, concurrent.futures)

Instalação

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

Uso

Host único

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

Varredura em lote a partir de arquivo

Um alvo por linha — aceita formato host ou host:porta.

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

Saída apenas com resumo (útil para varreduras grandes)

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

Opções completas

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

Códigos de saída

CódigoSignificado
0Nenhum host vulnerável encontrado
1Um ou mais hosts vulneráveis detectados

Isso permite que o script seja usado de forma limpa em pipelines e fluxos de trabalho automatizados.


Saída

Host único (detalhado)

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
────────────────────────────────────────────────────────────

Varredura em lote (resumo)

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

Condições de Vulnerabilidade

O script marca um host como VULNERÁVEL se qualquer das seguintes condições for verdadeira e a extensão KEX estrita não estiver anunciada:

1. ChaCha20-Poly1305

O servidor anuncia [email protected] em qualquer direção de criptografia.

2. Combinação de cifra CBC + MAC ETM

O servidor anuncia qualquer cifra em modo CBC e qualquer MAC ETM juntos:

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

MACs ETM verificados: [email protected], [email protected], [email protected], [email protected] e variantes

Mitigação — KEX estrito

Se o servidor anunciar [email protected] em sua lista de algoritmos KEX, a conexão está protegida independentemente de quais cifras e MACs são oferecidos. O script reportará MITIGADO em vez de VULNERÁVEL neste caso.


Remediação

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

A remoção de algoritmos reduz a agilidade de cifras. A atualização é sempre a remediação preferida.


Aviso

Esta ferramenta é destinada apenas para avaliações de segurança autorizadas. Use-a somente contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O autor não se responsabiliza pelo uso indevido.


Parte do kit de ferramentas de pentest do Mr-Whiskerss.

Baixar ferramenta
AçãoDetalhe
Atualizar OpenSSHAtualizar para ≥ 9.6 tanto no cliente quanto no servidor. O KEX estrito está habilitado por padrão.
Corrigir outras implementaçõesPuTTY ≥ 0.80, libssh ≥ 0.10.6, Paramiko ≥ 3.4.0, AsyncSSH ≥ 2.14.2
Remover algoritmos vulneráveisSe a atualização não for imediatamente possível, remova chacha20-poly1305 e cifras CBC + MACs ETM do sshd_config: