几种 dump hash 方式对比分析

在 Windows 渗透测试与红队作战中,凭证提取(Credential Dumping) 是横向移动、提权和持久化的核心环节。其中最常被操作的就是各种形式的 hash dump(主要是 NTLM NT-hash,有时还包括 LM-hash、Kerberos tickets 等)。本文将系统性地整理目前主流的几种 dump hash 方式。

主要 Dump Hash 的数据来源对比

来源 存储位置 可获取内容 是否需要用户在线登录 是否包含 Kerberos Ticket 典型场景 检测难度(2025-2026 视角)
SAM HKLM\SAM 注册表 本地用户 NT/LM hash 本地提权、持久化 低-中
LSA Secrets HKLM\SECURITY 注册表 服务账号明文、DPAPI key、部分明文密码 服务账号复用
Cached Domain Credentials (DCC/DCC2) 注册表 + MSCache 结构 域用户缓存的 NT hash(限最后 N 次登录) 非域控工作站
LSASS 进程内存 lsass.exe 内存空间 当前登录用户 NT hash、明文(旧版)、Kerberos tickets、WDigest 等 实时抓现成域管/高价值账号 高(EDR 重点防护)
NTDS.dit 域控 %SystemRoot%\NTDS 域内所有用户 NT hash 域渗透终极目标 高(需域控权限)

1. 通过注册表远程/本地提取(Impacket secretsdump 家族)

代表工具impacket-secretsdump.py(最常用)、CrackMapExec 的 --sam / --lsa、SharpSecDump 等

数据来源 :SAM + SECURITY + SYSTEM 注册表 hive
典型命令(远程):

bash 复制代码
secretsdump.py -just-dc-user Administrator -just-dc DOMAIN/USER@dc-ip
secretsdump.py DOMAIN/USER@target -hashes :ntlmhash   # PTH 方式
secretsdump.py -k DOMAIN/USER@target                   # PTT 方式

能拿到的内容

  • 本地 SAM 账号 hash(Administrator:500:aad3b435...)
  • LSA Secrets(服务账号明文、机器账号密码$)
  • Domain Cached Credentials(DCC2,MSCache v2/v1)
  • bootKey / SysKey(解密必须的系统密钥)

优点

  • 不需要 dump 内存,行为相对隐蔽
  • 可离线分析(先 reg save 导出 hive 再本地解析)
  • 能稳定拿到本地所有账号 + 曾经登录过的域账号缓存

缺点

  • 无法拿到当前活跃但未缓存的域用户凭证
  • 无法拿到 Kerberos tickets

检测特征(现代 EDR):

  • svchost.exe / services.exe 创建大量 .tmp 文件在 %System32%
  • RemoteRegistry 服务被异常启动
  • 大量注册表 SAVE 操作

2. LSASS 内存提取(最经典、最危险的一类)

代表工具

  • lsassy(远程首选,高度自动化)
  • Mimikatz(sekurlsa::logonpasswords / lsadump::sam / dcsync)
  • nanodump / dumpert / mirrordump(绕过 PPL / EDR 签名)
  • comsvcs.dll MiniDump(LOLBins 方式)
  • ProcDump / TaskMgr / Process Explorer(滥用微软签名工具)

典型 lsassy 远程用法(2025-2026 仍活跃):

bash 复制代码
lsassy -d DOMAIN -u USER -p PASSWORD -t 目标IP --kdcHost dc-ip
# 或结合 crackmapexec
crackmapexec smb target -u user -p pass -M lsassy

能拿到的内容

  • 当前登录用户的 NT hash / 明文(如果 WDigest 启用或旧系统)
  • Kerberos tickets(TGT / TGS,.kirbi 格式)
  • 有时还能拿到 PIN / DPAPI masterkey 等

优点

  • 能抓到实时在线的高价值账号(域管刚登录过就能偷)
  • 直接导出可用于 Pass-the-Ticket(黄金票据/白银票据/Over-Pass-the-Hash)
  • 结合 pypykatz 解析能力极强

缺点

  • 内存 dump 行为是 EDR/AV 重点监控对象(2025 年后大部分商用 EDR 都能在默认配置下拦截常见方法)
  • 需要较高权限(通常 SeDebugPrivilege)

常见绕过/变种方式(2025-2026 仍在演进):

  • 使用 comsvcs.dll::MiniDump(无需上传文件)
  • 句柄劫持 + 权限提升
  • PPL 绕过(Protected Process Light,如 lsass.exe 的保护)
  • 驱动级 dump(非常危险,容易蓝屏或被直接杀)

3. 域控 NTDS.dit 提取(终极 hash 库)

代表工具

  • ntdsutil ifm(微软原生)
  • impacket secretsdump -just-dc
  • ntdsxtract / DSInternals
  • Shadow copy + vssadmin / diskshadow

典型流程

  1. 在域控上创建 shadow copy
  2. 拷贝 ntds.dit + SYSTEM hive
  3. secretsdump.py LOCAL -system SYSTEM -ntds ntds.dit

优点:一次 dump 得到全域 hash(包含所有用户、计算机账号$)

缺点

  • 必须拿到域控权限或卷影复制权限
  • 文件体积大,传输慢,容易被监控

快速决策表(实战选择指南)

你当前的目标 推荐首选工具 次选 / 备选 预期隐蔽性 能拿 ticket?
本地提权 + 拿本地管理员 hash secretsdump pwdump / samdump2 ★★★★☆
抓曾经登录过的域用户(缓存) secretsdump cachedump / pypykatz ★★★★☆
抓当前在线域管 / 高价值账号 lsassy / nanodump Mimikatz / comsvcs MiniDump ★★☆☆☆
需要 Kerberos ticket 做 PtT / 票据传递 lsassy Mimikatz sekurlsa::tickets ★★☆☆☆
已控域控,想拿全域 hash secretsdump -just-dc ntdsutil ifm + vss ★★★☆☆

总结一句话建议

  • 想稳、想快、想低调 → 先 secretsdump 走注册表路线,基本覆盖 70% 场景
  • 想抓现成高价值账号 / 票据 → lsassy + 各种内存 dump 变种(做好被 EDR 打断的心理准备)
  • 已经到域控 → 直接上 NTDS.dit,一劳永逸
相关推荐
2401_8414956422 分钟前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
budingxiaomoli22 分钟前
优选算法-字符串
算法
qq74223498441 分钟前
APS系统与OR-Tools完全指南:智能排产与优化算法实战解析
人工智能·算法·工业·aps·排程
A尘埃1 小时前
超市购物篮关联分析与货架优化(Apriori算法)
算法
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
不穿格子的程序员1 小时前
从零开始刷算法——贪心篇1:跳跃游戏1 + 跳跃游戏2
算法·游戏·贪心
大江东去浪淘尽千古风流人物1 小时前
【SLAM新范式】几何主导=》几何+学习+语义+高效表示的融合
深度学习·算法·slam
重生之我是Java开发战士2 小时前
【优选算法】模拟算法:替换所有的问号,提莫攻击,N字形变换,外观数列,数青蛙
算法
仟濹2 小时前
算法打卡 day1 (2026-02-06 周四) | 算法: DFS | 1_卡码网98 可达路径 | 2_力扣797_所有可能的路径
算法·leetcode·深度优先
yang)2 小时前
欠采样时的相位倒置问题
算法