diff --git a/nmap/http-get.nse b/nmap/http-get.nse deleted file mode 100644 index f4ef085..0000000 --- a/nmap/http-get.nse +++ /dev/null @@ -1,93 +0,0 @@ -local shortport = require "shortport" - -description = [[ -Get and return a page info -]] - ---- --- @args http-get.path Path to get. Default /. --- --- @usage nmap -p80 --script http-get.nse --script-args http-get.path=/ --- --- @output --- status: 200 --- status-line: HTTP/1.1 200 OK\x0D ---- - -categories = {"discovery", "intrusive"} -author = "Adrien Malingrey" -license = "Same as Nmap--See https://nmap.org/book/man-legal.html" - -portrule = shortport.service({"http", "https", "ssl"}) - - -local http = require "http" -local stdnse = require "stdnse" - -action = function(host, port) - local scheme = "" - local hostaddress = (host.name ~= '' and host.name) or host.ip - local path = "" - local answer - local favicon = "/favicon.ico" - - if (port.service == "ssl") then - scheme = "https" - else - scheme = port.service - end - - if(stdnse.get_script_args('http-get.path')) then - path = "/" .. stdnse.get_script_args('http-get.path') - end - - answer = http.get_url(scheme.."://"..hostaddress..":"..port.number.."/"..path) - - if (answer and answer.status == 200) then - favicon_relative_uri = parseIcon(answer.body) or "favicon.ico" - end - - favicon_absolute_uri = scheme.."://"..hostaddress..":"..port.number.."/"..favicon_relative_uri - favicon = http.get_url(favicon_absolute_uri) - - if (favicon and favicon.status == 200) then - return {status=answer.status, ["status-line"]=answer["status-line"], favicon=favicon_absolute_uri} - else - return {status=answer.status, ["status-line"]=answer["status-line"]} - end -end - ---- function taken from http_favicon.nse by Vlatko Kosturjak - -function parseIcon( body ) - local _, i, j - local rel, href, word - - -- Loop through link elements. - i = 0 - while i do - _, i = string.find(body, "<%s*[Ll][Ii][Nn][Kk]%s", i + 1) - if not i then - return nil - end - -- Loop through attributes. - j = i - while true do - local name, quote, value - _, j, name, quote, value = string.find(body, "^%s*(%w+)%s*=%s*([\"'])(.-)%2", j + 1) - if not j then - break - end - if string.lower(name) == "rel" then - rel = value - elseif string.lower(name) == "href" then - href = value - end - end - for word in string.gmatch(rel or "", "%S+") do - if string.lower(word) == "icon" then - return href - end - end - end -end diff --git a/nmap_cmd.php b/nmap_cmd.php index 025785c..72feddd 100644 --- a/nmap_cmd.php +++ b/nmap_cmd.php @@ -39,5 +39,5 @@ $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"); +echo ("nmap -Pn -p $services --script $__DIR__/http-info.nse -oX $__DIR__/scans/.~$site.xml $targets"); ?> diff --git a/scan.sh b/scan.sh new file mode 100755 index 0000000..52e26cd --- /dev/null +++ b/scan.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +DIR="$(dirname -- "$0")" +conf="$1" + +site="$(basename ${conf/.yaml/})" +php "$DIR/nmap_cmd.php" $conf | sh +mv "$DIR/scans/.~$site.xml" "$DIR/scans/$site.xml" \ No newline at end of file diff --git a/scan_all.sh b/scan_all.sh index 46b0b4a..075fc94 100755 --- a/scan_all.sh +++ b/scan_all.sh @@ -1,13 +1,11 @@ #!/usr/bin/env bash -DIR="$(dirname -- "$0")" +DIR="$(dirname -- $0)" mkdir -p "$DIR"/scans mkdir -p "$DIR"/site for conf in "$DIR"/confs/*.yaml do - site="$(basename ${conf/.yaml/})" - php "$DIR/nmap_cmd.php" $conf | sh - mv "$DIR/scans/.~$site.xml" "$DIR/scans/$site.xml" + ./scan.sh "$conf" done diff --git a/to_xml.php b/to_xml.php deleted file mode 100644 index 0d4fc4a..0000000 --- a/to_xml.php +++ /dev/null @@ -1,32 +0,0 @@ - - - -XML -); - -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); - if ($servicesList) foreach ($servicesList as $service) { - $xmlService = $xmlHost->addChild("service"); - $xmlService->addAttribute("name", $service); - } - } - } -} - -echo $xml->asXML(); -?>