论坛风格切换
您好,欢迎光临本站!   登录 注册新用户
  • 3626阅读
  • 1回复

[分享]“黑”语词典:线程插入技术 [复制链接]

上一主题 下一主题
 
发帖
3
黑豆
32
威望
-12
贡献值
0
交易币
0
红豆
0
只看楼主 倒序阅读 0 发表于: 2006-10-28
— 本帖被 mihu 执行锁定操作(2009-04-02) —
现在的木马程序常常和和DLL文件息息相关,被很多人称之为“DLL木马”。DLL木马的最高境界是线程插入技术,线程插入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存,因此也就拥有了那个远程进程相当的权限。无论怎样,都是让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好地保护自己。

    DLL不能独立运行,所以要想让木马跑起来,就需要一个EXE文件使用动态嵌入技术让DLL搭上其他正常进程的车,让被嵌入的进程调用这个DLL的DllMain函数,激发木马运行,最后启动木马的EXE结束运行,木马启动完毕。启动DLL木马的EXE是个重要角色,它被称为Loader,Loader可以是多种多样的,Windows的Rundll32.exe也被一些DLL木马用来作为Loader,这种木马一般不带动态嵌入技术,它直接注入Rundll32进程运行,即使你杀了Rundll32进程,木马本体还是存在的。利用这种方法除了可以启动木马之外,不少应用程序也采用了这种启动方式,一个最常见的例子是“3721网络实名”。

    “3721网络实名”就是通过Rundll32调用“网络实名”的DLL文件实现的。在一台安装了网络实名的计算机中运行注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”,发现一个名为“CnsMin”的启动项,其键值为“Rundll32 C:\WINDOWS\Downlo~1\CnsMin.dll,Rundll32”,CnsMin.dll是网络实名的DLL文件,这样就通过Rundll32命令实现了网络实名的功能。

 

    简单防御方法

    DLL木马的查杀比一般病毒和木马的查杀要更加困难,建议用户经常看看系统的启动项中有没有多出莫名其妙的项目,这是DLL木马Loader可能存在的场所之一。如果用户有一定的编程知识和分析能力,还可以在Loader里查找DLL名称,或者从进程里看多挂接了什么陌生的DLL。对普通用户来说,最简单有效的方法还是用杀毒软件和防火墙来保护自己的计算机安全。现在有一些国外的防火墙软件会在DLL文件加载时提醒用户,比如Tiny、SSM等,这样我们就可以有效地防范恶意的DLL木马了。