1. 项目概述:域内密码提取的核心价值与挑战
在域渗透的实战中,获取有效的用户凭据往往是突破内网、横向移动乃至最终控制整个域环境的关键一步。这就像拿到了一把能打开多扇门的万能钥匙。而密码抓取,正是锻造这把钥匙的核心工艺。我们常说的“密码抓取”远不止于在单台机器上运行一个Mimikatz那么简单,尤其是在一个拥有严密防护和复杂架构的域环境中。它是一套系统性的技术组合,目标直指存储着用户密码哈希或明文凭据的核心数据源。
这些核心数据源主要分为两大类:本地密码存储和域级密码存储。本地存储以SAM文件为代表,它存在于每一台Windows计算机上,保存着该台机器本地账户的密码哈希。而域级存储的“圣杯”无疑是NTDS.dit文件,它位于域控制器上,是整个Active Directory域中所有用户、计算机账户凭据的中央数据库。从这两个文件中提取哈希,是后续进行哈希传递、票据传递或破解还原的基础。
然而,直接读取这些文件并非易事。操作系统,尤其是域控制器,会对这些关键文件施加严格的访问锁和保护机制。因此,“提取方法”本质上是一系列绕过或利用系统机制,在特定权限和场景下获取这些文件副本或直接读取其内容的技术。不同的方法适用于不同的渗透阶段、不同的权限水平以及不同的目标环境(如是否部署了EDR、是否启用了Credential Guard等)。理解每种方法的原理、前置条件、操作步骤以及优缺点,是内网渗透测试人员和安全研究人员必须掌握的“艺术”。
本文将深入对比五种从SAM到NTDS.dit的实战提取方法。我不会只罗列命令,而是会拆解每种方法背后的系统原理,分享我在实际攻防演练和红队评估中积累的操作细节、踩过的坑以及针对不同防守策略的绕过思路。无论你是刚开始接触内网安全的初学者,还是想梳理知识体系的老手,都能从中找到可直接复现的路径和值得深思的细节。
2. 核心思路与攻击路径设计
在动手之前,清晰的思路比任何工具都重要。盲目地在目标机器上执行命令,极易触发告警导致行动暴露。一个成熟的攻击者会根据当前已获取的权限、目标系统的环境以及最终目标,来规划一条阻力最小、痕迹最少的提取路径。
2.1 权限升级与场景适配
所有的提取方法都建立在一定的权限基础之上。我们大致可以将权限场景分为以下几个层次:
本地管理员权限:这是最低要求,也是大多数方法的起点。拥有了本地管理员权限,你基本上可以完全控制该台计算机,包括访问受保护的注册表项、加载驱动、执行计划任务等,这为提取本地SAM文件哈希铺平了道路。获取本地管理员权限的方法很多,例如利用系统漏洞提权、窃取已登录的管理员会话令牌、或者通过域用户凭证在具有本地管理员权限的组策略首选项中查找密码等。
域用户权限:一个普通的域用户账户本身无法直接提取域控制器上的NTDS.dit。但是,域用户权限是进行横向移动、信息收集的基石。你可以枚举域内计算机、用户组关系、查找具有特殊权限的账户(如域管理员登录过的机器),为后续获取更高权限创造条件。
域管理员权限:这是提取NTDS.dit文件的“黄金门票”。拥有域管理员组成员权限,意味着你对该域拥有最高控制权,可以直接访问域控制器上的所有资源,包括NTDS.dit文件本身。此时,提取方法的选择更多考虑的是隐蔽性和对抗EDR(终端检测与响应)的能力。
SYSTEM权限:这是Windows系统中的最高权限级别,甚至高于管理员。许多本地提取工具(如Mimikatz的
sekurlsa::logonpasswords)需要SYSTEM权限才能读取LSASS进程内存中的明文密码或哈希。通过psexec、wmic或计划任务等方式,可以将管理员权限提升至SYSTEM。
攻击路径的设计,通常是一个从外到内、从低到高的过程:通过钓鱼或漏洞获取一个初始立足点(通常是普通用户权限)→ 本地提权至管理员/SYSTEM → 提取本地哈希或明文密码 → 利用获取的凭据进行横向移动,定位高价值目标(如IT管理员的工作站)→ 最终获取域管理员权限并瞄准域控制器。
2.2 目标数据源分析:SAM vs. NTDS.dit
理解你要提取的东西是什么,至关重要。
SAM文件:
- 位置:
%SystemRoot%\system32\config\SAM - 内容:存储本地用户账户的安全账户管理器信息,主要是用户名和经过加密的密码哈希(LM Hash/NTLM Hash)。Vista之后默认只存储NTLM Hash。
- 保护机制:系统运行时,该文件被系统内核锁定,无法直接复制或读取。其访问受ACL(访问控制列表)严格控制,通常只有SYSTEM账户有完全控制权。
- 价值:用于离线破解或在该台机器上进行哈希传递攻击。如果该机器同时有域用户登录,有时也能从内存中提取到域凭据。
NTDS.dit文件:
- 位置:域控制器上的
%SystemRoot%\NTDS\NTDS.dit - 内容:Active Directory的数据库文件,包含了域内所有对象(用户、组、计算机等)的信息,其中核心就是每个账户的密码哈希。此外,它还可能包含一些历史密码哈希。
- 保护机制:作为域控制器的核心服务(
ntds.dit由lsass.exe进程独占打开),其保护比SAM文件更加严格。直接访问会被拒绝。同时,域控制器通常有更严格的安全监控。 - 价值:域渗透的终极目标之一。获取它等于拿到了整个域所有账户的密码哈希,可以进行全域范围的横向移动和持久化控制。
提取方法的核心挑战,就在于如何突破操作系统对这些文件的运行时保护,获取其副本或直接读取其内容。
3. 五种实战提取方法深度解析与对比
下面,我将逐一拆解五种经典的提取方法,从原理、操作到优缺点和适用场景,为你呈现一幅完整的战术地图。
3.1 方法一:注册表导出法——最经典的本地方案
这是提取本地SAM和SYSTEM文件最传统、最稳定的方法之一。它的原理非常巧妙:既然运行时文件被锁定,那我就去读取它在内存中的“镜像”——注册表。
原理剖析: Windows系统启动时,会将SAM、SECURITY、SYSTEM等配置单元文件加载到注册表的HKEY_LOCAL_MACHINE下的对应子树中。具体来说:
- SAM文件对应
HKEY_LOCAL_MACHINE\SAM - SYSTEM文件对应
HKEY_LOCAL_MACHINE\SYSTEM
SYSTEM文件中包含了一个名为Syskey的密钥,用于加密SAM数据库。因此,要解密SAM中的哈希,必须同时拥有SAM和SYSTEM的注册表配置单元。
操作步骤实录:
- 权限准备:你需要拥有目标机器的管理员权限。通过
psexec、WMI或计划任务等方式获得一个具有管理员权限的交互式命令行(如psexec.exe -s -i cmd.exe,其中-s表示以SYSTEM运行,-i表示交互式)。 - 导出注册表配置单元:
这两个命令会将内存中的SAM和SYSTEM配置单元保存到指定的文件(如reg save hklm\sam C:\temp\sam.save reg save hklm\system C:\temp\system.saveC:\temp)中。你需要确保有该目录的写入权限。 - 文件传输:将生成的
sam.save和system.save文件下载到你的攻击机上。 - 哈希提取:在攻击机上,使用
secretsdump.py(Impacket套件)或mimikatz来解析这两个文件。
这条命令会离线计算出所有本地用户的NTLM哈希。# 使用Impacket的secretsdump python3 secretsdump.py -sam sam.save -system system.save LOCAL
实操心得与避坑指南:
注意:
reg save命令需要较高的权限。在某些配置了严格权限或使用了某些安全软件的环境中,即使你是管理员,也可能被拦截。此时可以尝试使用disk shadow卷影拷贝(后面会讲到)或其他方法。优势:不直接接触被锁定的SAM文件,利用的是系统自身机制,兼容性极好,从Windows XP到Windows Server 2022都有效。产生的磁盘IO和网络流量较小,相对隐蔽。
劣势:仅能提取本地账户的哈希。对于已登录的域账户,其凭据哈希存储在LSASS进程中,此法无效。如果目标系统启用了Credential Guard,LSASS内存中的哈希会被保护起来,但本地SAM的哈希仍可通过此方法提取(因为Credential Guard主要保护的是运行时的凭据,而非存储在磁盘上的SAM数据库加密密钥)。
适用场景:在获取一台非域控制器(如成员服务器、工作站)的管理员权限后,快速提取本地用户哈希,用于本地破解或作为后续攻击的跳板。
3.2 方法二:Volume Shadow Copy(卷影拷贝)—— 兼顾本地与域的利器
卷影拷贝是Windows提供的用于创建卷时间点快照的服务。我们可以利用这个合法功能,创建一个包含被锁定系统文件(如SAM、NTDS.dit)的卷影副本,然后从容地从副本中复制文件。
原理剖析:vssadmin或diskshadow工具可以调用Volume Shadow Copy Service。我们创建一个C盘(系统盘)的卷影副本,这个副本在创建瞬间是一个完整的、一致性的快照。由于快照是只读的,系统运行时对原始文件的锁定不会影响我们从快照中读取文件。之后,我们将快照挂载到一个新的驱动器盘符,就可以像访问普通文件夹一样访问其中的文件,包括被锁定的config\SAM或NTDS\NTDS.dit。
操作步骤实录(以提取NTDS.dit为例):
- 权限与环境:必须在域控制器上执行,且需要本地管理员或域管理员权限。通过PsExec等工具获得一个交互式shell。
- 使用diskshadow(更推荐):
diskshadow是一个功能更强大的命令行工具,支持脚本模式,能更好地控制快照的创建和删除。- 首先,创建一个脚本文件,例如
vss.txt:
这个脚本的意思是:设置上下文为持久化、无写入者;添加C盘卷并起个别名;创建快照;将快照暴露为Z盘。set context persistent nowriters add volume c: alias someAlias create expose %someAlias% z: - 在命令行执行:
diskshadow /s vss.txt - 如果成功,你会看到一个新的驱动器
Z:出现。
- 首先,创建一个脚本文件,例如
- 复制关键文件:
同样,需要SYSTEM文件来获取解密NTDS.dit所需的密钥。copy z:\windows\ntds\ntds.dit C:\temp\ntds.dit copy z:\windows\system32\config\SYSTEM C:\temp\SYSTEM.hive - 清理痕迹:
不清理会导致大量快照占用磁盘空间,可能引发管理员警觉。# 删除脚本创建的卷影副本(重要!) vssadmin delete shadows /for=c: /quiet # 或者使用diskshadow脚本删除 # 在另一个脚本文件中写入 `delete shadows all` 然后执行 - 传输与解析:将
ntds.dit和SYSTEM.hive传回攻击机,使用secretsdump.py解析:python3 secretsdump.py -ntds ntds.dit -system SYSTEM.hive LOCAL
实操心得与避坑指南:
注意:
vssadmin在高版本Windows(如Server 2016+)中,默认可能不允许非特权用户创建卷影拷贝。而diskshadow在默认配置下权限要求可能更低,因此成为更常用的选择。一个关键细节:直接从快照盘复制
SYSTEM文件时,可能会遇到“进程无法访问文件,因为另一个进程正在使用它”的错误。这是因为SYSTEM配置单元也被锁定了。解决方法是复制SYSTEM.hive文件,而不是直接复制SYSTEM(它是一个指向注册表的符号链接)。上面命令中的config\SYSTEM实际上就是SYSTEM.hive。优势:这是一种“无接触”原始文件的方法,利用了系统自带功能,行为相对合法,不易被基于文件访问行为的监控直接检测。既可以用于提取本地SAM,更是远程提取域控制器NTDS.dit的标准方法。
劣势:操作步骤稍多,需要一定的命令行熟练度。创建卷影拷贝会在系统日志中留下事件记录(Event ID 7036, VSS服务启动),有经验的安全团队可以通过日志审计发现异常。
适用场景:在已控制域控制器的情况下,提取NTDS.dit文件的首选方法之一。也适用于需要提取被严格锁定的本地SAM文件的场景。
3.3 方法三:NinjaCopy(PowerShell)—— 绕过文件锁的“忍者”
这是由PowerShell大神Joe Bialek开发的一种技术,本质上是利用PowerShell直接调用Windows底层的文件系统驱动,以原始磁盘读取的方式绕过文件锁和访问控制列表(ACL),直接读取被独占打开的文件。
原理剖析: 通常的Copy-Item或[System.IO.File]::Copy在复制文件时,会遵循Windows API的规则,如果文件被其他进程独占锁定,复制就会失败。NinjaCopy则不同,它使用.NET的[System.IO.FileStream]类,并以FileShare.ReadWrite模式打开文件流,同时它直接与文件系统驱动交互,尝试绕过一些高级别的锁。更关键的是,它通常需要高权限(SYSTEM)运行,这使其能够访问几乎所有资源。
操作步骤实录:
- 你需要一个高权限的PowerShell环境(以管理员或SYSTEM身份运行)。
- 直接使用内嵌NinjaCopy逻辑的PowerShell脚本(例如,来自PowerSploit的
Invoke-NinjaCopy.ps1)。# 导入脚本 Import-Module .\Invoke-NinjaCopy.ps1 # 复制SAM文件 Invoke-NinjaCopy -Path "C:\Windows\System32\config\SAM" -LocalDestination "C:\temp\sam.copy" # 复制NTDS.dit文件(在域控制器上) Invoke-NinjaCopy -Path "C:\Windows\NTDS\ntds.dit" -LocalDestination "C:\temp\ntds.copy" Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "C:\temp\system.copy" - 脚本执行后,文件就会被复制到指定位置,即使原始文件正在被
lsass.exe等进程锁定。
实操心得与避坑指南:
注意:NinjaCopy的成功率并非100%。对于某些被内核模式驱动深度锁定的文件,或者在某些特定系统配置下,它可能仍然会失败。它的行为非常底层和直接,容易被高级别的EDR产品检测为可疑的磁盘直接访问操作。
优势:简单粗暴,一条命令解决问题,无需像卷影拷贝那样多步操作。理论上可以复制任何文件。
劣势:
- 检测风险高:直接读取被锁定的核心系统文件,是一种非常可疑的行为。许多新一代EDR和ATP解决方案能够检测到这种异常的文件访问模式。
- 可能造成不稳定:在极少数情况下,强行读取被活动服务使用的数据库文件(如NTDS.dit),可能导致文件状态不一致(尽管是只读操作),存在理论上的风险。
- 依赖PowerShell:需要目标系统允许执行PowerShell脚本,且可能受执行策略限制。
适用场景:在时间紧迫、且确定目标环境监控较弱(或无监控)时,可以作为一种快速尝试的手段。或者在已经确认其他方法(如注册表导出)被拦截时的备选方案。在重要的红队行动中,应谨慎使用,优先考虑更“安静”的方法如卷影拷贝。
3.4 方法四:DCSync攻击—— 最优雅的“远程”提取
如果说前面的方法都是“去域控制器家里把账本偷出来”,那么DCSync就是“伪装成域控制器,让账房先生主动把账本念给你听”。这是一种利用Active Directory复制协议(Directory Replication Service, DRS)的认证缺陷进行的攻击。
原理剖析: 在Active Directory中,域控制器之间需要相互同步数据(用户、密码变更等),这个过程通过DRS协议实现。一个域控制器可以向另一个域控制器发起“同步对象”的请求。Mimikatz的lsadump::dcsync模块模拟了这个过程。当攻击者拥有一个具备特定复制权限的账户凭据(如域管理员、域控制器计算机账户,或拥有Replicating Directory Changes权限的账户)时,就可以向域控制器发起请求,索取指定用户(或所有用户)的密码哈希,而无需直接接触NTDS.dit文件。
操作步骤实录:
- 权限要求:这是关键。你需要一个具有复制权限的账户。默认情况下,域管理员组、企业管理员组和域控制器计算机账户拥有此权限。你也可以通过ACL后门,给一个普通用户添加复制权限。
- 执行DCSync:在已获得高权限凭据的攻击机上,使用Mimikatz。
执行后,Mimikatz会通过RPC连接到域控制器,并返回用户的NTLM哈希、LM哈希(如果存在)以及密码历史哈希。# 转储指定用户(如krbtgt)的哈希 mimikatz # lsadump::dcsync /domain:yourdomain.com /user:krbtgt # 转储整个域的所有用户哈希 mimikatz # lsadump::dcsync /domain:yourdomain.com /all
实操心得与避坑指南:
注意:DCSync攻击会在域控制器的安全日志中产生非常特定的事件ID,主要是4662(对AD对象的操作)和5145(网络共享对象访问),其中会记录访问的账户和访问的对象(是
DS-Replication-Get-Changes和DS-Replication-Get-Changes-All)。任何有经验的安全团队都会监控这些事件。优势:
- 无需在域控制器上执行代码:所有操作都在攻击机上进行,极大降低了在核心服务器上留下痕迹的风险。
- 无需处理文件:直接获取哈希,省去了复制、传输、解析大文件(NTDS.dit可能很大)的步骤和带宽消耗。
- 精准获取:可以只获取特定用户(如krbtgt)的哈希,用于制作黄金票据。
劣势:
- 权限要求高:需要域管理员或同等权限,这通常是攻击的后期阶段才能获得的。
- 日志特征明显:产生的日志是强告警信号,容易被SIEM(安全信息和事件管理)系统捕获。
- 网络流量:虽然不传输大文件,但会产生特定的DRS协议RPC流量,可能被网络层IDS/IPS检测。
适用场景:在已完全控制域环境(拥有域管理员权限)后,进行权限维持、制作黄金票据,或需要快速、隐蔽地获取特定用户哈希时的最佳选择。这是红队评估中标志性的“域持久化”技术之一。
3.5 方法五:LSASS进程内存转储—— 获取明文密码的捷径
严格来说,这不是提取SAM或NTDS.dit文件,但它是密码抓取艺术中不可或缺的一部分,因为它的目标是登录后的明文密码和会话凭据。LSASS进程是Windows安全子系统的核心,负责验证登录,其内存中会缓存最近登录用户的明文密码、NTLM哈希、Kerberos票据等。
原理剖析: 当用户交互式登录(如控制台、RDP)或通过网络(如net use)登录时,凭据会被传递给LSASS进程处理。为了支持WDigest、SSO等特性,LSASS可能会在内存中保留一份明文密码的副本(取决于系统设置)。Mimikatz的sekurlsa::logonpasswords模块就是通过注入到LSASS进程,读取其内存空间来提取这些凭据。
操作步骤实录:
- 权限要求:需要SYSTEM权限。因为LSASS是一个受保护的进程,普通管理员权限也无法直接读取其内存。
- 执行Mimikatz:
如果成功,你将看到当前和最近登录到该系统的所有用户的用户名、域名、NTLM哈希,以及可能的明文密码。# 提升权限到debug(通常SYSTEM权限自动具备) mimikatz # privilege::debug # 提取内存中的凭据 mimikatz # sekurlsa::logonpasswords
实操心得与避坑指南:
注意:从Windows 8.1/Server 2012 R2开始,微软引入了LSA保护,在Windows 10/Server 2016之后,又推出了更强大的Credential Guard。这些安全特性会隔离LSASS进程,使其内存无法被非受信任的代码(如Mimikatz)读取。启用Credential Guard后,此方法基本失效。
如何判断Credential Guard是否启用?可以检查注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的LsaCfgFlags值,或者使用msinfo32查看“基于虚拟化的安全性”服务状态。绕过Credential Guard的尝试:虽然困难,但并非完全不可能。一些高级技术如利用漏洞(如CVE-2021-36934)、从休眠文件或内存转储文件中提取(
procdump导出lsass.dmp后用Mimikatz离线分析)、或者攻击支持系统等,但成功率低且风险极高。在实战中,如果遇到启用了Credential Guard的目标,通常建议转向其他方法(如DCSync或卷影拷贝提取NTDS.dit)。优势:有可能直接获取明文密码,这是哈希无法比拟的,因为明文密码可以用于登录任何支持该认证方式的服务。同时也能获取当前登录会话的NTLM哈希和Kerberos票据。
劣势:
- 受安全特性严重制约:Credential Guard是它的“天敌”。
- 行为非常敏感:注入LSASS进程是几乎所有EDR的顶级告警行为,极易暴露。
- 结果不确定:不一定总能拿到明文密码,取决于系统配置(
UseLogonCredential注册表值等)。适用场景:在确认目标系统未启用Credential Guard/LSA保护,且对EDR检测不敏感的环境中,快速获取当前登录用户的凭据。常用于横向移动的初期,从一台已控制的机器上获取登录在该机器上的域管理员凭据。
4. 方法综合对比与实战选择指南
为了更直观地对比,我将这五种方法的核心特点整理如下表:
| 特性维度 | 注册表导出法 | 卷影拷贝法 | NinjaCopy | DCSync攻击 | LSASS内存转储 |
|---|---|---|---|---|---|
| 主要目标 | 本地SAM哈希 | 本地SAM / 域NTDS.dit | 任何被锁文件 | 域用户哈希(直接获取) | 内存中的明文/哈希/票据 |
| 所需权限 | 本地管理员 | 本地管理员(对DC需域管理员) | SYSTEM/管理员 | 域管理员或复制权限账户 | SYSTEM |
| 是否接触文件 | 否(访问注册表) | 否(访问快照) | 是(直接读磁盘) | 否(网络协议请求) | 否(访问进程内存) |
| 隐蔽性 | 较高 | 高(但留日志) | 低 | 中(留特定日志) | 极低 |
| 对抗EDR难度 | 低 | 低 | 高 | 中 | 极高 |
| 适用阶段 | 本地提权后 | 控制DC后或需提取被锁本地文件时 | 快速尝试/备用方案 | 已获域管权限后的持久化/信息收集 | 早期横向移动(无CG时) |
| 关键依赖 | Reg.exe, Impacket | vssadmin/diskshadow, Impacket | PowerShell, 高权限 | Mimikatz, 高域权限 | Mimikatz, 未启用CG |
| 日志痕迹 | 少量(注册表访问) | 明显(VSS服务事件) | 可能触发文件访问监控 | 非常明显(4662, 5145事件) | 极明显(进程注入告警) |
实战选择策略:
初期立足与横向移动:
- 如果你控制了一台工作站/服务器,首先尝试注册表导出法获取本地哈希,看看是否有重用密码。
- 同时,检查是否有域用户登录,并评估Credential Guard状态。如果未启用,可冒险使用LSASS内存转储,尝试获取明文或哈希进行横向移动。
瞄准域控制器:
- 一旦获得域管理员权限,首要目标就是域控制器上的NTDS.dit。
- 首选卷影拷贝法。它的行为相对合法,成功率极高,是业界公认的“标准操作流程”。
- 如果环境监控极严,担心VSS日志,可以考虑在获取必要文件后,立即清除相关日志(需另备工具和方法,且有风险)。
权限维持与隐蔽提取:
- 在已经完全掌控域环境后,需要定期获取新用户密码或进行隐蔽侦察时,DCSync是最优雅的方式。虽然日志特征明显,但你可以控制执行频率和来源IP,甚至可以先给一个普通账户添加复制权限,再用该账户进行DCSync,以分散风险。
备用与特殊场景:
- NinjaCopy作为当前几种方法都失败时的最后尝试。或者在一些非常老旧的、没有部署任何监控的系统上快速使用。
- 如果遇到Credential Guard,立刻放弃LSASS内存提取,转向基于文件的提取方法(注册表、卷影拷贝)或DCSync。
5. 高级规避技巧与痕迹清理
一个专业的渗透测试者,不仅要会攻击,还要懂得隐藏。以下是针对上述方法的一些反检测和清理思路:
对抗日志监控:
- 对于DCSync:其日志4662不可避免,但可以通过伪造或禁用日志来源进行干扰(风险极高)。更实际的做法是:只在必要时使用,并确保你的行动时间窗口在防守方的监控盲区(如下班时间)。
- 对于卷影拷贝:创建和删除卷影拷贝会产生事件日志。可以使用
wevtutil命令行工具在操作前禁用VSS相关日志通道,操作后再开启,或者直接清除特定时间段的日志(wevtutil cl)。但这本身也是可疑行为。 - 通用思路:尽量使用域内已有的管理工具(如
diskshadow.exe,vssadmin.exe,reg.exe)进行“Living off the Land”,避免上传陌生可执行文件。混淆命令行参数,将长命令拆解执行。
对抗EDR/AV:
- 工具免杀:对Mimikatz、Impacket等工具进行源码修改、加壳、混淆或直接使用内存加载(反射注入)的方式执行,避免静态查杀。
- 无文件攻击:尽可能使用系统内置功能或PowerShell(可进行混淆编码),减少磁盘落盘。例如,使用PowerShell实现DCSync的逻辑(有开源脚本),或者使用WMI、COM组件来执行相关操作。
- 时序混淆:将攻击步骤分散在较长的时间段内执行,不要连续进行注册表导出、卷影拷贝、文件传输等操作。
清理痕迹:
- 删除工具和产出文件:使用
del /f /s /q或cipher /w命令安全删除临时目录下的工具、提取的哈希文件、转储文件等。 - 清除命令行历史:对于cmd,历史记录有限;对于PowerShell,需清除
Get-History记录并可能需修改PSReadline的历史文件。 - 恢复配置:如果修改了系统配置(如启用了WDigest缓存明文),在任务完成后应将其恢复原状。
- 删除工具和产出文件:使用
记住,没有绝对隐蔽的方法。蓝队防守的视角也在不断提升。这些规避技巧的目的是增加防守方的分析成本,为你争取更长的行动时间。真正的隐蔽,在于对目标环境的深入理解和对正常流量的巧妙模仿。
6. 从哈希到利用:抓取后的行动
成功提取哈希只是开始,如何利用它们才是目的。这里简要说明几种主要利用方式:
哈希传递:使用提取到的NTLM Hash,直接验证到其他支持NTLM认证的服务(如SMB, WinRM)。工具:
psexec.py,crackmapexec,evil-winrm。crackmapexec smb 192.168.1.0/24 -u Administrator -H <NTLM_Hash> --local-auth票据传递:如果提取到的是Kerberos票据(TGT或TGS),可以直接使用票据进行认证。Mimikatz的
pass-the-ticket功能。离线破解:将哈希导入Hashcat或John the Riipper,尝试破解出明文密码。这对于弱密码策略的域环境非常有效。破解出明文密码后,使用范围更广。
黄金票据:利用从NTDS.dit中提取的
krbtgt用户的NTLM Hash,可以伪造任意用户的TGT票据,从而获得域内任意服务的访问权限。这是最强大的持久化手段之一。mimikatz # kerberos::golden /user:fakeadmin /domain:yourdomain.com /sid:<Domain_SID> /krbtgt:<krbtgt_NTLM_Hash> /ptt白银票据:利用服务账户(如
CIFS$,HOST$)的NTLM Hash,伪造针对特定服务的TGS票据,无需与KDC交互,更加隐蔽。
密码抓取的终点,远不是拿到那一串字符。它开启了通往整个域王国的大门。理解每一种方法背后的“为什么”,结合具体场景做出“怎么做”的选择,并在行动中时刻思考“如何隐藏”,这才是域渗透中密码抓取这门“艺术”的精髓。每一次实战都是独特的,没有一成不变的剧本,唯有对原理的深刻理解和对细节的不断打磨,才能让你在攻防的棋局中占据先机。