445 (Samba)
Una recopilación concisa ―pero exhaustiva― sobre el protocolo Server Message Block (SMB) y su implementación libre Samba en sistemas Unix‑like. Aquí encontrarás conceptos básicos, configuraciones reco
¿Qué es SMB?
Cita:Server Message Block (SMB) es un protocolo cliente‑servidor que regula el acceso a archivos, directorios completos y otros recursos de red —como impresoras o interfaces de red— dentro de un entorno compartido. Asimismo, permite el intercambio de información entre procesos del sistema.Advertencia: Los derechos de acceso se definen mediante Access Control Lists (ACLs) y pueden afinarse al nivel de execute, read o full access para usuarios o grupos.
¿Qué es Samba?
Cita:Samba es la implementación libre del protocolo SMB/CIFS para sistemas Unix. Proporciona interoperabilidad con los sistemas Windows recientes y suele referirse a sí misma como SMB/CIFS.

Configuraciones predeterminadas
Para inspeccionar la configuración activa de Samba:
# Mostrar la configuración de smb.conf sin comentarios
grep -vE '^[#;]' /etc/samba/smb.conf

Configuraciones peligrosas

Advertencia: El siguiente ejemplo crea un recurso compartido extremadamente permisivo —solo con fines didácticos—. No lo uses en producción.
[notes]
comment = CheckIT
path = /mnt/notes/
browseable = yes
read only = no
writable = yes
guest ok = yes
enable privileges = yes
create mask = 0777
directory mask = 0777
Después de modificar smb.conf recuerda recargar el servicio:
sudo systemctl restart smbd
Conexión al recurso compartido
crackmapexec
crackmapexec smb <IP>
crackmapexec smb <IP> --shares
crackmapexec smb 10.10.11.4 -u 'jmontgomery' -p 'Midnight_121' -M spider_plus
smbmap
smbmap -H <IP>
smbmap -H <IP> -u 'null'
smbmap -H <IP> -u <user> -p <password> --download <dir>/<file>
smbmap -H <IP> -u <user> -p <password> -r
smbclient
smbclient -L //<IP> -N
smbclient //<IP>/<recurso> -N
rpcclient
rpcclient -U "" <IP>
Seguridad a nivel de dominio
Nota: Con seguridad a nivel de dominio, el servidor Samba actúa como miembro de un dominio Windows. La autenticación la gestiona el Controlador de Dominio (DC).
Comandos útiles dentro de smbclient
:
# Descargar un archivo
get <archivo>
# Ejecutar un comando local sin cerrar la sesión SMB
!<cmd>
# Mostrar qué recurso está usando cada usuario (requiere privilegios de admin)
smbstatus
Enumeración con rpcclient
Info:
rpcclient
permite interactuar con los servicios MS‑RPC expuestos por un servidor SMB, de forma local o remota.
srvinfo # Información del servidor
enumdomains # Lista de dominios
querydominfo # Info de dominio, servidor y usuario
netshareenumall # Lista completa de recursos compartidos
netsharegetinfo <share> # Detalles de un recurso
enumdomusers # Enumerar usuarios de dominio
queryuser <RID> # Info de un usuario
querygroup <RID> # Info de un grupo
Importante: Algunos comandos dependen del RID. Si desconoces qué RID corresponde a cada usuario, puedes forzar la consulta:
for i in $(seq 500 1100); do
rpcclient -N -U "" 10.129.14.128 -c "queryuser 0x$(printf '%x\n' $i)" \
| grep -E 'User Name|user_rid|group_rid' && echo ""
done
Salida de ejemplo:
User Name : sambauser
user_rid : 0x1f5
group_rid : 0x201
User Name : mrb3n
user_rid : 0x3e8
group_rid : 0x201
User Name : cry0l1t3
user_rid : 0x3e9
group_rid : 0x201
Alternativamente puedes usar samrdump.py
:
samrdump.py 10.129.14.128
Herramientas adicionales
Enum4linux‑NG
git clone https://github.com/cddmp/enum4linux-ng.git
cd enum4linux-ng
pip3 install -r requirements.txt
./enum4linux-ng.py 10.129.14.128
Buenas prácticas de seguridad
Principio de privilegio mínimo: comparte solo los directorios necesarios y con el nivel mínimo de permisos.
Deshabilita cuentas invitadas salvo que sea estrictamente necesario.
Habilita SMBv3 y desactiva versiones obsoletas (SMBv1).
Aplica firewall interno y permite el acceso únicamente desde subredes confiables.
Registra y monitoriza accesos y modificaciones en recursos compartidos.
Créditos y referencias
Licencia: MIT. Se permite la copia y modificación con atribución.
Última actualización