【mimikatz+procdump】内网渗透实战:离线读取lsass.exe内存密码的高级技巧

张开发
2026/4/21 9:31:52 15 分钟阅读

分享文章

【mimikatz+procdump】内网渗透实战:离线读取lsass.exe内存密码的高级技巧
1. 为什么需要离线读取lsass.exe内存密码在内网渗透测试中获取系统凭证是最关键的环节之一。Windows系统自Windows 8/Server 2012开始微软默认禁用了WDigest凭据缓存导致传统的mimikatz直接抓取明文密码的方法失效。这时候就需要采用离线内存读取这种进阶技术。我遇到过很多次这样的情况目标服务器安装了杀毒软件直接上传mimikatz会被立即拦截。或者目标系统版本较新直接运行sekurlsa::logonpasswords只能看到哈希值而无法获取明文密码。这时候就需要用到procdump这个微软官方工具来绕过限制。lsass.exe进程就像Windows系统的密码保险箱它负责管理所有登录会话的安全信息。当我们输入密码登录时系统会通过可逆算法将密码加密后存储在lsass内存中。虽然新版Windows做了安全加固但这些加密后的数据仍然存在于内存里只是读取方式需要更迂回。2. 工具准备与环境搭建2.1 mimikatz的获取与基本使用mimikatz的最新版始终可以在其官方GitHub仓库找到。我习惯用这个命令快速下载git clone https://github.com/gentilkiwi/mimikatz.git使用时需要注意几个关键点必须以管理员身份运行cmd否则无法调试系统进程首次运行要先执行privilege::debug获取调试权限在Win10/Server2016系统上直接运行sekurlsa::logonpasswords可能只能看到哈希值2.2 procdump的特殊价值procdump是微软Sysinternals工具集的一员最大的优势是微软签名工具不会被杀软拦截轻量级仅1MB左右方便上传到目标机器支持命令行操作适合自动化渗透下载最新版procdump的命令curl -o procdump.exe https://download.sysinternals.com/files/Procdump.zip3. 实战操作步骤详解3.1 生成lsass内存转储文件在目标机器上执行这个命令序列procdump.exe -accepteula -ma lsass.exe lsass.dmp这里有几个实用技巧-accepteula参数可以跳过许可协议弹窗-ma表示生成完整内存转储建议将输出文件放在临时目录如C:\Windows\Temp\我遇到过转储失败的情况通常是因为没有管理员权限解决方法先提权lsass进程被保护解决方法尝试在凌晨系统负载低时操作磁盘空间不足解决方法清理临时文件3.2 离线解析内存文件将获取的lsass.dmp文件下载到本地后用mimikatz这样解析sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords full最近一次测试中我在Windows Server 2019上通过这种方法成功获取了域管理员明文密码RDP连接保存的凭据服务账户的NTLM哈希4. 防御与检测规避技巧4.1 绕过杀软监控现代EDR产品通常会监控lsass进程的访问行为。我总结的有效规避方法包括使用procdump的-r参数创建远程转储修改文件时间戳使其看起来像系统文件将dmp文件分割压缩后传输4.2 清除痕迹要点操作完成后务必删除目标机器上的procdump.exe和dmp文件使用del /f /q命令而非简单删除清理Windows事件日志中的相关记录5. 实际案例与经验分享去年的一次红队评估中目标网络有如下防护终端安装Carbon Black网络层有TLS解密检测所有服务器启用Credential Guard我们最终采用的攻击链是通过已控的跳板机上传procdump在凌晨3点执行内存转储将dmp文件伪装成IIS日志传出在本地分析获取域管凭证这个案例说明即使在高安全环境下离线内存读取仍然是有效的横向移动手段。关键是要掌握好时机和隐蔽传输方法。6. 防护建议对于蓝队成员我建议重点关注监控lsass进程的异常内存读取限制procdump等调试工具的执行启用Windows Defender攻击面减少规则定期检查系统异常dmp文件企业可以部署LSA保护策略通过组策略设置计算机配置 管理模板 系统 本地安全机构 运行PPL保护LSASS这种配置会使得即使获取了管理员权限也无法读取lsass内存内容从根本上防御此类攻击。

更多文章