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提供的”安博士“在线杀毒(),使用就相当方便,可以有效的查杀木马。另外建议大家使用专门针对木马的查杀软件,如木马克星。
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”,这种方法也是一样的。
当然还可以使用端口进程关联软件、嗅探器等进行查找,这里就不在详细介绍了,有兴趣的朋友可以查看有关技术资料,进行深入研究。
,
文章来源于领测软件测试网 https://www.ltesting.net/