|
“特洛伊木马”(trojan horse)简称“木马”,据说这个名称来源于希腊神话《木马屠城记》。古希腊有大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神,让士兵藏匿于巨大的木马中,大部队假装撤退而将木马摈弃于特洛伊城下。城中得知解围的消息后,遂将“木马”作为奇异的战利品拖入城内,全城饮酒狂欢。到午夜时分,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,部队里应外合,焚屠特洛伊城。后世称这只大木马为“特洛伊木马”。如今黑客程序借用其名,有“一经潜入,后患无穷”之意。
完整的木马程序一般由两个部份组成:一个是服务器程序,一个是控制器程序。“中了木马”就是指安装了木马的服务器程序,若你的电脑被安装了服务器程序,则拥有控制器程序的人就可以通过网络控制你的电脑、为所欲为,这时你电脑上的各种文件、程序,以及在你电脑上使用的帐号、密码就无安全可言了。
木马程序不能算是一种病毒,但越来越多的新版的杀毒软件,已开始可以查杀一些木马了,所以也有不少人称木马程序为黑客病毒。
特洛伊木马是如何工作的
一般的木马程序都包括客户端和服务端两个程序,其中客户端是用于攻击者远程控制植入木马的机器,服务器端程序即是木马程序他所做的第一步是要把木马的服务器端。攻击者要通过木马攻击你的系统,程序植入到你的电脑里面。
目前木马入侵的主要途径还是先通过一定的方法把木马执行文件弄到被攻击者的电脑系统里,利用的途径有邮件附件、下载软件中等,然后通过一定的提示故意误导被攻击者打开执行文件,比如故意谎称这个木马执行文件,是你朋友送给你贺卡,可能你打开这个文件后,确实有贺卡的画面出现,但这时可能木马已经悄悄在你的后台运行了。一般的木马执行文件非常小,大部分都是几K到几十K,如果把木马捆绑到其他正常文件上,你很难发现,所以,有一些网站提供的软件下载往往是捆绑了木马文件的,你执行这些下载的文件,也同时运行了木马。
木马也可以通过Script、ActiveX及Asp.CGI交互脚本的方式植入,由于微软的浏览器在执行Senipt脚本存在一些漏洞。攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者电脑进行文件操作等控制。前不久献出现一个利用微软Scripts脚本漏洞对浏览者硬盘进行格式化的HTML页面。如果攻击者有办法把木马执行文件下载到攻击主机的一个可执行WWW目录夹里面,他可以通过编制CGI程序在攻击主机上执行木马目录。此外,木马还可以利用系统的一些漏洞进行植人,如微软著名的US服务器溢出漏洞,通过一个IISHACK攻击程序即可使IIS服务器崩溃,并且同时攻击服务器,执行远程木马执行文件。
当服务端程序在被感染的机器上成功运行以后,攻击者就可以使用客户端与服务端建立连接,并进一步控制被感染的机器。在客户端和服务端通信协议的选择上,绝大多数木马使用的是TCP/IP协议,但是也有一些木马由于特殊的原因,使用UDP协议进行通讯。当服务端在被感染机器上运行以后,它一方面尽量把自己隐藏在计算机的某个角落里面,以防被用户发现;同时监听某个特定的端口,等待客户端与其取得连接;另外为了下次重启计算机时仍然能正常工作。木马程序一般会通过修改注册表或者其他的方法让自己成为自启动程序。
木马的隐藏方式
1.在任务栏里隐藏
这是最基本的隐藏方式。如果在windows的任务栏里出现一个莫名其妙的图标,傻子都会明白是怎么回事。要实现在任务栏中隐藏在编程时是很容易实现的。我们以VB为例。在VB中,只要把from的Visible属性设置为False,ShowInTaskBar设为False程序就不会出现在任务栏里了。
2.在任务管理器里隐藏
查看正在运行的进程最简单的方法就是按下Ctrl+Alt+Del时出现的任务管理器。如果你按下Ctrl+Alt+Del后可以看见一个木马程序在运行,那么这肯定不是什么好木马。所以,木马会千方百计地伪装自己,使自己不出现在任务管理器里。木马发现把自己设为
"系统服务“就可以轻松地骗过去。
因此,希望通过按Ctrl+Alt+Del发现木马是不大现实的。
3.端口
一台机器有65536个端口,你会注意这么多端口么?而木马就很注意你的端口。如果你稍微留意一下,不难发现,大多数木马使用的端口在1024以上,而且呈越来越大的趋势;当然也有占用1024以下端口的木马,但这些端口是常用端口,占用这些端口可能会造成系统不正常,这样的话,木马就会很容易暴露。也许你知道一些木马占用的端口,你或许会经常扫描这些端口,但现在的木马都提供端口修改功能,你有时间扫描65536个端口么?
4.隐藏通讯
隐藏通讯也是木马经常采用的手段之一。任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,如攻击者通过客户端直接接人被植人木马的主机;或者通过间接通讯。如通过电子邮件的方式,木马把侵入主机的敏感信息送给攻击者。现在大部分木马一般在占领主机后会在1024以上不易发现的高端口上驻留;有一些木马会选择一些常用的端口,如80、23,有一种非常先进的木马还可以做到在占领80HTTP端口后,收到正常的HTTP请求仍然把它交与Web服务器处理,只有收到一些特殊约定的数据包后,才调用木马程序。
5.隐藏隐加载方式
木马加载的方式可以说千奇百怪,无奇不有。但殊途同归,都为了达到一个共同的目的,那就是使你运行木马的服务端程序。如果木马不做任何伪装,就告诉你这是木马,你会运行它才怪呢。而随着网站互动化避程的不断进步,越来越多的东西可以成为木马的传播介质,Java
Script、VBScript、ActiveX.XLM....几乎WWW每一个新功能部会导致木马的快速进化。
6.最新隐身技术
在Win9x时代,简单地注册为系统进程就可以从任务栏中消失,可是在Windows2000盛行的今天。这种方法遭到了惨败。注册为系统进程不仅仅能在任务栏中看到,而且可以直接在Services中直接控制停止。运行(太搞笑了,木马被客户端控制)。使用隐藏窗体或控制台的方法也不能欺骗无所不见的Admlin大人(要知道,在NT下,Administrator是可以看见所有进程的)。在研究了其他软件的长处之后,木马发现,Windows下的中文汉化软件采用的陷阱技术非常适合木马的使用。
这是一种更新、更隐蔽的方法。通过修改虚拟设备驱动程序(VXD)或修改动态遵掇库 (DLL)来加载木马。这种方法与一般方法不同,它基本上摆脱了原有的木马模式---监听端口,而采用替代系统功能的方法(改写vxd或DLL文件),木马会将修改后的DLL替换系统已知的DLL,并对所有的函数调用进行过滤。对于常用的调用,使用函数转发器直接转发给被替换的系统DLL,对于一些相应的操作。实际上。这样的事先约定好的特种情况,DLL会执行一般只是使用DLL进行监听,一旦发现控制端的请求就激活自身,绑在一个进程上进行正常的木马操作。这样做的好处是没有增加新的文件,不需要打开新的端口,没有新的进程,使用常规的方法监测不到它。在往常运行时,木马几乎没有任何瘫状,且木马的控制端向被控制端发出特定的信息后,隐藏的程序就立即开始运作。
中木马后出现的状况
对于一些常见的木马,如SUB7、BO2000、冰河等等,它们都是采用打开TCP端口监听和写人注册表启动等方式,使用木马克星之类的软件可以检测到这些木马,这些检测木马的软件大多都是利用检测TCP连结、注册表等信息来判断是否有木马人侵,因此我们也可以通过手工来侦测木马。
也许你会对硬盘空间莫名其妙减少500M感到习以为常,这的确算不了什么,天知道Windows的临时文件和那些乌七八糟的游戏吞噬了自己多少硬盘空间。可是,还是有一些现象会让你感到警觉,一旦你觉得你自己的电脑感染了木马,你应该马上用杀毒软件检查一下自己的计算机,然后不管结果如何,就算是Norton告诉你,你的机器没有木马,你也应该再亲自作一次更深人的调查,确保自己机器安全。经常关注新的和出名的木马的特性报告,这将对你诊断自己的计算机问题很有帮助。
(1)当你浏览一个网站,弹出来一些广告窗口是很正常的事情,可是如果你根本没有打开浏览器,而览浏器突然自己打开,并且进入某个网站,那么,你要小心。
(2)你正在操作电脑,突然一个警告框或者是询问框弹出来,问一些你从来没有在电脑上接触过的间题。
(3)你的Windows系统配置老是自动莫名其妙地被更改。比如屏保显示的文字,时间和日期,声音大小,鼠标灵敏度,还有CD-ROM的自动运行配置。
(4)硬盘老没缘由地读盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象。
这时,最简单的方法就是使用netstat-a命令查看。你可以通过这个命令发现所有网络连接,如果这时有攻击者通过木马连接,你可以通过这些信息发现异常。通过端口扫描的方法也可以发现一些弱智的木马,特别是一些早期的木马,它们捆绑的端口不能更改,通过扫描这些固定的端口也可以发现木马是否被植入。
当然,没有上面的种种现象并不代表你就绝对安全。有些人攻击你的机器不过是想寻找一个跳板。做更重要的事情;可是有些人攻击你的计算机纯粹是为了好玩。对于纯粹处于好玩目的的攻击者,你可以很容易地发现攻击的痕迹;对于那些隐藏得很深,并且想把你的机器变成一台他可以长期使用的肉鸡的黑客们,你的检查工作将变得异常艰苦并且需要你对入侵和木马有超人的敏感度,而这些能力,都是在平常的电脑使用过程日积月累而成的。
我们还可以通过软件来检查系统进程来发现木马。如利用进程管理软件来查看进程,如果发现可疑进程就杀死它。那么,如何知道哪个进程是可疑的呢?教你一个笨方法,有以下进程绝对是正常的:EXPLORER.EXE、KERNEL32.DLL、MPREXE.EXE、MSGSRVINTERNAT.EXE、32.EXE、SPOOL32.EXEIEXPLORE.EXE(如果打开了IE),而出现了其他的、你没有运行的程序的进程就很可疑了。一句话,具体情况具体分析。
|