悠悠楠杉
内网渗透中的哈希传递攻击(Pass-the-Hash):绕过认证的隐秘武器
一、什么是哈希传递攻击?
在Windows域环境中,当用户输入密码登录系统时,系统并不会直接存储或传输明文密码,而是将其转换为NTLM或Kerberos哈希值进行身份验证。哈希传递攻击(Pass-the-Hash, PtH)的核心思路是:攻击者无需破解哈希获取明文密码,直接使用捕获的哈希值模拟用户身份,从而绕过常规认证流程。
技术原理
- 哈希的不可逆性:NTLM哈希无法通过算法还原为明文密码,但系统验证时仅比对哈希值。
- 认证机制缺陷:Windows的LM/NTLM协议允许客户端直接提交哈希值完成认证,无需提供明文密码。
- 横向移动便利性:在内网中,同一哈希可能被重复用于多台主机(如共享本地管理员密码)。
二、攻击场景与实战手法
典型攻击路径
初始立足点
通过钓鱼攻击、漏洞利用(如MS17-010)或弱口令爆破获取第一台主机的本地管理员权限,导出内存中的哈希(如使用Mimikatz抓取LSASS进程)。哈希提取
bash mimikatz.exe "sekurlsa::logonpasswords" "exit"
获取的NTLM哈希形如:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
横向渗透
使用工具(如Impacket的psexec.py)传递哈希访问其他主机:
bash python psexec.py -hashes :32ed87bdb5fdc5e9cba88547376818d4 administrator@192.168.1.100
绕过限制的技巧
- 受限管理员模式:针对Windows 8.1/2012 R2以上系统,需启用
RestrictedAdmin
注册表项或使用RDP哈希传递。 - NTLMv2限制:部分环境禁用NTLMv1时,需确保捕获的哈希兼容目标系统协议版本。
三、防御策略与检测手段
企业级防护建议
禁用NTLM认证
优先使用Kerberos协议,并通过组策略禁用NTLM(设置Network Security: Restrict NTLM
策略)。启用Credential Guard
Windows 10/Server 2016以上版本可通过虚拟化技术隔离LSASS进程,防止哈希被盗。最小权限原则
避免域账户拥有本地管理员权限,限制横向移动的可能性。
攻击检测方法
- 日志监控:分析Event ID 4624(登录事件)中的
Logon Type
字段,异常哈希登录通常显示为Logon Type 3
(网络登录)。 - 网络流量分析:检测SMB/RDP协议中异常的NTLM认证请求。
四、渗透测试中的伦理边界
尽管PtH技术高效,但渗透测试中需严格遵守授权范围:
1. 获取书面授权后再进行哈希提取或传递测试。
2. 避免对生产环境造成稳定性影响(如频繁登录触发账户锁定)。
3. 测试后彻底清理残留会话与后门。
结语
哈希传递攻击揭示了依赖单一认证机制的潜在风险。防御者需采用纵深防御策略,而攻击者则需持续适应安全升级——这场围绕身份验证的攻防博弈,正是内网安全永恒的课题。