现在的位置: 首页 > 综合 > 正文

使用DLL技术的木马分析

2013年03月29日 ⁄ 综合 ⁄ 共 2378字 ⁄ 字号 评论关闭

"木马"大家都不陌生,给我们的系统安全带来很大的危害。而且现在的木马采用的技术越来越高,开始采用以".exe或.com"为后缀的可执行文件,但这种技术隐蔽性很差,将木马进程注册为系统服务后,虽然在WINDOWS98系统中可以隐藏,但在基于WINNT内核的系统中却一览无遗,用WINDOWS任务管理器很容易发现它们,为了达到隐藏的目的,DLL技术是广泛使用的一种手段,这种木马的隐蔽性很强,难以发现。

  DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows系统的基础,DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL文件,这样木马利用DLL文件的这种特性,把自身的木马功能部分解压缩到DLL库文件中,就可以很有效的隐藏自己,那DLL文件不能独立运行,木马怎么才能运行呢?

 运行DLL文件最简单的方法是利用Rundll32.exe,Rundll32者,顾名思义,执行Dll(动态链接库)也,是Windows用来调用32位DLL函数时所使用的命令(16位的DLL文件使用rundll.exe),Rundll32的使用方法如下:

  “rundll32.exe 动态链接库名 ,函数名, 参数名”

 下面就以“Win32.Lovgate.H新变体”木马病毒为例,看看他们如何通过调用Rundll32命令来实现自身的加载。
  
   “Win32.Lovgate.H新变体”木马病毒会把自身的木马功能部分解压缩到一个个DLL库文件中,以便此木马以一个单独程序来运行,“reg678.dll”和“Task688.dll ”就是这样的文件,然后把木马的DLL文件添加到启动项中以及注册成服务,如下修改注册表:
 “HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run”中,添加键名为“Remote Procedure Call Locator”的启动项,其值为“RUNDLL32.EXE reg678.dll ondll_reg”(图一)。
另外它还做以下修改:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/ll_reg
"ImagePath" = "RUNDLL32.EXE Task688.dll ondll_reg"
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NetMeeting Remote Desktop (RPC) Sharing,
"ImagePath" = "RUNDLL32.EXE Task688.dll ondll_reg"

这样在WINDOWS任务管理器就没办法发现它,因为“Win32.Lovgate.H新变体”是使用Rundll32程序调用的,进程列表中根本不存在木马进程,是不是很诡秘。即使你在注册表启动项看到“RUNDLL32.EXE reg678.dll ondll_reg”,也会以为是RUNDLL32.EXE调用系统DLL文件,怎么想到这就是木马,太可怕了。
  另外,还有一种情况更为诡秘,就是把木马的DLL文件替换成系统常用的DLL文件,如把木马写成wsock32.dll文件,替换掉原先的wsock32.dll,将原先的DLL文件重命名为wsockold.dll,这种方法隐蔽性更强,很难发现。
  

     那我们怎么来防范这些使用DLL技术的木马呢?下面就介绍一些经验。

1、安装病毒木马防火墙
  现在的用户都很注意病毒木马的防范,但要经常升级病毒数据库,这样就可以有效的查杀绝大部分木马病毒,另外,很多网站提供免费的在线杀毒,这就更方便用户查杀木马,比如3721提供的”安博士“在线杀毒(http://assistant.3721.com/),使用就相当方便,可以有效的查杀木马。另外建议大家使用专门针对木马的查杀软件,如木马克星。

2、使用进程/内存模块查看器
  DLL木马对于进程管理器来说是隐藏的,所以我们既不能用进程管理器来查找,也无法直接将它停止运行,因此,我们不能指望NT自带的进程管理器了,需要使用一些附加的工具。
 为了能发现DLL木马,我们必须能查看内存中“RUNDLL32.EXE”运行的DLL文件,大家可以使用WINDOWS优化大师自带的”进程管理器“(图二),来查看DLL文件使用的情况,看看是否有异常,当然这需要用户对WINDOWS系统有一定的了解才行。另外还要注意,可能木马的DLL文件替换了系统常用的DLL文件,这时,就要查看DLL文件的大小是否变化,如果它的大小和正常情况有很大出入,那么就要小心了。

3、查看注册表启动项有无异常键名
  单击”开始-->运行“,在运行对话框中输入”msconfig",然后切换到“启动”选项页,这里要注意启动项中有无异常键名,如“Win32.Lovgate.H新变体”木马病毒会在启动项中添加”rundll32“项目,其值为“RUNDLL32.EXE reg678.dll ondll_reg”(msconfig图片),遇到这种类似情况大家一定要留心,WINDOWS2000不自带“msconfig”程序,将WINDOWS XP下的msconfig文件拷贝过去即可。
另外,还可以在运行对话框中输入”regedit"命令,依次展开“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run”,这种方法也是一样的。

 当然还可以使用端口进程关联软件、嗅探器等进行查找,这里就不在详细介绍了,有兴趣的朋友可以查看有关技术资料,进行深入研究。 

抱歉!评论已关闭.