与特洛伊木马过招

Author: 奇奇(cn77@126.com) Date: 2000年 第4期

#1    什么是特洛伊木马
  特洛伊木马来自于希腊神话,这里指的是一种黑客程序,它一般有两个程序,一个是服务器端程序,一个是控制器端程序。如果你的电脑安装了服务器端程序,那么,黑客就可以使用控制器端程序进入你的电脑,通过命令服务器端程序达到控制你的电脑的目的。
  对个人上网电脑威胁最大的就是病毒和特洛伊木马(以下简称木马),不要以为你的电脑没有什么秘密的资料,你就不怕木马了。首先,中了木马的电脑什么安全性也没有了,拨号上网的密码、信箱密码、主页密码,甚至网络信用卡密码也会被偷走。其次,黑客要是有病毒,就可以通过木马传染到你的电脑上来,你平时再谨慎也没有用了。你的鼠标被人家控制,键盘被锁上了,屏幕被人家看见了,电脑还算是你的吗?
  所以,你应当留神自己的电脑有没有木马,我在网络上看过很多关于安全的文章,涉及木马的比较少。另外有些文章对木马有错误的认识,比如某报的文章《注册表的妙用》中有句话:“不管是什么样的后门工具,也许在它运行后就会消失,但有它逃不过的地方,那就是你的Win.ini、启动组和注册表!”如果经常玩木马的人,就该知道,非自动方式启动的木马可以被捆绑到任何程序中,比如将木马捆绑到OICQ程序上,在注册表等启动组中均找不到痕迹,而你一旦启动OICQ,就会启动木马。在我们的电脑中,可执行程序(EXE、COM程序)有上千个是不希奇的,都可以成为捆绑的对象。
  因为木马对个人电脑是个重大的威胁,所以我们应详细了解这种“网络杀手”。
#1    特洛伊木马的基本知识
  一般黑客要让你安装上木马的办法是写信给你,告诉你在附件中有一个很好的软件,你运行以后却没有什么反应,这时,木马已悄悄安装到你的电脑中了。
  一般的程序需要我们点击该程序才会运行,那么木马是怎样启动的呢?
  木马为了能在每次电脑开机的时候进入内存发挥作用,主要手法是加载到注册表的启动组中或者捆绑到其他程序中,这些被捆绑程序在电脑启动时,由Windows自动安装,或由用户自己需要运行该程序而启动的。
  黑客通常是和你电脑中的木马程序联系,当木马程序在你的电脑中存在的时候,黑客就可以通过控制器端软件命令木马做事情了。这些命令是在网络上传递的,须要遵守TCP/IP协议。TCP/IP协议规定电脑的端口有256×256=65536个,从0到65535号端口,木马打开一个或者几个端口,黑客所使用的控制器端软件就是通过木马的端口进入你的电脑的。这些端口好像“后门”一样,所以,也有人把特洛伊木马叫做后门工具。
  每个木马所打开的端口不同,根据端口号,可以识别不同的木马,比如NETSPY木马的端口是7306、SUB7的端口是1243。但是,有些木马的端口号是可以改变的,比如SUB7,黑客通过控制器端软件可以将端口改变成12345等号码。
  特洛伊木马要能发挥作用必须具备三要素:①木马需要一种启动方式,一般在注册表启动组中;②木马需要在内存中才能发挥作用;③木马会打开特别的端口,以便黑客通过这个端口和木马联系。基于这三点,我们可以采用相关对策来删除木马,以防御黑客的攻击。
#1    发现和删除木马
  在删除木马之前,最最重要的一项工作是备份。你需备份注册表,防止系统崩溃;备份你认为是木马的文件,如果不是木马就可以恢复,如果是木马你就可以对木马进行分析。
    删除木马最简单的方法是安装杀毒软件,现在很多杀毒软件都能删除网络最猖狂的木马,比如BO(Back Orifice)木马。当然手动删除是最重要的,因为很多木马是不会被杀毒软件删除的,黑客完全可以给你装上这样的木马。大部分木马会放在启动项中,最常见的是加载到注册表的启动组中,在这种情况下,木马会进入内存,打开端口,你只要使用TCPVIEW,看看自己有什么可疑的端口开放就行了。如果有可疑的端口开放,请按照以下步骤进行:先记下这个端口号,然后打开ATM软件看看内存中正在运行哪些软件,请把这些软件名称和硬盘位置用笔记到纸上,然后终止某个程序运行,如果端口还是开放着,那么被你终止运行的程序不是木马,然后继续终止下一个,直到端口不再开放,也就找到了木马。
  木马程序的运行都是隐蔽的,你在屏幕上不可能看到木马窗口,因为木马程序在运行时是“隐含”的。在ATM中可以看到“标志”带“S”的程序是后台运行的,带“S”标志的一般有两种:一种是系统文件,另一种就是木马。终止系统文件的运行可能导致死机,所以,你应具备一定的Windows知识。
  当你找到木马以后,你须要做的第一件事情就是备份木马样本,这是很重要的。一来可以仔细研究,二来你把系统弄崩溃了可以恢复。备份以后,需要验证一下是不是木马,新建一人目录,把木马移到这里,运行,看看端口打开吗?原目录中是不是又生成了这个文件?是的话可以确认为木马。
    接下来就是删除木马,你先终止该程序在内存中的运行,保证端口没有打开,注意,先不要在硬盘上删除该文件!首先到注册表中去查找包含该文件名的键值,如果在启动组中找到了就先用笔记下该键值,然后删除。在注册表的其他很多位置也会启动木马,不只是在电脑开机的时候,在某种特定的条件下也会启动。以冰河木马为例,该木马除了注册表启动组启动外,还在注册表的这个位置做了手脚:HKEY_CLASSES_ROOT\txtfile\shell\open\command,键值名:(默认),键值:C:\WINDOWS\SYSTEM\SYSEXPLR.EXE %1。我们打开文本文件有两种办法:一种是先打开记事本程序,然后打开文本文件;第二种是在硬盘上直接双击文本文件。如果是第二种的话,就惨了,电脑发现你点击的文件后缀是TXT,它就到注册表中去找对应的程序,原来应该找到的是C:\WINDOWS\NOTEPAD.EXE,现在变成了C:\WINDOWS\SYSTEM\SYSEXPLR.EXE,你就中上木马了。
  同样道理,你点击EXE也可能中木马,点HTM也可能中木马。这样的木马就麻烦多了,只有你先找到木马,然后再到注册表中去找了。所以,平时请多注意看看TCPVIEW,看看有没有端口打开着。
  注册表的启动一般就这两种,启动组和非启动组。如果是修改其他的文件,那么也可以用同样的办法,到硬盘上去找包含该木马文件名的INI和EXE或者DLL文件。如果找到INI文件,先打开看看是在什么位置,比如是Foxmail.ini的话,启动Foxmail看看,木马是不是进入内存,端口有没有打开,如果是的话,那么是Foxmail.ini被修改了,它会帮助木马启动。请修改INI文件,就可以了。如果是其他的EXE文件启动,那么运行这个程序,木马是不是被装入内存,端口呢?是的话,说明要么是该文件启动木马程序的,要么是该文件捆绑了木马程序。
  如果是Windows自带的程序,你可以到安装光盘上去释放一个出来,覆盖一下就行了。如果是你自己安装的程序,你看着办好了,可以到其他地方弄一个来,可以重新安装一下。如果是DLL文件,可以比照EXE文件的办法。另外,请注意后缀名是DL的文件。
  还有一点,现在的硬盘很大,C盘上有1000M的文件是不希奇的,如果你找每个文件的话就累死了。你可以找小于4M或者3M的文件,理由是:我们的猫最快也不过是56K,如果黑客真的进入了我的电脑,把一个捆绑文件送到C盘上,其过程就等于我在下载文件,黑客不可能高速地往我的电脑中上传文件,因为会被我发现,黑客也不可能像网络蚂蚁一样多线程并且断点续传,所以要往我的电脑中上传3M的文件需要很长时间,而且这个黑客要有很大的耐心,至于10M左右的文件更是不可能了,所以,你只需要在硬盘上找3M或者4M以下的文件就可以了。
  除了上面说的启动木马情况外,最常见的就是捆绑木马了。比如将木马捆绑到浏览器上,你开机检查没有端口开放,上网以后一打开浏览器,木马被附带启动了,木马端口打开,黑客可以进入了。捆绑有两种办法:一种是手动的;另一种是木马自带捆绑配置工具。两种情况都一样,按照捆绑的先后次序,可以分为主程序和次程序,一般将原程序作为主程序,将木马程序做次程序,不过将木马做主程序也是可以的。例如捆绑到IRC上后,你只要启动捆绑后的IRC程序,主程序不变,照样启动,同时会在系统的临时文件夹生成次程序并执行,默认的临时文件夹是C:\windows\temp。这样,办法就来了,你可以经常去看看临时文件夹,有什么程序没有?可能发现的是原程序,也可能是木马。删除的办法很简单,重新安装一次。因为木马是捆绑的,木马样本也很难备份。
  经常不打扫TEMP目录的人,可能有上千个文件,也有可能有程序在,但不是木马,例如你运行WinZip压缩包中的程序,就会在TEMP目录中生成文件。
  这仅仅是简单的查找方法,一来,如果你没有运行捆绑程序,你就不能发现;二来,这种查找办法不是很彻底。要想完全删除未知的木马捆绑程序是一件很困难的事情,对于已知的木马捆绑程序,可以用特征字符串查找一下,你可以在硬盘上找小于3M的可执行文件有没有包含这些特征字符串。
#1    对付特洛伊木马的工具
  要想删除木马,你必须有几款上手的工具:
  1.TCPVIEW
  这是查看端口和线程的。只要木马在内存中运行,一定会打开某个端口,只要黑客进入你的电脑,就有新的线程,TCPVIEW虽然是静态表示端口和线程的,但是它方便,占用资源少。
  2.ATM
  木马在内存中运行,你想终止它运行,ATM是最好的工具。它已被汉化,而且不用安装,你可以在界面上清楚地看到什么软件在运行、软件的硬盘位置等,对查找木马很有帮助。
  3.REGEDIT
  这是Windows自带的,位置在:C:\windows\regedit.exe,它是注册表修改工具。大部分的木马是在注册表的启动组添加键值,以便在电脑启动时运行。你可以使用Regedit对注册表进行修改,但是,请千万小心,弄错了可能造成系统崩溃。
  4.LockDown
  被认为是最好的防御工具,虽然不像别人说的那么好,但是能删除很多木马,能监视注册表的变化,这就足够了。
  5.NukeNabber
  监视端口的工具,如果黑客扫描过这些端口的话,它就会报警,监视的端口可以自定。
#1    防御工具LockDown
    使用的LockDown的版本是4.0.1.6。在网络上很多人已经对网络安全有所重视,LockDown(简称LD)被认为是最好的动态防御工具。
    LD能监视几个Windows的系统文件,如注册表和System.ini等。如果注册表发生改变,它会告诉你。当你不小心运行了某些包含木马的软件,它就会提醒你。它的好处在于,能随时监视注册表等文件的变化,你不用担心误操作,它会提醒你,并且对删除木马有帮助。不足之处是,如果你以前已经安装了木马,那么会被它认为是合法的,它只注意LD安装以后的变化。
    还有,大部分木马的启动方式是加载到系统程序上,并以单独文件存在,启动方式是由系统程序唤醒木马,然后运行的。有些木马并不是加载到注册表或者系统程序上,而是捆绑在某个文件上。这两种情况,LD可能会监测不到。
    LD已经取得了488个木马的特征,如果你中了这些木马,那么可以由它帮你删除,但是,它的木马列表也不是最全的,我所知道的几个木马LD就查不出来。
    LD监视黑客的非法入侵过程很复杂,监视必须要打开端口,LD打开以下端口进行监视:54320、53、12345、30029、4950、139、1243。比如12345端口是木马NetBus木马所开启的,当黑客想进入你的12345端口的时候,LD就会报警,并显示黑客的IP地址。
    我们现在知道木马有很多种,开启的默认端口也有很多,为什么LD不监视所有的端口?因为内存不够,TCP/IP协议规定端口范围是1~65335之间,因为内存的原因,不可能打开所有端口监视,如果你中了某个木马,而木马所开启的端口不在LD监视范围内,那么LD是不会报警的。你可以做这样一个试验,先关闭LD,然后运行netspy.exe,让自己中木马,然后开启LD,这时候,你试试看进入自己的电脑,LD不会告诉你有人进入了你的电脑了。
    当然,LD会发现注册表的改变,但对不加载注册表的木马就无能为力。所以说LD也不能发现所有进入你电脑的黑客。
    另外,LD会神经过敏,当你打开LD监视的时候,再用扫描器扫描自己的端口,如果扫过12345就会告诉你NetBus木马入侵,如果扫过1243就会告诉你SUB7入侵你的电脑。你可以试验一下,在浏览器中输入http:∥自己的IP地址:1243/,那么LD马上告诉你有黑客使用SBU7攻击你,这个黑客的IP地址就是你的IP地址。
    LD还宣称可以防御炸弹,我用了一个最新的炸弹立马把自己炸死了,看来此功能言过其实。
    不管怎么说,请LD出来帮你扫描你的硬盘还是防黑客的一个好工具。
    部分特洛伊木马的特征如^04040301a^
    对本文感兴趣的读者可访问作者站点:http:∥cn77.126.com。