前言
昨天没有讲拿破轮胎大佬工具的原理,同时工具生成的DLL目前不是免杀的。所以这里讲一下工具的原理。实际上,注入工具会将输入的shellcode进行一个处理,然后将他写入到和 conf.inf
文件中,然后 wwwcomw.dll
可以看成一个shellcode加载器,这里就是分离免杀的原理。工具还帮我完成了修改输入表的步骤。然后我们只需要把 wwwcomw.dll
和 conf.inf
放置到exe运行目录即可。
输入表注入原理
当Exe被加载时,系统会根据Exe输入表信息来加载需要用到的DLL,输入表注入的原理就是修改exe输入表,将自己的DLL添加到exe的输入表中,这样exe运行时可以将自己的DLL加载到exe的进程空间。
输入表注入方法
DLL实例源码:
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include <windows.h>
#include <iostream>
HANDLE My_hThread = NULL;
DWORD WINAPI ceshi(LPVOID pParameter)
{
MessageBox(NULL, L"Zero Team", L"Zero team", MB_OK);
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
My_hThread = ::CreateThread(NULL, 0, &ceshi, 0, 0, 0);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
extern"C" _declspec(dllexport) void test()
{
int a;
a = 0;
}
编译如上代码,得到dll文件。
使用LordPe查看输出表,可以看到我们写的test函数。
使用Stud_PE添加输入表,导入exe查看函数。
添加新的输入表,选择DLL,选择函数,加入清单。
将DLL放置到exe运行目录,运行exe。
结语
对于该技术的研究仅限于在渗透测试或者钓鱼中的使用,所以没有太多的逆向原理知识部分。关于其他逆向原理知识和DLL处理方面,有兴趣的可以自己研究~
原文始发于微信公众号(零队):输入表注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论