通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 原创精华 >> 文章正文
推荐:焚烧木马
责任编辑:admin   更新日期:2005-10-22
 

“我想,我们应该烧掉这个东西。”3000多年前,面对希腊人突然遗留在战场废墟上的这只巨大的木马,特洛伊王国的小王子帕里斯对他的父王说。因为他有一种不安的感觉,这个突然出现的物体会带来厄运。然而没有人听他的话,整个军队固执的把这只庞然大物作为战利品运回了城里。
几天后的夜里,藏在木马里的希腊士兵从内部打开了特洛伊那坚不可摧的城门——特洛伊因此沦陷。
如果帕里斯仍有灵魂存在的话,他也许会苦苦思索这个问题:如果当初我坚持把这个带来厄运的东西焚烧掉,那么特洛伊将会是怎样一种结局呢?

请允许我改编情感作家姜汤的一句话:“二十一世纪的网络是木马横行的世界,人类在解决病毒战争之后,最大的困惑就是木马后门的攻防难题。”
众所周知,木马(Trojan,或称后门“BackDoor”)是一种危害巨大的程序,它们让被害的计算机对着未知的入侵者敞开了大门,使得受害者的系统和数据暴露在混乱的网络世界里。和病毒一样,木马也经历了好几代的演变,使得它越藏越深,成为另一种难以揪除的寄生虫。
——如果,我们趁早把木马焚烧掉呢?


认识木马
简言之,信息领域的木马,就是一种能潜伏在受害者计算机里,并且秘密开放一个甚至多个数据传输通道的远程控制程序,它由两部分组成:客户端(Client)和服务器端(Server),客户端也称为控制端。木马的传播感染其实指的就是服务器端,入侵者必须通过各种手段把服务器端程序传送给受害者运行,才能达到木马传播的目的。当服务器端被受害者计算机执行时,便将自己复制到系统目录,并把运行代码加入系统启动时会自动调用的区域里,借以达到跟随系统启动而运行,这一区域通常称为“启动项”。当木马完成这部分操作后,便进入潜伏期——偷偷开放系统端口,等待入侵者连接。到此为止,木马还只处于被特洛伊的市民拉入城内的阶段,是不会进行破坏行动的。
当入侵者使用客户端连接上木马服务器端开放的端口后,特洛伊的城门就被打开了,到这里,木马的噩梦才正式开始……(图1.木马破坏的三个时期)


所以,在木马屠城的军号吹响之前,如果帕里斯及时点燃了这只庞然大物,特洛伊也许就不会消失——至少,它不会是被一只木马给毁掉的。


阻止木马进城——不同时期的木马形态与相应的系统保护
特洛伊被木马计的前提是因为特洛伊人自己把藏有希腊士兵的木马运进了城内,让木马计得以成功实施,换个角度,如果当初特洛伊人任凭木马搁在海滩上发霉发臭,或者直接焚烧了这只装载着厄运的东西,那么“特洛伊木马”将会被作为与“马奇诺防线”同样性质的著名无效战略而被列入史册,而且后世可能再也不会采用这种攻击手段。
但是希腊人的木马计成功了,正如现在数以千计的现代网络木马计成功了一样。现代的希腊人——入侵者积极使用各种手段让现代的特洛伊人——受害者把那只木马程序高高兴兴的领回家去。
早期的防病毒思想并不盛行,那时候的网民也比较单纯,使用网络防火墙的人也只有少数,所以那时候的入侵者可以算是幸福的,他们只需要一点简单的社会工程学手段就能把木马程序传输给对方执行,这一时期的木马种植手段(如今的普遍称谓为“下马”)基本上不需要牵涉到技术,也许唯一需要的技术就是如何配置和使用一个木马,因为那时候木马也还是个新产物而已。那时候的网民,只能依靠自己的判断和技术,才能免受或摆脱木马之害。因此,当木马技术刚在国内开始的时候,任意一个IP段都有可能存在超过40%的受害计算机开放着大门等待入侵者进攻,可以毫不夸张的说,那时候是木马的第一黄金时期,唯一美中不足的制约条件就是当时的网络速度普遍太慢了。(图2.利用社会工程学手段传播的木马)


随着时间的流逝,木马技术发展日益成熟,但网民的安全意识也普遍提高,更出现了初期的病毒防火墙概念,这个时期的入侵者必须掌握更高级的社会工程学手段和初期的入侵技术才能让对方受害了,这时期的木马虽然隐蔽性有了相对提高,但仍然是基于客户端寻找连接服务器端的模式。由于出现了病毒防火墙,网民判断和查杀木马的效率大大提高,而且大部分人也知道“人心不古”了,不再轻易接收陌生人给的程序,使得木马不再像上时期那样肆无忌弹的横行,但是因为病毒防火墙是个新兴产物,仍然有相对多的人没有安装使用,以至于许多老旧的木马依然可以横行无忌。
再后来,随着网络防火墙技术诞生和病毒防火墙技术的成熟,木马作者被迫紧跟着防病毒厂商的脚步更新他们的作品以避免马儿过早“殉职”,同时由于网络防火墙技术的出现,让计算机与网络之间不再直接,尤其是网络防火墙实现的“拦截外部数据连接请求”与“审核内部程序访问网络请求”的策略,导致大部分木马纷纷失效,这时期的木马逐渐分裂成两个派别:一种依然采用客户端连接服务器端的方式,只是改为了其他传输途径,如E-MAIL、FTP等,或者在内部除掉网络防火墙,以便自己畅通无阻;另一种则改变了入侵的思维,把“客户端连接服务器端”变为“服务器端连接客户端”,再加上一点社会工程学技术,从而突破了网络防火墙的限制,也因此诞生了一种新的木马技术——“反弹型”木马。这一时期里,入侵者与受害者之间的战争终于提升到技术级别,若想保护自己,除了安装网络防火墙和病毒防火墙,以及接触网络攻防技术以外别无他法,这个“基础互动”一直保持到今天的XP时代。(图3.各个派系的木马)


到了XP时代,网络速度有了质的飞跃,黑客攻防战更是越来越多的浮上水面,因为系统变了,一个专门为网络应用而诞生的操作系统,必定会存在与网络有关的缺陷。没错,WinXP相对于Win9x的弱点就是它的网络漏洞太多了,无论是利用MIME漏洞传播的信件木马,还是通过LSASS溢出而放下的木马,都能在XP系统上分到一块肉。你也许会说,Win9x同样有许多漏洞,但是为什么它没有XP的烦恼?这是因为Win9x的网络功能太弱了,几乎没有什么系统组件需要依靠网络运行!所以现在的用户,除了使用网络防火墙和病毒防火墙把自己包裹得严严实实以外,还要三天两头去微软的系统更新站点安装各种漏洞修复程序……(图4.Windows Update)


 




别让士兵们下马!——防止木马启动
话说藏在木马里的希腊士兵入城以后,并没有急着下马屠城,而是待到夜深人静之时,才出来打开了牢固的城门,为特洛伊的毁灭奏响了哀歌。而计算机内部没有人类社会的地理和时间关系,即使你的硬盘里现在就存放着100个木马程序,它们也比特洛伊海滩上那只大木马的处境好不到哪里去,因为对于操作系统来说,任何有害程序只要没有运行,它就可以等同于那些未能下马的士兵,一律视为无害。要让系统变成特洛伊城的黑夜,唯一的方法只能是启动木马的服务器端,而启动木马的最简单途径,就是通过“启动项”加载运行。(图5.查看启动项的工具)


任何操作系统都会在启动时自动运行一些程序,用以初始化系统环境或额外功能等,这些被允许跟随系统启动而运行的程序被放置在专门的区域里供系统启动时加载运行,这些区域就是“启动项”,不同的系统提供的“启动项”数量也不同,对于Win9x来说,它提供了至少5个“启动项”:DOS环境下的Autoexec.bat、Config.sys,Windows环境下的“启动”程序组、注册表的2个Run项和1个RunServices项,分别是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

到了2000/XP系统时代,DOS环境被取消,却新增了一种称之为“服务”的启动区域,注册表也在保持原项目不变的基础上增加了2个“启动项”:
项目 键名
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows AppInit_DLLs
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows run

这么多的启动入口,木马自然不会放过,于是我们经常在一些计算机的启动项里发现陌生的程序名,这时候就只能交由你或者病毒防火墙来判断了,毕竟系统自身会在这里放置一些必要的初始化程序,还有一些正常工具,包括病毒防火墙和网络防火墙,它们也必须通过启动项来实现跟随系统启动。(图6.各个启动项位置)


此外还有一种不需要通过启动项也能达到跟随系统启动的卑劣手法,那就是“系统路径遍历优先级欺骗”,Windows系统搜寻一个不带路径信息的文件时遵循一种“从外到里”的规则,它会由系统所在盘符的根目录开始向系统目录深处递进查找,而不是精确定位的,这就意味着,如果有两个同样名称的文件分别放在C:\和C:\Windows下,Windows会执行C:\下的程序,而不是C:\Windows下的。这样的搜寻逻辑就给入侵者提供了一个机会,木马可以把自己改为系统启动时必定会调用的某个文件名,并复制到比原文件要浅一级以上的目录里,Windows就会想当然的执行了木马程序,系统的噩梦就此拉开序幕。这种手法常被用于“internat.exe”,因为无论哪个Windows版本的启动项里,它都是没有设置路径的。
要提防这种占用启动项而做到自动运行的木马,用户必须了解自己机器里所有正常的启动项信息,才能知道木马有没有混进来。至于利用系统路径漏洞的木马,则只能靠用户自己的细心了。


为什么它无法根除?——文件并联型木马的查杀
某些用户经常会很郁闷,自己明明已经删除了木马文件和相应的启动项,可是不知道什么时候它自己又原封不动的回来了,这还不算,更悲惨的是有时候杀掉某个木马后,系统也出了故障:所有应用程序都打不开了。这时候,如果用户对计算机技术的了解仅限于使用杀毒软件,那可只能哭哭啼啼的重装系统了!
为什么会这样?难道这种木马还恶意修改了系统核心?其实答案很简单,因为这种木马修改了应用程序(EXE文件)的并联方式。
什么是“并联方式”呢?在Windows系统里,文件的打开操作是通过注册表内相应键值指定的应用程序来执行的,这个部分位于注册表的“HKEY_CLASSES_ROOT”主键内,当系统收到一个文件名请求时,会以它的后缀名为依据在这里识别文件类型,进而调用相应的程序打开。而应用程序自身也被视为一个文件,它也属于一种文件类型,同样可以用其他方式开启,只不过Windows设置它的调用程序为“"%1" %*”,让系统内核理解为“可执行请求”,它就会为使用这种打开方式的文件创建进程,最终文件就被加载执行了,如果有另外的程序更改了这个键值,Windows就会调用那个指定的文件来开启它。一些木马程序把EXE后缀名对应的exefile类型的“打开方式”改成了“木马程序 "%1" %*”,运行程序时系统就会先为“木马程序”创建进程,把紧跟着的文件名作为参数传递给它执行,于是在我们看来程序被正常启动了。因为木马程序被作为所有EXE文件的调用程序,使得它可以长期驻留内存,每次都能恢复自身文件,所以在一般用户看来,这个木马就做到了“永生不死”。然而一旦木马程序被删除,Windows就会找不到相应的调用程序,于是正常程序就无法执行了,这就是所谓的“所有程序都无法运行”的情况来源,并不是木马更改了系统核心,更没必要因此重装整个系统。(图7.被木马更改了EXE打开方式的系统)


根除这种木马的最简单方法只需要查看EXE文件的打开方式被指向了什么程序,立即停止这个程序的进程,如果它还产生了其他木马文件的话,也一起停止,然后在保持注册表编辑器开启着的情况下(否则你的所有程序都会打不开了)删除掉所有木马文件,把exefile的“打开方式”项(HKEY_CLASSES_ROOT\exefile\shell\open\command)改回原来的“”%1” %*”即可。
如果删除木马前忘记把并联方式改回来,就会发现程序打不开了,这时候不要着急,如果你是Win9x

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章REAL蛀虫利用播放器漏洞下载恶意程序
    普通文章李彦宏:中国要在互联网领域逐渐超越美国
    普通文章马云:阿里巴巴的成功是一个生态链的成功
    普通文章Ingres用户认证非授权访问漏洞
    普通文章TCPreen FD_SET()函数远程栈溢出漏洞
    普通文章Winace UUE文件解压堆溢出漏洞
    普通文章Pclxav木马猎手第一代特征码引擎源代码
    普通文章IE收藏夹管理小精灵算法分析
    普通文章Extra Drive Pro算法分析历程
    普通文章雨过天晴自我注册
    精彩专题