mirror of
https://github.com/nmap/nmap.git
synced 2025-12-07 21:21:31 +00:00
XML output for rpcinfo.nse
This commit is contained in:
@@ -38,6 +38,37 @@ Connects to portmapper and fetches a list of all registered programs. It then p
|
|||||||
-- | 300598 1 32783/udp dmispd
|
-- | 300598 1 32783/udp dmispd
|
||||||
-- | 805306368 1 32782/tcp dmispd
|
-- | 805306368 1 32782/tcp dmispd
|
||||||
-- |_ 805306368 1 32783/udp dmispd
|
-- |_ 805306368 1 32783/udp dmispd
|
||||||
|
--@xmloutput
|
||||||
|
--<table>
|
||||||
|
-- <table key="100003">
|
||||||
|
-- <table key="tcp">
|
||||||
|
-- <elem key="port">2049</elem>
|
||||||
|
-- <table key="version">
|
||||||
|
-- <elem>2</elem> <elem>3</elem> <elem>4</elem>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
-- <table key="udp">
|
||||||
|
-- <elem key="port">2049</elem>
|
||||||
|
-- <table key="version">
|
||||||
|
-- <elem>2</elem> <elem>3</elem> <elem>4</elem>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
-- <table key="100000">
|
||||||
|
-- <table key="tcp">
|
||||||
|
-- <elem key="port">111</elem>
|
||||||
|
-- <table key="version">
|
||||||
|
-- <elem>2</elem> <elem>3</elem> <elem>4</elem>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
-- <table key="udp">
|
||||||
|
-- <elem key="port">111</elem>
|
||||||
|
-- <table key="version">
|
||||||
|
-- <elem>2</elem> <elem>3</elem> <elem>4</elem>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
-- </table>
|
||||||
|
--</table>
|
||||||
|
|
||||||
author = "Patrik Karlsson"
|
author = "Patrik Karlsson"
|
||||||
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
|
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
|
||||||
@@ -50,12 +81,14 @@ action = function(host, port)
|
|||||||
|
|
||||||
local result = {}
|
local result = {}
|
||||||
local status, rpcinfo = rpc.Helper.RpcInfo( host, port )
|
local status, rpcinfo = rpc.Helper.RpcInfo( host, port )
|
||||||
|
local xmlout = {}
|
||||||
|
|
||||||
if ( not(status) ) then
|
if ( not(status) ) then
|
||||||
return stdnse.format_output(false, rpcinfo)
|
return stdnse.format_output(false, rpcinfo)
|
||||||
end
|
end
|
||||||
|
|
||||||
for progid, v in pairs(rpcinfo) do
|
for progid, v in pairs(rpcinfo) do
|
||||||
|
xmlout[tostring(progid)] = v
|
||||||
for proto, v2 in pairs(v) do
|
for proto, v2 in pairs(v) do
|
||||||
table.insert( result, ("%-7d %-10s %5d/%s %s"):format(progid, stdnse.strjoin(",", v2.version), v2.port, proto, rpc.Util.ProgNumberToName(progid) or "") )
|
table.insert( result, ("%-7d %-10s %5d/%s %s"):format(progid, stdnse.strjoin(",", v2.version), v2.port, proto, rpc.Util.ProgNumberToName(progid) or "") )
|
||||||
end
|
end
|
||||||
@@ -67,6 +100,6 @@ action = function(host, port)
|
|||||||
table.insert(result, 1, "program version port/proto service")
|
table.insert(result, 1, "program version port/proto service")
|
||||||
end
|
end
|
||||||
|
|
||||||
return stdnse.format_output( true, result )
|
return xmlout, stdnse.format_output( true, result )
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user