博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
木马防御全攻略
阅读量:5046 次
发布时间:2019-06-12

本文共 4991 字,大约阅读时间需要 16 分钟。

      木马,也称特洛伊木马,名称源于古希腊的特洛伊神话,此词语来源于古希腊的神话故事,传说希腊人围攻特洛伊城,久久不能得手。后来想出了一个木马计,让士兵藏匿于巨大的木马中。大部队假装撤退而将木马摈弃于特洛伊城下,让敌人将其作为战利品拖入城内。木马内的士兵则乘夜晚敌人庆祝胜利、放松警惕的时候从木马中爬出来,与城外的部队里应外合而攻下了特洛伊城。尽管资深的黑客不屑于使用木马,但在对以往网络安全事件的分析统计里,我们发现,有相当部分的网络入侵是通过木马来进行的,包括去年微软被黑一案,据称该黑客是通过一种普通的蠕虫木马侵入微软的系统的,并且窃取了微软部分产品的源码。木马的危害性在于它对电脑系统强大的控制和破坏能力,窃取密码、控制系统操作、进行文件操作等等,一个功能强大的木马一旦被植入你的机器,攻击者就可以象操作自己的机器一样控制你的机器,甚至可以远程监控你的所有操作。
  木马是如何侵入的? 
  一般的木马都有客户端和服务器端两个执行程序,其中客户端是用于攻击者远程控制的机器,服务器端程序即是木马程序。攻击者要通过木马攻击你的系统,他所做的第一步是要把木马的服务器端程序植入到你的电脑里面。目前木马入侵的主要途径还是先通过一定的方法把木马执行文件弄到被攻击者的电脑系统里,如邮件、下载等,然后通过一定的提示故意误导被攻击者打开执行文件,比如故意谎称这个木马执行文件是你朋友送给你贺卡,可能你打开这个文件后,确实有贺卡的画面出现,但这时可能木马已经悄悄在你的后台运行了。一般的木马执行文件非常小,大到都是几K到几十K,如果把木马捆绑到其它正常文件上,你很难发现的,所以,有一些网站提供的软件下载往往是捆绑了木马文件的,在你执行这些下载的文件,也同时运行了木马。木马也可以通过Script、ActiveX及Asp、Cgi交互脚本的方式植入,由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者电脑进行文件操作等控制,前不久就出现一个利用微软Scripts脚本漏洞对浏览者硬盘进行格式化的Html页面。如果攻击者有办法把木马执行文件传到攻击主机的一个可执行的WWW目录夹里面,他可以通过编制Cgi程序在攻击主机上执行木马目录,木马还可以利用系统的一些漏洞进行植入,如微软著名的IIS服务器溢出漏洞,通过一个IISHACK攻击程序即在把IIS服务器崩溃,并且同时在攻击服务器执行远程木马执行文件。
  木马如何将被入侵主机信息发送给攻击者?
  木马在被植入攻击主机后,它一般会通过一定的方式把入侵主机的信息,如主机的IP地址、木马植入的端口等发送给攻击者,这样攻击者有这些信息才能够与木马里应外合控制攻击主机。在早期的木马里面,大多都是通过发送电子邮件的方式把入侵主机信息告诉攻击者,有一些木马文件干脆把主机所有的密码用邮件的形式通知给攻击者,这样攻击都就不用直接连接攻击主机即可获得一些重要数据,如攻击OICQ密码的GOP木马即是如此。使用电子邮件的方式对攻击者来说并不是最好的一种选择,因为如果木马被发现,可以能过这个电子邮件的地址找出攻击者。现在还有一些木马采用的是通过发送UDP或者ICMP数据包的方式通知攻击者。
  木马隐身术?
  在运行前,有一些木马经常故意弄成Txt、Html等你认为对你系统没有多少危害性质的文件图标,这样很容易迷诱你把它打开。在运行中,木马的作者也意识到如果程序打开后像早期木马一样没有什么反应的话,这样只要对木马稍有了解的人都会知道这个程序有鬼,这样他们往往会有采取行动杀除木马。所以,新的木马大多都以弹出某种欺骗性质的错误窗口使执行者不起疑心,比如操作系统版本错误等等。在运行后,木马在运行后需要自我销毁和隐藏,木马分为两种类型,一种是随系统自动启动的,另一种附加或者捆绑在Windows系统或者其它应用程序上,或者干脆替代成它们。如果是前者,木马会把自己拷贝到windows系统目录夹下面一个隐蔽的地方,当然是会把自己的文件属性设为隐藏,然后再删除自己。如果是后者,木马会寻找系统程序把自己捆绑或者替换到它们身上,这样你运行这些系统程序的时候就会激活木马。还有一种技术更为先进的木马,它是把自己复制取代成为动态链结dll文件.,如果系统正常的调用请求,它把请求转到原先的DLL,对于一些事先约定好的木马操作,DLL文件就跟一个木马程序毫无区别。隐藏通讯,任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,如攻击者通过客户端直接接入被植入木马的主机,或者通过间接通讯,如通过电子邮件的方式,木马把侵入主机的敏感信息送给攻击者。现在大部分木马一般在占领主机后,会在1024以上不易发现的高端口上驻留,有一些木马会选择一些常用的端口,如80、23,有一种非常先进的木马还可以做到在占领80HTTP端口后,收到正常的HTTP请求仍然把它交与Web服务器处理,只有收到一些特殊约定的数据包后,才调用木马程序。目前大部分木马都是采用TCP连接的方式使攻击者控制主机,这样通过简单的netstat命令或者监视数据包等方式即可以查出攻击,现在有的木马可以通过ICMP数据包进行通讯控制,这样除非分析数据包里面的内容,否则很难发现木马连接。通过电子邮件这类间接通讯的木马一般是以窃取主机密码等机密文件为主,它们比较难觉察,不过,如果采用这种方式,一旦被发现,很容易查出邮箱和邮箱的主人。隐藏进程,在win9X系统里面,为系统进程简单的注册即可以从任务栏里消失,但在windows2000系统里面,任何一个运行的进程都会在Administrator权限下显示出来,并且可以直接关闭掉。在最新的一些木马里面,开始采用了先进的DLL陷井技术,DLL陷井技术是一种针对DLL(动态链接库)的高级编程技术,编程者用特洛伊DLL替换已知的系统DLL,并对所有的函数调用进行过滤,对于正常的调用,使用函数转发器直接转发给被替换的系统DLL,对于一些事先约定好的特殊情况,DLL会执行一些相对应的操作,一个比较简单的方法是起一个进程,虽然所有的操作都在DLL中完成会更加隐蔽,但是这大大增加了程序编写的难度,实际上这样的木马大多数只是使用DLL进行监听,一旦发现控制端的连接请求就激活自身,起一个绑端口的进程进行正常的木马操作。操作结束后关掉进程,继续进入休眠状况。
  木马是如何启动的?
  在Windows系统下,木马可以通过注册表、Win.ini、system.ini、Autoexec.bat和Config.sys、捆绑替换系统文件、启动菜单及程序配置.ini文件来自我启动运行。Win.in:[WINDOWS]下面,“run=”和“load=”行是Windows启动时要自动加载运行的程序项目System.ini:[BOOT]下面有个“shell=Explorer.exe”项。正确的表述方法就是这样。如果等号后面不仅仅是explorer.exe,而是“shell=Explorer.exe 程序名”,那么后面跟着的那个程序就是木马程序注册表:在KEY-LOCAL-MACHINE\Software\ Microsoft\ Windows \CurrentVersion\下面五个以Run开头的主键目录都是系统自启的键值。
  未来木马发展的方向?
  1、传统的TCP端对端连接会被抛弃,未来木马要么就采用非TCP/UDP的IP族数据包,它们十分隐蔽,如果不对数据包详细分析,很难发现木马入侵;要么就采用寄生Tcp端口,这样木马传输的数据包和正常的数据包很难区分开来。
  2、在传播方式上,未来木马会和病毒一样,采用交叉式迅速大规模扩散,并且运行方式越来越隐蔽,可能通过浏览一个html页面即可把木马植入你的主机。
  3、未来木马将更注重底层的通讯编程,如针对网卡和Modem的通讯编程,这样可以逃过防火墙的监视和过滤。
  如何发现侦探木马?
  对于一些常见的木马,如SUB7、,BO2000,冰河等等,它们都是采用打开TCP端口监听和写入注册表启动等方式,使用Cllean之类的软件可以检测到这些木马,在我们快要推出的最新版天网个人防火墙也将提供强大的木马检测和清除功能。这些检测木马的软件大多都是利用检测TCP连结、注册表等信息来判断是否有木马入侵,这也可以通过手工来探测。如果你发现自己的硬盘老没原由的读盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象,很可能就是因为有木马潜伏在你的机器里面。这时最简单的方法就是使用netstat命令查看:
Proto Local Address Foreign Address State
TCP dddd-gam68abjr9:1662 202.106.184.200:http ESTABLISHE
TCP dddd-gam68abjr9:1694 TCE-E-7-182-210.bta.net.cn:http
TCP dddd-gam68abjr9:1702 202.106.184.200:http ESTABLISHE
TCP dddd-gam68abjr9:1823 202.106.184.158:http CLOSE_WAIT
TCP dddd-gam68abjr9:1824 202.106.184.158:http CLOSE_WAIT
  从左到右依次是连接类型、本地连接地址端口、远程连接地址端口、连接状态,你可以通过这个命令发现所有网络连接,如果这是有攻击者通过木马连接,你可以通过这些信息发现异状。通过端口扫描的方法也可以发现一些弱智的木马,特别是一些早期的木马,它们捆绑的端口不能更改的,通过扫描这些固定的端口也可以发现木马是否被植入。你还可以通过手工检测上文所述的和木马启动的系统文件和注册表的方式把那些不明的自启动运行文件清除掉。如果在发生系统异常后,最好将系统断线再诊断木马。
  如何清除掉木马?
  目前已经有一些专门的清除木马的软件,我们在新推出天网防火墙里面也会捆绑强大的木马清除功能,清除一般木马的机制原理主要是:
      1、检测木马。
      2、找到木马启动文件,一般在注册表及与系统启动有关的文件里能找到木马文件的位置。
      3、删除木马文件,并且删除注册表或系统启动文件中关于木马的信息。
  但对于一些十分狡滑的木马,这些措施是无法把它们找出来的,我们现在检测木马的手段无非是通过网络连接和查看系统进程,事实上,一些技术高明的木马编制者完全可以通过合理的隐藏通讯和进程使木马很难被检测到。
  如何防范木马?
  自然,如果你不打开任何木马文件,就不会有木马的入侵,但这种保证是不可靠的,因为木马植入方式更为先进,甚至你在接到一封电子邮件,只要简单的浏览一下即可被植入木马,而且你下载各种软件时,你根本不知道这里面是否掺了别的东西,何况,攻击者还可以利用你系统的漏洞来植入木马。
  防火墙是抵挡木马入侵的最好途径,绝大多数木马都是必须采用直接通讯的方式进行连接,虽然它们可以采用一定的方式隐藏这种连结,如只有在收到攻击者特殊数据包的时候才激活木马打开通讯端口,连接完毕业,木马则马上进入休眠状态。
防火墙这种阻塞方式不仅适用于TCP数据包,还能够阻止UDP、ICMP等其它IP数据包的通讯控制。
  防火墙完全可以进行数据包过滤检查,在适当规则的限制下,如对通讯端口进行限制,只允许系统接受限定几个端口的数据请求,这样即使木马植入成功,攻击者也是无法进入到你的系统,因为防火墙把攻击者和木马分隔开来了。
尽管如此,对一些技术高明的木马,防火墙有时也是无能为力,如寄生在Http端口上的木马。还有一种是与木马正常控制程序相反的木马,它是通过木马向外面的端口发送数据,比如它发一个数据到一个主机的80端口,任何防火墙都不可能阻塞这种数据请求,要不然整个系统就不用上网浏览网页了。在天网防火墙里面,还有专门针对各种木马攻击的防御规则,防火墙可以确保你免受木马攻击。

转载于:https://www.cnblogs.com/goodhacker/archive/2011/06/09/2076061.html

你可能感兴趣的文章
高手给菜鸟学习Linux的10个建议
查看>>
洗牌算法Fisher_Yates原理
查看>>
functools 之 partial(偏函数)
查看>>
多线程2--毕向东基础视频教程学习笔记
查看>>
结对第二次作业
查看>>
jQuery 1.7的隐藏改动
查看>>
初学ant
查看>>
bzoj 4295 [PA2015]Hazard 贪心,暴力
查看>>
HTML5实践 -- 使用css装饰你的图片画廊
查看>>
软件工程总结
查看>>
解决PowerDesigner 16 Generate Datebase For Sql2005/2008 对象名sysproperties无效的问题
查看>>
learning ddr seft-refresh mode summary
查看>>
30款超酷的HTTP 404页面未找到错误设计
查看>>
【简报】kube框架结构-一个小型响应式CSS框架
查看>>
帮助快速生成页面固定显示元素的jQuery插件 - sticky-kit
查看>>
Java IO-6 打印流
查看>>
数据结构--归并排序的应用(求逆序数 蓝桥杯--小朋友排队)
查看>>
RabbitMQ 消息顺序、消息幂等、消息重复、消息事务、集群
查看>>
k64 datasheet学习笔记1---概述
查看>>
LeetCode 121 Best Time to Buy and Sell Stock
查看>>