Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SrHollow — 从 Windows 注册表配置单元中提取 LSA 机密和 DPAPI 密钥,通过现有或新建的 VSS 卷影副本,并内置 regf 解析器和 AES-256 解密。 | Kitploit
工具/GitHubGitHub/ivancabrera02/srhollow
防御工具权限提升数据泄露后渗透利用数字取证密码学渗透测试红队
GitHubivancabrera02/srhollow

SrHollow

从 Windows 注册表配置单元中提取 LSA 机密和 DPAPI 密钥,通过现有或新建的 VSS 卷影副本,并内置 regf 解析器和 AES-256 解密。

查看仓库
586712天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SrHollow

LSA 机密提取,复用已有的 VSS 卷影副本 + 内联 regf 解析器 + 通过 bcrypt.dll 进行 AES-256 LSA 解密。

六步攻击链

  1. 枚举 \GLOBAL??,通过 NtOpenDirectoryObject + NtQueryDirectoryObject。选取编号最大的 HarddiskVolumeShadowCopyN。
  2. 如果不存在,则回退到从 SrClient.dll 调用 SRSetRestorePointW(BEGIN_SYSTEM_CHANGE, DEVICE_DRIVER_INSTALL)。
  3. 在当前令牌中启用 SeBackupPrivilege(AdjustTokenPrivileges)。
  4. CreateFileW("\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\config\{SECURITY,SYSTEM}", FILE_FLAG_BACKUP_SEMANTICS) 并读取到 byte[]。
  5. 内联 regf 遍历器解析注册表配置单元:基础块、单元格类型 nk/vk/lf/lh/li/ri/db/sk。KeyNode 布局,标志位 @0x02,子键列表 @0x1C,值列表 @0x28,安全键 @0x2C,类偏移 @0x30,名称长度 u16 @0x48,类长度 u16 @0x4A(这是第一遍时的 bug——微软自己的文档在这里含糊不清),名称 @0x4C。
  6. 派生密钥:
    • BootKey (SYSKEY):拼接 ControlSet00N\Control\Lsa\{JD, Skew1, GBG, Data} 的 Class UTF-16 十六进制 → 16 个原始字节 → 使用 [8,5,4,2,11,9,13,3,0,6,1,12,14,10,15,7] 进行置换。
    • LSA AES-256 密钥来自 Policy\PolEKList\(default)(172 字节):salt = bytes[0x1C..0x3C];tmpKey = SHA-256(BootKey || salt * 1000);pt = AES-256-CBC-decrypt(bytes[0x3C..], tmpKey, IV=0);LSA 密钥 = pt[68..100]。
    • 每个机密位于 Policy\Secrets\<name>\CurrVal\(default) 下:布局相同,使用 LSA 密钥而非 BootKey 进行盐值拉伸。
    • DPAPI_SYSTEM 主体:bytes[4..24] = MachineKey,bytes[24..44] = UserKey。这些密钥可解密主机上所有 SYSTEM 作用域的 DPAPI 主密钥。

仓库结构

SrHollow/
├── README.md                          <- 你在这里
├── src/
│   └── SrHollow.cs                    <- 内联 regf 解析器 + LSA AES 加密(约 350 行代码,单文件)
└── stages/
    ├── Stage1-Recon.ps1               <- 只读卷影枚举
    ├── Stage1b-ReadShadowHives.ps1    <- 自动检测 / 自动创建卷影 + 读取配置单元
    ├── Stage2-Decrypt.ps1             <- BootKey + LSA 密钥 + 所有机密
    └── Stage3-Report.ps1              <- 带 OPSEC 足迹的格式化操作员报告

src/SrHollow.cs 除 System.Security.Cryptography(其本身代理到 bcrypt.dll)外零依赖。它可以通过 Add-Type 或 csc.exe 直接编译。

用法

提升权限的 PowerShell

# 1. 只读侦察,查看已存在哪些卷影
powershell.exe -ep bypass -File .\stages\Stage1-Recon.ps1

# 2. 从最新的现有卷影中提取 SECURITY + SYSTEM
#    (如果不存在则通过 SRSetRestorePointW 创建一个)
powershell.exe -ep bypass -File .\stages\Stage1b-ReadShadowHives.ps1

# 3. 派生 BootKey + LSA 密钥 + 解密所有机密
powershell.exe -ep bypass -File .\stages\Stage2-Decrypt.ps1

# 4. (可选)格式化操作员报告
powershell.exe -ep bypass -File .\stages\Stage3-Report.ps1

要求:本地管理员权限(用于 SeBackupPrivilege),Volume Shadow Copy 服务正在运行或可启动(Windows 10/11 默认如此)。

当卷影已存在时留下的可归因信号:

  • 一次对 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\... 的 CreateFileW
  • 一次启用 SeBackupPrivilege 的 AdjustTokenPrivileges
  • 通过 bcrypt.dll 的标准 SHA-256 + AES-CBC(用户态,无异常)

这与大多数合法备份代理的文件打开特征相同。

下载工具