木马工作的原理与检测及删除

一、木马工作的原理

  在Windows系统中,木马一般作为一个网络服务程序在种了木马的机器后台运行,监听本机一些特定端口,这个端口号多数比较大(5000以上,但也有部分是5000以下的)。当该木马相应的客户端程序在此端口上请求连接时,它会与客户程序建立一TCP连接,从而被客户端远程控制。

  既然是木马,当然不会那么容易让你看出破绽,对于程序设计人员来说,要隐藏自己所设计的窗口程序,主要途径有:在任务栏中将窗口隐藏,这个只要把Form的Visible属性调整为False,ShowInTaskBar也设为False。那么程序运行时就不会出现在任务栏中了。如果要在任务管理器中隐身,只要将程序调整为系统服务程序就可以了。

  好了,现在我们对木马的运行有了大体了解。让我们从其运行原理着手来看看它藏在哪。既然要作为后台的网络服务器运行,那么它就要乘计算机刚开机的时候得到运行,进而常驻内存中。想一想,Windows系统刚启动的时候会通过什么项目装入而运行一些程序呢?你可能会想到“开始->程序->启动”中的项目!没错,这是Windows启动时要运行的东西,但要是木马服务器程序明显地放在这就不叫木马了。

  木马基本上采用了Windows系统启动时自动加载应用程序的方法,包括有win.ini、system.ini和注册表等。

  在win.ini文件中,[WINDOWS]下面,“run=”和“load=”行是Windows启动时要自动加载运行的程序项目,木马可能会在这现出原形。必须要仔细观察它们,一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的或以前没有见到过的启动文件项目,那么你的计算机就可能中上木马了。当然你也得看清楚,因为好多木马还通过其容易混淆的文件名来愚弄用户。如AOL Trojan,它把自身伪装成command.exe文件,如果不注意可能不会发现它,而误认它为正常的系统启动文件项。

  在system.ini文件中,[BOOT]下面有个“shell=Explorer.exe”项。正确的表述方法就是这样。如果等号后面不仅仅是explorer.exe,而是“shell=
Explorer.exe 程序名”,那么后面跟着的那个程序就是木马程序,明摆着你已经中了木马。现在有些木马还将explorer.exe文件与其进行绑定成为一个文件,这样的话,这里看起来还是正常的,无法瞧出破绽。

  隐蔽性强的木马都在注册表中作文章,因为注册表本身就非常庞大、众多的启动项目及易掩人耳目。
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

  上面这些主键下面的启动项目都可以成为木马的容身之处。如果是Windows NT,那还得注意HKEY-LOCAL-MACHINE\Software\SAM下的东西,通过regedit等注册表编辑工具查看SAM主键,里面下应该是空的。

  木马驻留计算机以后,还得要有客户端程序来控制才可以进行相应的“黑箱”*作。要客户端要与木马服务器端进行通信就必须得建立一连接(一般为TCP连接),通过相应的程序或工具都可以检测到这些非法网络连接的存在。具体如何检测,在下面有详细介绍。

二、检测木马的存在

  知道木马启动运行、工作的原理,我们就可以着手来看看自己的计算机有没有木马存在了。

  首先,查看system.ini、win.ini、启动组中的启动项目。由“开始->运行”,输入msconfig,运行Windows自带的“系统配置实用程序”。

  1、查看system.ini文件

  选中“System.ini”标签,展开[boot]目录,查看“shell=”这行,正常为“shell=Explorer.exe”,如果不是这样,就可能中了木马了。下图所示为正常时的情况:


2、查看win.ini文件

  选中win.ini标签,展开[windows]目录项,查看“run=”和“load=”行,等号后面正常应该为空,如下图所示:


3、查看启动组

  再看看启动标签中的启动项目,有没有什么非正常项目?要是有象netbus、netspy、bo等关键词,极有可能就是木马了。本人一般都将启动组中的项目保持在比较精简的状态,不需要或无大用途的项目都屏蔽掉了。如下图,只是选中了与注册表检查、音量控制、输入法和能源保护相关的启动栏。到时要是有木马出现,自是一目了然。


4、查看注册表

  由“开始->运行”,输入regedit,确定就可以运行注册表编辑器。再展开至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件项目,比如netbus、netspy、netserver等的单词。注意,有的木马程序生成的服务器程序文件很像系统自身的文件,想由此伪装蒙混过关。比如Acid Battery木马,它会在注册表项“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下加入
Explorer=“C:\WINDOWS\expiorer.exe”,木马服务器程序与系统自身的真正的Explorer之间只有一个字母的差别!


通过类似的方法对下列各个主键下面的键值进行检查:
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce


  如果*作系统是Windows NT,还得注意HKEY-LOCAL-MACHINE\Software\SAM下面的内容,如果有项目,那极有可能就是木马了。正常情况下,该主键下面是空的。

  当然在注册表中还有很多地方都可以隐藏木马程序,上面这些主键是木马比较常用的隐身之处。除此之外,象HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run的目录下都有可能成为木马的藏身之处。最好的办法就是在HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run或其它主键下面找到木马程序的文件名,再通过其文件名对整个注册表进行全面搜索就知道它有几个藏身的地方了。

  如果有留意,注册表各个主键下都会有个叫“(默认)”名称的注册项,而且数据显示为“(未设置键值)”,也就是空的。这是正常现象。如果发现这个默认项被替换了,那么替换它的就是木马了。
5、其它方法

  上网过程中,在进行一些计算机正常使用*作时,发现计算机速度明显起了变化、硬盘在不停的读写、鼠标不听使唤、键盘无效、自己的一些窗口在未得到自己允许的情况下被关闭、新的窗口被莫名其妙地打开.....这一切的不正常现象都可以怀疑是木马客户端在远程控制你的计算机。

  如果怀疑你现在正在被木马控制,那么不要慌张地去拔了网线或抽了Modem上的电话线。有可能的话,最好可以逮到“黑”你的那个家伙。下面就介绍一下相应的方法:

  由“开始->运行”,输入command,确定,开一个MS-DOS窗口。或者由“开始->程序->MS-DOS”来打开它。在MS-DOS窗口的命令行键入“netstat”查看目前已与本计算机建立的连接。如下图所示:


显示出来的结果表示为四列,其意思分别为Proto:协议,Local Address:本地地址,Foreign Address:远程地址,State:状态。在地址栏中冒号的后面就是端口号。如果发现端口号码异常(比如大于5000),而Foreign Address中的地址又不为正常网络浏览的地址,那么可以判断你的机器正被Foreign Address中表示的远程计算机所窥视着。在对应行的Foreign Address中显示的IP地址就是目前非法连接你计算机的木马客户端。

  当网络处于非活动状态,也就是目前没什么活动网络连接时,在MS-DOS窗口中用netstat命令将看不到什么东西。此时可以使用“netstat -a”,加了常数“-a”表示显示计算机中目前处于监听状态的端口。对于Windows98来说,正常情况下,会出现如下的一些处于监听状态的端口(安装有NETBEUI协议):


  如果出现有不明端口处于监听(LISTENING)状态,而目前又没有进行任何网络服务*作,那么在监听该端口的就是特洛伊木马了!如下图所示的23456和23457端口都处于监听状态,很明显是木马造成的。

  注意,使用此方法查询处于监听状态的端口,一定要保证在短时间内(最好5分钟以上)没有运行任何网络冲浪软件,也没有进行过任何网络*作,比如浏览网页,收、发信等。不然容易混淆对结果的判断。



反木马软件
  这里列出的是全世界最知名的反木马软件的介绍和它们的网站,我强烈建议大家去这些网站看看,从中选择出一套最适合你自己的反木马软件。

  1.木马克星
  木马克星是国人开发的一款查杀木马软件,可以查杀5021种国际木马,112种电子邮件木马,保证查杀冰河类文件关联木马,QQ类寄生木马,ICMP类幽灵木马,网络神偷类反弹木马。内置木马防火墙,任何黑客试图与本机建立连接,都需要木马克星确认。不仅可以查杀木马,更可以查黑客。该软件是动态监视网络与静态特征字扫描的完美结合,可以查杀的木马种类非常多,尤为难得的是对国产木马的查杀效果非常好,对新木马的反映速度非常快,并且占用系统资源也不多,强烈推荐下载地址!http://gt.onlinedown.net/down/iparmor.exe。
 
  2.TDS-3
  TDS全称为Trojan Defence Suite(木马防卫系统)。从名字上就可以知道这是一套对信息安全有要求的电脑用户必备的安全软件。它拥有许多其他反木马软件所不具备的特色功能。由于它功能齐全,选项繁多,如果你是新手的话,你将要花一些时间阅读使用说明,从而熟悉它的强大功能和使用方法。
  网址:http://tds.diamondcs.com.au/

  3.LockDown2000
  这是一套非常优秀的反木马软件包,不仅拥有数量庞大的木马资料库,而且对于很多知名黑客工具的检测也独具特色;它还可以帮助你实时监测你的系统文件变化,运行进程资料以及注册表的修改。更加详细的介绍,可以从它的网站http://www.lockdown2000.com/获得。

  4.TFAK5
  全称为Trojans First Aid Kit,只是一个由SnakByte开发的木马检测软件,拥有许多非常有特色的功能。最出名的一项是它本身可以当作很多知名木马的客户端使用。
  下载地址:http://www.snake-basket.de/tfak/TFAK5.zip

  5.Trojan Remover
  rojan Remover是一个专门用来清除特洛伊木马和自动修复系统文件的工具,能够检查系统登录文件、扫描WIN.INI、SYSTEM.INI和系统登录文件,且扫描完成后会产生Log信息文件,并帮你自动清除特洛伊木马和修复系统文件。下载地址为http://gwbn.onlinedown.net/down/trjsetup.exe.
 
  6.PestPatrol
  此软件不光可以检测数量众多的木马。对于很多黑客软件和间谍软件的检测能力也是一流。
  网址:http://www.saferstite.com/

  7.Tauscan
  Tauscan必备软件之一,其最大特色是可以检测其木马库中没有收录的未知木马,官方主页http://www.agnitum.com/roducts/tauscan  8.The Cleaner

  8.The Cleaner
  这可能是目前最好的反木马工具,也是目前查木马数量最多的工具软件。The Cleaner可在目前主要的Windows平台如Windows 9x/NT/2000/XP中应用。它最招人喜爱的地方是可以随时自动升级,只要轻点UPDATE按钮即可,不像LOCKDOWN还要查你的密码,绝对是查木马工具的首选。它的实时监控程序TCA可即时显示当前所有运行程序并有详细的描述信息,是你了解系统的好帮手。可到http://newhua.ruyi.com/down/clear3.exe下载。界面如图7-1-5所示。
  9.PC Door Guard    
  是一款木马检测软件,并且允许你监控特定文件和文件夹的读写*作。相关站点:http://www.trojanclinic.com/pdg.html

  10.TrojanHunter
  是一款非常小巧,易于上手的木马检测软件,地址:http//www.mischel.dhs.org/tojanhunter.jsp

  11.LogMonitor
  LogMonitor是非常专业的文件和目录实时监控软件,对你制定的任何文件和目录,都会忠实详尽地记录所有的读写*作。更加难得的是,尽管它功能如此强大,使用却异常简单,任何人都能轻松上手。
  主页:http://logmon.bitrix.ru/logmon/eng/

  12.PrcView
  这是一款专业而强大的进程管理工具,可以非常详细地显示当前系统运行的各个进程的各种信息,包括非常详细的进程初始化数据,进程建立时间,进程版本,所使用的DU名,创建的所有线程的信息,进程的堆和内存分配情况。PrcView还允许你结束一个指定的进程,为特定的线程配上特定的Debug程序等。可以在Win95/Win98/WinNT平台上顺利运行,并且有GUI和命令行两种版本,功能非常强大,强烈推荐使用。
  下载地址:http://Sq.onlinedown.net/down/HAF-PrcView3538-Ronnier.zip

  13.XNetStat
  GUI界面的Windows程序。帮助你监控你机器上所有打开的端口。从该地址可以得到该软件:
  http//packetstormsecurity.org/win/netstat.zip

  14.ConSeal PC FIREWALL    如果你对于TCP/IP等常用网络协议有一定的了解,那么这个防火墙将非常适合你。通过合理的配置,它将非常忠实地把你的计算机置于强大的保护力量之下,详细信息,可以访问:
  http://www.consealfirewall.com/

  15.Filemon
  Filemon是文件监视工具。可监视系统中指定文件运行状况,如指定文件打开了哪个文件,关闭了哪个文件,对哪个文件进行了数据读取等。通过它,你指定监控的文件有任何读、写、打开其他文件的*作那能被它监视下来,并提供完整的报告信息。你可以利用Filemon监控文件系统,以便窥视木马的一举一动。界面如图7-1-6所示。
  下载地址:http://newhua.ruyi.com/down/FILEMON.ZIP

  16.注册表监视工具Regmon等
  注册表监视工具主要有RegShot,Regmon或RegSnap等。在微软*作系统中,众多的设置都存放在注册表中,注册表是Windows的核心数据库,表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的正常运行。在应用软件安装时,有可能将一些必要的信息放进去,如安装时间、使用次数、注册码等,其中也有我们感兴趣的服务端所建键值等信息。RegShot、Regmon或RegSnap就是监视注册表变化的工具,通过它可以了解、监视应用程序在注册表中的动作,我们可以利用它们来监视可疑程序 (很可能是木马服务端程序哦)在注册表中的变化,界面如图7-1-7所示。Regmon下载地址:http://www.newhua.com.cn/down/regmnmtor.exe