From 260c369affe1b6e880efde59c4ddefbba7cd4eb4 Mon Sep 17 00:00:00 2001 From: Matthew Kienow Date: Tue, 2 Jul 2019 15:14:55 -0400 Subject: [PATCH] Fix network interface processing The SNMP walk operation can return an SNMP::NoSuchInstance class. The error class must be handled rather than attempting to use it as a valid value. --- modules/auxiliary/scanner/snmp/snmp_enum.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/auxiliary/scanner/snmp/snmp_enum.rb b/modules/auxiliary/scanner/snmp/snmp_enum.rb index d6023a6fdd45..a1fad5422834 100644 --- a/modules/auxiliary/scanner/snmp/snmp_enum.rb +++ b/modules/auxiliary/scanner/snmp/snmp_enum.rb @@ -172,10 +172,10 @@ def run_host(ip) ifindex = index.value ifdescr = descr.value - ifmac = mac.value.unpack("H2H2H2H2H2H2").join(":") + ifmac = mac.value.to_s =~ /noSuchInstance/ ? 'unknown' : mac.value.unpack("H2H2H2H2H2H2").join(":") iftype = type.value ifmtu = mtu.value - ifspeed = speed.value.to_i + ifspeed = speed.value.to_s =~ /noSuchInstance/ ? 'unknown' : speed.value.to_i / 1000000 ifinoc = inoc.value ifoutoc = outoc.value ifstatus = status.value @@ -260,8 +260,6 @@ def run_host(ip) ifstatus = "unknown" end - ifspeed = ifspeed / 1000000 - network_interfaces.push({ "Interface" => "[ #{ifstatus} ] #{ifdescr}", "Id" => ifindex,