diff --git a/CHANGELOG b/CHANGELOG index c72a8a34f..78c2d9c7a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ # Nmap Changelog ($Id$); -*-text-*- +o [NSE] Fixed some bugs in snmp-interfaces which prevented the script from + outputting discovered interface info and caused it to abort in the + pre-scanning phase. [jah] + o [NSE] lltd-discovery scripts now parses for hostnames and outputs network card manufacturer. [Hani Benhabiles] diff --git a/scripts/snmp-interfaces.nse b/scripts/snmp-interfaces.nse index 09cbfa032..3604fb929 100644 --- a/scripts/snmp-interfaces.nse +++ b/scripts/snmp-interfaces.nse @@ -208,13 +208,13 @@ function process_interfaces( tbl ) -- Add the %. escape character to prevent matching the index on e.g. "1.3.6.1.2.1.2.2.1.10." local if_index = "1.3.6.1.2.1.2.2.1.1%." - local if_descr = "1.3.6.1.2.1.2.2.1.2%." - local if_type = "1.3.6.1.2.1.2.2.1.3%." - local if_speed = "1.3.6.1.2.1.2.2.1.5%." - local if_phys_addr = "1.3.6.1.2.1.2.2.1.6%." - local if_status = "1.3.6.1.2.1.2.2.1.8%." - local if_in_octets = "1.3.6.1.2.1.2.2.1.10%." - local if_out_octets = "1.3.6.1.2.1.2.2.1.16%." + local if_descr = "1.3.6.1.2.1.2.2.1.2." + local if_type = "1.3.6.1.2.1.2.2.1.3." + local if_speed = "1.3.6.1.2.1.2.2.1.5." + local if_phys_addr = "1.3.6.1.2.1.2.2.1.6." + local if_status = "1.3.6.1.2.1.2.2.1.8." + local if_in_octets = "1.3.6.1.2.1.2.2.1.10." + local if_out_octets = "1.3.6.1.2.1.2.2.1.16." local new_tbl = {} -- Some operating systems (such as MS Windows) don't list interfaces with consecutive indexes @@ -361,7 +361,7 @@ function build_results( tbl ) if interface.descr then item.name = interface.descr else - item.name = string.format("Interface %d", item.index) + item.name = string.format("Interface %d", index) end if interface.ip_addr and interface.netmask then @@ -406,14 +406,6 @@ action = function(host, port) local status local srvhost, srvport - -- table for mac-geolocation.nse - if not nmap.registry[host.ip] then - nmap.registry[host.ip] = {} - end - if not nmap.registry[host.ip]["mac-geolocation"] then - nmap.registry[host.ip]["mac-geolocation"] = {} - end - if SCRIPT_TYPE == "prerule" then srvhost = stdnse.get_script_args({"snmp-interfaces.host", "host"}) if not srvhost then @@ -432,6 +424,14 @@ action = function(host, port) srvport = port.number end + -- table for mac-geolocation.nse + if not nmap.registry[srvhost] then + nmap.registry[srvhost] = {} + nmap.registry[srvhost]["mac-geolocation"] = {} + elseif not nmap.registry[srvhost]["mac-geolocation"] then + nmap.registry[srvhost]["mac-geolocation"] = {} + end + socket:set_timeout(5000) try(socket:connect(srvhost, srvport, "udp")) @@ -462,10 +462,10 @@ action = function(host, port) -- insert the MAC addresses into the mac-geolocation table for _,item in ipairs(interfaces) do if item.phys_addr then - table.insert(nmap.registry[host.ip]["mac-geolocation"], item.phys_addr:match("^(%x+:%x+:%x+:%x+:%x+:%x+)")) + table.insert(nmap.registry[srvhost]["mac-geolocation"], item.phys_addr:match("^(%x+:%x+:%x+:%x+:%x+:%x+)")) end end - table.insert(nmap.registry[host.ip]["mac-geolocation"], "00:23:69:2a:b1:27") + -- wtf is this? table.insert(nmap.registry[srvhost]["mac-geolocation"], "00:23:69:2a:b1:27") if SCRIPT_TYPE == "prerule" and target.ALLOW_NEW_TARGETS then local sum = 0