Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/azagarampur/byeintegrity-uac
权限提升漏洞利用渗透测试红队
GitHubazagarampur/byeintegrity-uac

byeintegrity-uac

通过劫持位于本机映像缓存中的DLL绕过UAC

查看仓库
211464年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ByeIntegrity — Windows UAC 绕过

绕过用户帐户控制 (UAC) 以获取提升的(管理员)权限,从而以高完整性级别运行任何程序。

要求

  • 管理员帐户
  • UAC 通知级别设置为默认或更低

2021 年更新

我决定更新 ByeIntegrity,使其更快、更轻量且更可靠。这是一次重大改版,因此我在 VS 解决方案中创建了一个名为“ByeIntegrity2021”的新项目,这是该攻击的更新版本。当然,原始版本仍然存在。有关新版本的更多信息,请展开下面的详细信息。

更新信息

新版本现在能够劫持 NIC,而无需依赖已安装到 NIC 中的现有本机映像。它通过创建自己的本机映像描述符和有效载荷,然后将它们移入 NIC 来实现这一点,从而消除了以下需求:

  • 由 NGEN.exe 生成的现有 *.ni 映像
  • 运行系统维护任务
  • NIC 目录遍历
  • 长时间等待/运行
  • 运行次数有限(在被劫持的 DLL 空间耗尽之前)

CLR 通过对每个条目进行递归目录扫描,然后读取其 *.aux 文件来从 NIC 加载本机映像。该文件包含有关本机映像及其依赖项的信息。根据 AUX 文件中的信息,CLR 将加载或拒绝该映像,然后继续处理下一个候选映像。如果未找到可行的候选映像,它将加载标准映像并使用 jit 正常编译它。实际的本机映像不会被读取(仅检查其是否存在),因此 ByeIntegrity 只需将载荷 DLL 放置为本机映像本应具有的相同名称。

ByeIntegrity 的更新版本附带了一个名为 AUXGen 的工具,它从 GAC 中获取程序集的名称,然后生成其对应的 AUX 文件。生成的 AUX 文件会匹配 CLR 的检查,CLR 将加载由 AUX 文件描述的“本机映像”。注意:AUXGen 在生成 AUX 文件时不处理依赖项。它只做必要的工作,以使 CLR 加载该映像。稍后我将发布 AUX 文件格式的详细信息。

ByeIntegrity 现在像 UACMe 一样使用 ISecurityEditor,这减少了所需的代码。它还要求您已为程序集 MMCEx 生成 AUX 文件,并将其放在与 ByeIntegrity 相同的目录中。由于加载顺序和名称较短,MMCEx 现在成为目标映像。

工作原理

ByeIntegrity 劫持位于本机映像缓存 (NIC) 中的 DLL。NIC 被 .NET Framework 用于存储优化的 .NET 程序集,这些程序集由类似 Ngen(.NET Framework 本机映像生成器)的程序生成。由于 Ngen 通常通过任务计划程序以当前用户的管理员权限运行,因此 NIC 授予管理员组成员修改访问权限。

Microsoft 管理控制台 (MMC) Windows 防火墙管理单元使用 .NET Framework,在初始化时,来自 NIC 的模块被加载到 MMC 进程中。MMC 可执行文件使用 AutoElevate,这是 Windows 使用的一种机制,可以在没有 UAC 提示的情况下自动提升进程令牌。

ByeIntegrity 劫持位于 NIC 中名为 Accessibility.ni.dll 的特定 DLL。它将一些 shellcode 写入 DLL 的 .text 部分中适当大小的填充区域。然后更新 DLL 的入口点以指向 shellcode。在 DLL 加载时,入口点(实际上是 shellcode)被执行。Shellcode 计算 kernel32!CreateProcessW 的地址,创建一个以管理员身份运行的新 cmd.exe 实例,然后简单地返回 TRUE。这仅适用于 DLL_PROCESS_ATTACH 原因;所有其他原因将立即返回 TRUE。

UACMe

此攻击在 UACMe 中实现为方法 #63。如果您想尝试此攻击,请首先使用 UACMe。攻击相同,但 UACMe 使用不同的方法来修改 NIC。ByeIntegrity 使用 IFileOperation,而 UACMe 使用 ISecurityEditor。此外,UACMe 会为您的系统选择正确的 Accessibility.ni.dll,并在必要时执行系统维护任务(以生成 NIC 组件)。ByeIntegrity 简单地选择存在的第一个 NIC 条目(可能不是 MMC 使用的正确条目)并且不运行系统维护任务。ByeIntegrity 包含的代码显著多于 UACMe,因此阅读 UACMe 实现将比阅读 ByeIntegrity 代码更容易理解。最后,ByeIntegrity 在攻击期间启动子进程,而 UACMe 则不这样做。

太长不看:UACMe 比 ByeIntegrity 更简单、更有效,因此请优先使用 UACMe。

使用代码

如果您正在阅读本文,那么您可能知道如何编译源代码。请注意,此代码根本没有针对 x86 进行测试或设计,而且它可能无论如何都无法在 x86 上运行。

就像 UACMe 一样,**我永远不会在此仓库中上传编译后的二进制文件。**总有一些人想让世界崩溃和毁灭,我不会为他们提供一种简单的方法来在别人的计算机上运行此工具并造成故意损坏。我也不希望脚本小子在不了解其作用和可能造成的损害的情况下使用此攻击。

支持的版本

此攻击适用于从 Windows 7 (7600) 到最新版本的 Windows。

下载工具