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, " ")); } }; ?>