首页 百科知识 特洛伊木马

特洛伊木马

时间:2022-10-13 百科知识 版权反馈
【摘要】:特洛伊木马是指通过欺骗手段植入到网络与信息系统中,并具有控制该目标系统或进行信息窃取等功能的有害程序。该木马具有病毒的特征现象,被称为伪病毒型木马。第三代木马在信息传递方面有较大突破,如反弹端口、ICMP协议传输等。第五代木马与蠕虫、病毒相结合,具有更大的危害性。与病毒相比,木马的使命决定了它需要具有更高的隐藏性。入侵者通过分析木马记录的内容,提取感兴趣的信息,如用户的上网习惯或疑似密码的输入信息等。

3.4.3 特洛伊木马

1.特洛伊木马简介

特洛伊木马是指通过欺骗手段植入到网络与信息系统中,并具有控制该目标系统或进行信息窃取等功能的有害程序。它是一种具有隐藏性的、自发性的可被用来进行恶意行为的程序,多不会直接对计算机产生危害,而是以控制为主。RFC1244节点安全手册中给出“特洛伊木马程序是这样一种程序,它提供了一些有用的,或仅仅是有意思的功能。但是通常要做一些用户不希望的事,诸如在你不了解的情况下复制文件或窃取你的密码”,这种对木马程序定义的叙述被人们广泛接受。传统计算机木马的基本原理如图3-17所示。

img73

图3-17 传统计算机木马的基本原理

木马在发展过程中经历了几次重要的技术革新,通常将木马分为五代。

第一代木马功能较为单一,主要以破坏文件和窃取密码为主。Pc-Write木马是第一个在计算机界出名的木马,出现在1986年。该木马伪装成Quicksoft公司的用于字处理的共享软件Pc-Write的2.72版本(实际上该公司并未发行2.72版)。当用户信以为真下载并运行该程序时,这个木马会做两件事:一是清除FAT(文件分配表,计算机上用于组织硬件存储内容的系统);二是格式化硬盘,删除所有存储的数据。该木马具有病毒的特征现象,被称为伪病毒型木马。

第二代木马功能较为完备,可以实现文件控制、信息窃取、转向攻击后门等多种功能,以BO2000、Sbuseven为代表。“冰河”是国内著名的木马,由国内安全程序员黄鑫在1999年编写完成,凭借着国产化和暂时无杀毒软件能防范的优势迅速成为当时黑客使用最广泛的木马,是当时为数不多的具有窗口界面的国产木马。“冰河”木马属于文本关联型程序,其服务器会随文本文件的打开而运行,具有远程修改注册表,点对点及时通信功能,可以对受害者计算机上的文件进行复制、修改、删除等非法操作。

第三代木马在信息传递方面有较大突破,如反弹端口、ICMP协议传输等。国内的“灰鸽子”采用反弹端口技术,主动向客户端发起连接,逃避防火墙对外部连接请求的阻碍。“灰鸽子”为入侵者提供后门,最近两年都位于十大流行病毒行列。它具有后门功能,感染后的计算机可以被黑客远程控制,如记录键盘、结束指定的进程、强制重启计算机、执行系统命令、获取系统信息、从网上下载指定的文件等。具有相似功能的还有十大流行病毒之一的“德芙”木马病毒。

第四代木马在进程隐藏方面有重大突破。DLL注入型木马经常使用常见的一些系统服务进程作为寄主进程,如lsass.exe、svhost.exe和iexplore.exe等系统服务进程,这些进程本来就会存在,不会引起怀疑,从而增强其隐蔽性。

第五代木马与蠕虫、病毒相结合,具有更大的危害性。2006年的“熊猫烧香”病毒,就是融合了木马、蠕虫、病毒三种入侵手段,利用蠕虫的传播能力和多种渠道传播,在短短几个月内感染了数以万计的计算机,疯狂下载、运行各种木马程序。类似的还有“仇英”、“艾妮”等病毒。

2.木马的特性及分类

木马有以下5个特性:

(1)程序性:程序性是指木马是一段执行特殊功能的非授权性程序,进行一些用户所不希望的操作,如窃取密码、盗取文件和提供后门等。程序性是木马的本质特性,说明木马是人为制造的,是在一定技术基础上设计完成的,同样也可以使用技术手段进行反击。只不过从现阶段来看,与木马技术相比,反木马技术尚处于被动的追赶阶段,反木马战役的成功有赖于相关技术的提高,如对木马最新技术的剖析和对未知木马的预测等。

(2)隐藏性:隐藏性是指木马服务端能够躲避杀毒软件的扫描,不会被轻易地发现。没有服务端的支持,木马程序就无法实现远程控制和破坏。木马服务端长期潜伏在用户计算机内的前提就是要隐藏自己,功能实现往往次之。隐藏性较差的木马往往会被杀毒软件发现,若在运行之前被消灭在用户主机内部,就发挥不了作用。与病毒相比,木马的使命决定了它需要具有更高的隐藏性。隐藏性是木马最大的特性。

(3)有效性:有效性是指入侵的木马与其控制端(入侵者)建立有效的通信联系,能接收到控制端的命令信息,并能将搜集的信息返回给入侵者。木马运行在目标计算机上的目的就是要实现入侵者的某些企图。如果入侵者和木马的通信途径被切断,植入的木马对入侵者来说就不再具有任何价值。成功入侵的木马对目标计算机的监控和信息采集能力也是衡量其有效性的一个重要内容。

(4)顽固性:顽固性是指有效清除木马的难易程度,体现了木马对反木马操作的免疫性。当木马被用户通过杀毒软件或其他途径检测出来(失去隐蔽性)后,为了继续确保其侵入的有效性,往往还具有另外一个重要特性——顽固性。如果一个木马不能一次性有效清除,那么该木马就具有较强的顽固性。一些常用的反清除技术有多实例法,将木马程序(多份)分别存放在目标计算机不同的目录下,这些木马实例互相监督,以防止某个木马实例被查杀,确保木马工作还能继续进行。多实例可以通过采用同时运行多个线程或进程来实现。

(5)易植入性:任何木马要想发挥作用必须首先进入目标计算机(植入操作),可见易植入性是木马有效性的先决条件。

按照不同的分类标准,木马的分类方法不尽相同,常见的有以下几种分类标准:

按照功能分类可分为:

(1)密码发送型:用于搜集用户的各种密码,并在用户不知道的情况下,通过邮件或即时通信的方式发送给指定的目标,如入侵者的邮箱或者是木马客户端。各种账号和密码都可能成为木马觊觎的目标,如邮箱、MSN、QQ、网上银行、网络游戏等。密码获取的方式也有多种,如搜寻所有和密码相关的文件、监测输入和欺骗输入等。目前存在的QQ盗号木马就是通过模拟与QQ客户端相似的界面或者监测真正的QQ登录界面作为实现手段,待用户输入用户名和密码时偷偷将其记录下来,寻找机会发给使用木马的入侵者。

(2)键盘记录型:键盘记录型木马用于监测用户的键盘敲击动作,并将敲击的内容详细记录下来,伺机发送出去。这种木马程序一般随Windows系统的启动自动加载,通过记录用户的键盘敲击内容,监控用户的一举一动。入侵者通过分析木马记录的内容,提取感兴趣的信息,如用户的上网习惯或疑似密码的输入信息等。

(3)屏幕截取型:屏幕截取型木马可以抓取用户当前计算机屏幕上的图像。入侵者通过接收到的图像可以看到用户具体在干什么,就好像站在受害者计算机的旁边看受害者的操作计算机一样,只不过是依据抓屏的频率间歇性地偷看一下。

(4)文件控制型:文件控制型木马用于对受害者主机的各种文件进行各种非法操作,范围涉及普通文件、注册表文件和系统文件等。

(5)后门型:后门型木马通过打开目标计算机的一个端口连入因特网,将目标计算机暴露给入侵者。在木马服务端的配合下,入侵者可获取目标计算机的部分或全部操作权限,通过控制端对目标计算机进行远程控制。

按照隐藏技术可分为:

(1)EXE伪装型:木马的伪装主要有文件伪装和进程伪装。通常的文件伪装主要有以下几种方式:将文件属性改为隐藏;采用类似于系统文件的文件名;将木马文件的创建时间设定成与系统文件相同的时间。进程伪装主要是将木马自己的进程名设为与系统进程类似的名称,在任务栏中隐藏自己,肉眼很难看见。一般用户对系统了解不足,以为是系统进程而不敢轻易删除。

(2)传统DLL\VxD型:传统DLL\VxD型木马是一种使用DLL(动态链接库)技术进行隐藏的木马。与EXE型木马不同,此类型木马本身是一个DLL文件,它本身不能自己运行,在系统启动时或其他程序(如IE或资源管理器)启动时一并被载入执行,也可通过Rundll32.exe被载入运行。在任务管理器中并不能看到它的踪迹,此类型木马躲藏在当前载入的DLL\VxD模块列表中。

(3)DLL关联型:DLL关联型木马采用与已知DLL相关联的机理实现木马功能。如通过精心设计一个DLL替换已知的系统DLL或潜入其内部,并对所有的函数调用进行过滤转发,对于正常的调用直接转发给被替换的系统DLL,对于特定的情况,则首先会进行一些木马操作。例如,杀毒软件在扫描木马文件时会使用系统调用功能,木马程序监听系统调用时文件打开函数的调用,当判断要打开的是木马文件本身时,返回文件不存在等假结果,使得木马文件不能被发现。木马采用同样的方式接管某些系统调用函数,如隐藏自己的注册表启动项、注册表的系统服务和木马进程。

(4)DLL注入型:DLL注入型木马是将木马的DLL文件注入到某个进程的地址空间,然后潜伏在其中并完成木马的工作。DLL注入的方法有很多种,比较有效的是远程缓冲区溢出技术和远程线程技术。远程线程技术就是通过在另一个进程中创建远程线程的地址空间,在远程嵌入完成后,再将原进程关掉,木马模块就作为线程在另一个进程中运行,系统中不存在木马进程的痕迹,是一种很有效的木马隐藏技术。远程缓冲区溢出技术是将木马程序写入目前正在运行的某个进程的内存中,更改该进程异常处理(ExceptionHandle)代码,使之转向木马程序模块处运行。

按照通信技术分类可分为:

(1)传统C/S通信型:该类型木马服务端打开某个端口监听来自控制端的连接消息,以便与控制端进行通信交流。这是一般C/S模式的程序采用的通信方式。但防火墙一般会阻断来自外部的连接请求,使得采用这种传统通信模式的木马与控制端的通信受到限制。

(2)端口寄生型:端口寄生型木马利用目标计算机上一个已经打开的端口进行监听(寄生其上),遇到(来自控制端的特殊格式)指令就进行解释执行。由于这种木马寄生在目标计算机已有的系统服务之上,没有另开端口,因此此类木马不会被在系统端口扫描时被发现。

(3)端口反弹型:端口反弹型木马采用服务端主动向控制端发起连接的方式进行通信。由于绝大多数防火墙都严格限制由外向内的连接请求,因此工作在传统C/S通信模式下的木马往往很难奏效。而一般防火墙对由内向外的连接请求通常不加限制,这样使得采用端口反弹模式的木马能够躲避一般防火墙的阻截。例如,如果将控制端主机的监听端口设为80,伪装成Web服务器,则目标计算机的通信请求都会被防火墙误认为是HTTP请求而予以通行。有时控制端计算机伪装成FTP服务器或SMTP服务器,将通信伪装成合法化。

(4)ICMP型:ICMP型木马采用ICMP协议进行通信交流,由于不需要建立连接,可有效避免被端口扫描工具发现。服务端通过在协议数据包中加入特殊格式的信息,实现与控制端的通信。但由于这类协议是无连接的,不适合用来进行实时图像传输和远程控制,可以用来传输一些敏感信息。与ICMP协议类似,ARP有时也用于木马的通信。

(5)电子邮件型:该类型木马的服务端将搜集的信息以邮件的方式发到木马使用者的邮箱内。与端口反弹型木马相比,电子邮件型木马通信效率相对较低,但是它具有不会暴露木马使用者的IP的强大优势,同时比较容易通过防火墙,因此目前应用比较广泛。

(6)网卡或Modem直接编程型:这类木马与控制端进行通信时不利用套接字,而采用直接对网卡或Modem进行编程,可以防止杀毒软件的套接字检测扫描。

下面具体介绍一下ICMP型木马的原理。

基于ICMP的隐蔽通信的思路如下:由于ICMP报文是由系统内核或进程直接处理,而不是通过端口,这就给木马一个摆脱端口的绝好机会,木马将自己伪装成一个ping的进程,系统就会将ICMP_ECHOREPLY(ping的回包)的监听、处理权交给木马进程,一旦事先约定好的ICMP_ECHOREPLY包出现(可以判断包大小、ICMP_SEQ等特征),木马就会接收、分析并从报文中解码出命令和数据。

ICMP与IP位于同一层,它通常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的控制信息。ICMP报文是在IP数据报内部被传输的。ICMP的报文格式如图3-18所示,所有报文的前四个字节都是一样的,但是剩下的其他字节则互不相同。下面简要介绍各种报文格式。

img74

图3-18 ICMP报文格式

类型字段可以有15种不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。校验和字段覆盖整个ICMP报文。使用的算法和IP首部校验和算法相同。ICMP的校验和是必须的。图3-19是一个真实的ICMP通信的例子。

img75

图3-19 一个ICMP通信实例

针对这种ICMP隐藏通信有简单有效的防御方法,即禁止ICMP_ECHOREPLY报文,但这种方法会导致ping命令失效。

3.木马的植入

木马的植入是指木马程序在被攻击系统中被激活,自动加载运行的过程。木马自启动的方式几乎涵盖操作系统所能支持的程序启动方式,以下分别描述。

(1)系统配置文件的自启动选项

在Windows系统中,直接在程序启动组目录“C:\Windows\Start Menu\Programs\StartUp”加入木马的程序可以简单实现自启动,但这种方面隐蔽性太差。system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序信息,特洛伊木马经常会修改这两个文件,以达到自启动的目的。

·win.ini文件:win.ini文件的[Windows]字段中,包含“Load=”和“Run=”两项,一般情况下这两项的内容为空,特洛伊木马可以把自己的存储位置添加到其中,使其能够自启动。

·system.ini文件:system.ini文件的[386Enh]字段中,可以通过修改“driver=路径\程序名”的方式,使木马随Windows的启动而自动加载运行。另外,system.ini文件的[mic]、[drivers]、[drivers32]和[boot]四个字段也起到加载驱动程序的作用,也有可能被木马修改。

此外Windows系统中Autoexec.bat、config.sys、Autorun.inf等文件也可能用于设置程序自动启动。

(2)加载自启动的注册表项

以下是Windows系统经常使用的用于加载程序自启动的注册表项,通过修改它们可以实现木马的自启动。

·HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

·HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

·HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

·HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

·HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

·HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

·HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices

·HKEY_LOCAL_MACHINE\SoftwareMicrosoft\Windows\CurrentVersion\RunServices

·HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

·HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

·HEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows下的load键值

·HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon下的Userinit、Shell键值

(3)通过修改文件关联加载

通过修改文件关联启动的木马的迷惑性很强,其原理是利用Windows系统在双击某个文件时自动启动与此文件相应的处理程序功能,将处理程序偷换成木马程序,这样在用户双击该文件时,木马程序就会自动启动了。这种木马有可能会修改TXT文件、DLL文件、EXE文件、COM文件、BAT文件、HTA文件、PIF文件、HTA文件等的关联,通过修改注册表[HKEY_CLASSES_ROOT]根键下上述各文件的command键值完成。

下面以修改EXE文件关联为例,详细说明特洛伊木马修改文件关联的方法。注册表[HKEY_CLASSES_ROOT\exefile\shell\open\command]键值中记录的是EXE文件的打开方式,其默认键值为"%1\"%*。如果木马(被控端为Trojan.exe)把此默认键值改为Trojan.exe"%1\"%*,那么在运行EXE文件时就会启动Trojan.exe文件,该木马就可以加载运行了。“灰鸽子”木马就是通过关联EXE文件方式打开的,“冰河”木马是通过关联TXT文件方式打开的。

(4)木马隐藏技术

木马有多种隐藏方式,常见的有:任务栏隐藏,使程序不出现在任务栏;进程隐藏,躲避任务管理器等进程管理工具;端口隐藏,躲避嗅探工具,使用户无法发现隐蔽的网络通信;通信隐藏,进行通信时,将目标端口设定为常用的80、21等端口,可以躲过防火墙的过滤;隐藏加载方式,通过各类脚本允许木马;修改设备驱动程序或修改动态链接库(DLL)来加载木马。

木马的隐藏技术大体可分为进程隐藏技术、文件隐藏技术、通信隐藏技术三类。

进程隐藏,就是通过某种手段,使用户不能发现当前运行着的病毒(此处主要是指木马、蠕虫)进程,或者当前病毒程序不以进程或服务的形式存在。

文件隐藏技术有很多实现方法,常见的有:①取与系统文件类似的名字;②合并文件,有个别木马程序能把它自身的.exe文件和服务器端的图片文件绑定;③采用NTFS文件系统一个文件中包含多个数据流;④通过修改(系统服务描述符表(System Service Descriptor Tables,SSDT),截获系统服务调用;⑥通过文件系统过滤驱动来实现,主要是通过拦截系统的文件操作,其实就是拦截I/O管理器发向文件系统驱动程序的IRP。

通信隐藏技术是在用户毫无感知的情况下完成木马客户端与服务器端的数据交互。早期的木马(如“冰河”)采用的通信技术都是简单的TCP连接方式,这样用户很容易就能够发现非法的连接,从而发现恶意代理的存在。随着技术的发展,隐蔽通信的技术也在不断发展,端口反弹技术、ICMP型木马技术等隐蔽通信技术纷纷出现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈