Smb Relay
SMB-Relay
Antes de empezar a explicar el ataque, me gustaría explicar que es SMB.
El protocolo SMB
permite que un cliente (es decir, su máquina) se comunique con un servidor y, por extensión, con los demás recursos basados en la red. También se denomina protocolo servidor/cliente
. SMB gobierna todo, desde el intercambio de archivos entre redes hasta la edición de documentos en una máquina remota. El bloque de mensajes del servidor utiliza el puerto TCP 445
para la conexión y, por supuesto, la transmisión de datos. Si el recurso solicitado se encuentra en la web, la resolución de la dirección se maneja a través del DNS.
Para redes más pequeñas, la resolución de dirección cubierta se pasa al LLMNR
(Resolución de nombre de multidifusión local). Ahora, cómo funciona esto es que el cliente solo puede ‘hablar’ con el servidor después de completar un ‘ broshake ’ de tres vías.
Muy bien, ahora ¿En qué consiste el ataque SMB-Relay?
SMB Relay Attack es un tipo de ataque que se basa en la autenticación NTLM de versión 2 (NTLMv2)
que normalmente se usa en la mayoría de las empresas.
El ataque SMB Relay abusa del protocolo de desafío-respuesta NTLM. Por lo general, todas las sesiones SMB usaban el protocolo NTML con fines de encriptación y autenticación (es decir, NTLM sobre SMB).
Ahora, en la comunicación cliente-servidor normal, hay una serie de solicitudes seguidas de respuestas. La idea detrás de un ataque SMB Relay es posicionarse entre el cliente y el servidor (envenenando la red) para capturar los paquetes de datos transmitidos entre las dos entidades.
Este tipo de ataque solo puede realizarse si el SMB del equipo no está firmado, podemos ver si esta firmado o no con la herramienta CrackMapExec
.
Para realizar este ataque he creado este escenario.
SMB-Relay Attack
Para que sea mas sencillo y cómodo recomiendo desinstalar el Windows-Defender en el DC, con el siguiente comando desde PowerShell ISE.
Desinstalamos el Window Defender del DC:
Esta es la IP del Windows-Server:
Configuramos en la maquina PC-ADRI el servidor DNS para que pueda llegar al dominio creado adricorp.local
De esta forma podemos hacer ping al dominio y llegamos correctamente.
El siguiente paso será crear dos usuarios del dominio en Windows-Server.
Contraseña: P@ssw0rd123
Contraseña: W3lc0m3!123
Una vez creado procedemos a conectar PC-ADRI al dominio, para ello vamos a Configuración de Windows 10 y vamos al apartao Obtener acceso a trabajo o escuela.
Agregamos el dominio y una de las cuentas que hayamos creado. Y ya podremos iniciar sesión en el dominio. De esta forma hemos agregado la maquina PC-ADRI al Directorio Activo.
Procedemos a realizar el ataque, para ello tendremos que configurar el archivo responder.conf de la siguiente forma:
Una vez configurado ejecutaremos el responder de esta forma:
Responder es un envenenador LLMNR, NBT-NS y MDNS, con un servidor de autenticación no autorizado HTTP/SMB/MSSQL/FTP/LDAP incorporado que admite NTLMv1/NTLMv2/LMv2, seguridad extendida NTLMSSP y autenticación HTTP básica.
Responder funciona imitando varios servicios y ofreciéndolos a la red. Una vez que se engaña a un sistema Windows para que se comunique con el responder a través de uno de estos servicios o cuando se busca un nombre compartido UNC incorrecto en la LAN, el responder responderá a la solicitud, tomará el hash de nombre de usuario y contraseña y los registrará.
Ahora solo tendríamos que esperar a que alguna tarea programada del sistema acceda a un recurso compartido a nivel de red que no exista o no tenga acceso en ese momento, en entornos empresariales es muy frecuente que esto ocurra.
Este sería el escenario del ataque:
Yo lo hare de forma manual. Accedemos al recurso \SQLServer\probando-smb-relay el cual no existe.
En el Responder pillaremos el hash NTLMv2 del usuario que ha intentado conectarse al recurso compartido de la red, este hash no nos sirve para realizar PASS-THE-HASH pero si podremos intentar romperlo por fuerza bruta en local si la contraseña utilizada por el usuario es débil, esto si nos permitirá ganar acceso al sistema o seguir enumerándolo.
Con la herramienta John-The-Reaper realizamos el proceso de fuerza bruta.
Y de esta forma hemos realizado el ataque SMB-Relay, una vez obtenida la contraseña podríamos seguir enumerando el sistema y por ejemplo con CrackMapExec ver si este usuario tiene permisos de Administrador y poder dumpear la SAM del equipo para obtener los hashes NTLM que si nos permiten realizar Pass-The-Hash y conectarnos con cualquier cuenta sin necesidad de saber su contraseña.
¿Cómo protegerse ante SMB-Relay?
- Eliminar la primera versión de SMB: deshacerse de SMB1 y reemplazarlo con SMB 3.0 o superior.
- Firmar el SMB en todos los equipos del Directorio Activo, tanto IPv4 como IPv6.
- Un cortafuegos con control avanzado: garantizar que no apunte a un servidor controlado por piratas informáticos.
- **Implementar el endurecimiento de UNC:** En 2015, Microsoft introdujo UNC Hardening en comunicaciones SMB para reforzar la seguridad. Lo que hace UMC es ‘obligar’ a SMB a usar seguridad definida por el cliente en lugar de depender de los requisitos del servidor.