Morris蠕虫源代码分析.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

仍然会消耗大量的系统资源。经过分析,导致系统资源被大量消耗的原因可能有:一、每个蠕虫有七分之一的机会成为永生的独立蠕虫,独立蠕虫会使得系统中的蠕虫越来越多,当然消耗的资源也会越来越多。二、当pleasequit被置为1后,蠕虫还要做很多没有意义的工作

(while循环)才会退出,这也是系统资源的一种浪费。三、根据if(pleasequitnextw0)的退出条件,即使蠕虫在rolldice失败了,如果它是一只新的蠕虫,它还要必须要进行一次攻击(密码破解)才会退出,这也是对系统资源的无谓浪费。四、在mainloop中的破解密码过程中,密码匹配算法效率较低,并且用链表来储存常用的信息检索效率低。五、新蠕虫没有继承父蠕虫的攻击历史记录,导致了新蠕虫会对父蠕虫或者其他已被感染的主机进行重复感染,这也是消耗系统以及网络资源的主要原因之一。

.定位攻击目标

在进行攻击之前,蠕虫首先要定位被攻击的目标位置,并且要确保被攻击的目标是存在的。morris蠕虫将目标主机分为了网关、系统文件列表中主机、本地网络中主机、远程主机四种(储存于hostlist中)。而且,从能够获得最佳攻击效果的目的出发,morris蠕虫按照网关、系统文件列表中主机、本地网络中主机、远程主机的先后顺序进行定位(攻击)目标主机。另外,蠕虫初始化hostlist中系统列表主机的工作在cracksome。中完成,蠕虫在第一次调用cracksome。函数时从本机的文件系统得到目标主机以及用户的信息,这些信息将视为系统列表主机被蠕虫攻击,关于cracksome。函数的实现将在第8部分详细介绍。如果根据ATaxonomyofComputerWorms,这部分大致讲述的就是TARGETDISCOVERY的部分。下面详细描述一下定位(攻击)的过程以及其中用到函数。

gateway

网关是蠕虫的最爱,因为网关上常常记录着一个局域网中所有主机的信息。在攻击时,网关具有最高的优先权,仅当网关列表中所有的网关都被标记(已感染或不能感染)后,蠕虫才尝试对其他类型目标主机的攻击。网关列表由rt_init()函数生成。rt_init()函数通过解析netstat命令的返回值来判断是否为网关(但是其中有一个rt_init_544_plus()函数没有实现,因此蠕虫判断网关的具体方法尚不明确,但也许蠕虫是根据Ip地址的主机位来判断是否为网关的。),如果是网关则在检查是否已经存在与网关列表当中,如果不存在则加入;而后将网关列表随机打乱,将前20个网关假如hostlist以加快攻击速度。对网关进行攻击的函数是hg(),其主要代码以及注释如下:

hg() /*对网关进行攻击*/

(

structhst*host;〃主机列表

inti;

rt_init();〃初始化网关列表

for(i=0;ingateways;i++)

{/*对网关逐个进行攻击直到有网关被攻破或者所有网关都尝试过,循环结束*/host=haddr2host(gateways[i],1);

if(try_rsh_and_mai1(host))

return1;〃攻击成功返回1,关于try_rsh_and_mail将在下文详细介绍

}

return0;〃攻击失败

rt_init() /*初始化网关列表*/

(

FILE*pipe;

charinput_buf[64];

int1204,1304;

ngateways=0;

pipe=popen(XS(z,/usr/ucb/netstat-r-n〃),XS(〃r〃));//打开netstat命令

if(pipe==0)

return0;

while(fgets(inputbuf,sizeof(inputbuf),pipe))

{ /*netstat命令返回不为空,就继续循环*/

other_sleep(0);

if(ngateways=500)

break;

sscanf(inputbuf,XS(〃%s%s〃),1204,1304);

)

pclose(pipe);

rt_init_plus_544();〃未实现

return1;

)

系统文件列表中主机

在网关以后就是系统文件列表中主机,在unix系统中/etc/hosts.equiv文件(后面称作特权文件)记录了本地主机授权的不经过验证就可以登录本主机的用户名,/所。s/s文件记录了允许本地主机特权登录的远程主机名称,力文件记录了本主机向其发送过电子邮件的主机信息。在扫描时这些主机将先被关注(这些主机是与本机相联,而且最容易攻破的机器)。对系统文件列

文档评论(0)

183****0706 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6022143242000004

1亿VIP精品文档

相关文档