46 lines
1.6 KiB
PHP
46 lines
1.6 KiB
PHP
<?php
|
|
if (!file_exists("scans")) mkdir("scans");
|
|
|
|
foreach (scandir("./site") as $file) {
|
|
if (strrpos($file, ".yaml")) {
|
|
$site = str_replace(".yaml", "", $file);
|
|
$yaml = yaml_parse_file("site/$file");
|
|
|
|
$targets = [];
|
|
$services = [];
|
|
|
|
$xml = new SimpleXMLElement(<<<XML
|
|
<?xml version="1.0"?>
|
|
<?xml-stylesheet href='../results.xsl' type='text/xsl'?>
|
|
<lanScanConf/>
|
|
XML);
|
|
$xml->addChild("scan path='scans/$site.xml'");
|
|
|
|
foreach ($yaml as $siteName => $groups) {
|
|
$xml->addAttribute("name", $siteName);
|
|
if ($groups) foreach ($groups as $groupName => $hosts) {
|
|
$xmlGroup = $xml->addChild("group");
|
|
$xmlGroup->addAttribute("name", $groupName);
|
|
if ($hosts) foreach($hosts as $hostaddress => $servicesList) {
|
|
$targets[$hostaddress] = true;
|
|
$xmlHost = $xmlGroup->addChild("host");
|
|
$xmlHost->addAttribute("address", $hostaddress);
|
|
if ($servicesList) foreach ($servicesList as $service) {
|
|
$services[$service] = true;
|
|
$xmlService = $xmlHost->addChild("service");
|
|
$xmlService->addAttribute("name", $service);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$targets = array_keys($targets);
|
|
$services = array_keys($services);
|
|
$xml->asXML("site/$site.xml");
|
|
|
|
exec("nmap -v -Pn -p ".join($services, ",")." --script smb-enum-shares.nse -oX 'scans/$site.xml' ".join($targets, " "));
|
|
}
|
|
};
|
|
|
|
?>
|