Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ssh-enum — Este proyecto explora si OpenSSH moderno revela nombres de usuario válidos a través de diferencias sutiles en la respuesta o el tiempo. Investigación de enumeración de usuarios CVE-2016-6210 (prueba t de Welch, d de Cohen e ingeniería de detección) en un laboratorio controlado en Ubuntu 22.04.5 LTS; también examina los rastros que dejan tales intentos y cómo se pueden detectar. | Kitploit
Herramientas/GitHubGitHub/alisha-chaudhary/ssh-enum
ReconocimientoAnálisis de VulnerabilidadesRecopilación de InformaciónPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónAnálisis de Registros
GitHub

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
alisha-chaudhary/ssh-enum

ssh-enum

Ver Repositorio
12hace 2 mesesAún no revisado

Acerca de

Este proyecto explora si OpenSSH moderno revela nombres de usuario válidos a través de diferencias sutiles en la respuesta o el tiempo. Investigación de enumeración de usuarios CVE-2016-6210 (prueba t de Welch, d de Cohen e ingeniería de detección) en un laboratorio controlado en Ubuntu 22.04.5 LTS; también examina los rastros que dejan tales intentos y cómo se pueden detectar.

Compartir

ssh-enum

Estudio de Validación Estadística de CVE-2016-6210

Una reinvestigación reproducible de la enumeración de nombres de usuario de OpenSSH mediante análisis estadístico.

Este proyecto reinvestiga CVE-2016-6210, un canal lateral de temporización documentado de OpenSSH, para determinar si sigue siendo observable en un servidor Ubuntu moderno usando la configuración PAM predeterminada.

En lugar de asumir que el comportamiento publicado aún aplica, el proyecto evalúa las mediciones de temporización de autenticación recolectadas mediante sondas manuales, Hydra y Metasploit usando la prueba t de Welch y la d de Cohen para distinguir señales de temporización genuinas del ruido de medición.

El estudio no encontró diferencias de temporización estadísticamente significativas en la configuración predeterminada probada, demostrando el valor de la experimentación reproducible y la validación basada en evidencia de las afirmaciones de seguridad publicadas.


⚠️ Aviso Legal

Este proyecto se realizó completamente dentro de un entorno de laboratorio aislado y de propiedad propia. Todos los hallazgos se aplican solo a la configuración probada. Nunca pruebe sistemas que no posea o para los que no tenga autorización explícita por escrito.


Tabla de Contenidos

  • Planteamiento del Problema
  • Configuración del Laboratorio
  • Metodología
  • Lo Que se Construyó
  • Observaciones y Hallazgos
  • Proceso de Pensamiento
  • Riesgos de Seguridad
  • Estrategias de Mitigación
  • Mejoras Futuras
  • Estructura del Proyecto
  • Inicio Rápido
  • Referencias

🎯 Planteamiento del Problema

Enumeración de usuarios - la capacidad de determinar si un nombre de usuario específico existe en un sistema remoto sin credenciales válidas. Es un primer paso crítico en la cadena de ataque que lleva al compromiso de la cuenta:``` Reconnaissance → [User Enumeration] → Password Attack → Access ↑ This project investigates here

Si un atacante puede distinguir "este usuario existe" de "este usuario no existe" analizando las respuestas del servidor, puede reducir drásticamente el espacio de claves para posteriores ataques de fuerza bruta o de relleno de credenciales.

SSH es un objetivo frecuente porque está expuesto casi universalmente, maneja la autenticación por contraseña y las implementaciones antiguas tenían diferencias de tiempo medibles entre nombres de usuario válidos e inválidos (CVE-2016-6210).

**Esta investigación plantea dos preguntas:**

1. ¿El OpenSSH moderno en Ubuntu 22.04.5 LTS con configuración predeterminada filtra la existencia de usuarios
   a través de mensajes de respuesta, tiempos o señales reportadas por herramientas?
2. Si un atacante lo intenta de todos modos, ¿qué artefactos deja? y ¿con qué
   fiabilidad pueden ser detectados?

---

## 🖥️ Configuración del Laboratorio

Todas las pruebas se realizaron en una red virtual totalmente aislada de solo anfitrión, sin exposición a internet.

| Máquina  | SO                        | Rol                                    | IP               | Versión SSH      |
|----------|---------------------------|-----------------------------------------|------------------|------------------|
| Atacante | Kali Linux 2024.1         | Herramientas ofensivas, scripts de análisis | 192.168.56.5     | —                |
| Objetivo   | Ubuntu Server 22.04.5 LTS | Ejecutando OpenSSH con configuración **predeterminada** | 192.168.56.10    | OpenSSH 8.9p1    |

**Configuración SSH objetivo (valores predeterminados de `/etc/ssh/sshd_config`):**```
PasswordAuthentication yes
UsePAM yes                  # Key setting — normalises timing via dummy hash
PermitRootLogin prohibit-password
MaxAuthTries 6
LogLevel INFO

UsePAM yes es la configuración crítica de endurecimiento. Fuerza a OpenSSH a ejecutar un cálculo bcrypt ficticio para usuarios inexistentes, igualando el tiempo de una verificación de contraseña real. Esto se introdujo específicamente como una contramedida para CVE-2016-6210.


🔬 Metodología

Cada método de ataque se ejecutó como un ensayo independiente con un estado de registro limpio:```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

Evidencia recopilada por intento:
- Salida estándar/error de la herramienta (guardado textualmente)
- `/var/log/auth.log` del objetivo
- Muestras de temporización de respuesta mediante `time.perf_counter()` en `manual_ssh.py`
- Banner SSH obtenido antes de cualquier intento de autenticación

### Métodos de ataque

| Método                | Herramienta                          | Lista de palabras        | Propósito                                        |
|-----------------------|--------------------------------------|--------------------------|--------------------------------------------------|
| SSH Manual            | `ssh` CLI + Paramiko                 | 50 nombres de usuario comunes | Línea base; inspeccionar respuestas brutas       |
| Hydra fuerza bruta    | `hydra`                              | mismos 50                | Automatizado; aprovecha el modo de enumeración integrado de Hydra |
| Módulo de Metasploit  | `auxiliary/scanner/ssh/ssh_enumuser` | mismos 50                | Módulo de enumeración dedicado del framework      |
| Huella digital del banner | personalizado `BannerFingerprinter` | N/A                      | Filtración de versión sin autenticación, verificación de CVE |
| Análisis de temporización | personalizado `ResponseAnalyzer`    | subconjunto válido vs inválido | Verificación estadística de canal lateral         |

---

## Lo que se Construyó

Este proyecto va más allá de ejecutar herramientas — envuelve cada ataque y toda la lógica de detección en una base de código Python estructurada y proporciona un orquestador que ejecuta todo el pipeline de principio a fin.

### Herramientas de ataque (`src/attack_tools/`)

**`ManualSSHEnumerator`** — Prueba cada nombre de usuario N veces con `paramiko`, registrando la temporización precisa, el tipo de resultado y el banner SSH. Calcula la media/desviación estándar por usuario. Críticamente, **no** reutiliza conexiones entre intentos, asegurando que cada muestra capture el tiempo completo de procesamiento del servidor.

**`BannerFingerprinter`** — Obtiene el banner SSH a través de un socket TCP bruto (sin necesidad de credenciales). Analiza el nombre de implementación, la cadena de versión y la pista del SO. Contrasta con un registro local de CVE. Una versión como `OpenSSH_8.9p1 Ubuntu-3ubuntu0.6` revela el software exacto del servidor — potencialmente suficiente para identificar vulnerabilidades conocidas antes de intentar cualquier autenticación.

**`HydraAutomation`** — Envoltorio de subproceso alrededor de Hydra. Analiza la salida estándar para extraer inicios de sesión exitosos, mensajes de error y el veredicto de enumeración propio de Hydra (`does not support user enumeration`).

**`MetasploitScanner`** — Escribe un script de recurso temporal y maneja `msfconsole` mediante subproceso. Analiza la salida para detección de endurecimiento y cualquier nombre de usuario encontrado.

### Herramientas de detección (`src/detection_tools/`)

**`LogParser`** — Analizador de auth.log basado en expresiones regulares que soporta cinco tipos de eventos SSH: `failed_invalid_user`, `failed_valid_user`, `pre_auth_reject`, `accepted`, `disconnected`. Devuelve diccionarios estructurados de eventos con marca de tiempo, tipo de evento, nombre de usuario, IP de origen y puerto.
Descargar herramienta