44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
$file = $argv[1];
|
|
$site = basename($file, ".yaml");
|
|
$__DIR__ = __DIR__;
|
|
|
|
$conf = yaml_parse_file($file);
|
|
|
|
$xml = new SimpleXMLElement(<<<XML
|
|
<?xml version="1.0"?>
|
|
<?xml-stylesheet href='../results.xsl' type='text/xsl'?>
|
|
<lanScanConf scanpath="scans/$site.xml"/>
|
|
XML
|
|
);
|
|
|
|
$targets = [];
|
|
$services = [];
|
|
|
|
foreach ($conf as $key => $value) {
|
|
if ($key == "site") {
|
|
$xml->addAttribute("site", $value);
|
|
} else {
|
|
$xmlGroup = $xml->addChild("group");
|
|
$xmlGroup->addAttribute("name", $key);
|
|
foreach($value as $hostaddress => $servicesList) {
|
|
$xmlHost = $xmlGroup->addChild("host");
|
|
$xmlHost->addAttribute("address", $hostaddress);
|
|
$targets[$hostaddress] = true;
|
|
if ($servicesList) foreach ($servicesList as $service) {
|
|
$xmlService = $xmlHost->addChild("service");
|
|
$xmlService->addAttribute("name", $service);
|
|
$services[$service] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$xml->asXML("site/$site.xml");
|
|
|
|
$targets = join(array_keys($targets), " ");
|
|
$services = join(array_keys($services), ",");
|
|
|
|
echo ("nmap -v -Pn -p $services --script $__DIR__/http-info.nse -oX $__DIR__/scans/.~$site.xml $targets");
|
|
?>
|