mirror of
https://github.com/nmap/nmap.git
synced 2026-05-13 16:57:06 +00:00
Don't crash when portmapper reports non-tcp/udp transports. Fixes #363
This commit is contained in:
parent
46c3db5fad
commit
fbdd7f53d9
1 changed files with 14 additions and 12 deletions
|
|
@ -94,19 +94,21 @@ action = function(host, port)
|
|||
for progid, v in pairs(rpcinfo) do
|
||||
xmlout[tostring(progid)] = v
|
||||
for proto, v2 in pairs(v) do
|
||||
local nmapport = nmap.get_port_state(host, {number=v2.port, protocol=proto})
|
||||
if nmapport and (nmapport.state == "open" or nmapport.state == "open|filtered") then
|
||||
nmapport.version = nmapport.version or {}
|
||||
-- If we don't already know it, or we only know that it's "rpcbind"
|
||||
if nmapport.service == nil or nmapport.version.service_dtype == "table" or port.service == "rpcbind" then
|
||||
nmapport.version.name = rpc.Util.ProgNumberToName(progid)
|
||||
nmapport.version.extrainfo = "RPC #" .. progid
|
||||
if #v2.version > 1 then
|
||||
nmapport.version.version = ("%d-%d"):format(v2.version[1], v2.version[#v2.version])
|
||||
else
|
||||
nmapport.version.version = tostring(v2.version[1])
|
||||
if proto == "tcp" or proto == "udp" then
|
||||
local nmapport = nmap.get_port_state(host, {number=v2.port, protocol=proto})
|
||||
if nmapport and (nmapport.state == "open" or nmapport.state == "open|filtered") then
|
||||
nmapport.version = nmapport.version or {}
|
||||
-- If we don't already know it, or we only know that it's "rpcbind"
|
||||
if nmapport.service == nil or nmapport.version.service_dtype == "table" or port.service == "rpcbind" then
|
||||
nmapport.version.name = rpc.Util.ProgNumberToName(progid)
|
||||
nmapport.version.extrainfo = "RPC #" .. progid
|
||||
if #v2.version > 1 then
|
||||
nmapport.version.version = ("%d-%d"):format(v2.version[1], v2.version[#v2.version])
|
||||
else
|
||||
nmapport.version.version = tostring(v2.version[1])
|
||||
end
|
||||
nmap.set_port_version(host, nmapport, "softmatched")
|
||||
end
|
||||
nmap.set_port_version(host, nmapport, "softmatched")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue