diff --git a/scripts/rpcinfo.nse b/scripts/rpcinfo.nse index abd92ab43..b028d6fd3 100644 --- a/scripts/rpcinfo.nse +++ b/scripts/rpcinfo.nse @@ -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