您当前的位置:中客资源站网络学院安全相关安全防范 → 文章内容 退出登录 用户管理
本类热门文章
相关下载
蠕虫传播模式分析
作者:中客资源  来源:中客资源  发布时间:2007-2-11 14:30:21

减小字体 增大字体

蠕虫最近很"热",没几天互联网上就来一次蠕虫浪潮,当然浪头有大有小,有的波涛汹涌,势不可挡,很快就波及整个世界,有的在一小片范围内翻了几翻就沉寂下去了。其实,这些都是表象,蠕虫真正的意义不在于其引起的浪头有多大,而在于是否实现了其目的。散播蠕虫的人的目的是什么呢?有很多种可能,可能是哪个所谓的黑客想提高自己在圈内的知名度,可能那个小孩觉得这东西好玩就做一个出来满足好奇心,可能是某个激进的家伙想试验一下自己的新技术,可能是某个受到伤害的可怜虫想报复社会,也可能是某个网络安全公司为他们的产品促销,当然,还有可能是某为好心人想帮电脑用户自动打上系统补丁,补上安全漏洞。本文不研究蠕虫制作心理学,所以某个蠕虫可能是那类人的作品这不在本文的考虑范围之内,^_^。本文关心的是蠕虫的技术方面,具体来说是蠕虫的传播技术。 
在详细介绍蠕虫的传播技术之前,先给大家补充点基础知识。 

一、    蠕虫的基本结构和传播过程 

蠕虫的基本程序结构为: 
1、    传播模块:负责蠕虫的传播,这是本文要讨论的部分。 
2、    隐藏模块:侵入主机后,隐藏蠕虫程序,防止被用户发现。 
3、    目的功能模块:实现对计算机的控制、监视或破坏等功能。 
传播模块由可以分为三个基本模块:扫描模块、攻击模块和复制模块。 

蠕虫程序的一般传播过程为: 
1.    扫描:由蠕虫的扫描功能模块负责探测存在漏洞的主机。当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象。 
2.    攻击:攻击模块按漏洞攻击步骤自动攻击步骤1中找到的对象,取得该主机的权限(一般为管理员权限),获得一个shell。 
3.    复制:复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并启动。 
我们可以看到,传播模块实现的实际上是自动入侵的功能。所以蠕虫的传播技术是蠕虫技术的首要技术,没有蠕虫的传播技术,也就谈不上什么蠕虫技术了。 

二、入侵过程的分析 

想必大家对入侵的一般步骤都是比较熟悉的。我们简单回忆一下。 
第一步:用各种方法收集目标主机的信息,找到可利用的漏洞或弱点。 
第二步:针对目标主机的漏洞或缺陷,采取相应的技术攻击主机,直到获得主机的管理员权限。 
第三步:利用获得的权限在主机上安装后门、跳板、控制端、监视器等等,清除日志。 
我们一步一步分析。 

先看第一步,搜集信息,有很多种方法,包括技术的和非技术的。采用技术的方法包括用扫描器扫描主机,探测主机的操作系统类型、版本,主机名,用户名,开放的端口,开放的服务,开放的服务器软件版本等。非技术的方法包括和主机的管理员拉关系套口风,骗取信任,威逼利诱等各种少儿不宜的手段。当然是信息搜集的越全越好。搜集完信息后进入第二步。 

第二步,对搜集来的信息进行分析,找到可以有效利用的信息。如果有现成的漏洞可以利用,上网找到该漏洞的攻击方法,如果有攻击代码就直接COPY下来,然后用该代码取得权限,OK了;如果没有现成的漏洞可以利用,就用根据搜集的信息试探猜测用户密码,另一方面试探研究分析其使用的系统,争取分析出一个可利用的漏洞。如果最后能找到一个办法获得该系统权限,那么就进入第三步,否则,放弃。 

第三步,有了主机的权限,你想干什么就干什么吧。如果你不知道想干什么,那你就退出来去玩你喜欢玩的游戏吧。 
上面说的是手动入侵的一般过程,对于自动入侵来说,在应用上有些特殊之处。 
蠕虫采用的自动入侵技术,由于程序大小的限制,自动入侵程序不可能有太强的智能性,所以自动入侵一般都采用某种特定的模式。我们称这种模式为入侵模式,它是由普通入侵技术中提取出来的。目前蠕虫使用的入侵模式只有一种,这种模式是就是我们前面提到的蠕虫传播过程采用的模式:扫描漏洞-攻击并获得shell-利用shell。这种入侵模式也就是现在蠕虫常用的传播模式。这里有一个问题,就是对蠕虫概念的定义问题,目前对蠕虫的定义把这种传播模式作为蠕虫的定义的一部分,实际上广义的蠕虫应该包括那些使用其他自动传播模式的程序。 

我们先看一般的传播模式。 
二、    蠕虫传播的一般模式分析 

1.模式:扫描-攻击-复制。 
从新闻中看到关于蠕虫的报道,报道中总是强调蠕虫如何发送大量的数据包,造成网络拥塞,影响网络通信速度。实际上这不是蠕虫程序的本意,造成网络拥塞对蠕虫程序的发布者没有什么好处。如果可能的话,蠕虫程序的发布者更希望蠕虫隐蔽的传播出去,因为蠕虫传播出去后,蠕虫的发布者就可以获得大量的可以利用的计算资源,这样他获得的利益比起造成网络拥塞的后果来说显然强上万倍。但是,现有的蠕虫采用的扫描方法不可避免的会引起大量的网络拥塞,这是蠕虫技术发展的一个瓶颈,如果能突破这个难关,蠕虫技术的发展就会进入一个新的阶段。 
现在流行的蠕虫采用的传播技术目标一般是尽快地传播到尽量多的电脑中,于是扫描模块采用的扫描策略是这样的: 
随机选取某一段IP地址,然后对这一地址段上的主机扫描。笨点的扫描程序可能会不断重复上面这一过程。这样,随着蠕虫的传播,新感染的主机也开始进行这种扫描,这些扫描程序不知道那些地址已经被扫描过,它只是简单的随机扫描互联网。于是蠕虫传播的越广,网络上的扫描包就越多。即使扫描程序发出的探测包很小,积少成多,大量蠕虫程序的扫描引起的网络拥塞就非常严重了。 
聪明点的作者会对扫描策略进行一些改进,比如在IP地址段的选择上,可以主要针对当前主机所在的网段扫描,对外网段则随机选择几个小的IP地址段进行扫描。对扫描次数进行限制,只进行几次扫描。把扫描分散在不同的时间段进行。扫描策略设计的原则有三点: 
1尽量减少重复的扫描,使扫描发送的数据包总量减少到最小2保证扫描覆盖到尽量大的范围3处理好扫描的时间分布,使得扫描不要集中在某一时间内发生。怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证。 
    扫描发送的探测包是根据不同的漏洞进行设计的。比如,针对远程缓冲区溢出漏洞可以发送溢出代码来探测,针对web的cgi漏洞就需要发送一个特殊的http请求来探测。当然发送探测代码之前首先要确定相应端口是否开放,这样可以提高扫描效率。一旦确认漏洞存在后就可以进行相应的攻击步骤,不同的漏洞有不同的攻击手法,只要明白了漏洞的利用方法,在程序中实现这

[1] [2]  下一页

[] [返回上一页] [打 印]
文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码