Protocolo SAMBA (SMB)
Server Message Block (SMB) es un protocolo de compartición de archivos e impresoras utilizado principalmente en sistemas Windows, aunque también es compatible con sistemas Linux mediante Samba. Durante una auditoría es habitual enumerar recursos compartidos, usuarios, permisos y posibles vulnerabilidades antes de intentar su explotación.
Enumeración
Identificar el servicio
nmap -Pn -sV -p139,445 <IP>
nmap --script smb-protocols,smb-os-discovery -p139,445 <IP>
Enumerar recursos compartidos
smbclient
smbclient -L //<IP> -N
smbclient -L //<IP> -U <usuario>
enum4linux
enum4linux <IP>
enum4linux -a <IP>
enum4linux-ng
enum4linux-ng <IP>
crackmapexec
crackmapexec smb <IP>
Enumerar usuarios
rpcclient -U "" -N <IP>
Dentro de rpcclient:
enumdomusers
querydispinfo
enumdomgroups
Acceder a un recurso compartido
smbclient //<IP>/<recurso> -N
smbclient //<IP>/<recurso> -U <usuario>
Explotación
Acceso con credenciales
smbclient //<IP>/<recurso> -U <usuario>
Descargar archivos
get archivo.txt
mget *
Subir archivos
put shell.aspx
Montar un recurso SMB
sudo mount -t cifs //<IP>/<recurso> /mnt/smb -o username=<usuario>,password=<contraseña>
Ejecución remota (credenciales válidas)
Impacket - psexec
psexec.py <dominio>/<usuario>:<contraseña>@<IP>
Impacket - smbexec
smbexec.py <dominio>/<usuario>:<contraseña>@<IP>
Impacket - wmiexec
wmiexec.py <dominio>/<usuario>:<contraseña>@<IP>
NetExec (CrackMapExec)
netexec smb <IP> -u <usuario> -p <contraseña>
netexec smb <IP> -u <usuario> -p <contraseña> --shares
netexec smb <IP> -u <usuario> -p <contraseña> --sessions
netexec smb <IP> -u <usuario> -p <contraseña> --sam
Vulnerabilidades comunes
EternalBlue (MS17-010)
nmap --script smb-vuln-ms17-010 -p445 <IP>
Enumeración de vulnerabilidades SMB
nmap --script smb-vuln* -p445 <IP>
Herramientas útiles
| Herramienta | Descripción |
|---|---|
smbclient | Cliente SMB para acceder a recursos compartidos. |
enum4linux | Enumeración de usuarios, grupos y recursos SMB. |
enum4linux-ng | Versión mejorada de enum4linux. |
rpcclient | Enumeración mediante RPC. |
NetExec | Framework para auditorías SMB, WinRM, LDAP, MSSQL, etc. |
Impacket | Suite de herramientas para autenticación y ejecución remota. |
nmap | Detección de servicios y vulnerabilidades SMB. |
Nota: SMB suele ser uno de los primeros servicios a enumerar en una auditoría de Active Directory, ya que puede revelar usuarios, recursos compartidos, credenciales expuestas y vectores de movimiento lateral.