GhostAcademy logo GhostAcademy

Samba Recon: Basics I

Reconocimiento y Enumeración SMB / Samba Puertos 445 / 139 enum4linux · smbmap · smbclient

📥 ¿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

HerramientaFunción
nmap NSEScripts smb-* para OS, shares, usuarios y vulnerabilidades
enum4linuxTodo-en-uno: usuarios, grupos, shares, políticas, workgroup
smbmapVista rápida de shares y permisos (lectura/escritura)
smbclientCliente interactivo para navegar y descargar archivos de shares
crackmapexecAlternativa 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