
Este script verifica a vulnerabilidade de enumeração de nomes de usuário do OpenSSH 7.7 (e anteriores) (CVE-2018-15473). Ele envia um pacote de autenticação malformado e interpreta a resposta do servidor SSH para identificar nomes de usuário válidos.
Este script verifica a vulnerabilidade de enumeração de usernames do OpenSSH 7.7 (e anteriores) (CVE-2018-15473). Ele envia um pacote de autenticação malformado e interpreta a resposta do servidor SSH para identificar usernames válidos.
https://www.exploit-db.com/download/45233
Compatibilidade com Python
Convertidas todas as instruções print para a sintaxe Python 3 (print("...")).
Substituído map(str.strip, f.readlines()) por uma list comprehension para clareza e compatibilidade.
Compatibilidade com Paramiko 3.x+ Substituído:
paramiko.auth_handler.AuthHandler._handler_table[...]
por:
from paramiko.auth_handler import AuthHandler
client_table = AuthHandler._client_handler_table.fget(AuthHandler)
Isso evita TypeError: 'property' object is not subscriptable.
Substituído o patch direto:
handler_table[MSG_SERVICE_ACCEPT] = malform_packet
por
client_table[paramiko.common.MSG_SERVICE_ACCEPT] = malform_packet
Otimização da Geração de Chaves RSA Evitada a geração repetida de chaves RSA de 1024 bits (lenta e insegura). Introduzida uma RSAKey de 2048 bits em cache para testes.
Correções de Log e Saída
Removida a dependência de args.outputFile ser obrigatório.
Adicionado fallback para sys.stdout quando --outputFile não é fornecido.
Correções menores Desativado o log interno ruidoso do Paramiko. Substituídos padrões de tratamento de exceção obsoletos ou redundantes. Aplicados espaçamento/indentação consistentes (todas as tabulações convertidas para 4 espaços).
Instale as dependências:
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: O IP ou domínio do servidor SSH alvo.--port: Porta SSH (padrão é 22)--threads: Número de threads simultâneas (padrão é 5)--userList: Caminho para um arquivo de lista de usernames (um username por linha)--username: Testar um único username--outputFile: Caminho para salvar os resultados (opcional; imprime no terminal se omitido)--outputFormat: Formato de saída: list, json ou csv (padrão: list)list: Texto simples com resultado por usernamejson: Lista estruturada de usernames válidos/inválidoscsv: Valores separados por vírgulaUse esta ferramenta apenas em sistemas que você possui ou para os quais tem permissão explícita de teste. O uso não autorizado é ilegal e antiético.