欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Bypass Win8.1 UAC源码 + 文档

Bypass Win8.1 UAC源码 + 文档

本源码修改至老外最初公布的POC源码(无GUI版的直接利用代码,大家可以自己实现,这里就不放出了)
本文件包含了POC的详细说明:
老外最初放出的绕过win7 UAC的网址如下:
 http://www.pretentiousname.com/misc/win7_uac_whitelist2.html
win8.1的那个Dll劫持已经修复了,我们现在来劫持另外一个exe即可,windows可以劫持的exe有好几个...
源码中BypassUac_Inject.cpp是比较关键的一个文件,其他的一些文件除了进程内存间拷贝代码就是GUI相关的代码了。
该POC程序包括了:
- GUI代码(大部分的代码都是UI相关代码,你可以自己写一个命令行版本的)
- 错误处理/报告 代码 (便于程序出错后诊断)
- 清理代码 (绕过UAC后,清理遗留在系统目录下的Dll)
- 我们可以选择不同的目标进程来注入 (Explorer.exe是比较适合的一个进程,除此之外Calc.exe, Notepad.exe, MSPaint.exe等也可以)
其实代码没有那么复杂,真的。
*注意事项*
  
- 针对于64位的操作系统编译成64位的程序,针对于32位操作系统编译成32位程序...
- 如果你不小心将32位DLL注入到了64位进程中去了,注入过程中程序可能会奔溃,反之亦然... 所以32位对32操作系统,64位对64位操作系统...
- 你选择的目标进程可能需要开启ASLR(地址随机化),如果你关闭了EXE的ASLR,那么目标进程也需要关闭ASLR。本质上来说,Kernel32.dll在两个进程的加载地址要一样,所以两个进程关于地址随机化的处理要保持一致。可以利用的系统进程基本上都开启了ASLR,所以编译选项默认即可。如果你注入过程中发现目标进程崩溃了,这个时候你可以检查一下进程资源管理器中ASLR的情况。
- 该代码多进程/多线程的情况是不安全的(因为黑DLL可能还会使用,所以你可能需要添加互斥体来防止伪DLL被检测删除)
** 利用的细节: **
该代码利用系统的两个漏洞。第一个缺陷比较漏洞,但是也比较难修复。第二个漏洞DLL劫持比较容易修复,这不,win8.1微软就修复了那个经典的sysprep.exe的dll劫持。
漏洞1(普通权限拷贝文件到系统目录而不触发弹窗拦截):
1.1) 我们选择有微软数字签名的程序,例如:Explorer.exe.
1.2) 远程线程注入目标进程。(有没有神马限制呢? 只需要我们选择的进程与我们的主程序位于同一个(Session)会话中,Explorer.exe是一个比较好的目标进程。)
1.3) 被注入的代码创建一个IFileOperation的COM对象。(如果是win7,8,8.1默认UAC选项的话,并且目标进程是拥有微软版权和数字签名程序的话,是不会触发UAC提示的。)
1.4)被注入的代码使用IFileOperation接口将我们的黑Dll拷贝到指定系统文件中
1.5) 被注入的代码将启动带有盾牌的并且是UAC白名单的程序
1.6) 被注入的代码等待带有盾牌的并且是UAC白名单的程序的启动完成。
1.7) 被注入的代码使用IFileOperation接口删除黑Dll。
漏洞2(系统Dll劫持):
BypassUacDll.dll是一个非常简单的动态链接库文件,以资源文件的形式嵌入到主程序BypassUac里面。
我们寻找可以Dll劫持的系统程序。
注意:我们移动/重命名/替换System32下的文件。你会发现如果你以普通权限进行了移动/重命名/替换等操作的话,会弹窗提示以管理员权限操作。所以我们需要前面提到的IFileOperation对象来帮我们完成这些操作。
如何寻找可以Dll劫持的程序呢,监控System32的进程,你会发现C:\Windows\System32\sysprep目录下的sysprep.exe会默认加载一个叫cryptbase.dll的动态链接库。
而这个cryptbase.dll是位于System32目录下面的,目前没有什么好的方法替换掉它,但是我们可以利用漏洞1来复制一个伪造的Dll到sysprep目录下面去,sysprep.exe默认会加载当前目录下的cryptbase.dll,如果找不到的话,才会去System32目录下寻找cryptbase.dll。
注入win8.1下sysprep.exe劫持已经失效了,我们采用另一个程序C:\Windows\System32\migwiz\migwiz.exe。

源码+演示视频+Bin 解压密码均为pediy
源码(vs2010工程,直接编译生成即可)
视频太大,分割为了4个部分,解压前请将文件名最后面的.7z去掉






上传的附件 BypassUAC演示程序使用说明.7z.001.7z
BypassUAC演示程序使用说明.7z.002.7z
BypassUAC演示程序使用说明.7z.003.7z
BypassUAC演示程序使用说明.7z.004.7z
BypassUac 演示程序.zip
BypassUac演示程序源码.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功