diff --git a/modules/auxiliary/scanner/ubiquiti/ubiquiti_discover.rb b/modules/auxiliary/scanner/ubiquiti/ubiquiti_discover.rb index cc797db287fb..3f49196eed5d 100644 --- a/modules/auxiliary/scanner/ubiquiti/ubiquiti_discover.rb +++ b/modules/auxiliary/scanner/ubiquiti/ubiquiti_discover.rb @@ -35,13 +35,13 @@ def build_probe def scanner_process(data, shost, sport) offset = 0 if data.length < 4 - return + return end type, length = data.unpack("vn") offset += 4 if type != 1 || length != data.length - offset - return + return end remaining = data.length - offset @@ -52,11 +52,11 @@ def scanner_process(data, shost, sport) remaining -= 4 field_data = data.slice(offset, length) + offset += length + remaining -= length if field_data.empty? next end - offset += length - remaining -= length # name if type == 0x0b info['name'] = field_data @@ -80,6 +80,7 @@ def scanner_process(data, shost, sport) elsif type == 0x0d info['essid'] = field_data else + vprint_warning("#{shost}:#{sport} skipping unhandled #{length}-byte field type '#{type}': '#{field_data.unpack("H*")}'") end end