Enumeración de recursos compartidos
Índice
Definición
Cuando hablamos de enumeración de recursos compartidos, nos referimos como bien indica el nombre, a visualizar todos los recursos compartidos en el equipo que vamos a realizar un test. Esto lo hacemos para encontrar toda la información posible sobre el equipo que vamos a comprometer.
Explicación
Cuando compartimos recursos en la red utilizamos un procolo que recibe el nombre de samba, abreviado smb. Este protocolo utiliza dos puertos:
- Puerto 139 ➜ En este puerto corre el protocolo NetBIOS, para comunicarse con la red.
- Puerto 445 ➜ En este puerto corre el protocolo SMB.
NetBIos, es un protocolo de la capa de sesión del modelo OSI que es independiente de SMB. Pero a diferenencia SMB, necesita NetBIOS para la comunicación con dispositivos que no admiten el alojamietno de smb sobre TCP/IP. Tambien podemos encontrarnos NetBIOS, corriendo en otros puertos proximos:
- Puerto 137, 138 (UDP)
- Puerto 137 (TCP)
A mayores samba, a parte de compartir recursos en red, nos permite crear un controlador de dominio simulando AD DC.
- Samba 3 ➜ Antes de la salida de samba-ad-dc (samba4) se utilizaba junto LDAP, para crear un dominio y podemos unir clientes windows y Linux
- Samba 4 ➜ Con la salida de samba4 (samba-ad-dc), samba3 dejo de ser utilizado, samba4 tiene mucha potencia similar a AD, por lo que nos permite realizar todo, unir clientes windows y linux, uso de GPOS, relaciones de confianza, etc.
Enumeración
Smbclient
Podemos comenzar haciendo una enumeración de los recursos, con una sessión null con smbclient, de la siguiente forma.
- -L ➜ Lista los recursos
- -N ➜ Omite contraseña
1
smbclient -L 192.168.10.123 -N
Tambien podemos usar protocolo NT1 si fuera necesario.
- --option ➜ Especificamos un opción para smb
1
smbclient -L 192.168.10.123 -N --option='client min protocol=NT1'
Smbmap
Tambien podemos usar esta herramienta, que ya es especializada en la enumeración de SMB.
- -H ➜ IP de objetivo
- -u ➜ Usuario (% usuario actual del sistema)
1
smbmap -H 192.168.10.123 -u%
Nmap
- -p ➜ Indicamos puerto
- --script ➜ Indicamos el script a usar
1
nmap -p 139,445 --script smb-enum-shares 192.168.10.123
Enum4linux
- -S ➜ Listar recursos compartidos
- -u ➜ Indicar usuario
- -p ➜ Indicar contraseña
1
enum4linux -S -u -p 192.168.10.123
Crackmapexec
- -u ➜ Usuarios
- -p ➜ Contraseña
- --shares ➜ Enumerar recursos
1
crackmapexec smb 192.168.10.123 -u '' -p '' --shares
Rpcclient
- -U ➜ Indicamos usuario
- -c ➜ Comando de rpcclient a ejecutar
1
rpcclient -U '' 10.10.11.152 -c "netshareenum"
Metasploit
Como explicamos en otro post, hacemos los mismos pasos que siempre.
- msfconsole
- use auxiliary/scanner/smb/smb_enumshares
- set rhosts 192.168.10.123
- exploit
1
2
3
use auxiliary/scanner/smb/smb_enumshares
set rhosts 192.168.10.123
exploit