ssh-audit

ssh-audit é uma ferramenta para auditoria de servidores SSH.
Funcionalidades
- Suporte aos protocolos de servidor SSH1 e SSH2;
- capturar banner, reconhecer dispositivo ou software e sistema operacional, detectar compressão;
- coletar algoritmos de troca de chaves, chave do host, criptografia e código de autenticação de mensagem;
- exibir informações do algoritmo (disponível desde, removido/desabilitado, inseguro/fraco/legado, etc);
- exibir recomendações de algoritmo (adicionar ou remover com base na versão do software reconhecido);
- exibir informações de segurança (problemas relacionados, lista de CVEs atribuídos, etc);
- analisar compatibilidade de versão SSH com base nas informações do algoritmo;
- informações históricas do OpenSSH, Dropbear SSH e libssh;
- sem dependências, compatível com Python 2.6+, Python 3.x e PyPy;
Uso
usage: ssh-audit.py [-1246pbnvl] <host>
-1, --ssh1 force ssh version 1 only
-2, --ssh2 force ssh version 2 only
-4, --ipv4 enable IPv4 (order of precedence)
-6, --ipv6 enable IPv6 (order of precedence)
-p, --port=<port> port to connect
-b, --batch batch output
-n, --no-colors disable colors
-v, --verbose verbose output
-l, --level=<level> minimum output level (info|warn|fail)
- se ambos IPv4 e IPv6 forem usados, a ordem de precedência pode ser definida usando
-46 ou -64.
- a flag de lote
-b exibirá seções sem cabeçalho e sem linhas vazias (implica a flag verbose).
- a flag verbose
-v prefixará cada linha com o tipo de seção e o nome do algoritmo.
exemplo

Histórico de Alterações
v1.7.0 (2016-10-26)
- implementar opções para permitir especificar uso de IPv4/IPv6 e ordem de precedência
- implementar opção para especificar porta remota (comportamento antigo mantido para compatibilidade)
- adicionar suporte a cores para Microsoft Windows via dependência opcional colorama
- corrigir problemas de codificação e decodificação, adicionar testes, não travar em erros de codificação
- usar mypy-lang para verificação de tipo estática e verificar todo o código
v1.6.0 (2016-10-14)
- implementar seção de recomendações de algoritmo (com base no software reconhecido)
- implementar suporte completo ao libssh (histórico de versões, algoritmos, segurança, etc)
- corrigir reconhecimento de banner SSH-1.99 e funcionalidade de comparação de versão
- não exibir algoritmos vazios (acontece em servidores mal configurados)
- tornar a saída consistente para versões Python 3.x
- adicionar muitos mais testes (conf, banner, software, SSH1/SSH2, saída, etc)
- usar Travis CI para testar múltiplas versões Python (2.6-3.5, pypy, pypy3)
v1.5.0 (2016-09-20)
- criar seção de segurança para informações de segurança relacionadas
- corresponder e exibir lista de CVEs atribuídos e problemas de segurança para Dropbear SSH
- implementar suporte completo ao SSH1 com informações de impressão digital
- fazer fallback automático para SSH1 em caso de incompatibilidade de protocolo
- adicionar novas opções para forçar SSH1 ou SSH2 (ambos permitidos por padrão)
- analisar informações do banner e convertê-las em versão específica de software e SO
- não usar padding no modo lote
- várias correções (Cisco sshd, hangs raros, tratamento de erros, etc)
v1.0.20160902
- implementar opção de saída em lote
- implementar opção de nível mínimo de saída
- corrigir compatibilidade com Python 2.6
v1.0.20160812
- implementar funcionalidade de compatibilidade de versão SSH
- corrigir aviso de algoritmo MAC incorreto
- corrigir erro de digitação na versão do Dropbear SSH
- analisar cabeçalho pré-banner
- melhor tratamento de erros
v1.0.20160803
- usar banner OpenSSH 7.3
- adicionar novos algoritmos de troca de chaves
v1.0.20160207
- usar banner OpenSSH 7.2
- avisos adicionais para OpenSSH 7.2
- corrigir mensagens de falha do OpenSSH 7.0
- adicionar mensagem de falha rijndael-cbc do OpenSSH 6.7
v1.0.20160105
- múltiplos avisos adicionais
- suporte para algoritmo none
- melhor tratamento de compressão
- garantir leitura de dados suficientes (corrige alguns SSH Linux)
v1.0.20151230
v1.0.20151223