木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行,电脑就会有一个或几个端口被打开,黑客就可以利用控制端进入运行了服务端的电脑,甚至可以控制被种者的电脑,所以被种者的安全和个人隐私也就全无保障了!
随着微软的操作系统从Win9X过渡到WinNT系统(包括2000/xp/2003),微软的任务管理器也一下子“脱胎换骨”,变得“火眼金睛”起来 (在Win9X中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WinNT中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能欺骗WinNT的任务管理器),这使得以前在win9X操作系统下靠将进程注册为系统服务就能够从任务管理器中隐形的木马面临前所未有的危机,所以木马的开发者及时调整了开发思路,转入了开发可以躲避WinNT的任务管理器的进程查询的动态嵌入式DLL木马。
要弄清楚什么是动态嵌入式DLL木马,我们必须要先了解Windows系统的另一种“可执行文件”——DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,DLL文件一般都是由进程加载并调用的。
因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL。所以木马的开发者就通过编写动态嵌入式DLL木马,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现那个DLL木马。如果那个进程是可信进程(例如资源管理器Explorer.exe),那么就没人会怀疑DLL文件也是个木马了。从而木马就又实现了自己的隐蔽性的功能,所以,预防DLL木马也是相当重要的。
在WinNT系统,DLL木马一般都藏在System32目录下(因为System32是系统文件存放的目录,里面的文件很多,在里面隐藏当然很方便了),针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一次记录:点击开始—运行—输入cmd回车—出现DOS命令行模式—输入cd\回车,再输入cd C:\Windows\System32回车,这就转换目录到了System32目录(要还是不知道怎么进入的,请参看DOS的cd命令的使用),输入命令:dir *.exe>exebackup.txt &dir *.dll>dllbackup.txt回车。
这样,我们就把System32目录下所有的exe文件和所有的dll文件都记录在exebackup.txt和dllbackup.txt里面了。日后如发现系统异常而用传统的方法又查不出问题时,则要考虑是不是系统中已经潜入了DLL木马。
这时我们用同样的方法将System32目录下的EXE和DLL文件记录到另外exebackup1.txt和dllbackup1.txt中,然后运行 CMD—fc exebackup.txt exebackup1.txt>different.txt &fc dllbackup.txt dllbackup1.txt>different.txt(使用FC命令比较前后两次的DLL和EXE文件,并将结果输入到 different.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。
没有是最好,如果有的话也不要直接删除掉,可以先把它移到回收站里,若系统没有异常反应再将之彻底删除,或者把DLL文件上报给反病毒研究中心检查。
最后,防治木马的危害,专家建议大家应采取以下措施:
第一,安装反病毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,使用安全性比较好的浏览器和电子邮件客户端工具。
第四,操作系统的补丁要经常进行更新。
第五,不要随便打开陌生网友传送的文件和下载、使用破解软件。
相信大家只要做好安全防护工作,防治木马并不是那么可怕的。