标题:
[分享]
网络工程师揭秘融合多种传播方式的蠕虫病毒设计
[打印本页]
作者:
bei10000
时间:
2007-3-12 09:38
标题:
网络工程师揭秘融合多种传播方式的蠕虫病毒设计
广州网络工程师揭秘融合多种传播方式的
蠕虫
病毒
设计
【编者按:以往的
病毒
一般只会采取一种传播方式,而现在,特别是“熊猫烧香”
病毒
的出现,多种传播方式的融合成为了一种新的趋势。本文内容仅供参考,切勿用于不当之处!】
一个典型的
蠕虫
病毒
有两个功能型部件:传播和破坏,流行的
蠕虫
病毒
大都是利用操作系统或者应用程序的漏洞(以弱口令和溢出最为常见),但常常并不会对宿主机造成“致命”的破坏。这两个特点使
蠕虫
病毒
比普通电脑
病毒
传播得更快,影响力更大。一般来说,单一的
蠕虫
病毒
只针对某种特定的漏洞进行攻击,所以一旦这种漏洞得到大范围修补,
病毒
也就没有了生存空间。
更新这种设计,我把传播部件拆分开来:把扫描、攻击和破坏脚本化,主程序则负责解析这些脚本。例如针对ftp弱口令进行扫描,我们可以定义如下脚本:
uid = iscript-0a21-2331-x #随机唯一编号
using tcp;
port 21;
send “user anonymous”;
send crlf;
send “pass
fake@nothing.com
”
send crlf;
if (find “200”) result ok;
next;
解析了这段脚本后(我想这种脚本是很容易读懂的),我们再定义一系列的过程,把我们的
蠕虫
体upload上去,一次完整的传播动作就完成了。如果是溢出漏洞,为了简单起见我们可以采集远程溢出的数据包,然后修改ip地址等必要数据,再转发溢出数据包进行溢出(这种情况下要实现connect-back就不容易了,不过这些具体问题就待有心人去研究吧),例如:
using raw;
ip offset at 12;
send “\x1a\xb2\xcc” ……
主程序在完成传播后留下一个后门,其他宿主机可以通过这个后门与本地的
蠕虫
病毒
同步传播脚本,这样每次有新的漏洞产生,宿主机的传播方式可以很快地得到升级。我们当然不会仅满足于这样一个
蠕虫
程序,扫描/攻击脚本的传播过程也是需要仔细处理的。
我们希望适应力(fitness)最强的脚本得到广泛的应用(看起来有点类似 蚁群算法 和 ga),所以我们要求得每个个体的fitness,当它和另一个体取得联系的时候就可以决定谁的传播脚本将取代另一个:
fitness = number of host infected / number of host scanned
但也不能仅凭fitness就修改传播脚本,我个人觉得一个合适的概率是75%,20%的机会保持各自的传播脚本,剩下的5%则交换脚本。这样在维持每种脚本都有一定生存空间的情况下使适应性最好的个体得到更多的传播机会,同时,一些在某种网络环境下适应性不强的脚本也有机会尝试不同的网络环境。
[
本帖最后由 晨风鸟 于 2007-3-13 08:42 编辑
]
作者:
123456adsl
时间:
2007-3-13 08:49
学习了,蠕虫病毒真是烦人呀。
欢迎光临 IT家园 (http://bbs.it998.com/)
Powered by Discuz! 7.2