139, 445 Smb

Enumeración con NMAP #

nmap <ip> -p <puerto> -n -Pn --script=smb-vuln*
nmap <ip> -p <puerto> -n -Pn --script=smb-protocols
nmap <ip> -p <puerto> -n -Pn --script=smb-security-mode
nmap <ip> -p <puerto> -n -Pn --script=smb-enum-sessions
nmap <ip> -p <puerto> -n -Pn --script=smb-enum-shares
nmap <ip> -p <puerto> -n -Pn --script=smb-enum-shares,smb-ls

nmap <ip> -p <puerto> -n -Pn --script=smb-enum-shares --script-args smbusername=<usuario>,smbpassword=<pass>

nmap <ip> -p <puerto> -n -Pn --script=smb-enum-users --script-args smbusername=<usuario>,smbpassword=<pass>

nmap <ip> -p <puerto> -n -Pn --script=smb-enum-domains --script-args smbusername=<usuario>,smbpassword=<pass>

nmap <ip> -p <puerto> -n -Pn --script=smb-enum-groups --script-args smbusername=<usuario>,smbpassword=<pass>

SMBMap #


# Enumerar recursos compartidos (NULL SESSION)
smbmap -H <ip>
smbmap -H <ip> -u guest -p " " -d . (Para windows)



# Conectarse a un recurso compartido
smbmap -H <ip> -r <recurso>
smbmap -H <ip> -r <recurso> -u "user" -p "pass"

# Descargar/subir fichero
smbmap -H <ip> -r <recurso> --download <path>
smbmap -H <ip> -r <recurso> --upload 'origen' 'destino'

# Ejecución de comandos
smbmap -H <ip> -u "user" -p "pass" -x 'comando'

SMBClient #

# Enumerar recursos compartidos
smbclient -N -L <ip> (NUL SESSION)
smbclient -L <ip> -u <usuario> -p <pass>

# Conectarse a un recurso
smbclient \\\\ip\\recurso --user <usuario> --password <pass>

# Descargar
get <fichero>

Enum4Linux #

Enum4linux sirve para reconocer recursos compartidos, usuarios, etc en un dominio.

## para usar con credenciales, las ponemos entre comillas simples
./enum4linux -u [usuario] -p [contraseña] [IP_o_nombre_de_host]

# escaneo completo
enum4linux -a <IP>

# reconocimiento de usuarios
enum4linux -o <IP>

# Reconocimiento grupos
enum4linux -G <IP>

# reconocimiento del S.O
enum4linux -U <IP>

# Enumeracion recursos
enum4linux -S <IP>

# Enumeracion impresoras
enum4linux -i <IP>

Crackmapexec #

crackmapexec smb <IP> -u '' -p '' --shares
crackmapexec smb <IP> -u 'usuario' -p 'contraseña' --shares

Rpcclient #

En caso de linux, tenemos samba. Podemos tratar de enumerar información con rpcclient.

# Establecer conexión (con usuario en blanco)
rpcclient -U "" -N <ip>

# Entraremos a una consola interactiva en la que podemos ejecutar comandos:
* ? (ayuda comandos)
* srvinfo
* querydispinfo
* enumdomusers
* lookupnames <usuario> (obtener el SID en windows)
* enumdomgroups

RCE psexec Metasploit #

Si conocemos credenciales de SMB, en ocasiones (maquinas windows), podemos establecer una conexion para ejecución de comandos.

use exploit/windows/smb/psexec

Metasploit #

# Enumeracion
use auxiliaryt/scanner/smb/smb_version
use auxiliaryt/scanner/smb/smb2
use auxiliaryt/scanner/smb/smb_enumshares

# Ataques
use auxiliaryt/scanner/smb/smb_login

Hydra #

hydra -l <usuario_conocido> -P rockyou.txt <IP> smb