在内网中拿下DC的五种常用方法
字数 1422 2025-08-27 12:33:48

内网中拿下域控制器的五种常用方法

前言

本文总结了在内网渗透测试中获取域控制器(Domain Controller, DC)权限的五种常用技术手段,这些方法在实际渗透测试和红队行动中已被证明有效。

1. Netbios和LLMNR名称中毒

基本原理

  • Netbios/LLMNR协议在名称解析时存在缺陷,可被用于中间人攻击
  • 攻击者可以伪造响应,诱使客户端向攻击者发送NTLM认证信息

常用工具

  1. Responder

    • 由Laurent Gaffie维护
    • 监听并响应LLMNR/mDNS/NBNS请求
    • 抓取NTLMv1/NTLMv2身份验证数据包
  2. Inveigh

    • 基于Unix/Linux的Python版本Responder
    • 可在原生Windows上运行
    • 核心是.NET数据包嗅探器

破解方法

  • 使用hate_crack等高级框架进行暴力破解
  • 常用字典:uniqpass
  • 常用hashcat规则集:best64
  • 注意:复杂密码可能难以破解

2. 重放攻击

SMB重放攻击

工具:smbrelayx.py (Impacket工具集)

  • 接收目标列表,对每个连接尝试重放凭证
  • 可设置本地SMB服务器功能,伪造共享文件
  • 防御方法:强制服务器进行SPN检查或检查签名

NTLM重放攻击

工具:ntlmrelayx.py

  • 利用NTLM challenge-response协议的弱点
  • 攻击流程:
    1. 客户端发送用户信息请求
    2. 服务器生成Challenge并发送给客户端
    3. 客户端用NTLM Hash加密Challenge生成Response
    4. 服务器验证Response

利用技巧

  • 创建非SMB签名主机的目标列表
  • 优先攻击SQL服务器(常与DC共享本地管理员密码)
  • 默认会运行secretsdumps,生成IP_samhashes文件
  • 成功后可用wmiexec.py进行pass-the-hash攻击

3. MS17-010 (永恒之蓝)

检测方法

nmap -Pn -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010 <ip_netblock>

特点

  • 内网环境下容易利用
  • 通过445端口攻击
  • 具体利用效果取决于目标环境

4. Kerberoasting

攻击原理

  • 利用老版Windows客户端的Active Directory支持
  • 攻击服务账户的Kerberos票据
  • 当域账户配置为运行服务(如MSSQL)时,使用SPN将服务与登录账户关联

攻击步骤

  1. 获取服务票据
  2. 离线破解服务账户的密码

示例工具

./GetUserSPNs.py -dc-ip 192.168.168.10 sittingduck.info/notanadmin

5. mitm6攻击

基本原理

  • 利用Windows默认配置接管默认DNS服务器
  • 通过响应DHCPv6消息,为受害者提供链路本地IPv6地址
  • 将攻击者主机设置为默认DNS服务器

组合攻击

  • 通常与ntlmrelayx配合使用
  • 欺骗DNS服务器,使受害者连接到ntlmrelayx
  • 进行HTTP和SMB连接

使用参数

  • -6:使ntlmrelayx在IPv4和IPv6上监听
  • -wh HOSTNAME:指定要欺骗的WPAD主机名
  • -wa N:尝试提示WPAD文件本身认证(针对未打MS16-077补丁的系统)

防御建议

  1. 禁用Netbios和LLMNR协议
  2. 强制SMB签名
  3. 及时安装MS17-010等关键补丁
  4. 加强服务账户密码复杂度
  5. 更新WPAD相关补丁(MS16-077)
  6. 监控异常DNS和DHCPv6活动

参考资源

  1. Responder GitHub
  2. Inveigh GitHub
  3. Impacket工具集
  4. mitm6 GitHub
  5. Kerberoast技术详解
内网中拿下域控制器的五种常用方法 前言 本文总结了在内网渗透测试中获取域控制器(Domain Controller, DC)权限的五种常用技术手段,这些方法在实际渗透测试和红队行动中已被证明有效。 1. Netbios和LLMNR名称中毒 基本原理 Netbios/LLMNR协议在名称解析时存在缺陷,可被用于中间人攻击 攻击者可以伪造响应,诱使客户端向攻击者发送NTLM认证信息 常用工具 Responder 由Laurent Gaffie维护 监听并响应LLMNR/mDNS/NBNS请求 抓取NTLMv1/NTLMv2身份验证数据包 Inveigh 基于Unix/Linux的Python版本Responder 可在原生Windows上运行 核心是.NET数据包嗅探器 破解方法 使用hate_ crack等高级框架进行暴力破解 常用字典:uniqpass 常用hashcat规则集:best64 注意:复杂密码可能难以破解 2. 重放攻击 SMB重放攻击 工具 :smbrelayx.py (Impacket工具集) 接收目标列表,对每个连接尝试重放凭证 可设置本地SMB服务器功能,伪造共享文件 防御方法:强制服务器进行SPN检查或检查签名 NTLM重放攻击 工具 :ntlmrelayx.py 利用NTLM challenge-response协议的弱点 攻击流程: 客户端发送用户信息请求 服务器生成Challenge并发送给客户端 客户端用NTLM Hash加密Challenge生成Response 服务器验证Response 利用技巧 : 创建非SMB签名主机的目标列表 优先攻击SQL服务器(常与DC共享本地管理员密码) 默认会运行secretsdumps,生成IP_ samhashes文件 成功后可用wmiexec.py进行pass-the-hash攻击 3. MS17-010 (永恒之蓝) 检测方法 特点 内网环境下容易利用 通过445端口攻击 具体利用效果取决于目标环境 4. Kerberoasting 攻击原理 利用老版Windows客户端的Active Directory支持 攻击服务账户的Kerberos票据 当域账户配置为运行服务(如MSSQL)时,使用SPN将服务与登录账户关联 攻击步骤 获取服务票据 离线破解服务账户的密码 示例工具 5. mitm6攻击 基本原理 利用Windows默认配置接管默认DNS服务器 通过响应DHCPv6消息,为受害者提供链路本地IPv6地址 将攻击者主机设置为默认DNS服务器 组合攻击 通常与ntlmrelayx配合使用 欺骗DNS服务器,使受害者连接到ntlmrelayx 进行HTTP和SMB连接 使用参数 -6 :使ntlmrelayx在IPv4和IPv6上监听 -wh HOSTNAME :指定要欺骗的WPAD主机名 -wa N :尝试提示WPAD文件本身认证(针对未打MS16-077补丁的系统) 防御建议 禁用Netbios和LLMNR协议 强制SMB签名 及时安装MS17-010等关键补丁 加强服务账户密码复杂度 更新WPAD相关补丁(MS16-077) 监控异常DNS和DHCPv6活动 参考资源 Responder GitHub Inveigh GitHub Impacket工具集 mitm6 GitHub Kerberoast技术详解