> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/metasploit-framework-msf/recopilacion-y-enumeracion-de-informacion/enumeracion/enumeracion-de-ssh-22.md).

# Enumeración de SSH (22)

## 🧠 SSH Enumeration (Enumeración SSH)

* **SSH (Secure Shell)** es un protocolo de administración remota que proporciona comunicación cifrada y es el sucesor seguro de Telnet.
* Se utiliza normalmente para acceder de forma remota a servidores y sistemas.
* Por defecto utiliza el puerto **TCP 22**, aunque puede ser configurado para funcionar en cualquier otro puerto TCP abierto.
* Podemos usar módulos auxiliares en Metasploit para:
  * Enumerar la versión de SSH.
  * Realizar ataques de fuerza bruta (brute-force) para obtener credenciales válidas.

***

## 🔍 1. **Enumerar versión de SSH**

Este módulo nos permite ver la versión del servicio SSH expuesto, lo cual puede darnos pistas sobre posibles vulnerabilidades.

#### Módulo:

```
use auxiliary/scanner/ssh/ssh_version
```

#### Configuración:

```bash
bashCopiarEditarset RHOSTS <IP-objetivo>
set THREADS 10
run
```

✅ **Resultado esperado:** versión del demonio SSH (`OpenSSH 7.2p2`, `Dropbear`, etc.), útil para buscar exploits específicos.

***

## 💥 2. **Ataque de fuerza bruta (brute-force) contra SSH**

Este módulo intenta autenticarse al servicio SSH usando combinaciones de usuario/contraseña desde diccionarios.

#### Módulo:

```
use auxiliary/scanner/ssh/ssh_login
```

#### Configuración:

```bash
set RHOSTS <IP-objetivo>
set USER_FILE /ruta/a/usuarios.txt
set PASS_FILE /ruta/a/contraseñas.txt
set THREADS 10
set STOP_ON_SUCCESS true
run
```

✅ **Resultado esperado:** credenciales válidas que te permitirán acceder al sistema remotamente vía SSH.

***

## 🛡️ 3. **Login directo si ya tienes credenciales**

Si ya tienes un usuario y una contraseña válidos, puedes comprobar acceso directamente.

#### Módulo:

```
use auxiliary/scanner/ssh/ssh_login
```

#### Configuración:

```bash
set RHOSTS <IP-objetivo>
set USERNAME <usuario>
set PASSWORD <contraseña>
run
```

✅ **Resultado esperado:** confirmación de acceso y sesión SSH activa.

***

## 🔎 4. **Enumeración de usuarios SSH (username enumeration)**

Este módulo intenta identificar qué nombres de usuario existen en el sistema objetivo basándose en las respuestas del servidor SSH. Aunque SSH no siempre devuelve mensajes distintos entre un usuario válido e inválido, **algunas configuraciones o versiones sí lo hacen**, permitiendo este tipo de ataque.

#### Módulo:

```
use auxiliary/scanner/ssh/ssh_enumusers
```

#### Configuración:

```bash
set RHOSTS <IP-objetivo>
set USER_FILE /ruta/a/usuarios.txt
set THREADS 10
run
```

✅ **Resultado esperado:** una lista de usuarios válidos detectados en el sistema SSH, basada en diferencias de tiempo de respuesta o mensajes de error.

***

#### 🧰 Recapitulación de módulos SSH en Metasploit

| Función                      | Módulo Metasploit                     |
| ---------------------------- | ------------------------------------- |
| Enumerar versión de SSH      | `auxiliary/scanner/ssh/ssh_version`   |
| Enumerar usuarios            | `auxiliary/scanner/ssh/ssh_enumusers` |
| Fuerza bruta de credenciales | `auxiliary/scanner/ssh/ssh_login`     |
| Verificar acceso directo SSH | `auxiliary/scanner/ssh/ssh_login`     |
