11随着人类生活水平的逐渐提升,网络已成为人们生活中必不可少的一个部分,但是网络的安全问题让人们不得不担忧。尤其是近几年,网络业务越来越多,许许多多的人采用了网络的方式来处理自己的日常生活事务,电子银行、网上购物已成为人们处理事务的常事了。但是由于一些不法分子企图通过网络的方式来谋取非法的利益,尤其是一些敏感领域及一些数额较大的交易,更是成为了不法分子攻击的目标,给广大的网络用户带来了巨大的安全威胁,并造成了许多难以估计的损失。黑客和计算机病毒是网络安全最为普遍的威胁。特洛伊木马就是这样的一种病毒,它没有自我复制能力,但它的特点是伪装成一个实用工具或者一个可爱的游戏,这会诱使用户将其安装在PC或者服务器上。而完整的木马程序一般由两个部分组成:一个是服务器程序,一个是控制器程序。“中了木马”就是指安装了木马的服务器程序,若你的电脑被安装了服务器程序,则拥有控制器程序的人就可以通过网络控制你的电脑,为所欲为,这时你电脑上的各种文件、程序,以及在你电脑上使用的帐号、密码就无安全可言了。而冰河木马是国人编写的木马的经典之作,文章就冰河木马远程控制的实现原理及消除办法进行探讨,揭示木马普遍的工作原理,并提出相关的解决办法,提示人们要时刻注意网络的安全,保证自身利益不要受到侵害,对广大的网络用户而言是具有非常重要的意义的。22木马的定义、分类及发展2.1木马的定义“木马”程序是目前比较流行的病毒文件,但它与一般的病毒不同,它究竟与病毒有什么不同之处,有必要认识一下病毒及木马的定义,再对比分析病毒与木马的区别与联系。2.1.1病毒的定义及特点病毒是“指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。计算机病毒的特点:计算机病毒是人为的特制程序,具有自我复制能力,具有很强的感染性,一定的潜伏性,特定的触发性和很大的破坏性。2.1.2木马的定义及特点特洛伊木马,英文叫做Trojanhouse,其名称取自希腊神话的特洛伊木马记。它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。2.1.3木马与病毒的区别和联系木马和病毒都是一种人为的程序,都属于电脑病毒,而电脑病毒的作用,其实完全就是为了搞破坏,破坏电脑里的资料数据,除了破坏之外,其它无非就是有些病毒制造者为了达到某些目的而进行的威慑和敲诈勒索的作用,或为了炫耀自己的技术。但“木马”不一样,木马的作用是赤裸裸的偷偷监视别人和盗窃别人密码、数据等,如盗窃管理员密码、子网密码、搞破坏,或者好玩,偷窃上网密码用于它用,游戏帐号、股票帐号、甚至网上银行帐户等等,达到偷窥别人隐私和得到经济利益的目的。所以木马的作用比早期的电脑病毒更加有用,更能够直接达到使用者的目的。导致许多别有用心的程序开发者大量的编写这类带有偷窃和监视别人电脑的侵入性程序,这就是目前网上大量木马泛滥成灾的原因。3鉴于木马的这些巨大危害性和它与早期病毒的作用性质不一样,所以木马虽然属于病毒中的一类,但是要单独的从病毒类型中间剥离出来,独立的称之为“木马”程序。2.2木马的分类自木马程序诞生至今,己经出现了多种类型,想要把它们来一次完全的列举和说明是不可能的事情,更何况大多数的木马都不是单一功能的木马,它们往往具有很多种功能的集成品,甚至有很多从未公开的功能在一些木马中也广泛地存在着。但是,对于木马程序还是有一个初步的分类,它主要包括远程控制木马、密码发送木马、键盘记录木马、破坏性质的木马、DOS攻击木马、代理木马、FTP木马、程序杀手木马、反弹端口型木马等等。我们就其中几种常见的木马进行间要的介绍与分析。2.2.1远程控制木马远程控制木马是数量最多,危害最大,同时知名度也是最高的一种木马,它可以让攻击者完全控制被感染的计算机,攻击者可以利用它完成一些甚至连计算机主人本身都不能顺利进行的操作,其危害之大实在不容小觑。由于要达到远程控制的目的,所以,该种类的木马往往集成了其他种类木马的功能。使其在被感染的机器上为所欲为,可以任意访问文件,得到机主的私人信息甚至包括信用卡,银行账号等至关重要的信息。冰河木马就是一个远程访问型木马,这类木马用起来是非常简单的,只需有人运行服务端并且得到了受害人的IP,就会访问到他的电脑,他们能在你的机器上干任何事。远程控制型木马的普遍特征是:键盘记录,上传和下载功能,注册表操作,限制系统功能等等。2.2.2密码发送木马在信息安全日益重要的今天,密码无疑是通向重要信息的一把极其有用的钥匙,只要掌握了对方的密码,从很大程度上说,就可以无所顾忌地得到对方的很多信息。而密码发送型的木马正是专门为了盗取被感染计算机上的密码而编写的,木马一旦被执行,就会自动搜索内存,Cache,临时文件夹以及各种敏感密码文件,一旦搜索到有用的密码,木马就会利用免费的电子邮件服务将密码发送到指定的邮箱,从而达到获取密码的目的,所以这类木马大多使用25号端口发送E-mail,大多数这类的特洛伊木马不会在每次Windows重启时重启。这种木马的目的是找到所有的隐藏密码并且在受害者不知道的情况下把它4们发送到指定的信箱,如果特意找寻隐藏密码,这些特洛伊木马就是很危险的了。2.2.3键盘记录木马这种木马是非常简单的,它们只做一件事情,就是记录受害者的键盘敲击并且在LOG文件里查找密码。这种木马随着Windows的启动而启动,它们有在线和离线记录这样的选项,顾名思义,它们分别记录你在线和离线状态下敲击键盘时的按键情况。也就是说你按过什么按键,下木马病毒的人都知道,从这些按键中他很容易就会得到你的密码等有用信息,甚至是你的信用卡账号。对于这种类型的木马,邮件发送功能也是必不可少的。2.2.4其他几种常见木马(1)破坏性质的木马:破坏被感染计算机的文件系统,使其遭受系统崩溃或者重要数据丢失的巨大损失。(2)DOS攻击木马:这种木马的危害不是体现在被感染计算机上,而是体现在攻击者可以利用它来攻击一台又一台计算机,给网络造成很大的伤害和带来损失。(3)代理木马:通过代理木马,攻击者可以在匿名的情况下使用Telnet,CQ,IRC等程序,从而隐蔽自己的踪迹。(4)FTP木马:这种木马可能是最简单和古老的木马了,它的惟一功能就是打开21端口,等待用户连接。(5)程序杀手木马:程序杀手木马的功能就是关闭对方机器上运行的防木马软件这类程序,让其他的木马更好地发挥作用。2.3木马的发展随着互联网的迅速发展,木马的攻击、危害性也越来越大,它从一开始出现到后来网络的发展,大致经历了以下三个阶段:2.3.1第一代木马:伪装型病毒世界上第一个计算机木马是出现在1986年的PC-Write木马,这种病毒通过伪装成一个合法性程序诱骗用户上当,一旦用户信以为真运行该木马程序,那么他的下场就是硬盘被格式化。此时的第一代木马还不具备传染特征。2.3.2第二代木马:AIDS型木马在1989年出现了AIDS木马,由于当时很少有人使用电子邮件,所以AIDS的作者就利用现实生活中的邮件进行散播:给其他人寄去一封含有木马程序的软5盘邮件。软盘中的木马程序在运行后,虽然不会破坏数据,但是他将硬盘加密锁死,然后提示受感染用户花钱消灾。可以说第二代木马已具备了传播特征,尽管通过传统的邮递方式。2.3.3第三代木马:网络传播性木马随着Internet的普及,这一代木马兼备伪装和传播两种特征并结合TCP/IP网络技术四处泛滥,同时他还有新的特征:第一,添加了“后门”功能:所谓后门就是一种可以为计算机系统秘密开启访问入口的程序,一旦被安装,这些程序就能够使攻击者绕过安全程序进入系统。第二,添加了击键记录功能:该功能主要是记录用户所有的击键内容然后形成击键记录的日志文件发送给恶意用户。恶意用户可以从中找到用户名、口令以及信用卡号等用户信息。这一代木马比较有名的有国外的BO2000(BackOrifice)和国内的冰河木马。它们有如下共同特点:基于网络的客户端/服务器应用程序,具有搜集信息、执行系统命令、重新设置机器、重新定向等功能。3木马的工作机制木马程序使得远端的黑客能够享有系统的控制权,对网络和计算机系统的安全构成了极大的威胁,要找出防御木马攻击的有效途径,就必须认真地研究木马攻击的技术。在研究木马攻击的技术之前我们先弄清除木马的工作原理,先认识木马系统的组成部分,再对木马的隐藏方式及启动方式进行讨论。3.1木马系统的组成一个完整的木马系统由硬件部分,软件部分和具体连接部分组成,如图3-1所示。(1)硬件部分:建立木马连接所必须的硬件实体。控制端:对服务端进行远程控制的一方。服务端:被控制端远程控制的一方。INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。(2)软件部分:实现远程控制所必须的软件程序。控制端程序:控制端用以远程控制服务端的程序。木马程序:潜入服务端内部,获取其操作权限的程序。木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。(3)具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。控制端IP,服务端IP:即控制端,服务端的网络地址,也6是木马进行数据传输的目的地。控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马程序。图3-1木马系统的组成3.2木马的隐藏方式木马要实现对他人计算机的攻击,首先“木马”程序必须想尽一切办法隐藏自己,不让用户发现木马的入侵是木马最起码要做到的事情,否则一旦被用户发现,那么这个木马就没有了存在的意义,必然会被用户删除,就达不到程序编写者要控制他人电脑的目的了。3.2.1在任务栏里隐藏在任务栏里隐藏是最基本的隐藏方式,如果在windows的任务栏里出现一个莫名其妙的图标,那这个木马就没有了任何存在的意义了。要实现在任务栏中的隐藏,在编程时是很容易实现的。我们以VB为例,在VB中,只要把from的Visible属性设置为False,ShowInTaskBar设为False,程序就不会出现在任务栏里了。3.2.2在任务管理器里隐藏查看正在运行的进程最简单的方法就是按下Ctrl+Alt+Del时出现的任务管理器,如果你按下Ctrl+Alt+Del后可以看见一个木马程序在运行,那么这肯定不是什么好木马。所以,木马会千方百计地伪装自己,使自己不出现在任务管理器里。这时,木马把自己设为系统服务“就可以轻松地骗过去。因此,希望通过按Ctrl+Alt+Del发现木马是不大现实的。控制端:对服务端进行远程控制的一方服务端:被控制端远程控制的一方INTERNET:控制端对服务端进行远程控制,数据传输的网络载体控制端程序:控制端用以远程控制服务端的程序木马程序:潜入服务端内部,获取其操作权限的程序木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序73.2.3端口一台机器有65536个端口,这么多的端口,用户一般是不会去注意这么多的端口的,而木马就会很注意你的端口。大多数木马使用的端口在1024以上,而且呈越来越大的趋势;当然也有占用1024以下端口的木马,但这些端口是常用端口,占用这些端口可能会造成系统不正常,这样的话,木马就会很容易暴露。以前,我们可以经常扫描木马常用的端口来发现木马,但是现在的木马都提供端口修改功能,所以通过扫描端口来发现木马是不现实的。3.2.4隐藏通讯隐藏通讯也是木马经常采用的手段之一。任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,如攻击者通过客户端直接接人被植人木马的主机,或者通过间接通讯。如通过电子邮件的方式,木马把侵入主机的敏感信息送给攻击者。现在大部分木马一般在占领主机后