什么是木马程序?她是怎么发挥功能?
木马,全称特洛伊木马(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数据包的通讯。防火墙完全可以进行数据包过滤检查,在适当规则的限制下,如对通讯端口进行限制,只允许系统接受限定几个端口的数据请求,这样即使木马植入成功,攻击者也是无法进入到你的系统,因为防火墙把攻击者和木马分隔开来了。但是,仍然有一些木马可以绕过防火墙进入目标主机(比如反弹端口木马),还有一些将端口寄生在合法端口上的木马,防火墙对此也无能为力。因此,我们必须要能迅速地查杀出已经入侵的木马。
木马的功能
木马的有关知识和发展方向
发布日期:2000-01-01
文摘内容:
________________________________________
by cool
基础知识:
木马的定义应该是具有隐蔽性的在完成一些有趣功能的同时也做了用户不想的功能,并且最终危害到用户的软件,这是我对木马的定义呦。
远程控制软件是在远方机器知道,允许的情况下,对远方机器进行远程控制的软件。
server端:应用于目标机器上的软件
client端:控制目标机器的软件
木马的特征:
1. 隐蔽性。很多人的对木马和远程控制软件有点分不清,实际上他们两者的最大区别就是在于这一点,首先举个例子,象国内的血蜘蛛,国外的PCanywhere等应该是远程控制软件,血蜘蛛等server端在目标机器上运行时,目标机器上会出现很醒目的标志。而木马类的软件的server端在运行的时候应用各种手段隐藏自己,例如大家所熟悉的修改注册表和ini文件以便机器在下一次启动后仍能载入木马程式。有些把server端和正常程序绑定成一个程序的软件,叫做exe-binder绑定程式,可以让人在使用trojan化的程式时,木马也入侵了系统,甚至我听说有个程式能把exe文件和图片文件绑定,在你看图片的时候,木马也侵入了你的系统。
还有些木马可以自定义通信端口,当然这样可以是木马更加隐秘。更改server端的图标,让它看起来象个zip或图片文件,如果你一不当心,那么就糟了。
2. 功能特殊性。通常的木马的功能都是十分特殊的,除了普通的文件操作以外,还有些木马具有搜索cache中的口令,设置口令,扫描ip发现中招的机器,键盘记录,远程注册表的操作,以及颠倒屏幕,锁定鼠标等功能比较特殊的操作,而远程控制软件的功能当然不会有这么多的特殊功能,毕竟远程控制软件是用来控制的,并非hack的。
这里谈的只是很大一部分的木马工具,但还有些木马工具的功能比较“专”,而且工作的方式也不是client/server的方式,例如passwd sender(中译名:口令邮差)的功能就是潜伏在目标机器里,搜集各种口令的信息,在目标上网的时候,秘密发送到指定的邮箱。在unix下,还有些hacker们修改ps的原代码,让ps在使用时故意不显示某特殊的进程名,譬如说在系统内的sniffer等,还有些hacker则修改login,passwd,su等软件完成一些搜集口令信息或者开放一个后门等功能,这些程序,我们都称之为木马。
木马的发展方向:
1. 跨平台性:主要是针对windows系统而言,木马的使用者当然认为一个木马可以在95/98下使用在NT,windows2000下也可以使用更好。在95/98下也许大家没感觉,但NT和windows2000都具有了权限的概念,这和95/98是不同的,黑客NT,windows2000的木马需要更高的手段,如控制进程等,现在的一些木马也的确做到了这一点。
2. 模块化设计:似乎模块化设计是一种潮流,winamp就是模块化的典范,现在的木马也有了模块化设计的概念,象bo,netbus,sub7等经典木马都有一些优秀的插件在纷纷问世就是一个很好的说明。
3. 更新更强的感染模式:传统的修改ini文件和注册表的手法已经不能适应更加隐秘的需要,目前的很多的木马的感染方式已经开始在悄悄转变,象前一阶段的YAI事件就给了我们很多的启发,象病毒一样的感染,感染windows下的文件,我认为这件事对木马设计者们有很多的启发。
4. 即时通知:木马是否已经装入?目标在哪里?如果中招的人是使用固定ip的话,还好说,如果目标使用的是动态ip那么怎么办,扫描?太慢,现在的木马已经有了即时通知的功能,如IRC,ICQ通知等,但还是太少,我不使用ICQ,也不是每次都用IRC,但是以后会更加的完善的,也许说不定某天木马们的即时通知功能变成了一个专门的软件也说不定。
5. 更强更多的功能:每个人都是不满足的,每当出现强大功能的时候,我们就期望更强大的功能,以后的木马的功能会如何呢?我也不大清楚,也许会让大家大吃一惊的。
好了,讲了这么多,只是希望大家对木马这个东东有个基本的概念,不要对它心存畏惧,也不要漠然视之。
在这里我还是要提醒大家一句,千万不要随意运行陌生人的软件,这些软件很可能就是一只木马呦。
木马有什么作用
“木马”全称是“特洛伊木马(Trojan Horse)”,原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。在Internet上,“特洛伊木马”指一些程序设计人员在其可从网络上下载(Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪。
由于很多新手对安全问题了解不多,所以并不知道自己的计算机中了“木马”该怎么样清除。虽然现在市面上有很多新版杀毒软件都可以自动清除“木马”,但它们并不能防范新出现的“木马”程序,因此最关键的还是要知道“木马”的工作原理,这样就会很容易发现“木马”。相信你看了这篇文章之后,就会成为一名查杀“木马”的高手了。
“木马”程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以很轻松地伪装自己。
当然它也会悄无声息地启动,你当然不会指望用户每次启动后点击“木马”图标来运行服务端,:),“木马”会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。下面具体谈谈“木马”是怎样自动加载的。
在win.ini文件中,在[WINDOWS]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。
在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\WINDOWS\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
知道了“木马”的工作原理,查杀“木马”就变得很容易,如果发现有“木马”存在,最安全也是最有效的方法就是马上将计算机与网络断开,防止黑客通过网络对你进行攻击。然后编辑win.ini文件,将[WINDOWS]下面,“run=“木马”程序”或“load=“木马”程序”更改为“run=”和“load=”;编辑system.ini文件,将[BOOT]下面的“shell=‘木马’文件”,更改为:“shell=explorer.exe”;在注册表中,用regedit对注册表进行编辑,先在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索并替换掉“木马”程序,有时候还需注意的是:有的“木马”程序并不是直接将“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下的“木马”键值删除就行了,因为有的“木马”如:BladeRunner“木马”,如果你删除它,“木马”会立即自动加上,你需要的是记下“木马”的名字与目录,然后退回到MS-DOS下,找到此“木马”文件并删除掉。重新启动计算机,然后再到注册表中将所有“木马”文件的键值删除。至此,我们就大功告成了。
0条大神的评论