Volver al inicio
</>

Enumeración SMB

Reconocimiento de Recursos Compartidos y Técnicas de Enumeración

¿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

smbclient
Cliente SMB nativo de Samba. Permite listar recursos compartidos, conectarse y navegar por directorios remotos.
smbmap
Herramienta avanzada para mapear permisos de recursos SMB, enumerar shares y permisos de lectura/escritura.
enum4linux
Script especializado en enumeración completa de sistemas Linux/Windows vía SMB y RPC.
nbtscan
Escáner de NetBIOS para identificar servicios y obtener información de red local.
rpcclient
Cliente RPC para enumeración de usuarios, grupos, políticas y servicios del dominio.
netexec (nx)
Sucesor de CrackMapExec. Framework moderno para enumeración y explotación SMB.

Caso Práctico: HTB Active

Enumeración SMB en Windows Domain Controller - HTB Active (10.10.10.100)
Información del objetivo:
  • 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:

1
Reconocimiento
Escaneo de puertos para identificar servicios SMB activos
2
Listado de Shares
Enumeración de recursos compartidos disponibles
3
Análisis de Permisos
Evaluación de permisos de lectura/escritura en shares
4
Navegación y Extracción
Exploración de contenidos y descarga de archivos relevantes

Fase 1: Reconocimiento de Puertos

Nmap - Escaneo completo
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
Nmap scan HTB Active SMB ports
🔍 Escaneo Nmap HTB Active: Resultado del escaneo de puertos en la máquina Active (10.10.10.100). Se confirma que el puerto 445/TCP SMB está abierto junto con servicios típicos de Active Directory como Kerberos (88/TCP) y LDAP.

Confirmamos que el puerto 445/TCP SMB está abierto junto con otros servicios típicos de AD.

Fase 2: Enumeración de Recursos Compartidos

Listado sin credenciales (Null Session)
# 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
smbclient share enumeration HTB Active
📂 Listado de Shares SMB: Enumeración de recursos compartidos usando smbclient sin credenciales (null session). Se identifican los shares disponibles incluyendo el crítico "Replication" con permisos de lectura.

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

Navegación recursiva
# 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
smbmap recursive exploration Replication share
🔎 Exploración Recursiva con smbmap: Navegación detallada del share "Replication" mostrando la estructura de directorios. Se descubren rutas críticas como active.htb/Policies que contienen archivos de configuración sensibles.
smbclient interactive connection Replication
⚙️ Conexión Interactiva smbclient: Sesión interactiva en el share Replication permitiendo navegación manual por los directorios. Se confirma acceso de lectura a archivos de Group Policy Preferences.

Fase 4: Descubrimiento y Extracción de Archivos

Descarga de archivos sensibles
# 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
smbmap download Groups.xml GPP file
📥 Descarga de Archivo GPP: Extracción exitosa del archivo Groups.xml usando smbmap. Este archivo contiene configuraciones de Group Policy Preferences con credenciales cifradas que pueden ser descifradas.
Groups.xml file content with encrypted password
📜 Contenido Groups.xml: Análisis del archivo descargado mostrando las credenciales cifradas con AES. Se observa el username y el cpassword que contiene la contraseña cifrada lista para descifrar con gpp-decrypt.

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

Descifrado de GPP
# 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'
gpp-decrypt password decryption
🔓 Descifrado GPP: Uso de gpp-decrypt para descifrar la contraseña AES encontrada en Groups.xml. La herramienta revela la contraseña en texto plano del usuario del dominio Active Directory.
NetExec credential validation HTB Active
Validación de Credenciales: Confirmación exitosa de las credenciales descifradas usando NetExec. Se verifica que las credenciales son válidas para el dominio Active Directory.
SMB enumeration with valid credentials
🔍 Enumeración Avanzada: Con credenciales válidas, se puede realizar enumeración más profunda del dominio, accediendo a shares adicionales y obteniendo información privilegiada del Active Directory.
Complete SMB enumeration results summary
🎯 Resultado Final: Resumen completo de la enumeración SMB exitosa en HTB Active. Se logró obtener credenciales válidas del dominio a partir de configuraciones mal protegidas en Group Policy Preferences, demostrando el riesgo de almacenar credenciales cifradas en policies de grupo.

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

PowerShell - Auditoría
# 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.