2024年1月16日发(作者:)
5.5木马技术
5.5.1
木马技术概述
木马的全称是“特洛伊木马”(Trojan horse),来源于希腊神话。 古希腊围攻特洛伊城多年无法攻下,于是有人献出木马计策,让士兵藏匿于巨大的木马中,然后佯作退兵,城中得知解围的消息后,将“木马”作为战利品拖入城内,匿于木马中的将士出来开启城门,与城外部队里应外合攻下特洛伊城,后世称这只大木马为“特洛伊木马”。
网络世界的特洛伊木马是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和DoS攻击等特殊功能的后门程序。它与控制主机之间建立起连接,使得控制者能够通过网络控制受害系统,通信遵照TCP/IP协议,最大的特征在于隐秘性,偷偷混入对方的主机里面,但是却没有被对方发现。就象一个潜入敌方的间谍,为其他人的攻击打开后门,这与战争中的木马战术十分相似,因而得名木马程序。实际上计算机网络木马不但可以窃取、破坏被植入主机的信息,而且可以通过控制主机来攻击网络中的其它主机。
木马程序不仅可能侵害到个人乃至某些公司的利益和权力,更可能危及整个社会和国家的利益和安全。如果公安部用于采集处理人们身份证信息的计算机被安装了木马,那么这些信息就可能被木马以有线或无线的方式通过网络泄露出去,后果不堪设想。木马是受控的,它能分清敌我,所以与分不清敌我的其它病毒和攻击技术相比,具有更大的危险性和破坏性。
木马是近几年比较流行的危害程度较严重的恶意软件,常被用作网络系统入侵的重要工具和手段。2008年金山病毒报告监测显示,木马攻击占当前网络病毒的70%以上,已经成为当前网络危害最严重的网络病毒。网络上各种“种马”技术加剧了木马的流行和发展,由于木马控制了被植入者的计算机,它几乎可以在被植入主机上为所欲为,破坏程度非常巨大,可以窃取账号密码、删除文件、格式化磁盘,甚至可以打开摄像头进行偷窥等;木马往往又被用做后门,植入被攻击的系统,以便为入侵者再次访问系统提供方便;或者利用被入侵的系统,通过欺骗合法用户的某种方式暗中“散发”木马,以便进一步扩大入侵成果和入侵范围,为进行其它入侵活动,如分布式拒绝服务攻击(DDoS)等提供可能。木马“投放”也有巨大的商业利益驱动,简单的一个木马程序就会带来数十万的收入。对个人而言,了解和掌握各种木马攻击技术和防御技术,可以保护个人利益不受侵犯,维护自己的网络安全。因此,研究木马攻击和防御技术十分重要。
木马不同于传统病毒,它们的区别见5.1节表5-1所示。最基本的区别就在于病毒有很强的传染性及寄生性,而木马程序则不同。但是,现在木马技术和病毒的发展相互借鉴,也使得木马具有了更好的传播性,病毒具有了远程控制能力,例如,”红色代码”已具备了远程控制的雏形。木马程序和病毒的区别日益模糊。
从木马的发展历程考虑。木马技术自出现至今,大致可以分为五代。
第一代木马出现在网络发展的早期,是以窃取网络密码为主要任务,即实现简单的密码窃取、发送等功能,这种木马通过伪装成一个合法的程序诱骗用户上当。世界上第
一个计算机木马是出现在1986年的PC-Write木马。它伪装成共享软件PC-Write的 2.72版本,而实际上编写PC-Write的Quicksoft公司从未发行过2.72版本,一旦用户信以为真运行该木马程序,硬盘可能被格式化。第一代木马还不具有传染性,在隐藏和通信方面也均无特别之处。
第二代木马在技术上有了很大的进步,它使用标准的C/S架构,提供远程文件管理、屏幕监视等功能,在隐藏、自启动和操纵服务器等技术上也有很大的发展。由于植入木马的服务端程序会打开连接端口等候客户端连接,因此比较容易被用户发现。冰河、BO2000等都是典型的第二代木马。
第三代木马在功能上与第二代木马没有太大差异,其改变主要在网络连接方式上,特征是不打开连接端口进行侦听,而是使用ICMP通信协议进行通信或使用TCP端口反弹技术让服务器端主动连接客户端,以突破防火墙的拦截。在数据传递技术上也做了一些改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀难度,如网络神偷(Netthief)、灰鸽子木马等。
第四代木马在进程隐藏方面做了较大改动,让木马服务器运行时没有进程,网络操作插入到系统进程或者应用进程中完成。这方面发展的最高境界是rootkit技术,嵌入木马通过替换系统程序、DLL、甚至是驱动程序,替换之后还能够提供原来程序正常的服务,同时还被远程控制,从而实现木马的隐藏。前三代木马,大多都有独立的进程,通过任务管理器等查看当前运行的进程,很快找到木马并删除。但是第四代木马不是单独的进程或者以注册服务的形式出现,无法通过“任务管理器”查看到正在运行的木马。需要专门的工具才能发现以及专业的木马查杀工具才能清除,这方面的典型木马如广外男生。
第五代木马实现了与病毒紧密结合,利用操作系统漏洞,直接实现感染传播的目的,而不必象以前的木马那样需要欺骗用户主动激活。
据不完全统计,目前世界上可能有着上数十万种木马程序。虽然这些程序使用不同的程序语言进行编制,在不同的平台环境下运行,发挥着不同的作用,但是它们有着许多共同的特征。
1、隐蔽性。隐蔽性是木马的首要特征。这一点与病毒特征是很相似的,木马类软件的SERVER端程序在被控主机系统上运行时,会使用各种方法来隐藏自己。早期的木马伪装成系统执行文件(如svchost)来隐藏自己,后来木马程序干脆替换原有系统程序来隐藏自己,在提供了正常功能的同时,也是一个木马程序。
2、自动运行性。木马程序通过修改系统配置文件,如:、、注册表等,在目标主机系统启动时自动运行或加载。
3、欺骗性。木马程序要达到其长期隐蔽的目的,就必需借助系统中已有的文件,以防用户发现,它经常使用的是常见的文件名或扩展名,如dllwinsysexPlorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”;字母“o”与数字“0”,有的木马就直接使用系统文件中已有的文件名,只不过它保存在不同路径之中。
4、自动恢复性。现在很多的木马程序中的功能模块已不再是由单一的文件组成,而是具有多重备份,可以相互恢复。系统一旦被植入木马,只删除某一个木马文件来进行清除是无法清除干净的。
5、破坏或信息收集。木马通常具有搜索Cache中的口令、设置口令、扫描目标机器的IP地址、进行键盘记录、远程注册表的操作、以及锁定鼠标等功能。
5.5.2
木马的实现原理与攻击技术
计算机木马大多都是网络客户/服务(Client/Server)程序组合。常由一个攻击者用来控制木马的客户端程序和一个运行在被控计算机端的服务端程序组成。
在了解木马攻击技术之前,需要先了解木马欺骗技术,木马欺骗技术是木马欺骗用户安装、欺骗用户运行以及隐藏自己的关键技术。木马欺骗技术主要有:
1、伪装成其它类型的文件。对于需要自己运行的木马程序,大部分是可执行文件,而对于被植入者,很容易发现文件是不明的可执行文件,而拒绝接收或直接删除,因此可执行文件需要伪装其它文件。如伪装成图片文件,如图5-8中,把“” 更改为“ exe”,这里中间空格一般为多个,以致于即使是Windows系统显示扩展名也无法显示最后的.exe。将可执行文件的图标改变为图片文件的图标,这时木马程序在Windows系统中显示就是一个图片文件如图5-8 a,而实际上它是一个可执行文件(如图5-8
b)
a.显示为图片文件 b. 实际上为执行文件
图5-8 木马伪装成图片文件
2、 合并程序欺骗。合并程序是可以将两个或两个以上的可执行文件(exe文件) 结合为一个文件,以后只需执行这个合并文件,两个可执行文件就会同时执行。植入者将一个正常的可执行文件和一个木马程序合并,合并后更改图标使合并后的程序和捆绑前的程序图标一样。由于执行合并文件时正常文件也会执行,被植入者在不知情中,木马程序在背后植入或运行。合并程序软件也称之为捆绑软件,国内这样的捆绑软件就很多如EXE捆绑机、EXE文件合并粉碎机等。
3、插入其它文件内部。利用运行flash文件和影视文件具有可以执行脚本文件的特性,一般使用“插马”工具将脚本文件插入到swf、rm等类型的flash文件和影视文件中,当被植入者观看flash和这些电影文件时,脚本文件自动运行,达到植入木马和运行木马的目的。如利用real“插马”将“u 00:01:00.0 00:00:20.0 _”插入到某一个rm文件头部,其中_表示木马程序的地址,那么播放该文件后,在1分到20分这段时间内即会自动打开木马程序。
4、伪装成应用程序扩展组件。此类属于最难识别的特洛伊木马。黑客们通常将木马程序写成为任何类型的文件 (例如 DLL、OCX等) 然后挂在一个常用的软件中,例如
QQ。由于这些软件一般是本身已有一定的知名度常用软件,没有人会怀疑它的安全性,实际上也很难检查某一个组件是否被替换或者是否多了一个组件。而当被植入者打开时这些软件时会调用组件,木马程序得以执行或完成植入。
5、利用WinRar制作成自释放文件
把木马程序和其它常用程序利用WinRar捆绑在一起,将其制作成自释放文件。这一方法类似于合并文件欺骗。
6、在Word文档中加入木马文件
在Word文档末尾加入木马文件,只要别人点击这个所谓的Word文件就会中木马。这种方法主要是通过把一个EXE格式的木马文件接在一个DOC文件的末尾,该文档中包含了宏语句,能在运行的时候把Word文件末尾的EXE文件数据读取出来并运行,就造成一种假象,好像文档打开时就运行了EXE文件。
一般情况下,一个木马程序要通过网络入侵并控制被植入的计算机,需要采用以下四个环节:
首先是向目标主机植入木马,也就是当前流行的“种马”技术,通过网络将木马程序植入到被控制的计算机,也是木马攻击的最关键一步;其二,启动和隐藏木马,传统的病毒是通过感染计算机文件,随着被感染文件的打开或执行而获得运行权限,木马程序一般是一个单独文件,被植入者很难会启动木马程序,因此需要一些系统设置来让计算机自动启动木马程序,为了防止被植入者发现和删除运行的木马程序,就需要将运行的木马程隐藏起来。其三是植入者控制被植入木马的主机,需要通过网络通信,这需要采取一定的隐藏技术,使通信过程不能够使被植入者通过防火墙等发现。最后,就是植入者通过客户端远程控制达到其攻击的目的,可以收集被植入者的敏感信息,可以监视被植入者的计算机运行和动作,甚至可以用来攻击网络中的其它系统。
下面分别就这些关键技术加以描述。
1、植入技术
木马植入技术可以大概分为主动植入与被动植入两类。
1)主动植入,就是攻击者利用网络攻击技术通过网络将木马程序植入到远程目标主机,这个行为过程完全由攻击者主动掌握。
2)被动植入,是指攻击者预先设置某种环境,然后被动等待目标系统用户的某种可能的操作,只有这种操作执行,木马程序才有可能植入目标系统。
主动植入一般需要通过利用网络或计算机系统的某些漏洞,通过网络攻击目标主机,获取目标主机的一定权限,然后植入木马,或者直接由QQ等聊天程序发送木马程序到目标主机,当接受者无意识地接受时就感染了木马。
主动植入有手动植入和自动植入两种,自动植入一般会大规模地爆发而可能也伴随着蠕虫病毒的一些特征。按照目标系统是本地还是远程的区分,这种方法又有本地安装与远程安装之分。由于在一个系统植入木马,不仅需要将木马程序上传到目标系统,还需要在目标系统运行木马程序。所以对于Windows系统NTFS保存格式的程序以及Linux下的文件,植入的木马还需要可执行权限。
主动植入技术主要包括以下几种:
1) 利用系统自身漏洞植入。攻击者利用所了解的系统的安全漏洞及其特性主动出击。
可以手动方式利用漏洞一步一步进行攻击,也可以编写成软件,自动探测漏洞并完成攻击。利用漏洞的攻击方法一般要求植入者对网络知识和计算机知识有着深刻的了解,才能很好地完成植入过程。
如IIS服务器的溢出漏洞,通过一个“IISHack”的攻击程序就可使IIS服务器崩溃,并同时在被攻击服务器执行“木马”程序。
再如利用ANI文件漏洞植入,ANI文件是Windows鼠标动态光标文件,由于Vista等系统在处理ANI文件的方式上存在漏洞,黑客可以构造特殊格式的ANI文件,当用户浏览含有该文件的网页,或点击该文件就会自动下载运行黑客指定的木马及后门程序等。目前利用该漏洞的病毒中,威金()变种及窃取网络游戏的木马病毒占多数。
2)利用第三方软件漏洞植入。第三方软件漏洞已经成为木马传播最重要途径之一。这些被木马广泛利用的软件多被称之为装机必备软件或人们常用软件,用户数量大,因此这些软件一旦存在漏洞并被木马利用,也会造成大量用户受感染。如:Office等办公软件,IE浏览器,另外如RealPlayer、暴风影音、PPStream、迅雷、联众世界、Adobe Reader、PPLive等可能存在多个安全漏洞。
如利用IE MIME Header Attaehment Exeeution Vulnerability漏洞进行木马植入。利用该漏洞可以把木马程序作为邮件的附件,并声明邮件为音频或视频文件,这样存在该漏洞的IE就会自动打开邮件,从而使木马程序得以执行,完成植入。
如在线游戏网站联众世界游戏大厅曝出存在安全漏洞。联众世界的游戏大厅主程序GLWorld所安装的ActiveX控件(,CLSID:61F5C358-60FB-4A23
-A312-D2B556620F20)在处理传送给hgs_startGame()和hgs_startNotify()方式的字符串参数时,存在栈溢出漏洞。如果用户受骗访问了恶意网页,并传送了超长参数的话,就会触发这些溢出,导致执行任意代码。当木马入侵时,会试图从下载恶意文件;此外还会从下载配置文件,该文件中包含有从和所下载的27个恶意可执行程序的链接。
3)利用即时通信软件发送伪装的木马文件植入。首先将木马程序伪装成其它类型的文件或者植入其它类型文件内部,然后利用通信软件发送,当通信的接收者无意之间打开或接收文件时,木马程序就会自动执行,完成了木马程序的植入过程。这一方法使用简单,不需要多么高深的知识,因此也是木马程序常用的手段。对于手工植入的方法,一般是在聊天过程中向通信的对象发送木马文件。对于自动植入的木马软件,则是自动向通信对象发送木马文件,当接收者接收后,直接植入目标主机,并且能够劫持通信软件,通过通信软件的好友名单,向其它好友发送伪装的木马文件,重复完成木马的植入过程。
目前通信软件主要以MSN和QQ为主,木马植入方法也主要以这两款软件为主。
利用MSN传播的著名木马有:MSN木马、MSN Photos木马等,其中MSN Photos木马植入方式是:中毒的用户会给MSN联系人列表中的所有用户自动传输一个“”的文件。对方接收下来后,打开此压缩包,里面有一个“photos ”的文件,一旦双击该文件,则接收方也中毒了。
利用QQ通信软件植入的方式非常多,网上有这方面大量的教程。除了发送文件植入木马以外,由于QQ软件提供了丰富的功能,也为QQ植入木马提供了众多的场所,如利
用QQ群空间、以及共享文件等放置。
4)利用电子邮件发送植入木马。木马程序以附件的形式在电子邮件中发送出去,收信人只要打开附件,系统就会感染木马。
被动植入方法主要是指以下几种:
1)软件下载。一些非正规的网站以提供软件下载为名义,将木马捆绑在软件安装程序上,下载后只要一运行这些程序,木马就会自动安装。
2)利用共享文件。学校或单位的局域网里为了学习和工作方便,会将许多硬盘或文件夹共享出来,甚至不加密码,具有可写权限。
3)利用Autorun文件传播。这一方法主要是利用Autorun文件自动运行的特性,通过U盘植入。 当插入带有Autorun文件的U盘时,用户双击U盘盘符时,就会自动执行脚本,从而调用传播木马文件,完成植入过程。
4)网页浏览传播。这种方法利用Script/ActiveX控件、JavaApplet等技术编写出一个HTML网页,当浏览该页面时,会在后台将木马程序下载到计算机缓存中,然后修改系统注册表,使相关键值指向“木马”程序。
2、木马的自动加载技术
对于木马一般不是一次性使用,不能是被植入的机器在重启动以后,木马就失去了作用。不可能依靠被植入木马的用户主动启动木马文件,这些木马都面临一个如何自启动的问题。
针对Windows系统,木马程序的自动加载运行主要有以下一些方法:
1)修改系统文件。修改目标的系统文件以达到自动加载的目的。这些系统文件包括以下这些文件,批处理文件、、,以及系统配置文件:、、文件等,这种方法比较古老。
2)修改系统注册表。系统注册表保存着系统的软件、硬件及其它与系统配置有关的重要信息。通过设置注册表中的一些启动加载项目,也可以使木马程序达到自动加载运行的目的,而且这种方法更加隐蔽。
在注册表中Run、RunOnce、RunOnceEx、RunServices、RunServicesOnce这些子键保存了Windows启动时自动运行的程序。
通过在这些键中添加键值,可以比较容易地实现程序的自动加载,例如:
[HKEY_LOCAL_ MACHINESoftwareMicrosoftWindowsCurrentVersionRunService
s]
[HKEY_LOCAL_ MACHINESoftwareMicrosoftWindowsCurrentVersionRunService
sOnce]
[HKEY_LOCAL_ MACHINESoftwareMicrosoftWindowsCurrentVersionRun]
[HKEY_LOCAL_ MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce]
[HKEY_ CURRENT_ USERSoftwareMicrosoftWindowsCurrentVersionRun]
[HKEY_CURRENT_ USERSoftwareMicrosoftWindowsCurrentVersionRunOnce]
3)修改文件打开关联
通常对于一些常用的文件,如txt文件,只要双击文件名就能打开这个文件。这是因为在系统注册表中,已经把这类文件与某个程序关联起来,如与txt文件关联。
只要用户双击该类文件,系统就自动启动相关联的程序来打开文件。
修改文件关联程序是木马程序常用手段,正常情况下txt文件的打开方式为 文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开。
如国产木马冰河的自动加载方法就是通过修改HKEY_CLASSES_ROOTtxtfileshell
opencommand下的键值,将“C: %1”改为“C:WINDOWS
%1”,这样一旦双击一个TXT文件,原本应用Notepad打开该文件的,现在却变成启动木马程序了
当然对于其它类型的文件如HTML、ZIP、RAR等都可以达到运行木马的目标。
4)修改任务计划
在默认情况下,任务计划程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时”,这样也可以实现程序自启动。
5)修改组策略
在“开始”→“运行”中输入“” ,打开系统组策略窗口,选择“计算机配置”→“管理模板”→“系统”→“登录”,双击右边的“在用户登录时运行这些程序”项。
6)修改启动文件夹
这是许多应用软件自启动的常用位置。当前登陆用户的“启动”文件夹一般在:C:Documents and Settings<用户名字>「开始」菜单程序启动;如果设置对所有用户有效的启动文件夹,该文件夹一般在:C:Documents and SettingsAll Users「开始」菜单程序启动,这样不管用户用什么身份登录系统,放入该文件夹的快捷方式总是自动启动。
7)替换系统自动运行的文件
在Windows系统中,有很多程序是可以自动运行的。如在对磁盘进行格式化后,总是要运行“磁盘扫描”程序();按下F1键时,系统将运行或打开帮助文件;系统启动时,系统将自动启动系统栏程序()、注册表检查程序()、计划任务程序() 、输入法程序、电源管理程序等。这为恶意程序提供了机会,覆盖相应文件就可获得。
8) 替换系统DLL
通过API HOOK启动,也称为DLL陷阱技术。替换Windows系统中正常的DLL文件,如和。
如果是系统正常的调用请求,它就把请求转到原先的DLL进行处理,如果是约定的木马操作,则该DLL文件就实现木马服务器端的功能。
9) 作为服务启动
Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分, 一个服务首先是一个Win32可执行程序,或者是使来运行一个DLL方式形成的进程。Windows服务由更上一级的这个服务来管理,负责进行服务的启动、停止、运行,暂停等。由于服务程序没有用户界面,启动后在任务管理器也无法查看到,作为一个服务启动,也是木马程序比较常用作为自启动的地方。
10) 利用AppInit_DLLs 注入
早期DLL型木马的注入方法,当修改注册表中的[HKEY_LOCAL_MACHIN
ESoftwareMicrosoftWindows NTCurrentVersionWindows AppInit_DLLs]值为植入的木马时,当系统启动时,系统执行DllMain来达到自动执行DLL木马,因为它由Kernel调入,对这个DLL的稳定性有很大要求,稍有错误就会导致系统崩溃,从而暴露自己,所以较少看到这种木马。
3、木马隐藏技术
木马植入目标系统后,为了提高自身的生存能力,木马会采用各种手段伪装隐藏以使被感染的系统表现正常,避免被发现,尽可能延长生存期。对于隐藏技术,主要分为两类:主机隐藏和通信隐藏。
主机隐藏主要指在主机系统上表现为正常的进程,使被植入者无法感觉到木马的存在,甚至即使发现进程,利用欺骗等技术,也不敢删除。主机隐藏方式很多,主要有文件隐藏、进程隐藏等。
文件隐藏主要有两种方式,一种采用欺骗的方式伪装成其它文件,如前面植入技术中所讲的伪装成图片文件、伪装成应用程序扩展组件等;另外一种则是伪装成系统文件,放在系统文件存放的地方,如对于Windows系统,可以把文件放在C:WIN$system32,其中WIN$为系统安装目录。对于那些rootkit木马,即替换系统程序和驱动程序的木马,则放在C:WIN$system32drivers,由于这些地方存放操作系统非常重要的系统文件,删除系统文件可能会造成操作系统的崩溃。一般被植入者不敢随便删除系统目录下的文件,从而使木马文件得以存活。
进程隐藏则存在以下技术,对于那些单独存在的木马进程,可以注册为一个服务,这样在任务管理器中就无法看到。如果木马不以单独的进程出现,有以下隐藏技术:
1) 动态链接库注入技术,将“木马”程序做成一个动态链接库文件,使用远程插入技术将此动态链接库的加载语句插入到目标进程中去,并将调用动态链接库函数的语句插入到目标进程,这个函数类似于普通程序中的入口程序。
2)Hooking API技术。通过修改API函数的入口地址的方法来欺骗试图列举本地所有进程的程序,即通过修改列进程API函数的入口地址,使别的程序在调用这些函数的时候,首先转向木马程序,木马程序中需要做的工作就是在列表中将自己的进程信息去掉,从而实现进程的隐蔽。
通信隐藏主要包括通信端口隐藏、内容隐藏。植入木马的目的就是远程控制计算机,这就必须进行远程通信,而在通信过程中由于要开放端口、以及命令控制,就有可能被防火墙和入侵检测等发现而删除,因此木马一般要进行通信隐藏。可以采用以下技术:
1)复用正常服务端口。直接绑定到正常用户进程的端口,接受数据后,根据包格式判断是不是自己的,如果是自己处理,如果不是通过127.0.0.1的地址交给真正的服务器应用进行处理,以利用正常的网络连接隐藏木马的通信状态。
2) 采用其它不需要端口的协议进行通信。如ICMP协议,可以携带一定的内容,这一方法的主要缺点是防火墙可能把所有ICMP协议的信息过滤掉。
3)利用“反弹端口”技术。木马程序启动后主动连接客户,为了隐蔽起见,控制端的被动端口一般开在80。对内部网络到外部网络的访问请求,防火墙一般不进行过于严格
的检查,加之其连接请求有可能伪造成对于外部资源的正常访问,因此可以非常容易地通过防火墙。
4)利用SPI防火墙技术隐藏。SPI技术是微软提供的基于应用层的防火墙技术,类似于钩子程序,可以截获所有基于Socket套接字的通信数据,木马程序可以利用SPI技术将截获的通信转发到木马程序。
5) 采用嗅探技术。这时远程控制端发送的是局域网内其它主机的控制命令,由于木马采用嗅探技术可以截获到所有局域网内的数据包,从而使木马得到远程控制的信息。优点是更难于通过通信状态检测到木马,缺点是只能进行远程控制,而由于木马不能返回数据,而无法进行远程收集资料。
对于内容隐藏,则主要采用加密技术进行隐藏。
4、远程控制
当木马植入成功后,由于与木马程序通信一般为C/S结构,控制端为客户端,因此客户端必须知道被植入木马的主机IP地址,通过以下方式和木马建立联系:
1)端口扫描。采用端口扫描技术获得那些安装了木马主机的IP地址。一旦发现中了木马的主机则添加到客户端控制程序的木马主机列表。
2)邮件发送。一些木马具有邮件发送功能,在设置木马程序时,填入免费邮箱,当成功植入被攻击主机后,一旦木马程序启动,就会将其植入主机的IP地址发送给植入者的邮箱。植入者根据IP地址和对应的端口与木马建立连接通道。如网络公牛等。
3)UDP通知。植入者将自己的IP地址写到主页空间的指定文件里,被植入的木马读取文件的内容,得到客户端的IP地址以及其它信息(主机名、IP地址、上线时间等等),然后木马用UDP协议发送给植入者,如网络神偷就是采用了该项技术。
4)利用QQ、MSN等通信软件
在木马程序中配置QQ、MSN等号码,当植入成功后,木马程序利用IRC、ICQ等通信协议,将被植入主机的信息发送给植入者。
木马与控制端连接建立后,植入者就可以在远程通过木马客户端控制受害者的主机。由于用户一般以超级用户启动操作系统,木马程序一般也具有超级用户权限,因此木马程序几乎可以在受害主机上为所欲为,它一般可能会进行以下操作。
1) 窃取密码
分两种情况,其一是将保存密码的文件的密码发送,这些密码文件如:Windows 浏览器中提供的密码记忆功能,这些密码以cookie的形式保存在文件中,另外还有保存计算机用户和帐号的文件;其二获得密码的方式是通过设置钩子,截获被植入主机的键盘消息,从而获得密码。通过截获密码,黑客可以进一步控制主机,甚至是利用信用卡账号,牟取经济利益。
2) 远程访问控制
功能类似于在被植入主机上启动了Telnet或SSH服务。控制包括重启或关闭被植入者的操作系统,断开服务端网络连接,控制服务端的鼠标,键盘,监视服务端桌面操作,查看服务端进程等,这方面典型代表就是Back Orifice(BO)。
3)DoS攻击
随着DoS攻击越来越广泛的应用,被用作DoS攻击的木马也越来越流行起来。当被
植入木马以后,被植入主机就是攻击者的一台“肉鸡”,当攻击者需要攻击某一台服务器或某一个网络时,就可以发出攻击指令,发出大量垃圾数据。当被植入DoS攻击木马的主机达到一定的数量时,就会大大增强DoS攻击的效果。也提高了追踪黑客的难度。
4) 代理攻击
黑客在入侵的同时掩盖自己的足迹,谨防别人发现自己的身份,代理木马就是作为攻击的跳板,通过代理木马再进一步攻击其它主机,主要目的是黑客防止追踪。
6) 程序杀手
这类木马专门攻击杀毒软件,当植入这类的木马后,就会自动关闭并删除卡巴斯基、瑞星、金山毒霸等杀毒软件,这类木马如AV终结者、熊猫烧香等,当植如AV终结者后,该木马就会绑架安全软件,使几乎所有杀毒软件、系统管理工具、反间谍软件不能正常启动。
5.5.3
木马程序举例
下面以三种著名木马为例说明木马的工作机制。
1、Back Orifice 木马
1998年,死牛崇拜组织Cult of the Dead Cow开发了Back Orifice。它不仅提供了可编程的API,而且提供了完整的C/C++源代码,以便让人了解程序的工作方式。另外,Back
Orifice 2000还提供了一个插件功能,可以自己编写插件,扩展它的功能。其作者把BO2K作为Windows的一个远程管理工具,可以任意访问计算机中的资源,而不必获得访问资源时必须拥有的授权或者安全认证。但是,它默认的隐蔽操作模式和明显带有木马特色远程控制模式,使其常常改编为木马工具植入别的计算机。因此,安装BO2K时,许多杀毒软件,如金山毒霸、卡巴斯基等也直接将其作为木马病毒而直接删除。
BO2K安装包括两个部分:客户端和服务器端。服务器端可以植入到被攻击者或者需要远程控制的主机上,只要执行BO2K的服务器端程序,就完成了安装。利用客户端程序,攻击者能够很轻松地对被控制的计算机进行操作,客户端软件界面见图5-9所示,在其稳定版本1.6中,提供了多达70种命令来远程控制主机,可以重新启动计算机、锁死系统、获取系统口令,搜索、下载和编辑所有软件和文档,运行任何应用程序、记录键盘输入情况等等。正是由于这些功能,只要被控制的计算机连上了Internet,客户端程序就可以像操作自己的计算机一样方便地对对方计算机进行随心所欲的控制。因此BO2K常常被黑客改动作为木马程序,成为一款经典的木马软件。
控制命令
被控制的电脑
图5-9 BO2K客户端软件界面
2、冰河木马
冰河是曾经是国内最有名木马工具,作为木马,冰河创造了最多人使用、最多人中马的奇迹。后来网上出现了许多冰河变种程序,如“冰河2”等,其运行界面见图5-10。
冰河木马包括两个可运行程序,服务器端程序和客户端程序,默认连接端口为7626。一旦运行G-server,那么该程序就会在C:WindowsSystem目录下生成和,并删除自身。在系统启动时自动加载运行,和TXT文件关联。即使删除了,但只要打开TXT文件,就会被激活,它将再次生成,因此手工删除很难删除干净,必须使用专用的查杀工具对其进行查杀。
一旦被攻击者执行了服务器端程序,木马就会种植成功,该计算机的7626端口(默认)就对外开放了。
客户端则采用扫描的方式查看网络中的主机是否中了木马。客户端软件有一个“自动搜索”功能,可以自动扫描某个IP段受感染的计算机,一旦找到,这台计算机就可以被黑客随意控制。
客户端对被植入主机的控制主要包括以下方面:
1)自动跟踪目标机屏幕变化,同时可以完全模拟键盘及鼠标输入,即在同步被控端屏幕变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用)。
2) 记录各种口令信息:包括开机口令、屏保口令、各种共享资源口令及绝大多数在对话框中出现过的口令信息。
3) 获取系统信息:包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据。
4) 限制系统功能:包括远程关机、远程重启计算机、锁定鼠标、锁定系统热键及锁定注册表等多项功能限制。
5) 远程文件操作:包括创建、上传、下载、复制、删除文件或目录、文件压缩、快速浏览文本文件、远程打开文件(提供了四种不同的打开方式——正常方式、最大化、
最小化和隐藏方式)等多项文件操作功能。
6) 注册表操作:包括对主键的浏览、增删、复制、重命名和对键值的读写等所有注册表操作功能。
7) 发送信息:以四种常用图标向被控端发送简短信息。
8) 点对点通讯:以聊天室形式同被控端进行在线交谈。
图5-10 冰河木马客户端界面
3、灰鸽子木马
灰鸽子木马也是国内著名的木马,2004年的感染统计表现为103483人,而到2005年数字攀升到890321人,2005-2007年连续三年荣登国内10大病毒排行榜。
灰鸽子木马软件分两部分:客户端和服务端。服务端文件的名字默认为G_。G_运行后将自己拷贝到Windows系统目录下,然后释放G_和G_Server_
到Windows目录下。G_、G_和G_Server_三个文件相互配合组成了灰鸽子服务端。G_这个名称并不固定,它是可以定制的,比如当定制服务端文件名为时,生成的文件就是、和A_。 Windows目录下的G_文件将自己注册成服务,每次开机都能自动运行,运行后启动G_和G_Server_。G_文件实现后门功能,与控制端客户端进行通信,G_Server_则通过拦截API调用来隐藏木马。因此,中木马后看不到木马文件,也看不到木马注册的服务项。随着灰鸽子服务端文件的设置不同,G_Server_有时候附在的进程空间中,有时候则是附在所有进程中。
图5-11 灰鸽子客户端界面
图5-11为灰鸽子客户端界面,包括以下功能:
1) 对远程计算机文件管理:模仿 Windows 资源管理器,可以对文件进行复制、粘贴、删除,重命名、远程运行等,可以上传下载文件或文件夹,操作简单易用。
2) 远程控制命令:查看远程系统信息、剪切板查看、进程管理、窗口管理、插件功能、服务管理、共享管理、代理服务、MS-DOS模拟、关机、重启。
3) 捕获屏幕:可以连续地捕获远程计算机屏幕,把本地的鼠标及键盘操作传送到远程实现实时控制功能。
4) 注册表模拟器:远程注册表操作就像操作本地注册表一样方便。
5.5.4
木马的防御
根据木马工作原理,木马检测一般有以下一些方法:端口扫描、检查系统进程以及进程调用的DLL、检查ini文件、注册表和服务、监视网络通信等。
1、扫描端口
大部分的木马服务器端会在系统中监听某个端口,因此,通过查看系统上开启了那些端口能有效地发现远程控制木马的踪迹。
可以利用Windows操作系统本身提供的查看端口状态命令,在命令行下键入“netstat
-an”,查看系统当前已经建立的连接和正在监听的端口,同时可以查看正在连接的远程主机IP地址;也可以利用其它工具分析木马程序的网络行为,例如Fport,不但可以查看系统当前打开的所有TCP/UDP端口,而且可以直接查看与之相关的程序名称,为过滤可疑程序提供了方便。
2、检查系统进程
很多木马在运行期间都会在系统中生成进程。因此,检查进程是一种非常有效的发现木马踪迹方法。使用进程检查的前提是需要管理员了解系统正常情况下运行的系统进程。当有不属于正常的系统进程出现时,管理员能很快发现。
由于Windows系统自带的任务管理器有些进程无法显示,也无法显示进程的路径、进程的树结构等信息,这给木马伪装系统进程提供了方便,可以使用第三方专用软件进
行查看,如软件。是Sysinternals公司开发的一款增强型的任务管理器,可以使用它方便地管理程序进程,它还详尽地显示计算机信息:CPU、内存使用情况,DLL、句柄信息、进程的路径信息等,使用该软件可以查找、终止那些伪装系统的进程。
3、检查ini文件、注册表和服务等自启动项
让木马程序自动启动,是其攻击的必备条件。
Windows能够让程序自启动的地方很多,如果要手工一一查看,不仅麻烦而且可能会漏掉许多启动项。而自启动项管理软件Autoruns是这一方面的专业工具。它的功能十分强大,几乎涵盖了所有能让进程和DLL自动启动位置,另一方面还可以对各启动项目进行管理,能直接控制注册表,界面如图5-12。
图5-12 检查程序自启动项界面
4、监视网络通讯
对于一些特殊的木马程序(如通过ICMP协议通信),被控端不需要打开任何监听端口,也无需反向连接,更不会有什么已经建立的固定连接,使得netstat或fport等工具很难发现。
木马的通信监控可以通过防火墙来监控,防火墙系统不仅可以抵御外部的网络攻击,而且通过网络通信情况,监控当前进程的网络通信情况。防火墙同时也提供应用程序的通信规则,通过规则设置可以阻止木马软件访问网络。
随着木马编写技术的不断进步,很多木马都带有了自我保护机制,木马类型不断变化,删除木马单是删除文件或注册表,可能无法查杀干净,因此,不同木马需要有针对性的清除方法。对于普通用户来说,不可能有足够时间和精力没完没了地应付各种有害程序,所以安装优秀杀病毒和防火墙软件并定期升级,不失为一种安全防范的有效手段。
对于木马专杀工具国内比较多,除了金山毒霸、瑞星这些专业杀毒软件外,另外还有木马克星、木马杀客等专业查杀木马软件;国外的avgas软件被称之为最强的专业查杀木马软件,其木马病毒库也远多于国内的病毒查杀软件,其主要问题是对国内特有的木马可能无法查杀。
5.5.5
几款免费的木马专杀工具
木马病毒分析也可以使用专用的专业分析软件进行查杀和分析,也可以使用几款免费木马专杀工具如:Windows清理助手、恶意软件清理助手、Atool、冰刃等。
冰刃(Icesword)是专业查杀木马工具中较好的工具之一,程序界面见图5-13,冰刃具有以下查杀木马特点:
1、删除文件,许多木马文件为了防止删除,具有写保护功能,木马文件正在被调用或运行时,无法直接删除。冰刃提供了可以完全删除任何文件的功能。 冰刃的文件操作有些类似于资源管理器,不同之处在于其具备反隐藏、反保护的功能。能够直接显示被隐藏的文件,并删除所有的文件。如利用Windows自带的文件管理器对System32
ConfigSAM等文件是不能拷贝也不能打开的,但IceSword可以直接拷贝。对于rootkit木马替换的驱动程序。如System32Drivers目录下的*.sys文件,一般工具无法删除,而冰刃可以直接删除。
图5-13 冰刃程序界面
2、删除注册表项。木马可以隐藏注册表项让Windows自带的注册表工具rgedit无法显示或删除,而冰刃程序可以容易做到删除任意的注册表项和显示所有的注册表项。
3、终止任意的进程。冰刃程序可以删除除idle进程、System进程、csrss进程以外的所有进程,而Windows的任务管理器许多系统进程无法终止,这样就可终止那些伪装成系统进程的木马。
4、查看进程通信情况。类似于fport工具,显示当前本地打开的端口以及相应的应用程序地址、名字,包括使用了各种手段隐藏端口,冰刃都可以查看。
5、查看消息钩子。 木马通过SetWindowsHookEx设置全局钩子,系统会将其加载使用,这也是木马常有的手段之一,尤其那些盗号木马,通过设置钩子截获键盘和鼠标消息达到其盗号目的。冰刃软件可以查看所有设置钩子的进程。
6、 线程创建和线程终止监视。一个木马或病毒采用多线程保护技术创建进程,IceSword可以发现是什么线程又创建了这个线程,把它们一并杀除。
7、SPI和BHO。SPI是服务提供接口,所有需要套接字的通信都是通过这个接口发出和接收数据包的,SPI可以被防火墙技术利用过滤攻击数据,也可以被很多恶意软件利用,将自己的DLL加入系统SPI,从而监视所有用户访问网络的包。BHO是浏览器的辅助插件,
用户启动浏览器浏览页面的时候,就会调用BHO插件。这两项技术常被应用于浏览器劫持,将在5.8节详细介绍。IceSword可以发现木马或者其它恶意软件是否潜入了系统SPI链,以及系统存在那些浏览器插件,这两项仅提供查看的功能。
8、其它功能。如自启动项管理、服务查看等功能。
另外还有其它工具软件:
1、Windows清理助手。Windows清理助手(ARSwp)发布于2006年10月,运行于Windows 2000以上平台,是一款用户拥有完全控制权的Windows清理工具。实现的功能主要是全面扫描系统,帮助用户清理Windows无法清理或清理不干净的软件、IE信息和程序。清理助手根据脚本文件扫描系统,将符合脚本文件所属特征的文件和注册表信息在用户自主选择的情况下进行删除。程序主页/。
2、恶意软件清理助手。下载得到压缩包并解压到任意目录,不需安装,直接双击“Rogue ”即可启动程序,恶意软件清理助手的使用很简单,单击“开始检测”按钮开始检测系统,检测完毕后再通过“开始清理”按钮即可进行清理。其特点是它的清理功能非常彻底,它甚至能将其它软件清理过的流氓软件的残留信息全部列举出来;如果扫描的可疑文件比较多,可以通过百度查询相关可疑文件的信息然后删除。
3、Atool软件。它是木马专杀厂商提供的一款免费的、向高级用户群体设计的专业系统安全检测及辅助处置工具,其界面类似于冰刃。其优点是除了冰刃提供的功能外,还提供其它的一些如插件管理,SPI修复等功能,软件经常更新,提供新的功能,而冰刃更新速度较慢。
4、Windows恶意软件删除工具()。是Microsoft所提供的的一个免费的,删除恶意软件使用工具,并由Microsoft定期公布其更新版本。该工具可以检查运行当前流行的各种Windows版本是否受到恶意软件的感染,帮助删除所有找到的感染病毒。该工具一般在后台自动运行,当检测到恶意软软件时,当下次以计算机管理员身份登录到计算机时,将会出现一个气球以通知检测结果,当然也可以自己启动进行全面扫描,启动方式为运行命令。


发布评论