信息安全原理与技术第七次实验:木马攻击与防范

信息安全原理与技术第七次实验:木马攻击与防范

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

1.掌握目前网络中常见的七种木马的检测及清除方法;
2.学会使用工具检测并清除木马。

二、实验原理

1.木马的概念与发展历史
计算机世界中的特洛伊木马病毒的名字由《荷马史诗》的特洛伊战记得来。故事说的是希腊人围攻特洛伊城十年后仍不能得手,于是阿迦门农受雅典娜的启发:把士兵藏匿于巨大无比的木马中,然后佯作退兵。当特洛伊人将木马作为战利品拖入城内时,高大的木马正好卡在城门间,进退两难。夜晚木马内的士兵爬出来,与城外的部队里应外合而攻下了特洛伊城。而计算机世界的特洛伊木马(Trojan)是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击 Dos 等特殊功能的后门程序。
木马是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了!木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。
(1)第一代木马:伪装型病毒
这种病毒通过伪装成一个合法性程序诱骗用户上当。世界上第一个计算机木马是出现在 1986 年的 PC-Write 木马。它伪装成共享软件 PC-Write 的 2.72 版本(事实上,编写 PC-Write的 Quicksoft 公司从未发行过 2.72 版本),一旦用户信以为真运行该木马程序,那么他的下场就是硬盘被格式化。在我刚刚上大学的时候,曾听说我校一个前辈牛人在 WAX 机房上用BASIC 作了一个登录界面木马程序,当你把你的用户 ID,密码输入一个和正常的登录界面一模一样的伪登录界面后后,木马程序一面保存你的 ID 和密码,一面提示你密码错误让你重新输入,当你第二次登录时,你已成了木马的牺牲品。此时的第一代木马还不具备传染特征。
(2)第二代木马:AIDS 型木马
继 PC-Write 之后,1989 年出现了 AIDS 木马。由于当时很少有人使用电子邮件,所以AIDS 的作者就利用现实生活中的邮件进行散播,给其他人寄去一封封含有木马程序软盘的邮件。之所以叫这个名称是因为软盘中包含有 AIDS 和 HIV 疾病的药品,价格,预防措施等相关信息。软盘中的木马程序在运行后,虽然不会破坏数据,但是他将硬盘加密锁死,然后提示受感染用户花钱消灾。可以说第二代木马已具备了传播特征(尽管通过传统的邮递方式)。
(3)第三代木马:网络传播性木马
随着 Internet 的普及,这一代木马兼备伪装和传播两种特征并结合 TCP/IP 网络技术四处泛滥。同时他还有新的特征:
①第一,添加了“后门”功能。
所谓后门就是一种可以为计算机系统秘密开启访问入口的程序。一旦被安装,这些程序就能够使攻击者绕过安全程序进入系统。该功能的目的就是收集系统中的重要信息,例如,财务报告、口令及信用卡号。此外,攻击者还可以利用后门控制系统,使之成为攻击其它计算机的帮凶。由于后门是隐藏在系统背后运行的,因此很难被检测到。它们不像病毒和蠕虫那样通过消耗内存而引起注意。
②第二,添加了击键记录功能。
从名称上就可以知道,该功能主要是记录用户所有的击键内容然后形成击键记录的日志文件发送给恶意用户。恶意用户可以从中找到用户名、口令以及信用卡号等用户信息。这一代木马比较有名的有国外的 BO2000(BackOrifice)和国内的冰河木马。它们有如下共同特点:基于网络的客户端/服务器应用程序。具有搜集信息、执行系统命令、重新设置机器、重新定向等功能。当木马程序攻击得手后,计算机就完全在黑客控制的傀儡主机,黑客成了超级用户,用户的所有计算机操作不但没有任何秘密而言,而且黑客可以远程控制傀儡主机对别的主机发动攻击,这时候背俘获的傀儡主机成了黑客进行进一步攻击的挡箭牌和跳板。随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。
2.木马工作原理
(1)基础知识
在介绍木马的原理之前有一些木马构成的基础知识我们要事先加以说明,因为下面有很多地方会提到这些内容。
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。
①硬件部分:建立木马连接所必须的硬件实体。控制端:对服务端进行远程控制的一方。服务端:被控制端远程控制的一方。INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。
②软件部分:实现远程控制所必须的软件程序。控制端程序:控制端用以远程控制服务端的程序。木马程序:潜入服务端内部,获取其操作权限的程序。木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。
③具体连接部分:通过 INTERNET 在服务端和控制端之间建立一条木马通道所必须的元素。控制端 IP,服务端 IP:即控制端,服务端的网络地址,也是木马进行数据传输的目的地。控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马程序。
用木马这种黑客工具进行网络入侵,从过程上看大致可分为六步,下面我们就按这六步来详细阐述木马的攻击原理。
一般来说一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两方面功能:
①木马伪装:木马配置程序为了在服务端尽可能的好的隐藏木马,会采用多种伪装手段,如修改图标,捆绑文件,定制端口,自我销毁等,我们将在“传播木马”这一节中详细介绍。
②信息反馈:木马配置程序将就信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址,IRC 号,ICO 号等等,具体的我们将在“信息反馈”这一节中详细介绍。
(2)传播木马
①传播方式:
木马的传播方式主要有两种:一种是通过 E-MAIL,控制端将木马程序以附件的形式夹在邮件中发送出去,收信人只要打开附件系统就会感染木马;另一种是软件下载,一些非正规的网站以提供软件下载为名义,将木马捆绑在软件安装程序上,下载后,只要一运行这些程序,木马就会自动安装。
②伪装方式:
鉴于木马的危害性,很多人对木马知识还是有一定了解的,这对木马的传播起了一定的抑制作用,这是木马设计者所不愿见到的,因此他们开发了多种功能来伪装木马,以达到降低用户警觉,欺骗用户的目的。常见的伪装方式有以下几种。
修改图标
当你在 E-MAIL 的附件中看到这个图标时,是否会认为这是个文本文件呢?但是我不得不告诉你,这也有可能是个木马程序,现在已经有木马可以将木马服务端程序的图标改成HTML,TXT,ZIP 等各种文件的图标,这有相当大的迷惑性,但是目前提供这种功能的木马还不多见,并且这种伪装也不是无懈可击的,所以不必整天提心吊胆,疑神疑鬼的。
捆绑文件
这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的情况下,偷偷的进入了系统。至于被捆绑的文件一般是可执行文件(即 EXE,COM 一类的文件)。
出错显示
有一定木马知识的人都知道,如果打开一个文件,没有任何反应,这很可能就是个木马程序,木马的设计者也意识到了这个缺陷,所以已经有木马提供了一个叫做出错显示的功能。当服务端用户打开木马程序时,会弹出一个的错误提示框,错误内容可自由定义,大多会定制成一些诸如“文件已破坏,无法打开的!”之类的信息,当服务端用户信以为真时,木马却悄悄侵入了系统。
定制端口
很多老式的木马端口都是固定的,这给判断是否感染了木马带来了方便,只要查一下特定的端口就知道感染了什么木马,所以现在很多新式的木马都加入了定制端口的功能,控制端用户可以在 1024—65535 之间任选一个端口作为木马端口(一般不选 1024 以下的端口),这样就给判断所感染木马类型带来了麻烦。
自我销毁
这项功能是为了弥补木马的一个缺陷。我们知道当服务端用户打开含有木马的文件后,木马会将自己拷贝到 WINDOWS 的系统文件夹中(C:\WINDOWS 或 C:\WINDOWS\SYSTEM 目录下),一般来说原木马文件和系统文件夹中的木马文件的大小是一样的(捆绑文件的木马除外),那么中了木马的朋友只要在近来收到的信件和下载的软件中找到原木马文件,然后根据原木马的大小去系统文件夹找相同大小的文件, 判断一下哪个是木马就行了。而木马的自我销毁功能是指安装完木马后,原木马文件将自动销毁,这样服务端用户就很难找到木马的来源,在没有查杀木马的工具帮助下,就很难删除木马了。
木马更名
安装到系统文件夹中的木马的文件名一般是固定的,那么只要根据一些查杀木马的文章, 按图索骥在系统文件夹查找特定的文件,就可以断定中了什么木马。所以现在有很多木马都允许控制端用户自由定制安装后的木马文件名,这样很难判断所感染的木马类型了。
(3)运行木马
服务端用户运行木马或捆绑木马的程序后,木马就会自动进行安装。首先将自身拷贝到WINDOWS的系统文件夹中(C:\WINDOWS或C:\WINDOWS\SYSTEM目录下),然后在注册表,启动组, 非启动组中设置好木马的触发条件,这样木马的安装就完成了。安装后就可以启动木马了,具体过程见下文:
①由自启动激活木马
自启动木马的条件,大致出现在下面 6 个地方:
1)注册表:打开 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion 下的五个以 Run 和 RunServices 主键,在其中寻找可能是启动木马的键值。
2)WIN.INI:在 C:\WINDOWS 目录下有一个配置文件 win.ini,用文本方式打开,在[windows]字段中有启动命令 load=和 run=,在一般情况下是空白的,如果有启动程序,可能是木马。
3)SYSTEM.INI:在 C:\WINDOWS 目录下有个配置文件 system.ini,用文本方式打开,在[386Enh],[mic],[drivers32]中有命令行,在其中寻找木马的启动命令。
4)Autoexec.bat 和 Config.sys:在 C 盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都 需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行。
5)**.INI:即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。
6)启动菜单:在“开始—程序—启动”选项下也可能有木马的触发条件。
②由触发式激活木马
1)注册表:打开 HKEY_CLASSES_ROOT 文件类型\shellopencommand 主键,查看其键值。举个例子,国产木马“冰河”就是修改 HKEY_CLASSES_ROOT\xtfileshellopencommand 下的键值,将“C:WINDOWS NOTEPAD.EXE %1”改为“C:WINDOWS\SYSTEM\SYXXXPLR.EXE %1”,这时你双击一个 TXT 文件后,原本应用 NOTEPAD 打开文件的,现在却变成启动木马程序了。还要说明的是不光是 TXT 文件,通过修改 HTML,EXE,ZIP 等文件的启动命令的键值都可以启动木马,不同之处只在于“文件类型”这个主键的差别,TXT 是 txtfile,ZIP 是 WINZIP,大家可以试着去找一下。
2)捆绑文件:实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。
3)自动播放式:自动播放本是用于光盘的,当插入一个电影光盘到光驱时,系统会自动播放里面的内容,这就是自动播放的本意,播放什么是由光盘中的 AutoRun.inf 文件指定的,修改 AutoRun.inf 中的 open 一行可以指定在自动播放过程中运行的程序。后来有人用于了硬盘与 U 盘,在 U 盘或硬盘的分区,创建 Autorun.inf 文件,并在 Open 中指定木马程序,这样,当你打开硬盘分区或 U 盘时,就会触发木马程序的运行。
木马作者还在不断寻找“可乘之机”这里只是举例,又有不断的自启动的地方被挖掘出来。
③木马运行过程
木马被激活后,进入内存,并开启事先定义的木马端口,准备与控制端建立连接。这时服务端用户可以在 MS-DOS 方式下,键入 NETSTAT-AN 查看端口状态,一般个人电脑在脱机状态下是不会有端口开放的,如果有端口开放,你就要注意是否感染木马了。下面是电脑感染木马后,用 NETSTAT 命令查看端口的两个实例:
其中一是服务端与控制端建立连接时的显示状态,二是服务端与控制端还未建立连接时的显示状态。在上网过程中要下载软件,发送信件,网上聊天等必然打开一些端口,下面是一些常用的端口:
1–1024 之间的端口:这些端口叫保留端口,是专给一些对外通讯的程序用的,如FTP 使用 21,SMTP 使用 25,POP3 使用 110 等。只有很少木马会用保留端口作为木马端口的。
1025 以上的连续端口:在上网浏览网站时,浏览器会打开多个连续的端口下载文字,图片到本地硬盘上,这些端口都是 1025 以上的连续端口。
4000 端口:这是 QQ 的通讯端口。
6667 端口:这是 IRC 的通讯端口。除上述的端口基本可以排除在外,如发现还有其它端口打开,尤其是数值比较大的端口,那就要怀疑是否感染了木马,当然如果木马有定制端口的功能,那任何端口都有可能是木马端口。
(4)信息泄露
一般来说,设计成熟的木马都有一个信息反馈机制。所谓信息反馈机制是指木马成功安装后会收集一些服务端的软硬件信息,并通过 E-MAIL,IRC 或 ICO 的方式告知控制端用户。
从反馈信息中控制端可以知道服务端的一些软硬件信息,包括使用的操作系统,系统目录,硬盘分区况,系统口令等,在这些信息中,最重要的是服务端 IP,因为只有得到这个参数,控制端才能与服务端建立 连接,具体的连接方法我们会在下一节中讲解。
(5)建立连接
这一节我们讲解一下木马连接是怎样建立的。一个木马连接的建立首先必须满足两个条件:一是服务端已安装了木马程序;二是控制端,服务端都要在线。在此基础上控制端可以通过木马端口与服务端建立连接。
假设 A 机为控制端,B 机为服务端,对于 A 机来说要与 B 机建立连接必须知道 B 机的木马端口和 IP 地址,由于木马端口是 A 机事先设定的,为已知项,所以最重要的是如何获得B 机的 IP 地址。获得 B 机的 IP 地址的方法主要有两种:信息反馈和 IP 扫描。对于前一种已在上一节中已经介绍过了,不再赘述,我们重点来介绍 IP 扫描,因为 B 机装有木马程序,所以它的木马端口 7626 是处于开放状态的,所以现在 A 机只要扫描 IP 地址段中 7626 端口开放的主机就行了,例如图中 B 机的 IP 地址是202.102.47.56,当 A 机扫描到这个 IP 时发现它的 7626 端口是开放的,那么这个 IP 就会被添加到列表中,这时 A 机就可以通过木马的控制端程序向 B 机发出连接信号,B 机中的木马程序收到信号后立即作出响应,当 A 机收到响应的信号后,开启一个随即端口 1031 与 B 机的木马端口 7626 建立连接,到这时一个木马连接才算真正建立。值得一提的要扫描整个 IP 地址段显然费时费力,一般来说控制端都是先通过信息反馈获得服务端的 IP 地址,由于拨号上网的 IP 是动态的,即用户每次上网的IP 都是不同的,但是这个 IP 是在一定范围内变动的,如图中 B 机的 IP 是 202.102.47.56,那么 B 机上网 IP 的变动范围是在202.102.000.000—202.102.255.255,所以每次控制端只要搜索这个 IP 地址段就可以找到 B 机了。
应当注意,近来一些新木马(如灰鸽子)采用了反弹主动连接技术。这类木马与传统的远程控制软件相反,进行 C/S(客户端/服务器)的反向连接。当木马服务端被种植到他人的机器中,服务端运行后,会动态分配一个端口,主动连接客户端(黑客)的 80 端口,如果你用“netstat-a”命令检查,将显示“TCP 本机 IP:2513 远程 IP:80 ESTABLISHED”类似的数据,好象是在浏览网页,因此防火墙也不会阻挡这种非法连接,给木马的防范带来了困难。
(6)远程控制
木马连接建立后,控制端端口和木马端口之间将会出现一条通道。
控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远程控制。下面我们就介绍一下控制端具体能享有哪些控制权限,这远比你想象的要大。
①窃取密码:一切以明文的形式,*形式或缓存在 CACHE 中的密码都能被木马侦测到,此外很多木马还提供有击键记录功能,它将会记录服务端每次敲击键盘的动作,所以一旦有木马入侵,密码将很容易被窃取。
②文件操作:控制端可藉由远程控制对服务端上的文件进行删除,新建,修改,上传,下载, 运行,更改属性等一系列操作,基本涵盖了 WINDOWS 平台上所有的文件操作功能。
③修改注册表:控制端可任意修改服务端注册表,包括删除,新建或修改主键,子键,键值。有了这项功能控制端就可以禁止服务端软驱,光驱的使用,锁住服务端的注册表,将服务端上木马的触发条件设置得更隐蔽的一系列高级操作。
④系统操作:这项内容包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标,键盘,监视服务端桌面操作,查看服务端进程等,控制端甚至可以随时给服务端发送信息,想象一下,当服务端的桌面上突然跳出一段话,不吓人一跳才怪。
3.隐形木马启动方式
大家所熟知的木马程序一般的启动方式有:加载到“开始”菜单中的“启动”项、记录到注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]项中,更高级的木马还会注册为系统的“服务”程序,以上这几种启动方式都可以在“系统配置实用程序”(在“开始→运行”中执行“msconfig”)的“启动”项和“服务”项中找到它的踪迹。
另一种鲜为人知的启动方式,是在“开始→运行”中执行“Gpedit.msc”。打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,如图所示,单击“确定”按钮就完成了。
重新启动计算机,系统在登录时就会自动启动你添加的程序,如果刚才添加的是木马程序,那么一个“隐形”木马就这样诞生了。因为用这种方式添加的自启动程序在系统的“系统配置实用程序”是找不到的,同样在我们所熟知的注册表项中也是找不到的,所以非常危险。
通过这种方式添加的自启动程序虽然被记录在注册表中,但是不在我们所熟知的注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]项内,而是在册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项。如果你怀疑你的电脑被种了“木马”,可是又找不到它在哪儿,建议你到注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项里找找吧,或是进入“组策略”的“在用户登录时运行这些程序”看看有没有启动的程序。
现在网页木马无非有以下几种方式中到你的机器里:
(1)把木马文件改成 BMP 文件,然后配合你机器里的 DEBUG 来还原成 EXE,网上存在该木马 20% ;
(2)下载一个 TXT 文件到你机器,然后里面藏有 FTP 程序,FTP 连上他们有木马的机器下载木马,网上存在该木马 20% ;
(3)也是最常用的方式,下载一个 HTA 文件,然后用网页控件解释器来还原木马。该木马在网上存在 50%以上;
(4)采用 JS 脚本,用 VBS 脚本来执行木马文件,该型木马偷 QQ 的比较多,偷传奇账号的少,大概占 10%左右;
(5)ARP 欺骗,利用 ARP 欺骗拦截局域网数据,攻击网关。在数据包中插入木马。解决方案,安装 ARP 防火墙。
4.木马防治
虽然木马程序手段越来越隐蔽,但是苍蝇不叮无缝的蛋,只要加强个人安全防范意识,还是可以大大降低“中招”的几率。
木马的一般防防范方法:
(1)不要下载、接收、执行任何来历不明的软件或文件。很多木马病毒都是通过绑定在其他的软件或文件中来实现传播的,一旦运行了这个被绑定的软件或文件就会被感染,因此在下载的时候需要特别注意,一般推荐去一些信誉比较高的站点。在软件安装之前一定要用反病毒软件检查一下,建议用专门查杀木马的软件来进行检查,确定无毒和无马后再使用。
(2)不要随意打开邮件的附件,也不要点击邮件中的可疑图片。(后边另外介绍一个关于邮件的例子,大家注意收看)对不明来历的电子邮件和插件不予理睬。
(3)将资源管理器配置成始终显示扩展名。将 Windows 资源管理器配置成始终显示扩展名,一些文件扩展名为 vbs、shs、pif 的文件多为木马病毒的特征文件,如果碰到这些可疑的文件扩展名时就应该引起注意。
(4)尽量少用共享文件夹。如果因工作等原因必须将电脑设置成共享,则最好单独开一个共享文件夹,把所有需共享的文件都放在这个共享文件夹中,注意千万不要将系统目录设置成共享。
(5)运行反木马实时监控程序。木马防范重要的一点就是在上网时最好运行反木马实时监控程序,PC 万用精灵等软件一般都能实时显示当前所有运行程序并有详细的描述信息。此外如加上一些专业的最新杀毒软件、个人防火墙等进行监控基本就可以放心了。
(6)经常升级系统。很多木马都是通过系统漏洞来进行攻击的,微软公司发现这些漏洞之后都会在第一时间内发布补丁,很多时候打过补丁之后的系统本身就是一种最好的木马防范办法。
(7)关闭所有磁盘的自动播放功能,避免插入带毒 U 盘,移动硬盘,数码存储卡中毒。
(8)安装个人防病毒软件、个人防火墙软件。
(9)经常去安全网站转一转,以便及时了解一些新木马的底细,做到知己知彼,百战不殆。
木马防范的方法那就是把 windows\system\mshta.exe 文件改名,改成什么自己随便(xp 和 win2000 是 在 system32 下 )HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\ActiveX Compatibility\下为 Active Setup controls 创建一个基于 CLSID 的新键值{6E449683_C509_11CF_AAFA_00AA00 B6015C},然后在新键值下创建一个 REG_DWORD 类型的键 Compatibility,并设定键值为0x00000400即可。
还有 windows\command\debug.exe 和 windows\ftp.exe 都给改个名字(或者删除),这对一些最新流行的木马是有效的防御。比如网络上流行的木马 smss.exe 这个是其中一种木马的主体潜伏在 Windows 98/ME/XP 的 c:\windows 目录下或 Windows 2000 的 c:\winnt … 下。假如你中了这个木马,首先我们用进程管理器结束正在运行的木马 smss.exe 然后在C:\windows 或 c:\winnt\目录下创建一个假的 smss.exe 并设置为只读属性(如果 2000/XP是 NTFS 的磁盘格式的话那就更好,可以用“安全设置”将其属性设置为读取),这样木马没了以后也不会在感染了。
“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。“木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。
随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。防治木马的危害,应该采取以下措施:
第一,安装杀毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,可以考虑使用安全性比较好的浏览器和电子邮件客户端工具。
第四,如果使用 IE 浏览器,应该安装卡卡安全助手,防止恶意网站在自己电脑上安装不明软件和浏览器插件,以免被木马趁机侵入。
远程控制的木马有:冰河、灰鸽子、上兴、Pcshare、网络神偷、FLUX、网络公牛、Netspy、SubSeven、广外女生等,现在通过线程插入技术的木马也有很多。现在的木马程序常常和DLL 文件息息相关,被很多人称之为“DLL 木马”。DLL 木马的最高境界是线程插入技术,线程插入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上说,在 Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存,因此也就拥有了那个远程进程相当的权限。无论怎样,都是让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好地保护自己。
DLL 不能独立运行,所以要想让木马跑起来,就需要一个 EXE 文件使用动态嵌入技术让DLL 搭上其他正常进程的车,让被嵌入的进程调用这个 DLL 的 DllMain 函数,激发木马运行,最后启动木马的 EXE 结束运行,木马启动完毕。启动 DLL 木马的 EXE 是个重要角色,它被称为 Loader,Loader 可以是多种多样的,Windows 的 Rundll32.exe 也被一些 DLL 木马用来作为 Loader,这种木马一般不带动态嵌入技术,它直接注入 Rundll32 进程运行,即使你杀了Rundll32 进程,木马本体还是存在的。利用这种方法除了可以启动木马之外,不少应用程序也采用了这种启动方式,一个最常见的例子是“3721 网络实名”。
“3721 网络实名”就是通过 Rundll32 调用“网络实名”的 DLL 文件实现的。在一台安装 了 网 络 实 名 的 计 算 机 中 运 行 注 册 表 编 辑 器 , 依 次 展 开“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”,发现一个名为“CnsMin”的启动项,其键值为“Rundll32 C:\WINDOWS\Downlo~1\CnsMin.dll,Rundll32”,CnsMin.dll 是网络实名的 DLL 文件,这样就通过 Rundll32 命令实现了网络实名的功能。
DLL 木马简单防御方法:
DLL 木马的查杀比一般病毒和木马的查杀要更加困难,建议用户经常看看系统的启动项中有没有多出莫名其妙的项目,这是 DLL 木马 Loader 可能存在的场所之一。如果用户有一定的编程知识和分析能力,还可以在 Loader 里查找 DLL 名称,或者从进程里看多挂接了什么陌生的 DLL。对普通用户来说,最简单有效的方法还是用杀毒软件和防火墙来保护自己的计算机安全。现在有一些国外的防火墙软件会在 DLL 文件加载时提醒用户,比如 Tiny、SSM等,这样我们就可以有效地防范恶意的 DLL 木马了。

三、实验环境

联网的 PC 机 2 台(安装 Windows 2003/XP 操作系统)。
安装实验中需要检测的木马包括:网络公牛、Netspy、冰河、广外女生、灰鸽子和 anti。

四、实验内容

1.常见木马的检测和清除
(1)网络公牛(Netbull)①木马特征:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网络公牛默认的连接端口为 23444。服务端程序 newserver.exe 运行后,会自动脱壳成checkdll.exe,位于 C:\Windows\System 下,下次开机后 checkdll.exe 将自动运行,具有较强的隐蔽性。同时,服务端运行后会自动捆绑以下文件(Window 2000/XP 下):
Notepad.exe,regedit.exe,reged32.exe,drwtsn32.exe,winmine.exe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
服务端运行后还会捆绑在开机时自动运行的第三方软件,如 realplay.exe、QQ、ICQ 等,同时会在注册表中建立键值。
网络公牛采用的是文件捆绑功能,它和上面所列出的文件捆绑在一块,要清除非常困难。用户通过判断文件长度是否发生变化,可分析是否中了木马。
在这里插入图片描述
②清除方法:
删除网络公牛的自启动程序 C:\Windows\System32\Checkdll.exe
把网络公牛在注册表中所建立的键值全部删除
检查上面列出的文件,如果发现文件长度发生变化(大约增加了 40 KB 左右,可以通过与其他机子上的正常文件比较而知),就删除它们。然后点击“开始”→“所有程序”→“附件”→“系统工具”→“系统信息”→“工具”→“系统文件检查器”,在弹出的对话框中选中“从安装软盘提取一个文件(E)”,在框中填人要提取的文件(前面删除的文件),点“确定”按钮,然后按屏幕提示将这些文件恢复即可。如果是开机时自动运行的第三方软件,如 realplay.exe、QQ、ICQ 等被捆绑上了,那就把这些文件删除,再重新安装。
在这里插入图片描述
在这里插入图片描述
(2)Netspy 网络精灵
①木马特征:Nespy 又名网络精灵,默认连接端口为 7306。客户端通过 IE 或 Navigate 就可以对服务器端进行远程监控。服务器端程序被执行后,会在 C:\Windows\System 目录下生成 netspy.exe文件。同时在注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Vesion\Run\下建立键值 C:\Windows\System\netspy.exe,用于在系统启动时自动加载运,由于版本过老,没有相应控制端,Netspy 部分了解即可。
②清除方法:
重新启动机器并在出现 Starifig Windows 提示时,按 F5 键进入命令行状态。在C:\Windows\System\目录下输入以下命令:

del netspy.exe

进入HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Vesion\Run\ ,删除 Netspy 的键值,即可安全清除 Netspy。
(4)广外女生
①木马特征:
“广外女生”是一种新出现的远程监控工具,破坏性很大,能实现远程上传、下载。删除文件、修改注册表等功能。而且“广外女生”服务器端被执行后,会自动检查进程中是否含有“金山毒霸”、“天网”等字样,如果发现就将该进程终止,使防火墙完全失去作用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②清除方法:
从任务管理器中删除 diagcfg.exe 进程,找到 System32 目录下的 diagfg.exe,删除它(由于删除后会导致 exe 文件无法运行,先打开注册表编辑器再删)。
找 到 HKEY_CLASSES_ROOT\exefile\shell\open\command , 将 其 默 认 键 值 改 成“%1” %*
找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current-Version\RunServices,删除注册表中名称为“Diagnostic Configuration”的键值。(ctr+F Diagnostic Configuration)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)冰河
①木马特征:
这里介绍的是对其标准版的清除,掌握了如何清除标准版,再来对付变种冰河就很容易了。冰河的服务器端程序为 G-server.exe。,客户端程序为 G-client.exe,默认连接端口为 7626。一旦运行 G-server,那么该程序就会在C:\Windows\System32 目录下生成 Kernel32.exe 和sy***plr.exe,并删除自身。Kernel32.exe 在系统启动时自动加载运行,sy***plr.exe 和 TXT 文件关联。即使删除了 Kernel32.exe,但只要打开 TXT 文件,sy***plr.exe 就会被激活,再次生成 Kernel32.exe。
在这里插入图片描述
在这里插入图片描述
②清除方法:
删除 C:\Windows\System32 下的 Kernel32.exe 和 Sy***plr.exe 文件。
冰 河 会 在 注 册 表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Vesion\Run\下扎根,键值为C:\Windows\System\Kernel32.exe,删除它
在注册表的 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Vesion\Runservices 下,还有键值为 C:\Windows\System\ Kernel32.exe 的,也要删除。
修改注册表 HKEY_CLASSES_ROOT\txtfile\shell\open\command 下的默认值,由表中木马后的 C:\Windows\System\Sy***plr.exe %1 改为正常的 C:\Windows\System\notepad.exe %1,即可恢复 TXT 文关联功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.木马检测工具的使用
Anti-Trojan Shield 是一款享誉欧洲的专业木马侦测、拦截及清除软件。读者可以从http://www.atshield.com/index.php?r=download 下载试用版。
(1)从上面的网站下载安装软件 atsl.exe。
(2)双击该软件,根据提示完成安装。
(3)运行 Anti-Trojan Shield,如图 7.42 所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图 7.42 Anti-Trojan Shield 运行图
(4)选择扫描对象,然后点击“Start”,开始对目标进行扫描,如图 7.43 所示。
在这里插入图片描述
图 7.43 扫描示意图
(5)如果软件找到木马会提示,并把该木马显示出来,如图 7.44 所示。
在这里插入图片描述
图 7.44 报警示意图
此时,可以根据实际情况选择“Delete”删除或“Quarantine”隔离该木马。
如图 7.45 所示,读者还可以根据需要,在“setup”标签下勾选“scan archives”选项,这样就可以对 ZIP、RAR、ARJ 和 CAB 等压缩包内部进行扫描。勾选“Use Program code analysis”,可以对程序进行代码分析,查找出未知的木马程序,这有点类似于反病毒软件中的“启发式查毒”,但是扫描速度会减慢。
另外,默认选择“Min [high speed]”项,则只对可执行文件进行扫描,建议选择“Max[low speed]”,对所有文件都进行扫描。
在这里插入图片描述
图 7.45 木马处理
(5)灰鸽子
①木马特征:
灰鸽子木马分两部分:客户端和服务端。黑客(姑且这么称呼吧)操纵着客户端,利用客户端配置生成一个服务端程序。服务端文件的名字默认为 G_Server.exe,然后黑客通过各种渠道传播这个木马(俗称种木马或者开后门)。
由于灰鸽子病毒变种繁多,其文件名也很多变,近来发现的以(Backdoor.GPigeon.sgr)类型居多,不易对付,在被感染的系统%Windows%目录下生成三个病毒文件,分别是G_Server.exe,G_Server.dll,G_Server_Hook.dll。
G_Server.exe 运行后将自己拷贝到 Windows 目录下(98/xp 下为系统盘的 windows 目录,2k/NT 下为系统盘的 Winnt 目录),然后再从体内释放 G_Server.dll 和 G_Server_Hook.dll 到windows 目录下。G_Server.exe、G_Server.dll 和 G_Server_Hook.dll 三个文件相互配合组成了灰鸽子服务端,有些灰鸽子会多释放出一个名为 G_ServerKey.dll 的文件用来记录键盘操作。同时注意,G_Server.exe 这个名称并不固定,它是可以定制的,比如当定制服务端文件名为A.exe 时,生成的文件就是 A.exe、A.dll 和 A_Hook.dll。
Windows 目录下的 G_Server.exe 文件将自己注册成服务(9X 系统写注册表启动项),每次开机都能自动运行,运行后启动 G_Server.dll 和 G_Server_Hook.dll 并自动退出。G_Server.dll 文件实现后门功能,与控制端客户端进行通信;G_Server_Hook.dll 则通过拦截API 调用来隐藏病毒。因此,中毒后,我们看不到病毒文件,也看不到病毒注册的服务项。随着灰鸽子服务端文件的设置不同,G_Server_Hook.dll 有时候附在 Explorer.exe 的进程空间中,有时候则是附在所有进程中。
灰鸽子病毒其特点是“三个隐藏”——隐藏进程、隐藏服务、隐藏病毒文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。进入安全模式的方法是:启动计算机,在系统进入 Windows 启动画面前,按下 F8 键,在出现的启动选项菜单中,选择“安全模式”。
第一步:由于灰鸽子的文件本身具有隐藏属性,因此要设置 Windows 显示所有文件。打开“我的电脑”,选择菜单“工具”→“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“显示所有文件和文件夹”,然后点击“确定”。
第二步:打开 Windows 的“搜索文件”,文件名称输入“*_hook.dll”,搜索位置选择 Windows的安装目录(默认 98/xp 为 C:\windows,2k/NT 为 C:\Winnt)。
第三步 : 经过搜索,在Windows 目录 (不包含子目录)下发现了一个名为G_Server_Hook.dll 的文件。
第四步:根据灰鸽子原理分析我们知道,G_Server_Hook.dll 是灰鸽子的文件,则在操作系统安装目录下还会有 G_Server.exe 和 G_Server.dll 文件。打开 Windows 目录,果然有这两个文件,同时还有一个用于记录键盘操作的 G_ServerKey.dll 文件。
经过这几步操作基本就可以确定这些文件是灰鸽子木马了。
②清除方法:
对灰鸽子木马可以目前一些流行的杀病毒软件查杀,也可以进行手动清除。下面介绍一种手工清除方法。清除灰鸽子仍然要在安全模式下操作,主要有“清除灰鸽子的服务”和“删除灰鸽子程序文件”两大步。注意:此操作需在安全模式下进行,为防止误操作,清除前一定要做好备份。
第一:删除相应木马程序
首先在 windows 中找到配置服务器时的名称(默认:Hacker.com.cn.exe),进行删除。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于在删除程序在执行时会伪装成 IEEXPLORE 进程,所以进程管理器结束进程再删除文件。
第二:删除遗留的注册表信息
1)打开注册表编辑器(点击“开始”→“运行”,输入“Regedit.exe”,确定。)。
2)点击菜单“编辑”→“查找”,“查找目标”输入“Hacker.com.cn”,点击确定,我们就可以找到灰鸽子的服务项。
3)删除整个 G_server.exe 键值所在的服务项。
即完成灰鸽子的删除。
在这里插入图片描述
在这里插入图片描述

五、思考题

  1. 恶意软件入侵流程可归纳为怎么样的一个过程?
    答:通过对用户在网络下载软件的捆绑,将带有恶意代码的客户端或服务端发送至用户,当用户运行时,即可控制用户电脑。
  2. 现今的常见恶意软件的隐藏方式有哪些?请举例说明。
    答:反-反汇编和调试器(保护器)、Rootkit、代码,进程和DLL注入等。

猜你喜欢

转载自blog.csdn.net/sjx3161/article/details/125112853
今日推荐