最近在学习有关蠕虫的知识,感觉有点茫然。哇塞,代码有好多都读不懂!以下是我最近翻译的英文资料,希望和蠕虫菜鸟一起学习,还没有翻译完,呵呵。。。
/* the epidemic and penetration */
蠕虫的活动取决于它的攻击及自我保护策略。蠕虫的攻击包括入侵本地主机,接着搜索远程主机系统的安全漏洞,然后向该主机发送蠕虫的副本并且运行它等过程。蠕虫通过检查系统表/etc/hosts.equiv 和 /.rhosts 、类似于.forward 和 .rhosts的用户文件以及由netstat程序产生的动态routing information,在本地网络上随机地生成主机地址。它以优先权的顺序将这些地址分类,先测试类似于/etc/hostd.equvi的文件,因为该文件包含可以不需要认证连接的本地主机名。入侵远程主机可以有三种方法:1.蠕虫可以利用服务器中允许它以finger request的名义下载代码的漏洞,欺骗服务器执行它;2.蠕虫可以利用SMTP邮件服务中的陷阱,即导致调试中出现错误,而这种错误将允许它运行一个命令解释器并且通过邮件连接下载代码;3. 蠕虫如果可以通过猜测口令入侵本地帐户,那么它可以使用诸如rexec、rsh的远程命令解释服务来攻击那些共享帐户的主机。在每种情况下,蠕虫都会准备着获取一个能够用来复制、编译和执行的蠕虫代码的远程命令解释器。蠕虫利用本地蠕虫和它所需要的其他文件副本,建立自己的网络连接,接下来一个远程蠕虫就这样建立了,传播繁殖过程再次开始。防御策略可以分为三类:阻止入侵的检测,禁止程序的分析,鉴定其他的蠕虫。蠕虫使用改变的名字的方法达到隐藏自己的目的。当它爆发时,它会清空它的参数列表,把它的第零个参数设置为sh。这个参数将允许它冒充无害的命令解释器。它使用fork()函数更改自己所在进程的ID号,从来不会长久地使用一个进程ID。这两种惯用的伎俩的目的是伪装蠕虫在系统状态表的存在。蠕虫试图留下尽可能少的垃圾文件。因此,当它启动时,它会将所有的支持文件读入内存,删除文件系统的拷贝。它关闭系统核心文件的产生。因此,蠕虫产生错误后不会留下任何隐藏于垃圾文件中的证据。接下来,将要进行的是程序块分析---它将阻止管理员通过给蠕虫发送软件信号来迫使它放弃一些核心文件。此外,核心文件还可以通过其他的方法来获取。不管怎样,蠕虫都会非常仔细地变更内存中的特征数据以避免被轻易地找出。磁盘文件文件的拷贝会被特别地反复地译码,或者是10位的代码序列。静态字符串会被特别地一位一位地编码,或者使用16进制的81,除了一些用80(16进制)编码的私有的命令列表。如果在蠕虫删除它的相关文件之前,那些文件被不知何故地捕获,目标文件会被加载,目的是删除大部分无关紧要的符号表目录。这样会使得系统很难从蠕虫的名字猜出蠕虫程序的目的。通常,蠕虫也会采取一定的措施去阻止其他程序利用的信息。理论上讲,一个好的网站可以通过向蠕虫监听的端口发送消息来阻止蠕虫的感染。因此,蠕虫利用短暂的随机“魔法数字”交换,小心地测试连接。
当学习像这样机智的程序时,证实它不做什么和证实它做什么一样重要。蠕虫不会删除系统文件,它只是删除由“bootstrapping”进程创建的文件。程序不会删除重要的文件或者更确切地说是任何文件试图摧毁系统。它不会使用正常地操作移除日志文件或者其他的接口,除了消耗系统资源。蠕虫不修改现存的文件:它不是病毒。蠕虫通过自我复制和在每一个系统上自我编译来传播。它不会修改别的程序来让他们为它工作。由于蠕虫的传播方法,它不指望有足够的权限能够修改程序。蠕虫不安装特洛伊木马:它的传播策略是全然主动的,它不会等用户不小心掉入陷阱时才发作。这样做的部分原因是蠕虫不能经受得住浪费大量的时间等待特洛伊木马的入侵—在被发现之前,它必须自我复制。最后,蠕虫不纪录或发送已解密的口令:除了它自己感兴趣的静态列表,它不会把破解的密码传播给新的蠕虫,或者发送到一些总部。但这并不意味着被入侵的帐号就可以无忧无虑了。因为,蠕虫不会告诉任何人他们的密码是什么,当然,如果蠕虫可以猜出帐号的密码,其它的蠕虫也可以做到。蠕虫放弃获取超级用户的特权:然而,它努力去入侵,但不依赖于有特别的传播特权,并且从不利用那些不知怎么得来的特权。蠕虫不会在uucp、X.25、DECNET或者BITENT:它需要TCP/IP协议的支持。蠕虫不会感染System V系统,除非它们使用像sendmail,fingerd和rexec的Berkeley网络程序。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7962357/viewspace-216989/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7962357/viewspace-216989/