木马攻击与防范.docx
《木马攻击与防范.docx》由会员分享,可在线阅读,更多相关《木马攻击与防范.docx(21页珍藏版)》请在冰豆网上搜索。
![木马攻击与防范.docx](https://file1.bdocx.com/fileroot1/2023-1/25/b2abf04e-0948-4083-8ef8-5e08f541ef94/b2abf04e-0948-4083-8ef8-5e08f541ef941.gif)
木马攻击与防范
1
随着人类生活水平的逐渐提升,网络已成为人们生活中必不可少的一个部分,但是网络的安全问题让人们不得不担忧。
尤其是近几年,网络业务越来越多,许许多多的人采用了网络的方式来处理自己的日常生活事务,电子银行、网上购物已成为人们处理事务的常事了。
但是由于一些不法分子企图通过网络的方式来谋取非法的利益,尤其是一些敏感领域及一些数额较大的交易,更是成为了不法分子攻击的目标,给广大的网络用户带来了巨大的安全威胁,并造成了许多难以估计的损失。
黑客和计算机病毒是网络安全最为普遍的威胁。
特洛伊木马就是这样的一种病毒,它没有自我复制能力,但它的特点是伪装成一个实用工具或者一个可爱的游戏,这会诱使用户将其安装在PC或者服务器上。
而完整的木马程序一般由两个部分组成:
一个是服务器程序,一个是控制器程序。
“中了木马”就是指安装了木马的服务器程序,若你的电脑被安装了服务器程序,则拥有控制器程序的人就可以通过网络控制你的电脑,为所欲为,这时你电脑上的各种文件、程序,以及在你电脑上使用的帐号、密码就无安全可言了。
而冰河木马是国人编写的木马的经典之作,文章就冰河木马远程控制的实现原理及消除办法进行探讨,揭示木马普遍的工作原理,并提出相关的解决办法,提示人们要时刻注意网络的安全,保证自身利益不要受到侵害,对广大的网络用户而言是具有非常重要的意义的。
2木马的定义、分类及发展
2.1木马的定义
“木马”程序是目前比较流行的病毒文件,但它与一般的病毒不同,它究竟与病毒有什么不同之处,有必要认识一下病毒及木马的定义,再对比分析病毒与木马的区别与联系。
2.1.1病毒的定义及特点
病毒是“指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。
计算机病毒的特点:
计算机病毒是人为的特制程序,具有自我复制能力,具有很强的感染性,一定的潜伏性,特定的触发性和很大的破坏性。
2.1.2木马的定义及特点
特洛伊木马,英文叫做"Trojanhouse",其名称取自希腊神话的特洛伊木马记。
它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。
所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。
所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。
2.1.3木马与病毒的区别和联系
木马和病毒都是一种人为的程序,都属于电脑病毒,而电脑病毒的作用,其实完全就是为了搞破坏,破坏电脑里的资料数据,除了破坏之外,其它无非就是有些病毒制造者为了达到某些目的而进行的威慑和敲诈勒索的作用,或为了炫耀自己的技术。
但“木马”不一样,木马的作用是赤裸裸的偷偷监视别人和盗窃别人密码、数据等,如盗窃管理员密码、子网密码、搞破坏,或者好玩,偷窃上网密码用于它用,游戏帐号、股票帐号、甚至网上银行帐户等等,达到偷窥别人隐私和得到经济利益的目的。
所以木马的作用比早期的电脑病毒更加有用,更能够直接达到使用者的目的。
导致许多别有用心的程序开发者大量的编写这类带有偷窃和监视别人电脑的侵入性程序,这就是目前网上大量木马泛滥成灾的原因。
鉴于木马的这些巨大危害性和它与早期病毒的作用性质不一样,所以木马虽然属于病毒中的一类,但是要单独的从病毒类型中间剥离出来,独立的称之为“木马”程序。
2.2木马的分类
自木马程序诞生至今,己经出现了多种类型,想要把它们来一次完全的列举和说明是不可能的事情,更何况大多数的木马都不是单一功能的木马,它们往往具有很多种功能的集成品,甚至有很多从未公开的功能在一些木马中也广泛地存在着。
但是,对于木马程序还是有一个初步的分类,它主要包括远程控制木马、密码发送木马、键盘记录木马、破坏性质的木马、DOS攻击木马、代理木马、FTP木马、程序杀手木马、反弹端口型木马等等。
我们就其中几种常见的木马进行间要的介绍与分析。
2.2.1远程控制木马
远程控制木马是数量最多,危害最大,同时知名度也是最高的一种木马,它可以让攻击者完全控制被感染的计算机,攻击者可以利用它完成一些甚至连计算机主人本身都不能顺利进行的操作,其危害之大实在不容小觑。
由于要达到远程控制的目的,所以,该种类的木马往往集成了其他种类木马的功能。
使其在被感染的机器上为所欲为,可以任意访问文件,得到机主的私人信息甚至包括信用卡,银行账号等至关重要的信息。
冰河木马就是一个远程访问型木马,这类木马用起来是非常简单的,只需有人运行服务端并且得到了受害人的IP,就会访问到他的电脑,他们能在你的机器上干任何事。
远程控制型木马的普遍特征是:
键盘记录,上传和下载功能,注册表操作,限制系统功能等等。
2.2.2密码发送木马
在信息安全日益重要的今天,密码无疑是通向重要信息的一把极其有用的钥匙,只要掌握了对方的密码,从很大程度上说,就可以无所顾忌地得到对方的很多信息。
而密码发送型的木马正是专门为了盗取被感染计算机上的密码而编写的,木马一旦被执行,就会自动搜索内存,Cache,临时文件夹以及各种敏感密码文件,一旦搜索到有用的密码,木马就会利用免费的电子邮件服务将密码发送到指定的邮箱,从而达到获取密码的目的,所以这类木马大多使用25号端口发送E-mail,大多数这类的特洛伊木马不会在每次Windows重启时重启。
这种木马的目的是找到所有的隐藏密码并且在受害者不知道的情况下把它们发送到指定的信箱,如果特意找寻隐藏密码,这些特洛伊木马就是很危险的了。
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的作者就利用现实生活中的邮件进行散播:
给其他人寄去一封含有木马程序的软盘邮件。
软盘中的木马程序在运行后,虽然不会破坏数据,但是他将硬盘加密锁死,然后提示受感染用户花钱消灾。
可以说第二代木马已具备了传播特征,尽管通过传统的邮递方式。
2.3.3第三代木马:
网络传播性木马
随着Internet的普及,这一代木马兼备伪装和传播两种特征并结合TCP/IP网络技术四处泛滥,同时他还有新的特征:
第一,添加了“后门”功能:
所谓后门就是一种可以为计算机系统秘密开启访问入口的程序,一旦被安装,这些程序就能够使攻击者绕过安全程序进入系统。
第二,添加了击键记录功能:
该功能主要是记录用户所有的击键内容然后形成击键记录的日志文件发送给恶意用户。
恶意用户可以从中找到用户名、口令以及信用卡号等用户信息。
这一代木马比较有名的有国外的BO2000(BackOrifice)和国内的冰河木马。
它们有如下共同特点:
基于网络的客户端/服务器应用程序,具有搜集信息、执行系统命令、重新设置机器、重新定向等功能。
3木马的工作机制
木马程序使得远端的黑客能够享有系统的控制权,对网络和计算机系统的安全构成了极大的威胁,要找出防御木马攻击的有效途径,就必须认真地研究木马攻击的技术。
在研究木马攻击的技术之前我们先弄清除木马的工作原理,先认识木马系统的组成部分,再对木马的隐藏方式及启动方式进行讨论。
3.1木马系统的组成
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成,如图3-1所示。
(1)硬件部分:
建立木马连接所必须的硬件实体。
控制端:
对服务端进行远程控制的一方。
服务端:
被控制端远程控制的一方。
INTERNET:
控制端对服务端进行远程控制,数据传输的网络载体。
(2)软件部分:
实现远程控制所必须的软件程序。
控制端程序:
控制端用以远程控制服务端的程序。
木马程序:
潜入服务端内部,获取其操作权限的程序。
木马配置程序:
设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。
(3)具体连接部分:
通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。
控制端IP,服务端IP:
即控制端,服务端的网络地址,也是木马进行数据传输的目的地。
控制端端口,木马端口:
即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马程序。
图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发现木马是不大现实的。
3.2.3端口
一台机器有65536个端口,这么多的端口,用户一般是不会去注意这么多的端口的,而木马就会很注意你的端口。
大多数木马使用的端口在1024以上,而且呈越来越大的趋势;当然也有占用1024以下端口的木马,但这些端口是常用端口,占用这些端口可能会造成系统不正常,这样的话,木马就会很容易暴露。
以前,我们可以经常扫描木马常用的端口来发现木马,但是现在的木马都提供端口修改功能,所以通过扫描端口来发现木马是不现实的。
3.2.4隐藏通讯
隐藏通讯也是木马经常采用的手段之一。
任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,如攻击者通过客户端直接接人被植人木马的主机,或者通过间接通讯。
如通过电子邮件的方式,木马把侵入主机的敏感信息送给攻击者。
现在大部分木马一般在占领主机后会在1024以上不易发现的高端口上驻留,有一些木马会选择一些常用的端口,如80、23。
有一种非常先进的木马还可以做到在占领80HTTP端口后,收到正常的HTTP请求仍然把它交与Web服务器处理,只有收到一些特殊约定的数据包后,才调用木马程序。
3.2.5隐藏加载方式
木马加载的方式可以说千奇百怪,无奇不有。
但殊途同归,都为了达到一个共同的目的,那就是使你运行木马的服务端程序。
如果木马不做任何伪装,就告诉用户这是木马,那样的话木马就会马上被用户处理掉,达不到木马的目的了。
而随着网站互动化进程的不断进步,越来越多的东西可以成为木马的传播介质,Javascript、VBscript、ActiveX.XLM等等,几乎WWW每一个新功能部会导致木马的快速进化。
3.2.6最新的一些隐藏技术
在Win9x时代,简单地注册为系统进程就可以从任务栏中消失,可是在Windows2000及更高版本的操作系统盛行的今天,这种方法遭到了惨败。
注册为系统进程不仅仅能在任务栏中能看到,而且可以直接在Services中直接控制停止。
使用隐藏窗体或控制台的方法已经不能欺骗无所不见的Admin了,因为在NT下,Administrator是可以看见所有进程的。
在研究了其他软件的长处之后,木马发现,Windows下的中文汉化软件采用的陷阱技术非常适合木马的使用。
这是一种更新、更隐蔽的方法,通过修改虚拟设备驱动程序(VXD)或修改动态遵掇库(DLL)来加载木马。
这种方法与一般方法不同,它基本上摆脱了原有的木马模式——监听端口,而采用替代系统功能的方法,改写vxd或DLL文件,木马会将修改后的DLL替换系统已知的DLL,并对所有的函数调用进行过滤。
对于常用的调用,使用函数转发器直接转发给被替换的系统DLL,对于一些相应的操作。
实际上,这样的事先约定好的特种情况,DLL会执行一般只是使用DLL进行监听,一旦发现控制端的请求就激活自身,绑在一个进程上进行正常的木马操作。
这样做的好处是没有增加新的文件,不需要打开新的端口,没有新的进程,使用常规的方法监测不到它。
在往常运行时,木马几乎没有任何瘫状,且木马的控制端向被控制端发出特定的信息后,隐藏的程序就立即开始运作。
3.3木马的启动方式
作为一个优秀的木马,实现了隐藏之后就要想办法自启动了,如果用户一旦关机重启,木马无法实现自启动的话,那这个木马也就失去意义了。
自启动功能是必不可少的,这样可以保证木马不会因为用户的一次关机操作而彻底失去作用。
由于木马是基于远程控制的程序,因此,中木马的机器会开有特定的端口。
一般一台个人用的系统在开机后最多只有137、138、139三个端口,如果上网,就会有其他端口,这是本机与网上主机通讯时打开的,如IE一般会打开连续的端口:
1025,1026,1027等。
在DOS命令行下用“netstat-na”命令可以看到本机所有打开的端口。
如图3-2所示。
图3-2查看主机所有打开的端口
如果发现除了以上所说的端口外,还有其他端口被占用,特别是木马常用端口被占用,好好查一查,就很容易发现木马了。
在查找木马的过程中要使你的系统能显示隐藏文件,因为一些木马文件属性是隐藏的。
多数木马都会把自身复制到系统目录下并加入启动项,启动项一般都是加在注册表中的,具体位置在:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion下所有以"run"开头的键值;
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion下所有以"run"开头的键值;
HKEY_USERS/Default/Software/Microsoft/Windows/CurrentVersion下所有以“Run”开头的键值。
不过,这些事木马常用的启动方式,也有一些木马不在这些地方加载,它会采用如下的几种方式进行启动:
3.3.1在Win.ini中启动
在Win.ini的[windows]字段中有启动命令"load="和"run=",在一般情况下"="后面是空白的,如果有程序,比方说是:
run=c:
/windows/file.exe或load=c:
/windows/file.exe,那这个"file.exe"很可能就是木马。
3.3.2在System.ini中启动
System.ini位于Windows的安装目录下,其[boot]字段的shell=Explorer.exe是木马常用的隐蔽加载之所,木马通常的做法是将该句变为这样:
shell=Explorer.exewindow.exe,而这里的window.exe就是木马程序。
另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径/程序名”,这里也有可能被木马所利用。
再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所。
3.3.3在Autoexec.bat和Config.sys中加载运行
这种加载方式一般都需要控制端与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽,所以这种方法并不多见,但也不能因此而掉以轻心。
3.3.4在Winstart.bat中启动
Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。
它多数情况下为应用程序及Windows自动生成,在执行了W并加载了多数驱动程序之后开始执行。
由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险也就由此而来。
3.3.5启动组
木马隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此,还是有木马喜欢在这里驻留的。
启动组对应的文件夹为:
C:
/Windows/StartMenu/Programs/StartUp,
在注册表中的位置:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/ShellFoldersStartup="C:
/windows/startmenu/programs/startup"。
3.3.6*.INI
应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖同名文件,这样就可以达到启动木马的目的了。
3.3.7修改文件关联
修改文件关联是木马常用手段,主要是国产木马采用这种手段,比方说:
正常情况下txt文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的冰河就是这样做的。
一旦你双击一个txt文件,原本应用Notepad打开该文件的,现在却变成启动木马程序了。
只得注意的是,不仅仅是txt文件,其他诸如HTM、EXE、ZIP、COM等都是木马的目标。
3.3.8捆绑文件
实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后,控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样,即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。
绑定到某一应用程序中,如绑定到系统文件,那么,每一次Windows启动均会启动木马。
4木马常用清除方法及防御
木马是一种很常见的病毒,我们大多数用户对木马并不陌生,多多少少与木马打了一些交道,接下来阐述常用的几种清除木马的方法,并对木马的防御提出相关办法,在这之前,先了解一下如何分辨自己的电脑是不是中了木马。
4.1中木马后出现的状况
如果出现了以下的几种状况,就要怀疑自己的电脑是不是受到木马攻击了,它们都是中了木马之后的几种常见的表现:
(1)在浏览网站的时候,弹出来一些广告窗口是很正常的事情,可是如果根本没有打开浏览器,而览浏器突然自己打开,并且进入某个网站,那么,就要怀疑是不是有木马入侵了。
(2)正在操作电脑的时候,突然一个警告框或者是询问框弹出来,问一些从来没有在电脑上接触过的问题,也有可能是中了木马了。
(3)Windows系统配置老是自动莫名其妙地被更改,比如屏保显示的文字,时间和日期,声音大小,鼠标灵敏度,还有CD-ROM的自动运行配置,也是中了木马之后的一种表现。
(4)硬盘老没缘由地读盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象,也是中了木马的嫌疑。
这时,最简单的方法就是使用前面提到过的“netstat–a”命令查看。
可以通过这个命令发现所有网络连接,如果这时有攻击者通过木马连接,可以通过这些信息发现异常。
通过端口扫描的方法也可以发现一些弱智的木马,特别是一些早期的木马,它们捆绑的端口不能更改,通过扫描这些固定的端口也可以发现木马是否被植入。
4.2常用的清除木马的方法
在发现电脑中了木马之后,就要来清除木马了,不能让木马在自己的电脑是为所欲为,以免给自己造成巨大的损失。
木马病毒常用手工清除和软件杀毒来清除。
4.2.1常见的几种手工清除方法
(1)打开system.ini文件
在[BOOT]下面有个“shell=文件名”确定文件名是explorer.exe
如果不是"explorer.exe",那么那个文件就是木马程序,把它查找出来,删除。
保存退出system.ini
打开win.ini文件
在[WINDOWS]下面有个run=
如果你看到"="后面有路径文件名,必须把它删除。
正确的应该是"run="后面什么也没有。
"="后面的路径文件名就是木马,把它查找出来,删除。
保存退出win.ini。
(2)打开win.ini文件
在[WINDOWS]下面有load=wscan.exe
删除wscan.exe,正确是load=
保存退出win.ini。
打开注册表Regedit
点击目录至:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
删除右边的Reminder="wscan.exe/s"
关闭Regedit,重新启动到MSDOS系统中
删除C:
/windows/system/wscan.exe
(3)打开注册表Regedit
点击目录至:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
删除右边的"C:
/WINDOWS/Cmctl32.exe"
关闭Regedit,重新启动到MSDOS系统中
删除C:
/WINDOWS/Cmctl32.exe
(4)打开注册表Regedit
点击目录至:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
删除右边的"c:
/windows/notpa.exe/o=yes"
关闭Regedit,重新启动到MSDOS系统中
删除c:
/windows/notpa.exe
(5)打开注册表Regedit
点击目录至:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
删除右边的(Default)=""
关闭Regedit,再次重新启动计算机。
将C:
/windows/system/.ex