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); } } } } $xml->asXML("site/$site.xml"); $targets = join(array_keys($targets), " "); $services = join(array_keys($services), ","); exec("nmap -v -Pn -p $services --script smb-enum-shares.nse,./http-status.nse,./http-favicon-url.nse --script-args=httpspider.maxpagecount=1 -oX 'scans/$site.xml' $targets\n"); } }; ?>