> 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-smb.md).

# Enumeración de SMB

El protocolo **SMB (Server Message Block)** es fundamental en entornos corporativos y domésticos para el **intercambio de archivos, impresoras y otros recursos de red** entre sistemas Windows y Linux. Por su amplia adopción, es también uno de los vectores más explotados durante una auditoría de seguridad o pentest.

***

## 🧩 ¿Qué es SMB?

* **SMB** es un protocolo de red que permite el acceso remoto a archivos, impresoras y otros recursos.
* **Puerto por defecto:** `TCP 445`
  * Antiguamente utilizaba **NetBIOS sobre TCP/IP** a través del **puerto 139**.
* **Samba** es la implementación de SMB para sistemas Linux, lo que permite que computadoras con Windows puedan acceder a recursos compartidos alojados en sistemas Linux.

***

## 🔎 ¿Qué se puede enumerar?

Durante la fase de enumeración de SMB, un atacante o auditor puede obtener información sensible como:

* **Versión del protocolo SMB** (útil para detectar vulnerabilidades como EternalBlue)
* **Usuarios válidos**
* **Recursos compartidos disponibles (shares)**
* **Permisos sobre dichos recursos**
* **Contraseñas débiles mediante fuerza bruta**

***

## **🧪 Laboratorio Práctico**

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

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

**Paso 2:** Encuentra los puertos TCP predeterminados utilizados por smbd.

**Dominio:**

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

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

139, 445.

**Paso 3:** Encuentra los puertos UDP predeterminados utilizados por nmbd.

**Dominio:**

```
nmap -sU --top-ports 25 demo.ine.local
```

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

137, 138.

**Paso 4:** ¿Cuál es el nombre del grupo de trabajo del servidor Samba?

**Dominio:**

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

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

RECONLABS

**Paso 5:** encuentre la versión exacta del servidor Samba utilizando el script nmap apropiado.

**Dominio:**

```
nmap --script smb-os-discovery.nse -p 445 demo.ine.local
```

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

Samba 4.3.11-Ubuntu

**Paso 6:** Encuentra la versión exacta del servidor Samba usando el módulo smb\_version de metasploit.

**Comandos:**

```
msfconsole -q
use auxiliary/scanner/smb/smb_version
set RHOSTS demo.ine.local
exploit
```

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

Samba 4.3.11-Ubuntu

**Paso 7:** ¿Cuál es el nombre NetBIOS del servidor Samba? Utilice los scripts de Nmap adecuados.

**Dominio:**

```
nmap --script smb-os-discovery.nse -p 445 demo.ine.local
```

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

SAMBA-RECON

**Paso 8:** Busque el nombre de la computadora NetBIOS del servidor Samba usando nmblookup.

**Dominio:**

```
nmblookup -A demo.ine.local
```

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

SAMBA-RECON

**Paso 9:** Usando smbclient determine si se permite o no la conexión anónima (sesión nula) en el servidor Samba.

**Dominio:**

```
smbclient -L demo.ine.local -N
```

Se permite la conexión anónima ya que las acciones se muestran sin necesidad de contraseña.

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

Permitido.

**Paso 10:** Usando rpcclient determine si se permite o no la conexión anónima (sesión nula) en el servidor Samba.

**Dominio:**

```
rpcclient -U "" -N demo.ine.local
```

Se permite la conexión anónima ya que no se producen errores al conectarse al servidor Samba sin ninguna credencial.

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

Permitido.

#### Conclusión

En este laboratorio, aprendimos cómo realizar el reconocimiento de servidores SMB e identificar y extraer información de servidores SMB en una red.

#### Referencias

1. [Samba](https://www.samba.org/)
2. [smbclient](https://www.samba.org/samba/docs/current/man-html/smbclient.1.html)
3. [rpcclient](https://www.samba.org/samba/docs/current/man-html/rpcclient.1.html)
4. [nmblookup](https://www.samba.org/samba/docs/current/man-html/nmblookup.1.html)
5. [Nmap Script: smb-os-discovery](https://nmap.org/nsedoc/scripts/smb-os-discovery.html)
6. [Metasploit Module: SMB Version Detection](https://www.rapid7.com/db/modules/auxiliary/scanner/smb/smb_version)
