木马
当前位置:主页>病毒木马>列 表
融合多种传播方式的蠕虫病毒设计
2007-07-25 来源: 作者:

  一个典型的蠕虫病毒有两个功能型部件:传播和破坏,流行的蠕虫病毒大都是利用操作系统或者应用程序的漏洞(以弱口令和溢出最为常见),但常常并不会对宿主机造成“致命”的破坏。这两个特点使蠕虫病毒比普通电脑病毒传播得更快,影响力更大。一般来说,单一的蠕虫病毒只针对某种特定的漏洞进行攻击,所以一旦这种漏洞得到大范围修补,病毒也就没有了生存空间。

  更新这种设计,我把传播部件拆分开来:把扫描、攻击和破坏脚本化,主程序则负责解析这些脚本。例如针对FTP弱口令进行扫描,我们可以定义如下脚本:

CODE:

UID = ISCRIPT-0A21-2331-X #随机唯一编号
USING TCP;
PORT 21;
SEND “USER anonymous”;
SEND CRLF;
SEND “PASS [email]fake@nothing.com[/email]”
SEND CRLF;
IF (FIND “200”) RESULT OK;
NEXT;
[Copy to clipboard]


  解析了这段脚本后(我想这种脚本是很容易读懂的),我们再定义一系列的过程,把我们的蠕虫体Upload上去,一次完整的传播动作就完成了。如果是溢出漏洞,为了简单起见我们可以采集远程溢出的数据包,然后修改IP地址等必要数据,再转发溢出数据包进行溢出(这种情况下要实现connect-back就不容易了,不过这些具体问题就待有心人去研究吧),例如:


CODE:

USING RAW;
IP OFFSET AT 12;
SEND “\x1A\xB2\xCC” ……
[Copy to clipboard]


  主程序在完成传播后留下一个后门,其他宿主机可以通过这个后门与本地的蠕虫病毒同步传播脚本,这样每次有新的漏洞产生,宿主机的传播方式可以很快地得到升级。我们当然不会仅满足于这样一个蠕虫程序,扫描/攻击脚本的传播过程也是需要仔细处理的。
  
  我们希望适应力(Fitness)最强的脚本得到广泛的应用(看起来有点类似 蚁群算法 和 GA),所以我们要求得每个个体的Fitness,当它和另一个体取得联系的时候就可以决定谁的传播脚本将取代另一个:

Fitness = Number of host infected / Number of host scanned


  但也不能仅凭Fitness就修改传播脚本,我个人觉得一个合适的概率是75%,20%的机会保持各自的传播脚本,剩下的5%则交换脚本。这样在维持每种脚本都有一定生存空间的情况下使适应性最好的个体得到更多的传播机会,同时,一些在某种网络环境下适应性不强的脚本也有机会尝试不同的网络环境。

更多...
文章排行  
“VML漏洞利用代码”病毒
“USB间谍”变种a
病毒预报(2006.7.24-2006.7.30
windows缺陷代码发布滋生蠕虫
国内首例PPS木马病毒现身网络
警惕:病毒"礼物"(Wo
IP安全策略 VS 特洛伊木马
谨防“魔鬼波”蠕虫疫情爆发
“瑞波”病毒惊现18新变种
瑞星病毒及木马预警一周播报
病毒预报(2006.9.11-2006.9.17
冲击波(Worm.Blaster)病毒
“网游大盗”变种bu
Download.Trojan病毒清除方法
Trojan病毒及清除
版权 2005-2007 株洲电脑110 湘ICP备05008505号
关于本站 | 使用条款 | 联系我们 | 本站作品 | 留言反馈 | 站点地图