Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-enum — Este projeto explora se o OpenSSH moderno revela nomes de usuário válidos por meio de diferenças sutis de resposta ou de tempo. Investigação de enumeração de usuários CVE-2016-6210 ( teste t de Welch, d de Cohen e engenharia de detecção ) em um laboratório controlado no Ubuntu 22.04.5 LTS; também examina os rastros que tais tentativas deixam para trás e como podem ser detectados. | Kitploit
Ferramentas/GitHubGitHub/alisha-chaudhary/ssh-enum
ReconhecimentoAnálise de VulnerabilidadesColeta de InformaçõesTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoAnálise de Logs
GitHubalisha-chaudhary/ssh-enum

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 →

ssh-enum

Ver Repositório
12há 2 mesesAinda não revisado

Sobre

Este projeto explora se o OpenSSH moderno revela nomes de usuário válidos por meio de diferenças sutis de resposta ou de tempo. Investigação de enumeração de usuários CVE-2016-6210 ( teste t de Welch, d de Cohen e engenharia de detecção ) em um laboratório controlado no Ubuntu 22.04.5 LTS; também examina os rastros que tais tentativas deixam para trás e como podem ser detectados.

Compartilhar

ssh-enum

Estudo de Validação Estatística do CVE-2016-6210

Uma reinvestigação reproduzível da enumeração de nomes de usuário do OpenSSH usando análise estatística.

Este projeto reinvestiga o CVE-2016-6210, um canal lateral de temporização documentado do OpenSSH, para determinar se ele permanece observável em um servidor Ubuntu moderno usando a configuração padrão do PAM.

Em vez de assumir que o comportamento publicado ainda se aplica, o projeto avalia medições de temporização de autenticação coletadas por sondagem manual, Hydra e Metasploit usando o teste t de Welch e o d de Cohen para distinguir sinais de temporização genuínos do ruído de medição.

O estudo não encontrou nenhuma diferença de temporização estatisticamente significativa na configuração padrão testada, demonstrando o valor da experimentação reproduzível e da validação baseada em evidências de alegações de segurança publicadas.


⚠️ Aviso Legal

Este projeto foi conduzido inteiramente em um ambiente de laboratório isolado e de propriedade própria. Todas as descobertas se aplicam apenas à configuração testada. Nunca teste sistemas que você não possui ou para os quais não tenha autorização explícita por escrito.


Índice

  • Declaração do Problema
  • Configuração do Laboratório
  • Metodologia
  • O Que Foi Construído
  • Observações e Descobertas
  • Processo de Pensamento
  • Riscos de Segurança
  • Estratégias de Mitigação
  • Melhorias Futuras
  • Estrutura do Projeto
  • Início Rápido
  • Referências

🎯 Declaração do Problema

Enumeração de usuários - a capacidade de determinar se um nome de usuário específico existe em um sistema remoto sem credenciais válidas. É um primeiro passo crítico na cadeia de ataque que leva ao comprometimento da conta:``` Reconnaissance → [User Enumeration] → Password Attack → Access ↑ This project investigates here

Se um atacante consegue distinguir "este usuário existe" de "este usuário não existe" ao analisar as respostas do servidor, pode reduzir drasticamente o espaço de chaves para ataques subsequentes de força bruta ou credential stuffing.

SSH é um alvo frequente porque é quase universalmente exposto, lida com autenticação por senha e implementações antigas apresentavam diferenças de tempo mensuráveis entre nomes de usuário válidos e inválidos (CVE-2016-6210).

**Esta investigação faz duas perguntas:**

1. O OpenSSH moderno no Ubuntu 22.04.5 LTS com configuração padrão vaza a existência de nome de usuário por meio de mensagens de resposta, tempo ou sinais relatados por ferramentas?
2. Se um atacante fizer a tentativa de qualquer forma, quais artefatos ela deixa? e com que confiabilidade esses podem ser detectados?

---

## 🖥️ Configuração do Laboratório

Todos os testes foram realizados em uma rede virtual isolada apenas para host, sem exposição à internet.

| Máquina  | SO                        | Função                                  | IP               | Versão SSH       |
|----------|---------------------------|-----------------------------------------|------------------|------------------|
| Atacante | Kali Linux 2024.1         | Ferramentas ofensivas, scripts de análise | 192.168.56.5     | —                |
| Alvo     | Ubuntu Server 22.04.5 LTS | Executando OpenSSH com configuração **padrão** | 192.168.56.10    | OpenSSH 8.9p1    |

**Configuração SSH do alvo (`/etc/ssh/sshd_config` padrão):**```
PasswordAuthentication yes
UsePAM yes                  # Key setting — normalises timing via dummy hash
PermitRootLogin prohibit-password
MaxAuthTries 6
LogLevel INFO

UsePAM yes é a configuração crítica de hardening. Ela força o OpenSSH a executar um cálculo bcrypt fictício para usuários inexistentes, igualando o tempo de uma verificação de senha real. Isso foi introduzido especificamente como uma contramedida para o CVE-2016-6210.


🔬 Metodologia

Cada método de ataque foi executado como um teste independente com um estado de log limpo:```bash

Reset log state on target before each trial

sudo truncate -s 0 /var/log/auth.log

After attack: collect evidence

sudo cp /var/log/auth.log ~/evidence/trial-N-auth.log

Evidências coletadas por tentativa:
- Saída padrão/erro da ferramenta (salva textualmente)
- `/var/log/auth.log` do alvo
- Amostras de tempo de resposta via `time.perf_counter()` no `manual_ssh.py`
- Banner SSH capturado antes de qualquer tentativa de autenticação

### Métodos de Ataque

| Método                | Ferramenta                            | Wordlist                | Propósito                                        |
|-----------------------|---------------------------------------|-------------------------|--------------------------------------------------|
| SSH manual            | `ssh` CLI + Paramiko                 | 50 nomes de usuário comuns | Linha de base; inspecionar respostas brutas      |
| Força bruta Hydra     | `hydra`                              | mesmos 50               | Automatizado; utiliza modo enum nativo do Hydra  |
| Módulo Metasploit     | `auxiliary/scanner/ssh/ssh_enumuser` | mesmos 50               | Módulo de enumeração dedicado do framework       |
| Impressão digital de banner | `BannerFingerprinter` personalizado   | N/A                     | Vazamento de versão sem autenticação, verificação de CVE |
| Análise de temporização | `ResponseAnalyzer` personalizado      | subconjunto válido vs inválido | Verificação estatística de canal lateral        |

---

## O Que Foi Construído

Este projeto vai além de executar ferramentas — ele encapsula cada ataque e toda a lógica de detecção em uma base de código Python estruturada e fornece um orquestrador que executa todo o pipeline de ponta a ponta.

### Ferramentas de Ataque (`src/attack_tools/`)

**`ManualSSHEnumerator`** — Testa cada nome de usuário N vezes com `paramiko`, registrando
tempo preciso, tipo de resultado e banner SSH. Calcula média/desvio padrão por usuário.
Criticamente, **não** reutiliza conexões entre tentativas, garantindo que cada amostra capture
o tempo total de processamento do servidor.

**`BannerFingerprinter`** — Captura o banner SSH através de um socket TCP bruto (sem credenciais
necessárias). Analisa nome da implementação, string de versão e dica de SO. Cruza referências
com um registro local de CVEs. Uma versão como `OpenSSH_8.9p1 Ubuntu-3ubuntu0.6` revela
o software exato do servidor — potencialmente suficiente para identificar vulnerabilidades conhecidas
antes mesmo de qualquer autenticação ser tentada.

**`HydraAutomation`** — Wrapper de subprocesso em torno do Hydra. Analisa a saída padrão para extrair
logins bem-sucedidos, mensagens de erro e o próprio veredito de enumeração do Hydra
(`does not support user enumeration`).

**`MetasploitScanner`** — Escreve um script de recurso temporário e executa `msfconsole`
via subprocesso. Analisa a saída em busca de detecção de hardening e quaisquer nomes de usuário encontrados.

### Ferramentas de Detecção (`src/detection_tools/`)

**`LogParser`** — Analisador de auth.log baseado em regex, suportando cinco tipos de eventos SSH:
`failed_invalid_user`, `failed_valid_user`, `pre_auth_reject`, `accepted`,
`disconnected`. Retorna dicionários de eventos estruturados com timestamp, tipo de evento, nome de usuário,
IP de origem e porta.

**`ResponseAnalyzer`** — Realiza o teste t de Welch nas distribuições de temporização de nomes de usuário
válidos vs inválidos. Calcula delta de temporização (ms), valor-p, tamanho de efeito d de Cohen e
uma conclusão em linguagem simples. Limiar: delta ≥ 5ms E p < 0,05 dispara um aviso
de canal lateral.
Baixar ferramenta