35 12
发新话题
打印

[原创]融合生物学特性的蠕虫病毒设计

[原创]融合生物学特性的蠕虫病毒设计

信息来源:邪恶八进制信息安全团队(www.eviloctal.com
文章作者:记忆碎片 [E.S.T]

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

  更新这种设计,我把传播部件拆分开来:把扫描、攻击和破坏脚本化,主程序则负责解析这些脚本。例如针对FTP弱口令进行扫描,我们可以定义如下脚本:
复制内容到剪贴板
代码:
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;
  解析了这段脚本后(我想这种脚本是很容易读懂的),我们再定义一系列的过程,把我们的蠕虫体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%则交换脚本。这样在维持每种脚本都有一定生存空间的情况下使适应性最好的个体得到更多的传播机会,同时,一些在某种网络环境下适应性不强的脚本也有机会尝试不同的网络环境。


  另:

  我一直想把突变的概念引入,可是无从下手,如果要蠕虫产生进化行为也不是不可能的,但可能需要蠕虫自己携带一个虚拟机。

  还有就是最近做了一个代码自我进化的分布式项目,到时候各位要来捧场参加
保持!保持脑袋时刻灵活!

TOP

请问楼主,蠕虫扫描下一个目标IP地址如何确定?

TOP

这个并不是本文的重点, 可以看病毒作者的喜欢了, 可以随机扫描某个段, 也可以是本机访问的IP, 或者其他
保持!保持脑袋时刻灵活!

TOP

那新溢出脚本放哪啊?
反正你upload上去那个地址不变啊,被人发现就没了啊.

TOP

晕倒,超级怀疑自己的表达能力,Upload到被感染的机器上,不是固定地址上再等着被下载
保持!保持脑袋时刻灵活!

TOP

oh,my god,楼主不必自责,是我的理解能力有点问题.

我们再定义一系列的过程,把我们的蠕虫体Upload上去,一次完整的传播动作就完成了。
但这个我实在没搞懂,蠕虫体从哪获取,这么多被感染的机器,如何一个upload方式.

TOP

楼上的金州你能否不说这么多废话。每次看贴都有你长篇大论,几百字的文章,“哈哈”2字就占一半

TOP

oh,我还是那两个单词,my god.
的确没弄懂.
我不是故意来灌水的,.金洲大哥,你把我打击得够呛...

我再读十遍看看.

TOP

金洲大哥解释一下这句:
方法是“把扫描、攻击和破坏脚本化”换句白话就是让蠕虫智能化。就是设计出针对各种漏洞的脚本。

针对各种漏洞的脚本,你多大的蠕虫啊,恐龙级的吧,而且以后的新漏洞,怎么添加进去吧?
晕,反正是没脸见人了,不如扔下脸面问个清楚.

TOP

引用:
这里是引用第[12 楼]xiao20042006-01-15 15:57发表的:
金洲大哥解释一下这句:
方法是“把扫描、攻击和破坏脚本化”换句白话就是让蠕虫智能化。就是设计出针对各种漏洞的脚本。

针对各种漏洞的脚本,你多大的蠕虫啊,恐龙级的吧,而且以后的新漏洞,怎么添加进去吧?
晕,反正是没脸见人了,不如扔下脸面问个清楚.
哈哈,我也叫你一声大哥,这样咱们就平等了,哈哈
讨论区只是对问题的讨论,绝对不牵涉任何个人问题,
相反,我倒是很尊重您,因为您毕竟是在认真讨论问题
针对你的问题,也是这个思路实现的难点之一。
我说一个理论上的看法,反正我一直依胡说出名,上个世纪我就没脸见人了,所以只好在网上逛逛,哈哈

思路如下,当一个蠕虫流传之后,如果新的漏洞,怎么办
比如可以这样,让蠕虫自动连接到一个下载新的脚本,蠕虫会到一个地方更新,然后互相传播更新。
觉得您还是没有看清楚碎片大哥的文章,哈哈,他提到了后门的问题。
引用:
主程序在完成传播后留下一个后门,其他宿主机可以通过这个后门与本地的蠕虫病毒同步传播脚本,这样每次有新的漏洞产生,宿主机的传播方式可以很快地得到升级
人情如冰六月寒,花做一份艳,为谁笑人间? 如果任何人发现我转载的有图像的文章中图像失效或者文章有问题,请及时短消息通知我。先谢谢。::)) coup de foudre

TOP

虽然防火墙可能对这种新思路,防御上现在并不有效,但是,杀毒软件利用Native API Hook技术也不算新技术了

比如,监控进程的文件读,写,删除操作,还有进程的注册表,限制进程执行其它程序的权限,

很是怀疑,楼主的作品,能否逃过第一劫!

我随便说说`````````

TOP

金....就兄吧,哈哈,我觉得还有问的必要....

问题是你这句:
思路如下,当一个蠕虫流传之后,如果新的漏洞,怎么办
比如可以这样,让蠕虫自动连接到一个下载新的脚本,蠕虫会到一个地方更新,然后互相传播更新。
觉得您还是没有看清楚碎片大哥的文章,哈哈,他提到了后门的问题。

越看你的话,我越觉得自己以前没问错.
让蠕虫自动连接下载一个新的脚本,这个脚本从哪来?
楼主大哥说upload一个,晕,这就不智能了啊,还要我们upload.
upload到后门,那我们的蠕虫的工作就太多了,光扫描的就要做两种,一种扫描漏洞一种扫描后门,而且那个扫描随漏洞脚本的增加而增加,脚本也要保存在机器中,开好后门等下一个下载,这样是不是就成了恐龙级蠕虫了???

下面回到我的第一个问题,
我们蠕虫扫描的ip确认,是不是一个问题,仔细想想效率是个很大的事.
因为要分两部分扫啊,一个扫后门,一个扫新漏洞.这里还用随机生成,会不会太不把人家机器带宽当回事了.

第二个,
我们只可能upload到少数后门中,不然要我们自己充当一只蠕虫?
当有新脚本upload到后门后,我们的蠕虫就必须去扫到他,并判断是否有新脚本,那我们的第一个发现新脚本的蠕虫是不是会太累,因为他们不知道哪台蠕虫有更新,何时更新,所以得不停的扫..............扫完又扫.

TOP

本来只是一点思路, 看来得说详细点才能结束口水战

我们假设目前有三台被感染的机器 A, B, C 并假设我们的病毒开启8876端口作为后门
在开始的时候A机的病毒携带有 传播脚本Alpha
B机有传播脚本 Beta

A机病毒总共扫描了100台主机并成功感染了10台主机, 则Fitness为0.100

B机病毒总共扫描了1000台主机并成功感染了50台主机, 所以Fitness为0.020

当B机扫描到A机IP地址时, B机通过判断8876端口 确认A机已经被感染. 然后B机跟A机比对Fitness, 因为A机Fitness比B机Fitness高. 所以B机抛弃传播脚本Beta. 而使用传播脚本Alpha (75%的几率下)

这些是核心概念, 至于具体问题. 比如说体积之类的, 这要看作者去发挥了(可以把脚本附带在主程序末尾. 保证这个程序会小于那个mblaster的150几k的体积, 写倒20k左右的难度不大), 扫描的确得需要分两部分扫描, 不过决不至于搞到网络阻塞的程度,除非编写者拉开1000来个线程来跑

所以Upload是指一台被感染的机器上传到另一台被感染的机器, 而不是由某个固定的地址去下载

至于攻客先生的问题就太具体了, 这跟我就没什么关系, 电脑的发明人还不至于要考虑到电脑桌生产厂家职工家属楼的上下水问题
保持!保持脑袋时刻灵活!

TOP

这帖还得跟一下,
老大,为啥要抛弃传播脚本Beta,为何只取一个好的,而不弄个综合型的,这样感染率不就更高了?
注,这也不叫口水战吧,只是有兴趣想请教一下.前面有用词不当的地方吗,还请海涵了.

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

引用:
这里是引用第[17 楼]xiao20042006-01-16 14:38发表的:
这帖还得跟一下,
老大,为啥要抛弃传播脚本Beta,为何只取一个好的,而不弄个综合型的,这样感染率不就更高了?
注,这也不叫口水战吧,只是有兴趣想请教一下.前面有用词不当的地方吗,还请海涵了.
这也就是为什么我认为自己比较适合搞艺术而不是技术的原因了

首先要明白只有75%的几率抛弃beta, 20%是维持,另5%是交换

有很多原因这么做,很重要的一点是维持体积和保持特征码的不确定性

但最能说服我自己的还是因为这么做比较浪漫
保持!保持脑袋时刻灵活!

TOP

引用:
这里是引用第[14 楼]中华攻客2006-01-15 21:52发表的:
虽然防火墙可能对这种新思路,防御上现在并不有效,但是,杀毒软件利用Native API Hook技术也不算新技术了

比如,监控进程的文件读,写,删除操作,还有进程的注册表,限制进程执行其它程序的权限,

很是怀疑,楼主的作品,能否逃过第一劫!
.......
进程的注册表?
你是说监视进程对注册表的读写?
用快照看看就知道了 一个进程有可能在一秒内对注册表的操作高达几十 几百次

TOP

复制内容到剪贴板
代码:
阿弥托佛,施主,杀毒软件不是每一个进程的read,write,del操作的API都会HOOK的,而且,它也没那么牛B的构架来支撑,另外,杀毒软件利用Hook Api的方式并给出可视化的操作来提醒用户,但它也有缺省设置的,如果每个进程的读写操作都提醒一次的话,老衲估计用户早就不使用了,施主你可能要问为什么,试问?Windows的进程读写操作有多少?杀毒软件的工作量得多大?即使它可以顺利完成工作,如果一秒钟提示一个窗口,施主,您还愿意使用它吗?
Ps:传播的方式有很多种,比如:插入杀毒软件允许操作的进程中去;
远程进程注入,等等的一些方式~~~
有道理,不过,怎么讨论到杀毒这个问题上来了,我也只是随便说说

善意的软件,不会去删除、格式化、修改文件,搞破坏,

定义病毒自身,是现在杀毒软件的优势,楼主也说了是蠕虫病毒

前不久也拜读过某牛人的一篇不文章,从硬件层,针对内存溢出错误进行控制,

如果现有的杀毒软件是监控的话(注册表改写),我想专杀工具就是这种了

PS:只是有兴趣了解楼主的思路,我说的话都是胡言乱语

TOP

引用:
这里是引用第[19 楼]记忆碎片2006-01-18 01:52发表的:



这也就是为什么我认为自己比较适合搞艺术而不是技术的原因了

.......
有道理,我也觉得抛弃的原因主要在于体积的问题.
什么时候,记忆大哥能写个样板出来供研究一下就爽了,只不过别用汇编哦,偶看不懂.
其他的高级语言都差不多吧,

TOP

细化一些,可以借助很多路由算法 [s:70]

TOP

引用:
这里是引用第[21 楼]中华攻客2006-01-18 07:33发表的:
如果现有的杀毒软件是监控的话(注册表改写),我想专杀工具就是这种了
.......
专杀工具也不可能是监控注册表改写,他怎么监控哇,没办法塞,要是进程运行了后根本就不再写注册表了呢,怎么监控?
我觉得出专杀工具不外就两个目的:
1。病毒和杀毒软件有我没你的时候,杀毒软件打不过了
2。危害确实太广了,出专杀顺便宣传自己打打广告
专杀工具一般还是按照找病毒特征码或者扫描内存来实现的
我个人观点哈

最后搞笑一下:
记忆碎片说75%的抛弃……是由于他喜欢浪漫的原因
那么他要是对他女朋友说一句,我要对你浪漫,那我们理解的意思是不是就是……

TOP

楼上完全曲解,.
楼主的意思是远择最优的方法让他延续下去.抛弃的原因是能继续传播下去的情况下,为了减轻重量而抛弃一定传播率.

TOP

难了~
生物进化~~
我以前有个话题就是::
病毒如何学习
[EST VIP] VXK/CVC.GB

TOP

他这里病毒不能学习,是人工喂养的,有新漏洞脚本就喂上去.

TOP

病毒是另一种形式的分布式计算。
如此……
对待处女,谁污染,谁治理。 对待内存,谁分配,谁释放。

TOP

 35 12
发新话题