木马技术发展趋势与回顾

主治白癜的中心 http://baidianfeng.39.net/a_zzzl/130819/4239801.html

来源:HACK学习呀(ID:HackerX)

一.跟不上时代的安全教科书

新的学期开始了,某大学网络管理专业三年级的同学们显得特别兴奋,这个学期的课程安排里终于出现了“网络安全”课程,一直对安全技术甚至黑客攻防手段感兴趣的同学更是对这门课程充满了期待,可是在几天的课程下来以后,同学们的兴奋之火却被浇熄了不少:首先学校颁发的教材书籍里的示例系统是WindowsNT4.0和Windows98的安全攻防和简单的木马检测,而同学们用的都是WindowsXP,和NT的简陋界面怎么都联系不到一块;其次负责此课程的老师完全是属于依葫芦画瓢的教学模式,甚至某次一个同学提问如何检测查杀灰鸽子木马的时候,老师足足盯了该同学5分钟以后才冒出一句“用正版杀毒软件啊!”。

如此几次下来,同学们已经明白,他们接触到的所谓网络安全教育,已经是被这个社会淘汰了的东西,一段时间后,网络安全课创下了学生逃课最多、学生最不配合教师工作的记录,在面对辅导员在班会上的批评时,他们只能默默的在心里念叨:学这些被淘汰的东西,会在实际生活中真实有用的吗?我们连自己机器上的木马病毒都不知道怎么找出来,何况更深入的网络安全学习?

这是一个疯狂的网络时代,每隔一段时间就有大量新的漏洞被发掘出来,公开的、未公开的、地下流通的,最终都被别有用心的人制成入侵工具、新型后门、蠕虫、流氓软件等,在广大对计算机处于懵懂状态的用户看来,这么多术语他们并不去关心,他们所关心的是,自己正在用的防火墙产品有效吗?而大量事实却告诉我们,近年来反病毒产品的有效率正在逐步降低,在一部分用户眼里,如何配合第三方工具手工检测查杀木马正是他们迫切需要了解的,而这一切的基础,却又要涉及到各种基础概念的理解消化,以及,木马等恶意软件的发展过程……

二.近代木马与恶意程序发展史

自BO、冰河诞生以来,国内的木马历史便正式展开了,下面我们以技术的发展突破作为界限,分别说说他们的历史和发展趋势。

混沌时代:单打独斗的后台运行程序早期的特洛伊木马后门先驱可以追溯到年那个网络在国内还未大量普及的时代,在当时,初期阶段的特洛伊木马技术在国外早已热火朝天,而国内众多用户却还在用着拨号上网偶尔浏览新闻和下载文件,只有少数用户知道并研究外国传入的英文界面特洛伊木马程序BO、SubSeven等,木马技术始终属于少数人手里的“高科技”入侵工具,直到国产木马“冰河”的出现和随后的几个版本升级,才标志着国内用户迎来了网络木马的混沌时代。冰河在年停止更新时放出的最后一个版本更是让大家第一次体会到了远程控制他人计算机的心跳感觉,于是冰河在短时间内就掀起了一股热潮,一时之间国内许多计算机都对外开放了被冰河驻扎的标志——端口,并且大量的扫描报告也都指向端口,随后众多带有模仿性质和改良优化的其他后门也相应出事,这个时代的后门入侵是极其简单的,究其原因,是由于那时候网络防火墙的雏形仍在探索发展阶段,大部分网络用户都是处于毫无防备的状态下,而且那时候又有几个人明白所谓的“安全问题”是什么东西呢?于是许多人依靠这些木马入了门。

这一时期的木马在现在的时代眼光看来,都是及其简单的入门级产品了,但是由于当时的主流系统是安全性马马虎虎的Windows9x系列,这些木马只需要简单的一些功能函数就实现了在任务管理器中的隐藏,而且由于当时并没有太多相对强大的第三方任务管理器,加上用户自身安全意识比现在相对更低,于是造就了一个木马招摇过市的时代。

从技术上看,这时期的木马后门普遍都是运行于用户层(Ring3)上的隐藏了窗体并将自己在Windows9x中注册为“服务程序”(RegisterAsService)的后台网络应用程序,而且大部分并不存在自我保护功能,就连冰河的自我保护也是更改了一些常用文件如文本文件等类型的打开方式以实现的;这一时代的木马启动项也非常简单易找,就现在的木马发展程度来说,它们充其量只能作为初学者的木马查杀防范入门练习教材罢了,首先这些木马的标准运行环境是毫无安全防御可言的Windows9x系统,到了NT架构系统上甚至会直接报错退出运行了,只有少数木马对NT架构系统做了一点额外设置以便绕过Win9x专有的系统函数来确保运行顺利,但是这样的后果就是它们直接在NT系统自带的任务管理器中暴露并简单终结掉了;其次,用户只需要找到它的进程并终结,然后简单的清理一下启动项残留数据就完成了木马的查杀——大部分此类型的木马的全部家当就是一个能够自我复制到系统目录并设置自启动项的可执行程序而已,只要这个程序消失,就等于把整个木马扫地出门了。然而,由于这一时期的用户群体几乎没有安全意识和相应反病毒产品领域的空白,这一批木马技术先驱却为后面的木马发展打下了不可忽视的基础。

对于第一代木马的查杀十分简单,使用现在的任意一个任务管理器甚至Windows/XP自带的任务管理器就能发现其进程,通过与注册表启动项Run、RunServices的对比判断即可找出,然后直接终结其进程,删除对应文件和启动项信息,并检查EXE和TXT等文件的关联方式是否被“后门恢复程序”更改即可。

探索时代:被网络防火墙信任的内部间谍

好景不长,随着越来越多用户对信息安全有了隐隐约约的需求和安全厂商适时推出了用于屏蔽过滤外部异常访问扫描的网络防火墙产品以后,许多用户即使对计算机处于朦胧状态,也会给自己安装一个网络防火墙产品——虽然用户可能根本连它的用处是什么都不知道;其次,网吧作为一种大众普遍上网场所也开始流行起来,初涉木马的试探者们很快发现他们无法成功对网吧里的电脑进行连接控制了,但是在网吧里使用木马连接Internet上的受感染机器却又不存在这个问题,这是为什么?因为网吧的内部网络环境是一个局域网,它使用私有IP地址进行通讯,对外部网络的访问出口是通过代理服务器(Proxy)或路由器NAT(网络地址转换,NetworkAddressTranslation)方式实现的,这两种方法都会屏蔽掉内部网络,所有内部网络中的计算机对于公共网络来说都是不可见的,也就是说,无论用户在网吧内部什么机器上种植了木马,那么只要他离开了网吧到外面的公共网络中意图对这个木马进行连接控制,他就会发现无论如何努力都做不到了,这是由于网吧对外提供的只是一个由网络接口设备负责通讯和地址转换的公共网络IP,用户在公共网络中执行的访问操作都只会被视为对这个网络接口设备的访问,而这个网络接口设备上是不可能存在用户刚才在网吧内部机器中设置的木马的,而且由于连接条件匹配不充分,它也不会把这个连接请求转交给内部网络中任何一台计算机,所以网吧内部网络里植入的木马根本就收不到来自外部的连接控制请求,自然也就无法工作了。

这个现象直接导致了基于C/S(客户端/服务端)模式的传统木马在遇到网吧或者类似的局域网环境时无功而返,同时一部分安装了网络防火墙的用户也由于防火墙默认屏蔽了外部网络访问的大部分端口而幸免于难,在相当一段时间内造成了传统木马一蹶不振的局面,然而好景不长,在经过一段时间的沉寂后,一种新型的木马连接概念被提出来了,虽然其原理也是基于C/S模式的网络连接,但是在连接时却将态度转了度:这次的入侵,发出第一个连接请求的不再是远程控制者使用的客户端,而是受害者的木马服务器端。第一个使用此概念的木马名为“网络神偷”,被设计用来从局域网内往外盗取文件数据。

这个概念被业界称为“端口反弹”,它的实现思路是将以往的C/S模式来了个逆转:客户端开启一个本地端口来监听远方连接请求,而服务端却是通过一些方法获得客户端IP以后主动来连接它,最终实现远程控制。这个思路一下子就把网络防火墙打个措手不及,因为早期的防火墙开发者并未考虑过通过本机主动发起的连接也会出现这种意料之外的情况,而对于网吧等局域网环境,它们更只是会把这一行为视作用户发出的一次正常网络请求,于是,这个来自心灵地狱的连接请求最终和入侵者碰了头,连接成功后发生的事情就和传统木马所要做的所有事情一模一样了。

在早期网络防火墙尚未出现记录本机主动连接请求的功能之前,要判断自己的机器上是否存在反弹型木马是一件比较困难的事情,因为使用端口反弹概念的服务端并不主动开放任何端口连接,在其未发起入侵连接之前,用户无法得知自己机器进程里是否有异常,直到它与远方入侵者建立了连接,用户才有可能在网络程序状态检测工具里看到一些对外连接的进程信息,可是这样主动对外连接的进程也太多了,如InternetExplorer、Foxmail、QQ等也都是主动对外连接的,一般的用户根本就无法将其判断分析出来。端口反弹型木马的出现虽然让入侵的隐蔽等级又提高了一个层次,但是它也不是无懈可击的,由于木马需要实现主动连接客户端的功能,而大部分入侵者是不会使用固定IP的,在生成木马服务端的时候就必须使用一个相对固定的公共网络连接方式让服务端以后能通过这个途径得到客户端的控制请求,这一途径经常是公共网络上的HTTP空间或FTP空间,随着技术发展还出现过依赖动态域名直达客户端的端口反弹型木马,它们与客户端建立连接的步骤是:1.服务端根据入侵者预设的反弹依据,连接到一个指定的公共网络空间里,通过读取某个数据文件获得客户端的当前IP地址,这个数据文件是通过客户端的自动更新上传实现的。2.获得IP地址数据后,服务端尝试与之建立连接3.如果连接成功,则开始控制行为从上述步骤可以看出,反弹木马的连接过程相比于其它正常程序的网络连接,要多出一个获取客户端地址的步骤,这正是我们判断一个程序是否反弹木马的重要依据,针对这个特性,用户可以使用以下步骤判断一个程序是否反弹木马:1.安装Iris、Ethereal等工具,然后重启计算机,重启完毕后不要进行网络连接,直接运行监听工具并设置Filter为监视端口80和21的TCP通讯2.连接网络,查看监听工具的数据包捕获情况3.如果出现HTTP或FTP请求,及时查看其报文内容,如果没有采取简单的加密文本,一般能直接看到发出的报文连接请求得到了一个带有IP地址的回应数据,记录其本机端口和远程地址端口信息4.查看天网等防火墙的网络应用程序端口情况,找到匹配以上记录的那个进程,这个进程有超过80%的几率属于反弹木马

如果是新类型的直接使用动态DNS解析IP地址的反弹木马呢?这种木马其实更好发现,只要设置监听工具的Filter为监听53端口,即可迅速发现这些特殊的域名解析包,由于动态域名的命名方式都具有一定的个性特征,而且它们的厂商信息都可以在网络上直接查到,这样一来即可迅速判断机器上是否存在反弹木马。

锋芒小露:“无进程”木马后门在年和年间,网络上出现了3款令当时的用户和安全技术者大呼头痛的木马作品“广外系列”,分别是“广外男生”、“广外女生”以及“广外幽灵”,这3个作品都使用了在当时颇感新鲜的技术“远程线程注射”,做到了国内真正意义上的第一款“无进程”木马——DLL木马。“广外男生”的主体是一个可执行程序EXE和一个动态链接库DLL,而EXE只是用于在开机时调用这个DLL执行木马主线程并使用“远程线程注射”(RemoteThreadInject)技术将DLL与这个EXE脱离开来,然后DLL的线程进入系统里现有的任意一个进程的内存空间中维持运行,而用于执行最初的DLL启动工作并实现在DLL被破坏时复活它的EXE会在DLL成功插入其他进程后自动退出,这种传统的DLL启动方式成为早期大量DLL木马的加载方式,所以它存在一个弱点:在计算机启动时用户如果查看任务管理器的速度稍微快一些,他就能看到一个迅速消失的进程,而且这时期的DLL木马虽然实施了无进程启动,但却是被动的加载方式,在如今可以枚举并终止进程中相关DLL模块的程序遍天下的现状中,任意一款具备进程模块查找功能的程序如ProcessExplorer、IceSword等都能将它们清理干净——它们的文件名太明显了。但是不得不否认,早期的DLL木马技术虽然只是个雏形,但它却是为如今到处横行的真正无第三方EXE加载项(使用特殊技术令系统外壳程序加载它)的众多恶意软件和木马的DLL主体的技术实现做了铺垫。从最初的第三方EXE加载DLL启动方式开始,到随后的使用rundll32.exe加载运行,再到利用NT服务的宿主程序svchost.exe实现启动,直到现在的技术巅峰——使用“ShellExecuteHook”(执行挂钩)技术。经常


转载请注明:http://www.nylrzx365.com/csgj/csgj/11546.html