当然是C盘啦,因为C盘是系统盘,木马病毒破坏的就是系统盘。然后木马可以拿到系统文件,病毒也可以通过C盘进行交叉感染传播整个硬盘。
12.1.2 木马的工作原理(2)
http://book.51cto.com 2008-07-21 15:26 李匀 电子工业出版社博文视点 我要评论(0)
摘要:《网络渗透测试——保护网络安全的技术、工具和过程》第12章木马和后门的运用,这一章主要介绍考察木马、病毒及后门应用程序,还会介绍一些恶意黑客和渗透测试人员使用的著名病毒、木马及后门程序,最后讨论如何检测这些恶意软件及在网络上预防这些恶意软件攻击的步骤,本节为木马的工作原理。
标签:网络安全 Web 恶意软件 攻击 网络渗透测试
Oracle帮您准确洞察各个物流环节12.1.2 木马的工作原理(2)3.木马的启动方式作为一个优秀的木马,自启动功能是必不可少的。自启动可以保证木马不会因为用户的一次关机操作而彻底失去作用。正因为该项技术如此重要,所以很多编程人员都在不停地研究和探索新的自启动技术。一个典型的例子就是把木马加入到用户经常执行的程序(例如Explorer.exe)中,当用户执行该程序时,木马就自动执行并运行。当然,更加普遍的方法是通过修改Windows系统文件和注册表实现自启动。实现自启动的常用方法包括下述几种,通过启动组实现自启动这也是一种很常见的方式,很多正常的程序都用它,大家常用的QQ就是用这种方式实现自启动的,但木马很少使用这种方式,原因在于启动组的每个程序都会出现在“系统配置实用程序”(msconfig.exe,以下简称msconfig)中。事实上,出现在“开始”菜单的“程序\启动”中足以引起普通人的注意,所以,极少有木马使用这种启动方式。在Win.ini文件中启动同启动组一样,这也是从Windows3.2开始就可以使用的方法,是从Win16遗传到Win32的。在Windows3.2中,Win.ini就相当于Windows9x中的注册表,在该文件中的[Windows]域中的load和run项会在Windows启动时运行,这两个项目也会出现在msconfig中,这种方法也不很适合木马使用。在System.ini文件中启动System.ini文件位于Windows安装目录下,其中[Boot]节中的Shell= Explorer.exe是经常被用于隐藏加载木马的地方。通常的做法是将该项变为Shell= Explorer.exe Sample.exe。这里的Sample.exe是某个木马服务端程序。我们可以在"Explorer.exe"后加上木马程序的路径,这样Windows启动后木马也就随之启动,而且即使是安全模式启动也不会跳过这一项,这样木马也就可以保证永远随Windows启动了,名噪一时的尼姆达病毒就使用了这种方法。这时,如果木马程序也具有自动检测添加Shell项的功能的话,那简直是天衣无缝的绝配,我想除了使用查看进程的工具中止木马,再修改Shell项和删除木马文件外没有别的破解之法了。但这种方式也有先天不足,因为只有一个Shell项,如果有两个木马都使用这种方式实现自启动,那么后来的木马可能会使前一个木马无法启动,此所谓以毒攻毒。System.ini文件中的[386Ehn]节的“driver=路径\程序名”也可以用来实现自启动。此外,System.ini中的[mic]、[drivers]、[drivers32]也是加载程序的好地方。在*.ini文件中启动后缀为.ini的文件是系统中应用程序的启动配置文件,木马程序利用这些文件能够自启动应用程序的特点,将制作好的、带有木马服务端程序自启动命令的文件上传到目标主机中,这样就可以达到启动木马的目的了。通过修改文件关联启动修改文件关联是木马常用手段,例如,在正常情况下,.txt文件的打开方式为Notepad.exe文件,但一旦中了文件关联木马,则.txt文件打开方式就会被修改为用木马程序打开,如著名的国产木马冰河就是这样。冰河木马通过修改HKEY_CLASSES_ROOT\txtfile\shell\open\command下的键值,将“C:\WINDOWS\notepad.exe %1”修改为“%SystemRoot%\system32\sysexplr.exe %1”,实现该木马的启动。只要用户双击任意一个.txt文件,原本应该使用notepad.exe程序打开.txt文件,现在就变成启动Windows system32目录下的sysexplr.exe木马程序了。需要提醒读者的是,不仅仅是.txt文件,其他如html、JPG、Zip、rar等扩展名都是木马作者制定自动启动方案的目标。通过捆绑文件方式启动木马和正常程序捆绑,有点类似于病毒,程序在运行时,木马程序先获得控制权或另开一个线程以监视用户操作,截取密码等,这类木马编写的难度较大,需要了解PE文件结构和Windows的底层知识(直接使用捆绑程序除外)。使用著名的黑客软件Deception Binder就可以实现木马与正常程序的捆绑。这是国外的一款文件合并器,小巧而功能强大。能够捆绑任意格式(包括.txt、.jpg)文件;能够设置打开文件是否隐蔽运行;能够设置打开文件是否加入注册表启动项;能够设置打开文件时是否显示错误信息以迷惑对方等。当木马程序连接到Notepad时,其结果会显示为Notepad,而且执行时也像是Notepad,但同时也会执行木马程序。通过将特定的程序改名方式启动这种方式常见于针对QQ的木马,如将QQ的启动文件QQ2000b.exe,改为 QQ2000b.ico.exe(Windows默认不显示扩展名,因此它会被显示为QQ2000b.ico,而用户会认为这是一个图标),再将木马程序改为QQ2000b.exe,此后,用户运行QQ,实际上运行了QQ木马,再由QQ木马去启动真正的QQ,这种方式实现起来很简单。通过Autoexec.bat文件,或winstart.bat,config.sys文件启动其实这种方法并不适合木马使用,因为该文件会在Windows启动前运行,此时系统处于DOS环境,只能运行16位应用程序,Windows下的32位程序是不能运行的。因此也就失去了木马的意义。不过,这并不是说它不能用于启动木马。可以想像,SoftIce for Win98(功能强大的程序调试工具,被黑客奉为至宝,常用于破解应用程序)也是先要在Autoexec.bat文件中运行然后才能在Windows中显示窗口,进行调试,既然如此,谁能保证木马不会这样启动呢?通过注册表启动这里通常有两组注册表项供使用。下面分别予以简要介绍。通过下面的三个注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices 这是很多Windows程序都采用的方法,也是木马最常用的方法。它的使用非常方便,但也容易被人发现,由于其应用太广,所以几乎提到木马,就会让人想到这几个注册表项中的主键,通常木马会使用最后一个。使用Windows自带的程序msconfig或注册表编辑器(regedit.exe)都可以将它轻易的删除,所以这种方法并不十分可靠。但可以在木马程序中加一个时间控件,以便实时监视注册表中自身的启动键值是否存在,一旦发现被删除,则立即重新写入,以保证下次Windows启动时自己能被运行。这样木马程序和注册表中的启动键值之间形成了一种互相保护的状态。木马程序未中止,启动键值就无法删除(手工删除后,木马程序又自动添加上了),相反的,不删除启动键值,下次启动Windows还会启动木马。怎么办呢?其实破解它并不难,即使在没有任何工具软件的情况下也能轻易解除这种互相保护。破解方法是,首先,以安全模式启动Windows,这时,Windows不会加载注册表中的项目,因此木马不会被启动,相互保护的状况也就不攻自破了,然后,你就可以删除注册表中的键值和相应的木马程序。采用这种启动方式的典型木马包括:BO2000、GOP、NetSpy、IEthief、冰河等。通过下面的三个注册表项: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
这种方法好像使用的人不是很多,但隐蔽性比上一种方法好,它的内容不会出现在msconfig中。在这个键值下的项目和上一种相似,会在Windows启动时启动,但Windows启动后,该键值下的项目会被清空,因而不易被发现,但是只能启动一次,木马如何能发挥效果呢?其实很简单,不是只能启动一次吗?那木马启动成功后再在这里添加一次不就行了吗?在Delphi中这不过三五行程序。虽说这些项目不会出现在msconfig中,但是在Regedit中却可以直接将它删除,那么木马也就从此失效了。还有一种控制再次启动的方法,它不是在启动的时候添加注册表项,而是在退出Windows的时候添加,这就要求木马程序本身要截获Windows的消息,当发现关闭Windows消息时,暂停关闭过程,添加注册表项目,然后才开始关闭Windows,这样使用Regedit也找不到它的踪迹了。这种方法也有个缺点,就是一旦Windows异常中止(比如断电),木马也就失效了。另外使用这三个键值并不完全一样,通常木马会选择第一个,因为在第二个键值下的项目会在Windows启动完成前运行,并等待程序结束后才会继续启动Windows。采用这种启动方式的典型木马包括Happy99等。4.黑客欺骗用户运行木马的方法木马是一个软件,它由使用者传播或种植,而不会“长腿”自己跑到用户的机器上,正像《特洛伊》剧情中描述的一样,木马往往是用户自己将其带进计算机中的。有了木马程序,如果没有高超的骗术,木马也无用武之地,因此,这里将简单地介绍几种网络上流行的欺骗方法,目的是让读者了解这些骗术的内容,如果遇到类似情况,也可以当场揭穿而不会付出城池失守的代价。捆绑欺骗把木马服务端和某个游戏,或者Flash文件捆绑成一个文件通过QQ或邮件发给受害者。当受害者对这个游戏或者Flash文件感兴趣而下载到机器上,而且不幸打开了文件后,就会被种植上木马。受害者会看到游戏程序正常打开,但却不会发觉木马程序已经悄悄运行。这种方法可以起到很好的迷惑作用,而且即使受害者重装系统,如果用户保存了那个捆绑文件,还有可能再次中招。邮件冒名欺骗现在上网的用户很多,但其中一些用户的电脑知识并不丰富,防范意识也不强,当黑客用匿名邮件工具冒充用户的好友或大型网站、政府机构向目标主机用户发送邮件,并将木马程序作为附件。用户看到发送者的名字是某知名网站或大型机构,而附件命名为调查问卷,注册表单等,用户就有可能毫无戒心地打开附件,从而种植上木马。压缩包伪装这个方法比较简单,也比较实用。首先,将一个木马和一个损坏的Zip/Rar文件包(可自制)捆绑在一起,生成一个后缀名为.exe的文件。然后指定捆绑后的文件为Zip/Rar文件图标,这样一来,除了后缀名与真正的Zip/Rar文件不同,执行起来却和一般损坏的Zip/Rar文件没什么两样,用户可能根本不知道木马已经在悄悄运行了。网页欺骗也许读者在网上都有这样的经历,当用户在聊天的时候,入侵者发给用户一些陌生的网址,并且说明网站上有一些比较吸引人的东西或者热门的话题。如果用户不够警惕,或者好奇心较强,不幸单击了这个链接,在网页弹出的同时,用户的机器也可能已经被种植了木马。
欺骗的方法多种多样,并且随着时间的推移,新的方法和手段也都会被发明出来。
木马,全称特洛伊木马(Trojan horse),这个词语来源于古希腊神话,在计算机领域是一种客户/服务器程序,是黑客最常用的基于远程控制的工具。目前,比较有名的国产木马有:“冰河”、“广外女生”、“黑洞”、“黑冰”等;国外有名的木马则有:“SubSeven”、“Bo2000(Back Orifice)”、“NetSpy”、“Asylum”等。木马对计算机系统和网络安全危害相当大,因此,如何防范特洛伊木马入侵成为了计算机网络安全的重要内容之一。
1 木马的实现原理及特征
1.1 木马的实现原理
从本质上看,木马都是网络客户/服务模式,它分为两大部分,即客户端和服务端。其原理是一台主机提供服务(服务器) ,另一台主机接受服务(客户机),作为服务器的主机一般会打开一个默认的端口进行监听。如果有客户机向服务器的这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求。这个程序被称为守护进程。
当攻击者要利用木马进行网络入侵,一般都要完成“向目标主机传播木马”,“启动和隐藏木马”,“建立连接”,“远程控制”等环节。
1.2 木马的特征
一个典型的木马程序通常具有以下四个特征:隐蔽性、欺骗性、顽固性和危害性。
(1)隐蔽性:隐蔽性是木马的生命力,也是其首要特征。木马必须有能力长期潜伏于目标机器中而不被发现。一个隐蔽性差的木马往往会很容易暴露自己,进而被杀毒(或杀马)软件,甚至用户手工检查出来,这样将使得这类木马变得毫无价值。木马的隐蔽性主要体现在以下两方面:
a.不产生图标。木马虽然在系统启动时会自动运行,但它不会在“任务栏”中产生一个图标。
b.木马自动在任务管理器中隐藏或者以“系统服务”的方式欺骗操作系统。这也就使得要及时了解是否中了木马带来了一定的困难。
(2)欺骗性:木马常常使用名字欺骗技术达到长期隐蔽的目的。它经常使用常见的文件名或扩展名,如dll、win、sys、explorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”、字母“o”与数字“0”,常常修改几个文件中的这些难以分辨的字符,更有甚者干脆就借用系统文件中已有的文件名,只不过它保存在不同路径之中而已。
(3)顽固性:很多木马的功能模块已不再是由单一的文件组成,而是具有多重备份,可以相互恢复。当木马被检查出来以后,仅仅删除木马程序是不行的,有的木马使用文件关联技术,当打开某种类型的文件时,这种木马又重新生成并运行。
(4)危害性:当木马被植入目标主机以后,攻击者可以通过客户端强大的控制和破坏力对主机进行操作。比如可以窃取系统密码,控制系统的运行,进行有关文件的操作以及修改注册表等。
2 木马入侵手段
木马能不能完全发挥它的功能和作用,关键一步就是能否成功地进入到目标主机。随着网络知识的普及以及网络用户安全意识的提高,木马的入侵手段也随着发生了许多变化。
2.1木马的传统入侵手段
所谓传统入侵手段就是指大多数木马程序采取的、已经广为人知的传播方式,主要有以下几种:
1)电子邮件(E-mail)进行传播:攻击者将木马程序伪装成E-mail附件的形式发送过去,收信方只要查看邮件附件就会使木马程序得到运行并安装进入系统。
2)网络下载进行传播:一般的木马服务端程序都不是很大,最大也不超过200K,有的甚至只有几K。如果把木马捆绑到其它正常文件上,是很难发现的。一些非正规的网站以提供软件下载为名,将木马捆绑在软件安装程序上,下载后,只要运行这些程序,木马就会自动安装。通过Script、ActiveX及Asp、Cgi交互脚本的方法传播:由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者主机进行文件操作等控制。如果攻击者有办法把木马服务端程序上载到目标主机的一个可执行WWW目录夹里面,他就可以通过编制Cgi程序在被攻击的目标主机上执行木马程序。
3)网页浏览传播:这种方法利用Java Applet编写出一个HTML网页,当我们浏览该页面时,Java Applet会在后台将木马程序下载到计算机缓存中,然后修改注册表,使指向木马程序。
4)利用系统的一些漏洞进行传播:如微软著名的IIS服务器溢出漏洞,通过一个IISHACK攻击程序即可把IIS服务器崩溃,并且同时在受控服务器执行木马程序。
5)远程入侵进行传播:黑客通过破解密码和建立IPC$远程连接后登陆到目标主机,将木马服务端程序拷贝到计算机中的文件夹(一般在C:\WINDOWS\system32或者C:\WINNT\system32)中,然后通过远程操作让木马程序在某一个时间运行。
2.2 木马入侵手段的发展
以上的木马入侵手段虽然使用广泛,但也很容易引起用户的警觉,所以一些新的入侵手段也相继出现,主要有:
1) 基于DLL和远程线程插入的木马植入
这种传播技术是以DLL的形式实现木马程序,然后在目标主机中选择特定目标进程(如系统文件或某个正常运行程序),由该进程将木马DLL植入到本系统中。
DLL文件的特点决定了这种实现形式的木马的可行性和隐藏性。首先,由于DLL文件映像可以被映射到调用进程的地址空间中,所以它能够共享宿主进程(调用DLL的进程)的资源,进而根据宿主进程在目标主机的级别未授权地访问相应的系统资源。其次,因为DLL没有被分配独立的进程地址空间,也就是说DLL的运行并不需要创建单独的进程,所以从系统的进程列表里看不见DLL的运行踪迹,从而可以避免在目标主机中留下木马进程踪迹,因此满足了隐蔽性的要求。将木马程序以DLL的形式实现后,需要使用插入到目标进程中的远程线程将该木马DLL插入到目标进程的地址空间,即利用该线程通过调用Load Library函数来加载木马DLL,从而实现木马的传播。
2)利用蠕虫病毒传播木马
以前的木马传播大都比较被动,而使用E-mail传播效率又太低,系统漏洞很快又被打上补丁,所以在某种程度上限制了木马的传播能力。网络蠕虫病毒具有很强的传染性和自我复制能力,将木马和蠕虫病毒结合在一起就可以大大地提高木马的传播能力。结合了蠕虫病毒的木马利用病毒的特性,在网络上大批量地进行传播、复制,这就加快了木马的传播速度,扩大了其传播范围。
3 木马的防范措施
为了减少或避免木马给主机以及网络带来危害,我们可以从两方面来有效地防范木马:使用防火墙阻止木马入侵以及及时查杀入侵后的木马。
防火墙是抵挡木马入侵的第一道门,也是最好的方式。绝大多数木马都是必须采用直接通讯的方式进行连接,防火墙可以阻塞拒绝来源不明的TCP数据包。防火墙的这种阻塞方式还可以阻止UDP、ICMP等其它IP数据包的通讯。防火墙完全可以进行数据包过滤检查,在适当规则的限制下,如对通讯端口进行限制,只允许系统接受限定几个端口的数据请求,这样即使木马植入成功,攻击者也是无法进入到你的系统,因为防火墙把攻击者和木马分隔开来了。但是,仍然有一些木马可以绕过防火墙进入目标主机(比如反弹端口木马),还有一些将端口寄生在合法端口上的木马,防火墙对此也无能为力。因此,我们必须要能迅速地查杀出已经入侵的木马。木马的查杀,可以采用自动和手动两种方式。最简单的删除木马的方法是安装杀毒软件,现在很多杀毒软件能删除网络上最猖獗的木马。但是,由于杀毒软件的升级多数情况下慢于木马的出现,因此学会手工查杀非常必要。方法是:
1)检查主机开放的端口
木马进行通讯时大都会开启一个通讯端口,这个端口一般是用户不常见的。检查端口可以使用专门的端口扫描器,也可以在“命令行提示符”下使用“net stat –an”命令进行查看,如图1所示。除了服务器默认使用的端口外,其它的开放端口都要引起警觉。
因为在注册表中可以设置一些启动加载项目,所以很多木马程序都会利用注册表来启动自己。事实上,只要是Run\RunOnce\RunonceEx\RunServices\RunServicesOnce等都是木马程序加载的入口,如HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run或Run Once;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Current Version\Run或Run Once或Run Services或RunServicesOnce。检查这些键值下是否有可疑的文件名,如果有,先关闭其进程,再删除键值和相应的应用程序。 对于一些文本(.txt)文件关联木马(比如“冰河”)和应用程序(.exe)文件关联木马(比如“广外女生”),除了以上步骤外,还要将HKEY_Classes_ROOT\txtfile\shell\open\command中的键值改为“c:\windows\notepad.exe %1”以及将HKEY_Classes_ROOT\exefile\shell\open\command中的键值改为“”%1” %*”。
3)检查启动组
虽然木马隐藏在启动组并不是十分安全,但这里的确是自动加载运行的好场所,因此还是有木马在这里驻留。启动组对应的文件夹为“C:\Documents and Settings\All Users\「开始」菜单\程序\启动”,要经常检查这个地方。
除了以上防范措施外,用户上网时应该避免访问一些非正规的网站或者下载文件;在收到带有附件的E-mail时,应该先对附件进行病毒扫描确保安全后再打开。
4 结束语
多年以来,木马与网络安全技术一直较量着,并且不断向前发展。未来的计算机木马将更注重底层的通讯编程,如针对网卡和Modem的通讯编程,这样可以有效地逃过安全检测,对网络安全形成新的威胁,我们对它的防范也将更加困难。
主要通过复制文件,文件传送,运行程序等方式进行。它的传播媒介主要有以下几种;
(1)硬盘传播:由于带病毒的硬盘在本地或者移到其他地方使用,维修等被病毒传染并将其扩散。
(2)光盘传播:大多数软件都刻录在光盘上,由于普通用户购买正版软件的较少,一些非法商人就将软件放在光盘上,在复制的过程中将带病毒文件刻录在上面。
(3)u盘传播:u盘携带方便,为了方便计算机相互之间传递文件,经常使用u盘,就将一台计算机的病毒传播到另一台。
(4)internet上下载病毒文件,在计算机日益普及的今天人们通过计算机网诺相互传递文件,信件,这样使病毒传播速度加快,因为资源的共享,人们经常网上下载、免费共享软件、病毒文件难免夹带在其中,网诺也是现代病毒传播主要方式。
1、捆绑欺骗。把木马服务端和某个游戏捆绑成一个文件在QQ或邮件发给别人。服务端运行后会看到游戏程序正常打开,却不会发觉木马程序已经悄悄运行,可以起到很好的迷惑作用。而且即使别人以后重装系统了,他还是保存你给他的这个“游戏”的话,还是有可能再次中招。
2、这是教科书式的老式欺骗,方法如下:直接将木马服务端发给对方,对方运行,结果毫无反应(运行木马后的典型表现),他说:“怎么打不开呀!”你说:“哎呀,不会程序是坏了吧?”或者说:“对不起,我发错了!”然后把正确的东西(正常游戏、相片等)发给他,他收到后欢天喜地的就不想刚才该发生的事有什么不对劲了。
3、QQ冒名欺骗。前提:你必须先拥有一个不属于你自己的QQ号。然后使用那个号码给他的好友们发去木马程序,由于信任被盗号码的主人,他的朋友们会毫不犹豫地运行你发给他们的木马程序,结果就中招了。
4、邮件冒名欺骗。和第三种方法类似,用匿名邮件工具冒充好友或大型网站、机构单位向别人发木马附件,别人下载附件并运行的话就中木马了。
5、危险下载点。这是后面几位朋友提到的,蔬菜常用的方法:(据说他已经用这种方法得到了数千台肉鸡)攻破一些下载站点后,下载几个下载量大的软件,捆绑上木马,再悄悄放回去让别人下载,这样以后每增加一次下载次数,你就等于多了一台肉鸡。或者你干脆把木马捆绑到其它软件上,然后"正大光明"的发布到各大软件下载网站,它们也不查毒,就算查也查不出我写的新木马,然后...我就不用说了,肉机会至少两位数。
6、文件夹惯性点击。把木马文件伪装成文件夹图标后,放在一个文件夹中,然后在外面再套三四个空文件夹,很多人出于连续点击的习惯,点到那个伪装成文件夹木马时,也会收不住鼠标点下去,这样木马就成功运行了。
7、zip伪装。这个方法是最新的,将一个木马和一个损坏的zip包(可自制)捆绑在一起,然后指定捆绑后的文件为zip图标,这样一来,除非别人看了他的后缀,否则点下去将和一般损坏的zip没什么两样,根本不知道其实已经有木马在悄悄运行了。
8、在某个公文包或者可以上传附件的论坛传上捆绑好的木马,然后把链接发给受害者。
9、网页木马法。
我来说两句