
Tu compañero MitM para ataques de retransmisión con toma de control de DNS mediante DHCPv6, así como spoofing de mDNS, LLMNR y NetBIOS-NS.
Tu compañero MitM para ataques de retransmisión que incluye toma de control de DNS por DHCPv6, así como suplantación de mDNS, LLMNR y NetBIOS-NS
pretender es una herramienta desarrollada por RedTeam Pentesting para obtener posiciones de intermediario (MitM) mediante resolución de nombres local suplantada y ataques de toma de control de DNS por DHCPv6. pretender apunta principalmente a hosts Windows, ya que está diseñado para ser usado en ataques de retransmisión, pero se puede desplegar en Linux, Windows y todas las demás plataformas que Go soporta. Las consultas de resolución de nombres pueden responderse con IPs arbitrarias para situaciones en las que la herramienta de retransmisión se ejecuta en un host diferente a pretender. Está diseñado para trabajar con herramientas como Impacket's ntlmrelayx.py y krbrelayx que manejan las conexiones entrantes para ataques de retransmisión o volcado de hashes.
Lea nuestra entrada de blog para obtener más información sobre la toma de control de DNS por DHCPv6, la suplantación de resolución de nombres local y los ataques de retransmisión.
Para hacerse una idea de la situación en la red local, pretender se puede iniciar en modo --dry donde solo registra las consultas entrantes y no responde ninguna:
pretender -i eth0 --dry
pretender -i eth0 --dry --no-ra # sin anuncios de router (RA)
pretender -i eth0 --dry --no-ra-dns # con RA pero sin anunciar DNS en RA
Para realizar suplantación de resolución de nombres local a través de mDNS, LLMNR y NetBIOS-NS, así como una toma de control de DNS por DHCPv6 con anuncios de router, simplemente ejecute pretender de la siguiente manera:
pretender -i eth0
Puede deshabilitar ciertos ataques con --no-dhcp-dns (deshabilita DHCPv6, DNS y anuncios de router), --no-lnr (deshabilita mDNS, LLMNR y NetBIOS-NS), --no-mdns, --no-llmnr, --no-netbios y --no-ra.
Si ntlmrelayx.py se ejecuta en un host diferente (por ejemplo, 10.0.0.10/fe80::5), ejecute pretender de la siguiente manera:
pretender -i eth0 -4 "10.0.0.10" -6 "fe80::5"
Pretender se puede configurar para responder solo a consultas de ciertos dominios (o todos excepto ciertos dominios) y puede realizar los ataques de suplantación solo para ciertos hosts (o todos excepto ciertos hosts). Hacer referencia a hosts por nombre de host depende de la resolución de nombres del host que ejecuta pretender. Vea el siguiente ejemplo:
pretender -i eth0 --spoof "example.com" --dont-spoof-for "10.0.0.3,host1.corp,fe80::f" --ignore-nofqdn
Para más información, ejecute pretender --help.
--spoof/--dont-spoof/--spoof-for/--dont-spoof-for admiten comodines. Mientras que domain.fqdn solo realiza coincidencia literal, .domain.fqdn coincidirá con domain.fqdn y sub.domain.fqdn. De manera similar, *domain.fqdn coincide con mydomain.fqdn. Use *.domain.fqdn para coincidir solo con subdominios. Tenga en cuenta que los comodines de subdominio (punto inicial) y los comodines arbitrarios (*) no se pueden usar juntos.ntlmrelayx.py con la bandera -6.--stateless-ra. Por defecto, el servidor DHCPv6 aún se inicia, pero se puede deshabilitar usando --no-dhcp.Pretender se puede construir de la siguiente manera:
go build
Pretender también se puede compilar con ajustes preconfigurados. Para ello, se deben modificar los ldflags de la siguiente manera:
-ldflags '-X main.vendorInterface=eth1'
Por ejemplo, Pretender se puede construir para Windows con una interfaz predeterminada específica, sin salida coloreada y con una dirección IPv4 de retransmisión configurada:
GOOS=windows go build -trimpath -ldflags '-X "main.vendorInterface=Ethernet 2" -X main.vendorNoColor=true -X main.vendorRelayIPv4=10.0.0.10'
Lista completa de opciones de personalización (consulte defaults.go o pretender --help para obtener información detallada):
vendorInterface
vendorRelayIPv4
vendorRelayIPv6
vendorSOAHostname
vendorSpoofResponseName
vendorNoDHCPv6DNSTakeover
vendorNoDHCPv6
vendorNoDNS
vendorNoMDNS
vendorNoNetBIOS
vendorNoLLMNR
vendorNoLocalNameResolution
vendorNoIPv6LNR
vendorNoRA
vendorNoRADNS
vendorSpoof
vendorDontSpoof
vendorSpoofFor
vendorDontSpoofFor
vendorSpoofTypes
vendorSpoofSRV
vendorIgnoreDHCPv6NoFQDN
vendorIgnoreNonMicrosoftDHCP
vendorDelegateIgnoredTo
vendorToggleNameResolutionSpoofing
vendorDontSendEmptyReplies
vendorDryMode
vendorDryWithDHCPMode
vendorStatelessRA
vendorTTL
vendorLeaseLifetime
vendorRARouterLifetime
vendorRAPeriod
vendorDNSTimeout
vendorStopAfter
vendorVerbose
vendorNoColor
vendorNoTimestamps
vendorLogFileName
vendorNoHostInfo
vendorHideIgnored
vendorRedirectStderr
vendorListInterfaces
--dont-spoof/--dont-spoof-for están presentes y no se ha configurado un servidor DNS ascendente con --delegate-ignored-to, los anuncios de router no anunciarán directamente el servidor DNS, lo que hace que el ataque sea menos efectivo.--stop-after y main.vendorStopAfter).--no-host-info o main.vendorNoHostInfo.--interfaces.--no-ipv6-lnr/main.vendorNoIPv6LNR.--spoof-for/--dont-spoof-for). Puede decidir qué hacer con los mensajes DHCPv6 sin opción FQDN configurando u omitiendo --ignore-nofqdn.CGO_ENABLED=1) o una implementación Go (CGO_ENABLED=0). Esto puede ser importante para la recopilación de información de hosts porque el resolvedor del sistema operativo puede soportar la resolución de nombres local y la implementación Go no, a menos que se use un resolvedor stub..hostinfo/mac-vendors.txt. Solo se reconocen líneas con prefijos MAC en el siguiente formato: FF:FF:FF<tab>VendorID<tab>Vendor (la longitud del prefijo MAC puede ser arbitraria).--no-lnr y --spoof-types SOA para ignorar cualquier consulta no relacionada con el ataque.krbrelayx.py se ejecuta en un host diferente a pretender (la dirección IPv4 de retransmisión apunta a un host diferente que ejecuta krbrelayx.py), el host que ejecuta krbrelayx.py también necesitará ejecutar pretender para recibir y denegar la consulta de actualización dinámica enviada a la dirección IPv4 de retransmisión.--delegate-ignored-to <servidor DNS> para delegar consultas ignoradas a un servidor DNS legítimo.--dry-with-dhcp se puede combinar con --delegate-ignored-to para monitorear las consultas de resolución de nombres en la red sin interrupciones.--ignore-non-microsoft-dhcp. Esto es posible porque el cliente DHCP de Windows incluye el número de empresa 311 de Microsoft en la opción de proveedor DHCP.--toggle, la suplantación de resolución de nombres (DNS, mDNS, LLMNR, NetBIOS) se puede habilitar y deshabilitar dinámicamente en tiempo de ejecución. Esto es especialmente potente con --delegate-ignored-to para iniciar y detener ataques sin detener el servidor DHCP. Esto se puede usar como solución alternativa cuando el cliente DHCP de Windows deja de asignar direcciones después de no poder alcanzar el servidor DHCP durante algún tiempo.