fix stuff
This commit is contained in:
parent
8537c2a0ca
commit
17c5c02818
94
http-info.nse
Normal file
94
http-info.nse
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
local shortport = require "shortport"
|
||||||
|
|
||||||
|
description = [[
|
||||||
|
Get and return a page info
|
||||||
|
]]
|
||||||
|
|
||||||
|
---
|
||||||
|
-- @args http-get.path Path to get. Default /.
|
||||||
|
--
|
||||||
|
-- @usage nmap -p80 --script http-info.nse --script-args http-info.path=/ <target>
|
||||||
|
--
|
||||||
|
-- @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_relative_uri = "favicon.ico"
|
||||||
|
local favicon
|
||||||
|
|
||||||
|
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-info.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
|
21
nmap_cmd.php
21
nmap_cmd.php
@ -5,22 +5,39 @@ $__DIR__ = __DIR__;
|
|||||||
|
|
||||||
$conf = yaml_parse_file($file);
|
$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 = [];
|
$targets = [];
|
||||||
$services = [];
|
$services = [];
|
||||||
|
|
||||||
foreach ($conf as $key => $value) {
|
foreach ($conf as $key => $value) {
|
||||||
if ($key != "site") {
|
if ($key == "site") {
|
||||||
|
$xml->addAttribute("site", $value);
|
||||||
|
} else {
|
||||||
|
$xmlGroup = $xml->addChild("group");
|
||||||
|
$xmlGroup->addAttribute("name", $key);
|
||||||
foreach($value as $hostaddress => $servicesList) {
|
foreach($value as $hostaddress => $servicesList) {
|
||||||
|
$xmlHost = $xmlGroup->addChild("host");
|
||||||
|
$xmlHost->addAttribute("address", $hostaddress);
|
||||||
$targets[$hostaddress] = true;
|
$targets[$hostaddress] = true;
|
||||||
if ($servicesList) foreach ($servicesList as $service) {
|
if ($servicesList) foreach ($servicesList as $service) {
|
||||||
|
$xmlService = $xmlHost->addChild("service");
|
||||||
|
$xmlService->addAttribute("name", $service);
|
||||||
$services[$service] = true;
|
$services[$service] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$xml->asXML("site/$site.xml");
|
||||||
|
|
||||||
$targets = join(array_keys($targets), " ");
|
$targets = join(array_keys($targets), " ");
|
||||||
$services = join(array_keys($services), ",");
|
$services = join(array_keys($services), ",");
|
||||||
|
|
||||||
echo ("nmap -v -Pn -p $services --script smb-enum-shares,$__DIR__/nmap -oX $__DIR__/scans/.~$site.xml $targets");
|
echo ("nmap -v -Pn -p $services --script smb-enum-shares,$__DIR__/http-info.nse -oX $__DIR__/scans/.~$site.xml $targets");
|
||||||
?>
|
?>
|
||||||
|
13
results.xsl
13
results.xsl
@ -42,7 +42,18 @@
|
|||||||
<div class="item"><xsl:value-of select="@site"/></div>
|
<div class="item"><xsl:value-of select="@site"/></div>
|
||||||
</header>
|
</header>
|
||||||
<div class="ui main container">
|
<div class="ui main container">
|
||||||
<p><xsl:value-of select="$scan/runstats/finished/@summary"/></p>
|
<xsl:choose>
|
||||||
|
<xsl:when test="$scan/runstats/finished/@errormsg">
|
||||||
|
<div class="ui negative message">
|
||||||
|
<div class="header">Erreur</div>
|
||||||
|
<p><xsl:value-of select="$scan/runstats/finished/@errormsg"/></p></div>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="$scan/runstats/finished/@summary">
|
||||||
|
<div class="ui message">
|
||||||
|
<p><xsl:value-of select="$scan/runstats/finished/@summary"/></p>
|
||||||
|
</div>
|
||||||
|
</xsl:when>
|
||||||
|
</xsl:choose>
|
||||||
<xsl:apply-templates select="group"/>
|
<xsl:apply-templates select="group"/>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
@ -8,7 +8,6 @@ mkdir -p "$DIR"/site
|
|||||||
for conf in "$DIR"/confs/*.yaml
|
for conf in "$DIR"/confs/*.yaml
|
||||||
do
|
do
|
||||||
site="$(basename ${conf/.yaml/})"
|
site="$(basename ${conf/.yaml/})"
|
||||||
php "$DIR/to_xml.php" $conf > "$DIR/site/$site.xml"
|
|
||||||
php "$DIR/nmap_cmd.php" $conf | sh
|
php "$DIR/nmap_cmd.php" $conf | sh
|
||||||
mv "$DIR/scans/.~$site.xml" "$DIR/scans/$site.xml"
|
mv "$DIR/scans/.~$site.xml" "$DIR/scans/$site.xml"
|
||||||
done
|
done
|
||||||
|
Reference in New Issue
Block a user