Пример #1
0
if (isset($_POST['request'])) {
    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 />";
                    }
                }
            }