仅使用 NTAPI 函数修补 WDigest.dll 即可绕过 Credential Guard

科技   2024-12-23 18:09   广东  

NativeBypassCredGuard 是一款旨在通过仅使用 NTAPI 函数(由 ntdll.dll 导出)修补 WDigest.dll 来绕过 Credential Guard 的工具。它有两种版本:C# 和 C++。

该工具在磁盘上的 WDigest.dll 文件中定位模式“39 ?? ?? ?? ?? 00 8b ?? ?? ?? ?? 00”(如参考部分第一篇文章所述,该模式存在于所有 Windows 版本的此文件中),然后计算必要的内存地址,最后修补 WDigest.dll 中两个变量的值:g_fParameter_UseLogonCredential(为 1)和g_IsCredGuardEnabled(为 0)。

这会强制将纯文本凭证存储在内存中,确保从那时起,每当用户登录时,凭证都以明文形式存储。因此,下次转储 LSASS 进程时,它可能包含纯文本密码。

使用的NTAPI函数是:

  • NtOpenProcessToken 和 NtAdjustPrivilegesToken 启用 SeDebugPrivilege 特权

  • NtCreateFile 和 NtReadFile 打开磁盘上的 DLL 文件的句柄并读取其字节

  • NtGetNextProcess 和 NtQueryInformationProcess 获取 lsass 进程的句柄

  • NtReadVirtualMemory 和 NtQueryInformationProcess 获取 WDigest.dll 基地址

  • NtReadVirtualMemory 读取变量的值

  • NtWriteProcessMemory 将新值写入变量

仅使用 NTAPI 函数,就可以重新映射 ntdll.dll 库以绕过用户模式挂钩和安全机制,这是该工具的可选功能。如果使用,则会从在调试模式下创建的进程中获取干净版本的 ntdll.dll。


用法

NativeBypassCredGuard.exe <OPTION> <REMAP-NTDLL>

选项(必填):

  • check:读取当前值

  • patch:写入新值

重新映射 ntdll (可选):

  • true:重新映射 ntdll 库

  • false(或省略):不重新映射 ntdll 库




示例

读取值(无需ntdll 重新映射):

NativeBypassCredGuard.exe check

补丁值(使用ntdll 重新映射):

NativeBypassCredGuard.exe patch true

    

笔记

  • 该工具专为 64 位系统设计,因此必须编译为 64 位二进制文件

  • 如果无法打开 lsass 的句柄或 PEB 结构不可读,它将无法工作。对于后者,您可以选择使用 kernel32!LoadLibrary 在您的进程中加载 WDigest.dll 以获取其基址,而不是使用 ntdll!NtReadVirtualMemory 和 ntdll!NtQueryInformationProcess 从 lsass 进程中获取它(您有 C 版本中对此代码的注释)。但您将使用不是由 ntdll.dll 导出的函数,而是由 kernel32.dll 导出的函数,进程加载该 DLL 可能很奇怪 :)

  • 0x3rhy基于此项目创建了一个 BOF 文件:BypassCredGuard-BOF-https://github.com/0x3rhy/BypassCredGuard-BOF


项目地址:

https://github.com/ricardojoserf/NativeBypassCredGuard

参考

itm4n撰写的《重新审视 Credential Guard 绕过》 - 一篇出色的分析文章,我从中找到了搜索 DLL 的 .text 部分的模式

  • https://itm4n.github.io/credential-guard-bypass/

WDigest:从坟墓中挖掘死者,作者:neuralhax - 一个很棒的博客,证明了可以使用其他值作为g_fParameter_UseLogonCredential,我还没有测试过,但你可以使用变量useLogonCredential_Value

  • https://neuralhax.github.io/wdigest-digging-the-dead-from-the-grave

探索 Mimikatz - 第 1 部分 - xpn的WDigest - 精彩的博客文章逆向工程和解释 WDigest 凭证缓存

  • https://blog.xpnsec.com/exploring-mimikatz-part-1/



感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里

Ots安全
持续发展共享方向:威胁情报、漏洞情报、恶意分析、渗透技术(工具)等,不会回复任何私信,感谢关注。
 最新文章