前言:
本篇和上一篇同属于第二部分
0x01 原理简述
宏观类比:凭证窃取如同在攻陷的敌方哨所中,翻找守卫遗落的“钥匙串”。因为企业内网往往存在严重的密码复用或域管理员巡检残留,拿到这串钥匙,即可无需爆破、直接开启内网深处其他大门。
技术定义:在获取跳板机最高权限(SYSTEM 或高权限 Administrator)后,通过读取 Windows 本地安全认证子系统服务(LSASS.exe)的内存空间,或导出安全账户管理器(SAM)注册表文件,提取出用户的明文密码、NTLM Hash 或 Kerberos 票据。
0x02 核心工具准备与使用规范
在断网比赛前,必须提前准备好以下凭证窃取与解析工具。
内存提取神器:Mimikatz (放到靶机Windows 平台执行)
法国黑客编写的极度危险工具,直接读取并解析 Windows 内存凭据。实战中极易被杀软查杀。
获取与准备 (在 Ubuntu 攻击机执行):
1 | mkdir -p ~/ISW_Workspace/Tools/Lateral/Mimikatz && cd ~/ISW_Workspace/Tools/Lateral/Mimikatz |
免杀内存转储工具:Procdump (Windows 平台执行)
微软 Sysinternals 官方系统运维工具。带有微软官方数字签名,用于合法导出进程内存。实战中完美绕过绝大多数杀软的内存读取拦截。
获取与准备 (在 Ubuntu 攻击机执行):
1 | mkdir -p ~/ISW_Workspace/Tools/Lateral/Procdump && cd ~/ISW_Workspace/Tools/Lateral/Procdump |
离线哈希解析库:Impacket (Ubuntu 平台执行)
基于 Python 的网络协议工具包,其中的 secretsdump.py 用于在攻击机本地离线解析提取回来的 SAM 文件或 NTDS.dit 文件。
获取与准备:
1 | # Ubuntu 通常自带或可通过 pip 安装 |
0x03 在线抓取标准流:Mimikatz (无杀软环境)
当目标跳板机未部署杀软,或你已成功关闭 Defender 时,直接上传 Mimikatz 执行。
前提条件:当前 Shell 会话必须是 Administrator 或 SYSTEM,且具备 SeDebugPrivilege 调试特权。
交互式 Shell 执行规范:
将 mimikatz.exe 上传至靶机 C:\Windows\Temp\ 后,执行以下指令串:
1 | C:\Windows\Temp\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > C:\Windows\Temp\mimi.txt |
技术解析:
privilege::debug:向系统申请内存调试特权(必须为20 OK才算成功)。sekurlsa::logonpasswords:遍历 LSASS 内存,列出所有已登录会话的凭据。> mimi.txt:将大量终端输出重定向至文本文件,防止在反弹 Shell 中因输出过多导致进程崩溃或假死。
输出研判:读取
mimi.txt,重点检索Username(用户名)、Domain(域名/机器名)、Password(明文密码,可能为 null) 以及NTLM(NTLM Hash 字符串)。
0x04 离线免杀抓取标准流:Procdump + 本地解析 (实战首选)
当目标机器存在杀软(直接秒杀 mimikatz.exe)时,严禁上传 Mimikatz。必须采用“白利用”手法,先用微软合法工具将内存拉回攻击机,再行解析。
Step 1: 靶机端导出 LSASS 内存 (白利用)
将 procdump64.exe 上传至靶机可写目录,利用 SYSTEM 权限强制导出 lsass.exe 进程的完整内存文件。
1 | C:\Windows\Temp\procdump64.exe -accepteula -ma lsass.exe C:\Windows\Temp\lsass.dmp |
- 技术解析:
-accepteula自动接受最终用户许可协议(防止弹窗阻塞进程);-ma写入完整的 Dump 文件。
Step 2: 攻击机端回传 Dump 文件
利用靶机上已建立的 WebShell 或反向隧道,将体积庞大(通常 40MB - 100MB)的 lsass.dmp 下载回 Ubuntu 或你本地的 Windows 物理机。
Step 3: 攻击机端离线解析 (Local Mimikatz)
在你自己安全可控的 Windows 环境(或通过 Wine 运行于 Ubuntu)中,打开本地的 Mimikatz,加载刚才拖回来的 lsass.dmp 文件。
1 | mimikatz.exe |
- 技术解析:
sekurlsa::minidump切换 Mimikatz 的读取目标,使其不再读取当前主机的物理内存,而是读取指定的离线内存快照文件。
0x05 注册表离线提取 (SAM Hash 导出)
若跳板机处于工作组环境,且无域账号登录缓存,直接提取本地安全账户管理器 (SAM) 中的 NTLM Hash。
Step 1: 靶机端导出注册表 Hive
依靠 SYSTEM 权限,绕过文件读写锁死,强行备份两个核心配置块:
1 | reg save HKLM\sam C:\Windows\Temp\sam.save |
Step 2: 攻击机端离线解析 (Impacket)
将 sam.save 与 system.save 拖回 Ubuntu,使用 Impacket 解析提取:
1 | impacket-secretsdump -sam sam.save -system system.save LOCAL |
0x06 本阶段可获得:
执行完本笔记操作后,你必须获取并记录以下核心资产,这是进入第四阶段“横向击杀”的唯一凭证:
域管理员明文密码 (例如:
Admin@ISW.local:P@ssw0rd123)域管理员 NTLM Hash (例如:
Administrator:aad3b435b51404eeaad3b435b51404ee:88e4d9faba26515...)本地高权限用户 NTLM Hash (用于工作组环境下的密码复用喷洒攻击)
- 本文链接: http://example.com/2026/03/21/ISW/内网渗透与横向移动/内网横向3_凭证窃取与密码抓取/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
欢迎关注我的其它发布渠道