几种 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,一劳永逸
相关推荐
weixin_446260851 分钟前
模型能力深度对决:GPT-4o、Claude 3.5和DeepSeek V系列模型的横向评测与未来趋势洞察
人工智能·算法·机器学习
想唱rap28 分钟前
应用层协议与序列化
linux·运维·服务器·网络·数据结构·c++·算法
重生之我是Java开发战士34 分钟前
【笔试强训】Week3:重排字符串,分组,DNA序列
算法
We་ct35 分钟前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·leetcode·typescript·动态规划
热心网友俣先生39 分钟前
2026年第二十三届五一数学建模竞赛B题四问参考答案+多算法对比
算法·数学建模
无敌昊哥战神40 分钟前
【LeetCode 37】解数独 (Sudoku Solver) —— 回溯法详解 (Python/C/C++)
c语言·c++·python·算法·leetcode
风筝在晴天搁浅1 小时前
LeetCode 162.寻找峰值
算法·leetcode
itzixiao1 小时前
L1-067 洛希极限(10分)[java][python]
java·开发语言·算法
jinyishu_1 小时前
链表经典OJ题
c语言·数据结构·算法·链表
葫三生1 小时前
三生原理文章被AtomGit‌开源社区收录的意义探析?
人工智能·深度学习·神经网络·算法·搜索引擎·开源·transformer