mirror of
https://github.com/nmap/nmap.git
synced 2025-12-21 23:19:03 +00:00
More output from ike-version
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# Nmap Changelog ($Id$); -*-text-*-
|
# Nmap Changelog ($Id$); -*-text-*-
|
||||||
|
|
||||||
|
o [GH#694][NSE] ike-version now outputs information about supported attributes and
|
||||||
|
unknown vendor ids. Also, a new fingerprint for FortiGate VPNs was submitted
|
||||||
|
by Alexis La Goutte. [Daniel Miller]
|
||||||
|
|
||||||
o [GH#700] Enabled support for TLS SNI on the Windows platform. [nnposter]
|
o [GH#700] Enabled support for TLS SNI on the Windows platform. [nnposter]
|
||||||
|
|
||||||
o [GH#686] Script tls-ticketbleed checks for the Ticketbleed vulnerability
|
o [GH#686] Script tls-ticketbleed checks for the Ticketbleed vulnerability
|
||||||
|
|||||||
@@ -210,6 +210,7 @@ local function lookup(vendor_ids)
|
|||||||
vendor = nil,
|
vendor = nil,
|
||||||
attribs = {},
|
attribs = {},
|
||||||
}
|
}
|
||||||
|
local unmatched = {}
|
||||||
|
|
||||||
local status, fingerprints
|
local status, fingerprints
|
||||||
status, fingerprints = load_fingerprints()
|
status, fingerprints = load_fingerprints()
|
||||||
@@ -242,10 +243,15 @@ local function lookup(vendor_ids)
|
|||||||
stdnse.debug2("IKE: Attribute: %s matches %s", vendor_id, row.text)
|
stdnse.debug2("IKE: Attribute: %s matches %s", vendor_id, row.text)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
unmatched[#unmatched+1] = vendor_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if next(unmatched) then
|
||||||
|
info.unknown_ids = unmatched
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|||||||
@@ -19,8 +19,23 @@ Main and Aggressive Mode and sends multiple transforms per request.
|
|||||||
--
|
--
|
||||||
-- @output
|
-- @output
|
||||||
-- PORT STATE SERVICE REASON VERSION
|
-- PORT STATE SERVICE REASON VERSION
|
||||||
-- 500/udp open isakmp udp-response Cisco VPN Concentrator 3000 4.0.7
|
-- 500/udp open isakmp udp-response Fortinet FortiGate v5
|
||||||
-- Service Info: OS: pSOS+; Device: VPN; CPE: cpe:/h:cisco:concentrator
|
-- | ike-version:
|
||||||
|
-- | vendor_id: Fortinet FortiGate v5
|
||||||
|
-- | attributes:
|
||||||
|
-- | Dead Peer Detection v1.0
|
||||||
|
-- |_ XAUTH
|
||||||
|
-- Service Info: OS: Fortigate v5; Device: Network Security Appliance; CPE: cpe:/h:fortinet:fortigate
|
||||||
|
--
|
||||||
|
-- @xmloutput
|
||||||
|
-- <elem key="vendor_id">Fortinet FortiGate v5</elem>
|
||||||
|
-- <table key="unmatched_ids">
|
||||||
|
-- <elem>1234567890abcdef</elem>
|
||||||
|
-- </table>
|
||||||
|
-- <table key="attributes">
|
||||||
|
-- <elem>Dead Peer Detection v1.0</elem>
|
||||||
|
-- <elem>XAUTH</elem>
|
||||||
|
-- </table>
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
@@ -103,25 +118,53 @@ action = function( host, port )
|
|||||||
local ike_response = get_version(host, port)
|
local ike_response = get_version(host, port)
|
||||||
|
|
||||||
if ike_response then
|
if ike_response then
|
||||||
|
-- get_version only returns something if ike.send_request().success == true
|
||||||
|
nmap.set_port_state(host, port, "open")
|
||||||
|
|
||||||
-- Extra information found in the response. Kept for future reference.
|
-- Extra information found in the response. Kept for future reference.
|
||||||
-- local mode = ike_response['mode']
|
-- local mode = ike_response['mode']
|
||||||
-- local vids = ike_response['vids']
|
-- local vids = ike_response['vids']
|
||||||
|
|
||||||
local info = ike_response['info']
|
local info = ike_response['info']
|
||||||
|
local set_version = false
|
||||||
|
local out = stdnse.output_table()
|
||||||
if info.vendor ~= nil then
|
if info.vendor ~= nil then
|
||||||
|
set_version = true
|
||||||
|
if info.vendor.vendor then
|
||||||
|
out.vendor_id = info.vendor.vendor
|
||||||
port.version.product = info.vendor.vendor
|
port.version.product = info.vendor.vendor
|
||||||
|
end
|
||||||
|
if info.vendor.version then
|
||||||
port.version.version = info.vendor.version
|
port.version.version = info.vendor.version
|
||||||
|
out.vendor_id = (out.vendor_id or "") .. " " .. info.vendor.version
|
||||||
|
end
|
||||||
port.version.ostype = info.vendor.ostype
|
port.version.ostype = info.vendor.ostype
|
||||||
port.version.devicetype = info.vendor.devicetype
|
port.version.devicetype = info.vendor.devicetype
|
||||||
table.insert(port.version.cpe, info.vendor.cpe)
|
table.insert(port.version.cpe, info.vendor.cpe)
|
||||||
|
|
||||||
nmap.set_port_version(host, port, "hardmatched")
|
|
||||||
nmap.set_port_state(host, port, "open")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local attribs = {}
|
||||||
|
for i, attrib in ipairs(info.attribs) do
|
||||||
|
attribs[i] = attrib.text
|
||||||
|
if attrib.ostype or attrib.devicetype or attrib.cpe then
|
||||||
|
set_version = true
|
||||||
|
port.version.ostype = port.version.ostype or attrib.ostype
|
||||||
|
port.version.devicetype = port.version.devicetype or attrib.devicetype
|
||||||
|
table.insert(port.version.cpe, attrib.cpe)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
out.unmatched_ids = info.unmatched_ids
|
||||||
|
if next(attribs) then
|
||||||
|
out.attributes = attribs
|
||||||
|
end
|
||||||
|
|
||||||
|
if set_version then
|
||||||
|
nmap.set_port_version(host, port, "hardmatched")
|
||||||
end
|
end
|
||||||
stdnse.debug1("Version: %s", port.version.product )
|
stdnse.debug1("Version: %s", port.version.product )
|
||||||
return
|
return out
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user