broadcast-novell-locate 說明
一般而言. 網路裡頭有一台Novell 主機, 超穩, 可是Novell NetWare Core Protocol (NCP)
這是在IPX/SPX 協定,...比較少見難找
官方: https://nmap.org/nsedoc/scripts/broadcast-novell-locate.html
內文:
local bin = require "bin"
local ipOps = require "ipOps"
local srvloc = require "srvloc"
local stdnse = require "stdnse"
local table = require "table"
description = [[
Attempts to use the Service Location Protocol to discover Novell NetWare Core Protocol (NCP) servers.
]]
---
--
--@output
-- Pre-scan script results:
-- | broadcast-novell-locate:
-- | Tree name: CQURE-LABTREE
-- | Server name: linux-l84t
-- | Addresses
-- |_ 192.168.56.33
--
--
-- Version 0.1
-- Created 04/26/2011 - v0.1 - created by Patrik Karlsson
author = "Patrik Karlsson"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"broadcast", "safe"}
prerule = function() return true end
function action()
local helper = srvloc.Helper:new()
local status, bindery = helper:ServiceRequest("bindery.novell", "DEFAULT")
if ( not(status) or not(bindery) ) then
helper:close()
return
end
bindery = bindery[1]
local srvname = bindery:match("%/%/%/(.*)$")
local status, attrib = helper:AttributeRequest(bindery, "DEFAULT", "svcaddr-ws")
helper:close()
attrib = attrib:match("^%(svcaddr%-ws=(.*)%)$")
if ( not(attrib) ) then return end
local attribs = stdnse.strsplit(",", attrib)
if ( not(attribs) ) then return end
local addrs = { name = "Addresses"}
local ips = {}
for _, attr in ipairs(attribs) do
local addr = attr:match("^%d*%-%d*%-%d*%-(........)")
if ( addr ) then
local pos, dw_addr = bin.unpack( "<I", bin.pack("H", addr) )
local ip = ipOps.fromdword(dw_addr)
if ( not(ips[ip]) ) then
table.insert(addrs, ip)
ips[ip] = ip
end
end
end
local output = {}
local status, treename = helper:ServiceRequest("ndap.novell", "DEFAULT")
if ( status ) then
treename = treename[1]
treename = treename:match("%/%/%/(.*)%.$")
table.insert(output, ("Tree name: %s"):format(treename))
end
table.insert(output, ("Server name: %s"):format(srvname))
table.insert(output, addrs)
return stdnse.format_output(true, output)
end
這是在IPX/SPX 協定,...比較少見難找
官方: https://nmap.org/nsedoc/scripts/broadcast-novell-locate.html
內文:
local bin = require "bin"
local ipOps = require "ipOps"
local srvloc = require "srvloc"
local stdnse = require "stdnse"
local table = require "table"
description = [[
Attempts to use the Service Location Protocol to discover Novell NetWare Core Protocol (NCP) servers.
]]
---
--
--@output
-- Pre-scan script results:
-- | broadcast-novell-locate:
-- | Tree name: CQURE-LABTREE
-- | Server name: linux-l84t
-- | Addresses
-- |_ 192.168.56.33
--
--
-- Version 0.1
-- Created 04/26/2011 - v0.1 - created by Patrik Karlsson
author = "Patrik Karlsson"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"broadcast", "safe"}
prerule = function() return true end
function action()
local helper = srvloc.Helper:new()
local status, bindery = helper:ServiceRequest("bindery.novell", "DEFAULT")
if ( not(status) or not(bindery) ) then
helper:close()
return
end
bindery = bindery[1]
local srvname = bindery:match("%/%/%/(.*)$")
local status, attrib = helper:AttributeRequest(bindery, "DEFAULT", "svcaddr-ws")
helper:close()
attrib = attrib:match("^%(svcaddr%-ws=(.*)%)$")
if ( not(attrib) ) then return end
local attribs = stdnse.strsplit(",", attrib)
if ( not(attribs) ) then return end
local addrs = { name = "Addresses"}
local ips = {}
for _, attr in ipairs(attribs) do
local addr = attr:match("^%d*%-%d*%-%d*%-(........)")
if ( addr ) then
local pos, dw_addr = bin.unpack( "<I", bin.pack("H", addr) )
local ip = ipOps.fromdword(dw_addr)
if ( not(ips[ip]) ) then
table.insert(addrs, ip)
ips[ip] = ip
end
end
end
local output = {}
local status, treename = helper:ServiceRequest("ndap.novell", "DEFAULT")
if ( status ) then
treename = treename[1]
treename = treename:match("%/%/%/(.*)%.$")
table.insert(output, ("Tree name: %s"):format(treename))
end
table.insert(output, ("Server name: %s"):format(srvname))
table.insert(output, addrs)
return stdnse.format_output(true, output)
end
留言
張貼留言