Пример #1
0
 if ($_POST['request'] == "autodiscover") {
     if (!strlen(trim($_POST['job_name']))) {
         $error = "Job name must be provided.";
     } else {
         if (count($_POST['target']) == 0) {
             $error = "You must provide at least one target.";
         } else {
             ksort($_POST['target']);
             $config = new AutodiscoveryConfig("NmapAutoDiscoveryEngine");
             $config->setVar("targets", $_POST['target']);
             $config->setVar("nmap_binary", $_POST['nmap_binary']);
             $config->setVar("traceroute_enabled", empty($_POST['traceroute_enabled']) ? true : true);
             $config->setVar("default_template", $_POST['default_template']);
             $autodiscoveryJob = new AutodiscoveryJob();
             $autodiscoveryJob->setName($_POST['job_name']);
             $autodiscoveryJob->setDescription($_POST['job_description']);
             $autodiscoveryJob->setCmd(AutodiscoveryJob::CMD_START);
             $autodiscoveryJob->setConfig(serialize($config));
             $autodiscoveryJob->setStatus("Starting...");
             $autodiscoveryJob->setStatusCode(AutodiscoveryJob::STATUS_STARTING);
             $autodiscoveryJob->save();
             // Attempt to execute the external auto-discovery script, fork it, and love it.
             exec("php autodiscovery/autodiscover.php " . $autodiscoveryJob->getId() . " > /dev/null", $tempOutput, $retVal);
             if ($retVal != 42) {
                 $status_msg = "Failed to run external Autodiscovery script. Return value: " . $retVal . "<br /> Error:";
                 foreach ($tempOutput as $output) {
                     $status_msg .= $output . "<br />";
                 }
             }
         }
     }