
Il tuo compagno MitM per attacchi di relay con funzionalità di takeover DNS DHCPv6 e spoofing di mDNS, LLMNR e NetBIOS-NS.
Il tuo compagno MitM per attacchi di relay con DHCPv6 DNS takeover e spoofing di mDNS, LLMNR e NetBIOS-NS
pretender è uno strumento sviluppato da RedTeam Pentesting per ottenere posizioni di intermediazione (machine-in-the-middle) tramite spoofing della risoluzione dei nomi locale e attacchi DHCPv6 DNS takeover. pretender si rivolge principalmente a host Windows, poiché è pensato per essere utilizzato per attacchi di relay, ma può essere installato su Linux, Windows e tutte le altre piattaforme supportate da Go. Le query di risoluzione dei nomi possono essere risposte con IP arbitrari per situazioni in cui lo strumento di relay viene eseguito su un host diverso da pretender. È progettato per funzionare con strumenti come Impacket's ntlmrelayx.py e krbrelayx che gestiscono le connessioni in arrivo per attacchi di relay o dump di hash.
Leggi il nostro post sul blog per maggiori informazioni su DHCPv6 DNS takeover, spoofing della risoluzione dei nomi locale e attacchi di relay.
Per avere un'idea della situazione nella rete locale, pretender può essere avviato in modalità --dry in cui registra solo le query in arrivo senza rispondere a nessuna:
pretender -i eth0 --dry
pretender -i eth0 --dry --no-ra # senza annunci di router (RA)
pretender -i eth0 --dry --no-ra-dns # con RA ma senza pubblicizzare il DNS nei RA
Per eseguire lo spoofing della risoluzione dei nomi locale tramite mDNS, LLMNR e NetBIOS-NS e un DHCPv6 DNS takeover con annunci di router, basta eseguire pretender in questo modo:
pretender -i eth0
È possibile disabilitare alcuni attacchi con --no-dhcp-dns (disabilita DHCPv6, DNS e annunci di router), --no-lnr (disabilita mDNS, LLMNR e NetBIOS-NS), --no-mdns, --no-llmnr, --no-netbios e --no-ra.
Se ntlmrelayx.py viene eseguito su un host diverso (ad esempio 10.0.0.10/fe80::5), esegui pretender in questo modo:
pretender -i eth0 -4 "10.0.0.10" -6 "fe80::5"
Pretender può essere configurato per rispondere solo a query per determinati domini (o a tutti tranne alcuni) e può eseguire gli attacchi di spoofing solo per determinati host (o per tutti tranne alcuni). Il riferimento agli host tramite hostname si basa sulla risoluzione dei nomi dell'host che esegue pretender. Vedi il seguente esempio:
pretender -i eth0 --spoof "example.com" --dont-spoof-for "10.0.0.3,host1.corp,fe80::f" --ignore-nofqdn
Per maggiori informazioni, esegui pretender --help.
--spoof/--dont-spoof/--spoof-for/--dont-spoof-for supportano wildcard. Mentre domain.fqdn esegue solo corrispondenza letterale, .domain.fqdn corrisponderà a domain.fqdn e sub.domain.fqdn. Allo stesso modo, *domain.fqdn corrisponde a mydomain.fqdn. Usa *.domain.fqdn per corrispondere solo ai sottodomini. Nota che i wildcard per sottodomini (punto iniziale) e wildcard arbitrari (*) non possono essere usati insieme.ntlmrelayx.py con il flag -6.--stateless-ra. Di default, il server DHCPv6 viene comunque avviato ma può essere disabilitato usando --no-dhcp.Pretender può essere compilato come segue:
go build
Pretender può anche essere compilato con impostazioni preconfigurate. Per questo, i ldflags devono essere modificati in questo modo:
-ldflags '-X main.vendorInterface=eth1'
Ad esempio, Pretender può essere compilato per Windows con un'interfaccia predefinita specifica, senza output colorato e con un indirizzo IPv4 di relay configurato:
GOOS=windows go build -trimpath -ldflags '-X "main.vendorInterface=Ethernet 2" -X main.vendorNoColor=true -X main.vendorRelayIPv4=10.0.0.10'
Elenco completo delle opzioni di vendoring (vedi defaults.go o pretender --help per informazioni dettagliate):
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 e non è configurato un server DNS upstream con --delegate-ignored-to, gli annunci di router non pubblicizzeranno direttamente il server DNS, rendendo l'attacco meno efficace.--stop-after e main.vendorStopAfter).--no-host-info o main.vendorNoHostInfo--interfaces.--no-ipv6-lnr/main.vendorNoIPv6LNR.--spoof-for/--dont-spoof-for). Puoi decidere cosa fare con i messaggi DHCPv6 senza opzione FQDN impostando o omettendo --ignore-nofqdn.CGO_ENABLED=1) o un'implementazione Go (CGO_ENABLED=0). Questo può essere importante per la raccolta di informazioni sugli host perché il resolver del sistema operativo può supportare la risoluzione dei nomi locale mentre l'implementazione Go no, a meno che non venga utilizzato un resolver stub.hostinfo/mac-vendors.txt. Vengono riconosciute solo le righe con prefissi MAC nel seguente formato: FF:FF:FF<tab>VendorID<tab>Vendor (la lunghezza del prefisso MAC può essere arbitraria).--no-lnr e --spoof-types SOA per ignorare qualsiasi query non correlata all'attacco.krbrelayx.py viene eseguito su un host diverso da pretender (l'indirizzo IPv4 di relay punta a un host diverso che esegue krbrelayx.py), anche l'host che esegue krbrelayx.py dovrà eseguire pretender per ricevere e negare la query di aggiornamento dinamico inviata all'indirizzo IPv4 di relay.--delegate-ignored-to <server DNS> per delegare le query ignorate a un server DNS legittimo.--dry-with-dhcp può essere combinata con --delegate-ignored-to per monitorare le query di risoluzione dei nomi nella rete senza interruzioni.--ignore-non-microsoft-dhcp. Ciò è possibile perché il client DHCP di Windows include il numero enterprise 311 di Microsoft nell'opzione vendor DHCP.--toggle, lo spoofing della risoluzione dei nomi (DNS, mDNS, LLMNR, NetBIOS) può essere abilitato e disabilitato dinamicamente a runtime. Questo è particolarmente potente con --delegate-ignored-to per avviare e fermare gli attacchi senza fermare il server DHCP. Può essere utilizzato come soluzione alternativa quando il client DHCP di Windows smette di assegnare indirizzi dopo non essere riuscito a raggiungere il server DHCP per un po' di tempo.