解析DumpGuard的逆向成果:Credential Guard MIDL接口定义逐条解读

发布时间:2026/10/29 1:23:48

解析DumpGuard的逆向成果:Credential Guard MIDL接口定义逐条解读 【免费下载链接】DumpGuardProof-of-Concept tool for extracting credential material from protected sessions on modern Windows systems.项目地址https://gitcode.com/gh_mirrors/du/DumpGuard点击查看免费下载DumpGuard 是一个针对现代 Windows 系统的概念验证PoC工具用于从启用了 Credential GuardVSM 虚拟机安全模式的受保护会话中提取凭据材料。项目中最有研究价值的成果之一就是 Credential Guard Interfaces/ 目录下这套逆向还原的Credential Guard MIDL 接口定义——它们精确描述了 VSM 隔离区内加密、NTLM、Kerberos、CredMan 等核心服务的 RPC 边界是理解 Windows 凭据保护架构的一手资料。DumpGuard 是什么项目结构总览DumpGuard 的核心思路是既然凭据被 Credential Guard 隔离进了 VSMVirtual Secure Mode普通的进程内存读取就无法拿到明文那么就直接模拟 TSSSP 协议栈与 VSM 建立合法的安全上下文再调用隔离区里的凭据服务。仓库分为两大模块Credential Guard Interfaces/逆向得到的 8 个 MIDL 接口定义.idl与 2 个编译器行为指令文件.acf对应 VSM 侧各 DLL 暴露的 RPC 接口DumpGuard/C 语言实现包含 TSSSP 客户端/服务端、SPNEGO、GSS-API/Kerberos ASN.1 编解码以及基于 MIDL 生成的rcg_KerbCredIsoRemote_c.c/rcg_NtlmCredIsoRemote_s.c桩代码。工具支持/command:ntlmv1、/command:ntlmv2、/command:kerbtgs、/command:msv10等命令配合/target:self或/target:all可对当前会话或全部已登录会话逐一提取 NTLM 响应见 main.c 中的命令枚举。Credential Guard MIDL 接口定义文件清单每个.idl文件顶部都带有uuid和version属性这是识别 VSM 内对应模块的关键指纹。完整清单如下接口文件UUID作用定位BaseTypes.idl—公共基础类型上下文句柄、字符串、八位字节串NtlmIum.idl45527AE0-…-C392NTLM 凭据保护、NT/LM 响应与会话密钥计算KerberosIum.idl9CFEEAD6-…-23F8Kerberos 认证全流程AS/AP 请求、FAST、S4U、PACBCryptIum.idl57CCE375-…-D140VSM 内部 BCrypt 加密 API 的完整边界CredManIum.idl39730EC4-…-E212CredMan 凭据的保护与校验ProvIum.idlA3E5AF3E-…-E4BFVSM 机器密钥、自签名证书与根密钥校验CloudApIum.idl1707E621-…-55A5云身份MFA/条件访问密钥绑定LsaIsoMgmtIum.idlEDA3C9E4-…-607D隔离环境运行状态探测下面逐条解读最有信息量的几个接口。BaseTypes.idl所有接口的公共基础所有接口文件都import BaseTypes.idl其中定义了三个关键抽象CONTEXT_HANDLE带[context_handle]属性的上下文句柄是每次进入 VSM 服务后的会话凭证几乎所有函数都要求先调用GetClientContext获取它IUM_UNICODE_STRING/IUM_STRING/IUM_OCTET_STRING对应内核态UNICODE_STRING等结构的隔离用户态Isolated User Mode版本通过size_is()、length_is()属性精确描述缓冲区大小这是还原 NDR 序列化格式的基础IUM_HANDLElong longVSM 内句柄对象BCrypt 密钥、Kerberos 密钥协商都基于它。这套类型与 rcg_BaseTypes.idl 中的定义一致可见作者是用同一套基础类型同时刻画了真实 VSM 接口和DumpGuard 自定义 RCG 接口。NtlmIumNTLM 凭据保护的逆向核心NtlmIum.idl 是 DumpGuard 攻击路径最直接的依据。数据结构部分还原了微软文档未公开的MSV1_0_SECRETS_WRAPPER它按IsEncrypted字段在明文三哈希NT_OWF_PASSWORDLM_OWF_PASSWORDSHA_OWF_PASSWORD与 308 字节密文之间切换并携带IUM_MSV1_0_CREDENTIAL_KEY凭据密钥。几个关键函数值得逐条看NtlmIumLm20GetNtlm3ChallengeResponse给定凭据与服务器 8 字节 Challenge生成 NTLM v2 响应和会话密钥——这正是/command:ntlmv2的底层调用NtlmIumCalculateNtResponse/NtlmIumCalculateUserSessionKeyNtNTLM v1 响应与会话密钥计算对应/command:ntlmv1NtlmIumDecryptDpapiMasterKey用凭据解DPAPI 主密钥意味着 VSM 内可解密目标用户 DPAPI 保护的数据NtlmIumCompareCredentials在 VSM 内部比较两组哈希是否相等避免哈希值出隔离区NtlmIumProtectSspCredentialPassword与 KerberosIum 中KerbIumGetNtlmSupplementalCredential呼应实现跨协议的凭据格式转换。值得注意的是NtlmIumGetCredentialKey的RootSecret参数注释为NtlmGlobalRootSecret——这正是 VSM 全局根密钥的用途也是 ProvIum.idl 中ProvIumCheckRootSecretValidity校验的对象。KerberosIumKerberos 协议处理的完整接口地图KerberosIum.idl 是最大的接口约 40 个函数注释直接引用了 [MS-RDPEAR] 官方文档可以逐条对照阅读功能分组代表函数说明密码与密钥列表KerbIumBuildPasswordList用明文密码 用户名/域salt构建 AES 密钥列表AS/AP 请求构造KerbIumBuildAsReqAuthenticator、KerbIumCreateApReqAuthenticator生成带时间偏斜修正的认证符票据解密验证KerbIumVerifyServiceTicket、KerbIumUnpackKdcReplyBody解密 EncTicketPart、解析 KDC 应答FAST (RFC 6113)KerbIumBuildFastArmoredKdcRequest、KerbIumVerifyFastArmoredTgsReply等 7 个FAST 装甲请求/应答的构建与验证S4U 代认证KerbIumHashS4UPreauth、KerbIumSignS4UPreauthData服务主体代取票据的 MAC 计算PAC 凭据KerbIumDecryptPacCredentials解密 PAC 中的补充凭据数组PKINIT 密钥协商KerbIumCreateECDHKeyAgreement256/384/521 位、KerbIumFinalizeKeyAgreementECDH/DH 密钥协商句柄管理其中KerbIumEncryptPassword把明文密码转成密文存储形式KERB_PLAINTEXT_PASSWORD结构用Protection枚举KERB_PASSWORD_NO_PROTECTION/KERB_PASSWORD_ENCRYPTED_BY_LSA_ISO/KERB_PASSWORD_LSA_PROTECTED标记保护等级——这说明即使在 VSM 内部密码也有分级的保护策略。BCryptIumVSM 加密能力的边界BCryptIum.idl 把 Windows CNGbcrypt.dll几乎完整的算法接口搬进了隔离区BCryptIumOpenAlgorithmProvider打开算法、BCryptIumGenerateKeyPair生成密钥对、BCryptIumEncrypt/BCryptIumDecrypt加解密、BCryptIumSignHash签名以及一个容易忽略但风险很高的函数BCryptIumExportKey——它允许把密钥以 Blob 形式导出是凭据最终能出VSM 的关键通道之一。该接口还还原了 RSA 填充参数结构IUM_BCRYPT_PADDING_INFO用switch_type联合体区分 PKCS1 / OAEP / PSS 四种填充PaddingType1~4作者甚至在注释里记录了两个 case 都是 PKCS1依据 NDR64 结构推断的逆向细节足见这套定义是逐字节比对二进制反序列化行为得到的。CredManIum、ProvIum、CloudApIum 与 LsaIsoMgmtIum短接口大信息量CredManIum.idl仅 2 个函数。CredManIumProtectCredential输入任意凭据字节返回密文CredManIumCheckProtectedCredential校验并重加密——这就是凭据管理器CredMan存储格式如MSV1_0在 VSM 内的加密封装层。ProvIum.idlVSM 初始化Provisioning接口。ProvIumCreateMachineKey创建机器密钥、ProvIumCreateMachineSelfSignedCertificate生成自签名证书、ProvIumCheckRootSecretValidity校验全局根密钥。它解释了 VSM 首次启动时如何建立信任。CloudApIum.idl仅 3 个函数围绕GenerateKeyBindingKeyPair/VerifyKeyBindingKeyPair服务于云身份验证如 MFA、条件访问的密钥绑定。LsaIsoMgmtIum.idl只有一个GetRunningServices返回值为2默认模式或3Credential Guard 已启用——这是判断目标系统是否开启 Credential Guard 的最轻量子也是安全评估时最常用的指纹点。.acf 文件MIDL 编译器的行为指令两个.acf文件虽然只有几行却展示了逆向的严谨性BCryptIum.acf[strict_context_handle][context_handle_noserialize]声明Context句柄只能以不序列化方式传递避免 MIDL 编译器为句柄生成多余的序列化桩KerberosIum.acf[allocate(all_nodes)] PSECPKG_SUPPLEMENTAL_CRED_ARRAY指定补充凭据数组的分配策略使生成的客户端桩能按整树分配方式还原 PAC 凭据数组。RemoteGuard 调用 IDDumpGuard 自定义的 RCG 接口层除了还原官方接口DumpGuard 还定义了自己的远程守卫接口用于让伪造的 TSSSP 服务端向客户端派发操作rcg_RemoteGuardCallIds.idlRemoteGuardCallId枚举把调用分成两个区段——Kerberos 区0x100~0x1ff共 24 个操作和 NTLM 区0x200~0x2ff共 6 个操作并明确标注哪些操作未被官方KerbCredIsoRemote实现如各 FAST 装甲函数rcg_KerbCredIsoRemote.idl 与 rcg_NtlmCredIsoRemote.idl用CallId switch 联合体的单入口分发模式重写请求结构MIDL 生成的 rcg_KerbCredIsoRemote_c.c、rcg_KerbCredIsoRemote_s.c 等桩代码即基于此编译。对比官方KerberosIum的 40 个细粒度函数RCG 的 24 个 CallId 明显更少——这从侧面印证了注释中Not implemented by KerbCredIsoRemote的判断即官方远程守卫只暴露了 Kerberos 流程的子集。DumpGuard 如何使用这些接口定义结合 main.c 可以看到完整链路初始化 TSSSP 客户端与服务端上下文完成 SPNEGO 协商ASN.1 编解码见 asn1_spnego.c 等服务端内置一张自签名测试证书RcgTest_SelfSignedCertmain.c冒充 VSM 侧 TLS 证书骗过客户端证书校验进入 RDPEAR 虚拟通道后消息格式定义于 tsssp_rdpear.h调用tsssp_rdpear_send_ntlm_request_v1/v2或tsssp_rdpear_send_kerb_request_service_ticket让 VSM 用受害会话的隔离凭据计算 NTLM 响应或申请 TGS 票据/target:all模式下通过LsaEnumerateLogonSessionsImpersonateLoggedOnUser遍历所有域用户会话逐一提取main.c。换句话说MIDL 接口定义既是分析产物也是攻击实现的蓝图它告诉攻击者 VSM 暴露了哪些合法能力DumpGuard 便沿着这些能力组合出提取路径。写在最后安全价值与合规提示这套 MIDL 逆向成果的价值有三点架构透视第一次完整公开了 Credential Guard 隔离区的 RPC 接口边界让研究者无需反编译即可理解 VSM 内 NTLM/Kerberos/BCrypt 的职责划分威胁建模ExportKey、DecryptDpapiMasterKey、CheckRootSecretValidity等函数说明一旦 TSSSP 通道被伪造正如本 PoC 演示DPAPI 主密钥与 NTLM 哈希均在能力范围内加固启示LsaIsoMgmtIum.GetRunningServices可作为快速检测手段而客户端对 RCG 服务端证书的强校验则是防御此类攻击的关键点。需要强调的是DumpGuard 是研究性质的概念验证工具仅在Windows 10 及以上且启用 Credential Guard的环境中可复现且需要管理员权限。请仅在获得授权的环境中进行安全测试将其用于未授权系统可能违反《计算机信息网络国际联网安全保护管理办法》及当地法律法规。小结DumpGuard 把 Credential Guard 这块黑盒拆解成了 8 份可编译的 MIDL 接口BaseTypes定基础、NtlmIum与KerberosIum覆盖认证核心、BCryptIum划出加密边界、CredManIum/ProvIum/CloudApIum补齐周边能力LsaIsoMgmtIum提供状态指纹再叠加自研的RemoteGuardCallId分发层就构成了完整的逆向闭环。对 Windows 安全研究者而言这个目录本身就是一份Credential Guard 接口字典值得逐条精读。赞分享【免费下载链接】DumpGuardProof-of-Concept tool for extracting credential material from protected sessions on modern Windows systems.项目地址https://gitcode.com/gh_mirrors/du/DumpGuard点击查看免费下载相关推荐DumpGuard是什么Windows Credential Guard凭据提取PoC工具完全解析DumpGuard是什么Windows Credential Guard凭据提取PoC工具完全解析 DumpGuard 是一款面向现代 Windows 系统的pg_repack触发器机制如何实现增量数据同步pg_repack触发器机制如何实现增量数据同步 pg_repack是PostgreSQL数据库中一款强大的表重组工具它能够在最小化锁竞争的情况下对表进行重数据库Natsumi Browser 自动更新器逆向解读updater.uc.mjs 逐行精讲Natsumi Browser 自动更新器逆向解读updater.uc.mjs 逐行精讲 Natsumi Browser 是一款为 Firefox 及其衍生浏上一篇AssetRipperUnity资源提取完整指南下一篇VPTQ模型命名解密v8-k65536-256等参数到底代表什么创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/29 1:23:48

CS-Books|1000+本计算机经典书籍收纳指南:一页找全你想读的书

CS-Books|1000本计算机经典书籍收纳指南:一页找全你想读的书 【免费下载链接】CS-Books 🔥🔥超过1000本的计算机经典书籍、个人笔记资料以及本人在各平台发表文章中所涉及的资源等。书籍资源包括C/C、Java、Python、Go语言、数据结…

2026/10/29 2:53:53

Agent沙盒技术对比与实践指南

1. Agent沙盒技术概述在分布式系统和自动化流程领域,Agent沙盒已经成为关键技术基础设施。简单来说,Agent沙盒是一个隔离的执行环境,允许各种智能代理(Agent)在其中安全运行,同时限制其对主系统的访问权限。…

2026/10/29 2:53:53

线性代数知识点总结:行列式、矩阵、秩与线性方程组串讲

简介:一份面向高校学生与考研复习者的线性代数知识点总结文档,聚焦课堂要点梳理与考前查漏补缺,适合需要快速建立知识框架、回顾公式定理的读者。压缩包共1个docx文件,约572KB,内容以章节笔记形式组织,便于…

2026/10/29 2:53:53

Pallas与DeepHelix:两大AI引擎架构对比与应用场景解析

1. 项目概述:两大AI引擎的技术对决在AI工具开发领域,引擎架构的选择往往决定了产品的性能天花板。最近在开发者社区热议的Pallas和DeepHelix两大引擎,代表了当前降AI工具开发的两种主流技术路线。作为同时使用过这两个引擎的开发者&#xff0…

2026/10/29 2:53:53

Python项目标准化脚手架:Cookiecutter实战指南

1. 为什么Python项目需要标准化脚手架?每次启动新Python项目时,重复创建基础目录结构、配置文件的过程简直让人抓狂。我见过太多项目因为初期结构混乱导致的后续问题:模块导入路径错误、测试用例分散、依赖管理失控...更可怕的是,…

2026/10/29 2:53:52

Python项目脚手架工具指南:从入门到实战

1. 为什么每个Python开发者都需要项目脚手架 刚入行时我最头疼的就是每次新建Python项目都要手动创建一堆文件夹和文件。src、tests、docs、requirements.txt...这些重复劳动不仅浪费时间,还容易遗漏关键文件。直到发现Cookiecutter这类项目脚手架工具,…

2026/10/29 2:48:52

专科生论文写作工具评测与高效使用指南

1. 论文写作工具的价值与选择标准作为一名经历过论文写作煎熬的老学长,我深知专科生在毕业季面临的双重压力:既要完成实习工作,又要应付毕业论文。传统写作方式下,从选题到定稿往往需要消耗2-3个月时间,而专科生的学制…

2026/10/28 14:42:12

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/28 15:28:56

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/29 0:03:42

学生选课系统DFD图绘制指南:边界划分与分层校验实战

简介:文档以顶层与第一层DFD图为核心,完整刻画学生选课系统的逻辑模型,面向软件工程课程设计、系统分析学习及毕设前期建模人群。顶层图界定系统边界,外部实体包括管理员、教师和学生三类角色;第一层图进一步细化用户登…

2026/10/29 0:03:42

JIRA敏捷落地:Scrum角色权限、Sprint与燃尽图避坑指南

简介:围绕“基于JIRA的敏捷开发项目管理”这一主题,面向产品负责人、Scrum Master及研发测试成员,梳理Scrum角色分工、迭代流程与JIRA工具配置的对应关系,适合初、中级团队导入敏捷管理时参考。压缩包共1个docx文件,大…

2026/10/29 0:03:42

SEMI S8人机工程验收实战:从条款拆解到现场实测的完整指南

简介:面向半导体设备设计、制造与运维工程师及安全合规人员,这份资料聚焦SEMI标准体系下的设备安全规范,重点收录SEMI S8-0308《半导体制造设备人体工程学工程安全指南》。内容围绕设备设计原则、错误与事故预防、人体工程学适配三大主线展开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑