Pentest SMB - puerto 139, 445
services
SMB (Server Message Block) es un protocolo de red cliente-servidor que permite el intercambio de archivos e impresoras y otros recursos en una red. Permite que un cliente (como una computadora) acceda a recursos en un servidor (otra computadora) de manera similar a como accedería a un disco local. También se conoce como CIFS (Common Internet File System) y es un componente clave en los sistemas de archivos de red, popularizado por Microsoft Windows pero también utilizado en Linux y macOS.
SMB suele trabajar por el puerto 139 o 445 de una máquina
Reconocimiento
Enumerar versión de SMB
desde Metasploit podemos utilizar el módulo auxiliary/scanner/smb/smb_version para enumerar la versión del SMB
modulo de metasploit: auxiliary/scanner/smb/smb_versionEnumeración de recursos compartidos SMB
Encontrar recursos compartidos abiertos es útil para un evaluador de penetración, ya que puede haber archivos privados compartidos o, si se permite la escritura, podría ser un buen lugar para instalar un troyano o infectar un archivo existente. Saber dónde se encuentra el recurso compartido podría hacer que este tipo de pruebas sean más útiles, salvo que para determinarlo se requieren privilegios administrativos.
el script de nmap smb-enum-shares.nse lista recursos compartidos mediante la función MSRPC srvsvc.NetShareEnumAll y obtener más información sobre ellos mediante srvsvc.NetShareGetInfo. Si se deniega el acceso a estas funciones, se comprueba una lista de nombres de recursos compartidos comunes.
nmap -p 445 --script=smb-enum-shares.nse <IP_AQUI>el siguiente comando intenta comunicarse con el servidor para listar los recursos compartidos y se intenta conectar con el usuario anonymous, el cual puede pedir contraseña pero en la mayoría de casos esta Vacio (osea que solo es cuestión de presionar enter).
anonymouses un usuario “genérico” con el que algunos servidores SMB permiten conectarse sin credenciales reales.Podemos agregar el parámetro
-Npara crear una sesión nula (null session), si es que el servidor lo acepta
smbclient -L //IP_AQUI -U anonymous
smbclient -L //IP_AQUI -U anonymous -N # null sessionSMB null session attack
Un SMB (bloque de mensajes del servidor) de sesión nula permite conectarse a un sistema Windows remoto sin credenciales, lo que permite el acceso anónimo a ciertos recursos y canales compartidos, como el recurso compartido IPC$. Si bien está diseñado para llamadas a procedimientos remotos discretos, esta vulnerabilidad puede ser explotada por atacantes para realizar enumeraciones de información y recopilar información confidencial, como nombres de usuario, nombres de recursos compartidos y políticas de seguridad, para facilitar ataques más sofisticados. La protección contra ataques de sesión nula implica deshabilitar la clave de registro "RestrictAnonymous", restringir el acceso anónimo a los canales con nombre y asegurar que la cuenta de invitado esté deshabilitada.
En muchos servidores Windows antiguos, esto daba acceso a información sensible como shares, usuarios del dominio, políticas, etc.
conexion null session mediante smbclient:
smbclient -L //IP_AQUI -U "" -NUsuarios y credenciales comunes de SMB
(Vacio)
(Vacio)
guest
(Vacio)
Administrator / admin
(blank), password, administrator, admin
arcserve
arcserve, backup
tivoli, tmersrvd
tivoli, tmersrvd, admin
backupexec, backup
backupexec, backup, arcada
test, lab, demo
password, test, lab, demo
(Vacio): significa que no necesitas proporcionar el dato que se pide
Enumeración de usuarios SMB (Metasploit)
en Metasploit hay un modulo auxiliar que nos permite enumerar los usuarios de SMB
use auxiliary/scanner/smb/smb_lookupsid
set rhosts hostname.local
runEnumeración de usuarios SMB por nmap
el script smb-enum-users.nse Intenta enumerar a los usuarios de un sistema Windows remoto, con la mayor cantidad de información posible, mediante dos técnicas diferentes (ambas mediante MSRPC, que utiliza el puerto 445 o 139). El objetivo de este script es descubrir todas las cuentas de usuario existentes en un sistema remoto. Esto puede ser útil para la administración, al ver quién tiene una cuenta en un servidor, o para pruebas de penetración o análisis de red, al determinar qué cuentas existen en un sistema.
nmap -p 445 --script=smb-enum-users.nse <IP_AQUI>Fuerza Bruta de SMB por nmap
el script intenta adivinar combinaciones de nombre de usuario y contraseña mediante SMB, almacenando las combinaciones descubiertas para usarlas en otros scripts. Se hará todo lo posible para obtener una lista válida de usuarios y verificar cada nombre de usuario antes de usarlo.
nmap --script smb-brute -p 445 <IP_AQUI>
# mas informacion de smb-brute: https://nmap.org/nsedoc/scripts/smb-brute.htmlFuerza Bruta de SMB por hydra
hydra -l Administrator -P passwords.txt <IP_AQUI> smb -t 1
|
el usuario al que le hacemos fuerza bruta
# debes proporcionar un diccionario valido de passwordsLast updated