特洛伊木马工作原理分析及清除方法.docx

上传人:飞****2 文档编号:88929540 上传时间:2023-05-04 格式:DOCX 页数:5 大小:15.20KB
返回 下载 相关 举报
特洛伊木马工作原理分析及清除方法.docx_第1页
第1页 / 共5页
特洛伊木马工作原理分析及清除方法.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《特洛伊木马工作原理分析及清除方法.docx》由会员分享,可在线阅读,更多相关《特洛伊木马工作原理分析及清除方法.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、特洛伊木马工作原理分析及清除方法1 什么是特洛伊木马特洛伊木马(Trojan Horse,以下简称木马)的名称取自希腊神话的特洛伊木马记。木马就是指那些内部包含为完成特殊任务而编制的代码的程序, 这些特殊功能处于隐藏状态,执行时不为人发觉。特洛伊木马是一种基于远程控制的工具,类似于远端管理软件,其区别是木马具有隐蔽性和非授权性的特点。所谓隐蔽性是指木马的设计者为防止木马被发现,会采用多种手段隐藏木马;非授权性是指一旦控制端与服务端建立连接后,控制端将窃取服务端的密码及大部分操作权限,包括修改文件、修改注册表、重启或关闭服务端操作系统、断开服务端网络连接、控制服务端的鼠标及键盘、监视服务端桌面操

2、作、查看服务端进程等。这些权限并不是服务端赋予的,而是通过木马程序窃取的。2 木马的工作原理完整的木马系统由硬件和软件二部分组成。硬件部分是建立木马连接所必须的硬件实体,包括控制端、服务端和数据传输的网络载体(Internet/Intranet); 软件部分是实现远程控制所必须的软件程序,包括控制端程序和木马程序。利用木马窃取信息、恶意攻击的整个过程可以分为3个部分,下面详细介绍。2.1 获取并传播木马木马可以用C或C+语言编写。木马程序非常小,一般只有35KB,以便隐藏和传播。木马的传播方式主要有3种:(1)通过E-MAIL。(2)软件下载。(3)依托病毒传播。2001年4月赛门铁克防病毒研

3、究中心发现了植入木马程序的新蠕虫病毒(W32.BACTRANS.13312MM)。该病毒一旦被执行,木马程序就会修改注册表键值和win.ini文件。当计算机被重启时,该蠕虫会等候3 分钟,然后利用MAPI, 回复所有未读邮件, 并将自己作为邮件的附件,使用不同的名称继续传播。2.2 运行木马服务端用户在运行木马或捆绑了木马的程序后,木马首先将自身拷贝到WINDOWS的系统文件夹中(C:WINDOWS或C:WINDOWSSYSTEM目录下), 然后在注册表、启动组和非启动组中设置好木马触发条件,这样木马的安装就完成了。以后,当木马被触发条件激活时,它就进入内存,并开启事先定义的木马端口,准备与控

4、制端建立连接。2.2 建立连接,进行控制建立一个木马连接必须满足2个条件:(1)服务端已安装有木马程序。(2)控制端、服务端都要在线。初次连接时还需要知道服务端的IP地址。IP地址一般通过木马程序的信息反馈机制或扫描固定端口等方式得到。木马连接建立后,控制端端口和木马端口之间将会有一条通道,控制端程序利用该通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远程控制。3 用VB6.0编写的木马程序下面用VB6.0编写的一个木马程序来说明木马程序的工作原理。(1)用VB建立2个程序:客户端程序Client和服务器端程序Server。(2)在Client工程中建立一个窗体,加载WinSoc

5、k控件,称为Win_Client,协议选择TCP。再加入一个文本框,用于输入服务器的IP地址或服务器名。然后加入一个按钮,按下之后就可以对连接进行初始化。代码如下:Private Sub cmdConnect_Click()Win_Client.RemoteHost=Text1.TextWin_Client.ConnectTimer1.Enabled=TrueEnd Sub(3)建立连接后就可以使用DataArrival事件处理收到的数据了。(4)在服务器端Server工程中也建立一个窗体,窗体的visible属性设置为False。加载WinSock控件, 称为Win_Server,协议选择T

6、CP。在Form_Lad事件中加入以下代码:Private Sub Form_Load()Win_Server.LocalPort=2001 自定义的端口号Win_Server.ListenEnd Sub(5)准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答客户端程序的请求,代码如下:Private Sub Win_Server_ConnectionRquest(ByValrequestID As Long)If Win_Server.State sckClosed ThenWin_Server.Close 检查控件的State属性是否为关闭的End If 如果不

7、是,在接受新的连接之前先关闭此连接Win_Server.Accept requestIDEnd Sub(6)这样在客户端程序按下连接按钮后,服务器端程序的ConnectionRequest事件即被触发, 执行以上代码。如果不出意外,连接将被建立起来。(7)建立连接后服务器端的程序通过JDataArrival事件接收客户机端程序发出的指令运行既定程序。DataArrival事件程序如下:Private Sub Win_Server_DataArrival(ByVal bytesTotal As Long)Dim strData As StringDim I As LongWin_Server.G

8、etData strData 接收数据并存入strDataFor i=1 ToLen(strData) 分离strData中的命令If Mid(strData,I,1)=” ThenmKey=Left(strData,i-1 把命令ID号存入mKeystrData=Right(strData,Len(strData)-i) 把命令参数存入strDataExit FofEne IfNext iSelect Case Val*mKey)Case i i为一系列命令的定义,如截获驱动器名、目录名、文件名、强制关闭服务器端的计算机,强制重启服务器端的计算机,屏蔽任务栏窗口,屏蔽开始菜单,按照客户机端传

9、来的文件名或目录名删除它们,屏蔽热启动键,运行服务器端的任何程序。End SelectEneSub(8)客户机端用Win_Client.SendData发命令。命令包括命令ID和命令参数,它们用符号”隔开。(9)当客户机端断开与服务器端的连接后,服务器端应用Win_Server_Close事件继续准备接收客户机端的请求,其代码如下:Private Sub tcpServer_Close()Win_Server.CloseWin_Server.ListenEnd Sub以上是一个最基本的特洛伊木马程序。只要机器运行了服务器端程序, 别人就可以在千里之外控制这台计算机。4 发现和清除木马杀毒软件主

10、要是针对已知病毒设计的,而新病毒却层出不穷,特别是在有些特洛伊木马类病毒刚出现时,由于杀毒软件没有建立病毒库,大都无能为力。因此,学习一些手工检查特洛伊木马的方法是很有必要的。下面简单介绍一种在Win9x系统下手工发现和清除木马的方法。TCP服务程序都需要Listen在某个端口(port)上,客户端程序才能与其建立连接, 进行数据传输。可以用Win9x的命令netstat -an查看所有的活动连接, 典型输出如下:C:WINDOWS>netstat anActive ConnectionsProto Local Address Foreign Address StateTCP 192.1

11、68.1.92:137 0.0.0.0:0 LISTENINGTCP 192.168.1.92:138 0.0.0.0:0 LISTENINGUDP 192.168.1.92:137 *:*UDP 192.168.1.92:138 *:*其中”Local Address”栏即本机IP地址,冒号后为port号。正常情况下没有安装其它TCP服务时,上述输出只有137139几个port处于Listen状态; 若未安装其它TCP服务程序,但在netstat -an的输出中发现有别的port处于Listen状态则该机器已经被感染了木马。这里需要说明2点:1 “Local Address”栏中IP地址若为

12、127.0.0.1则无害, 而IP地址若为0.0.0.0且port不是137139则要引起注意了。2有的木马比较隐蔽,平时是看不到它,只有当机器接入Internet时它才处于Listen状态。在上网过程中要下载软件、收发信件、网上聊天等必然打开一些端口,下面是一些常用的端口:(1)11024之间的端口:这些是保留端口,是某些对外通信程序专用的,如FTP 使用21,SMTP使用25,POP3使用110等。木马很少使用这些保留端口。(2)1025以上的连续端口:在上网浏览时,浏览器会打开多个连续的端口将文字、图片下载到本地硬盘。这些端口都是1025以上的连续端口。(3)4000端口是QICQ的通信

13、端口。6667端口是IRC的通信端口。上述的端口基本可以排除在外。若发现还有其它端口打开,尤其是数值比较大的端口,就要怀疑是否感染了木马。当然如果木马有定制端口的功能,则任何端口都有可能是木马端口。如果用netstat -an发现了异常(有时在使用系统时也能感到异常),应该从以下8个方面检查:(1)WIN.INI:用文本方式打开WINDOWS目录下的配置文件win.ini。在windows字段中有启动命令”load=”和“run=”,一般情况下“=”右边是空白的,否则就有可能是木马。(2)SYSTEN.INI:用文本方式打开WINDOWS目录下的配置文件system.ini。若发现字段386E

14、nh、mic和drivers32中有命令行,则需要检查其中是否有木马的启动命令。此外,BOOT字段下面有条命令“shell=wxplorer.exe”,如果是“shell=explorer 程序名”,则后面跟着的那个程序就是“木马”程序。(3)Autoexec.bat和Config.sys:系统盘根目录下的这2个文件也可以启动木马。但这种加载方式需要控制端用户与服务端建立连接后, 将已加入木马启动命令的同名文件上传到服务端覆盖这二个文件。(4)*INI:即应用程序的启动配置文件。控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖相应文件,就可以启动木马。(

15、5)注册表1:打开HKEY_LOCAL_MACHINESoftwaeMicrosoftWindowsCurrentVersion下5个以Run和Run-Services开头的主键,在其中寻找可能是启动木马的键值。(6)注册表2:打开HKEY_CLASES_ROOT文件类型shellopencommand主键,查看其键值。如国产木马“冰河”就是修改HKEY_CLASES_ROOTtxtfileshellopencommand下的键值, 将“C:WINDOWSNOTEPAD.EXE%1”更改为“C:WINDOWSSYSTEMSYSEXPLR.EXE%1”。此时只要双击TXT文件, 本来是要应用NO

16、TEPAD打开文件,而实际上却启动了木马程序。其实不只是TXT文件,通过修改HTML、EXE、ZIP等文件的启动命令的键值都可以启动木马。不同之处只在于“文件类型”这个主键,TXT的主键是txtfile,ZIP的主键是WINZIP。(7)捆绑文件:实现该触发条件首先要控制端和服务端已通过木马建立连接, 接着控制端用户用工具软件将木马文件和某个应用程序捆绑在一起,然后上传到服务端覆盖原文件。这样即使木马被删除了,只要运行捆绑着木马的应用程序,木马就又会被重新安装。(8)启动菜单:在“ 开始/程序/启动”选项下也可能有木马的触发条件。如果在以上+ 项检查中发现有可疑程序,则将其连同该注册表项一同删除,再重启系统,木马就会被清除。这里还需要几点说明:(1)木马正在运行时,无法删除其程序。须重新启动、进入dos方式将其删除。(2)有的木马能够自动检查它在注册表中的自启动项。如果在木马处于活动时删除该项,它可以自动恢复。此时只能重启进入DOS方式, 将其程序删除后再进入Wi9x下,将其注册表中的自启动项剔除(操作顺序不能错)。(3)在删除和修改注册表前一定要先做备份(注册表的备份与恢复可以用regedit中的“导出注册表”和“引入注册表”来完成)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com