From e93fe8ec4c18f6abe8e9f99de34b134e28061d17 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Mon, 15 Oct 2018 15:05:43 -0500 Subject: [PATCH] fix: fixed a nbns parsing bug who sometimes returned binary hostnames --- packets/nbns.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packets/nbns.go b/packets/nbns.go index 7b2721a6..6c8fc46f 100644 --- a/packets/nbns.go +++ b/packets/nbns.go @@ -1,6 +1,8 @@ package packets import ( + "strconv" + "github.com/evilsocket/islazy/str" "github.com/google/gopacket" @@ -27,8 +29,11 @@ var ( func NBNSGetMeta(pkt gopacket.Packet) map[string]string { if ludp := pkt.Layer(layers.LayerTypeUDP); ludp != nil { if udp := ludp.(*layers.UDP); udp != nil && udp.SrcPort == NBNSPort && len(udp.Payload) >= NBNSMinRespSize { - return map[string]string{ - "nbns:hostname": str.Trim(string(udp.Payload[57:72])), + hostname := str.Trim(string(udp.Payload[57:72])) + if strconv.IsPrint(rune(hostname[0])) { + return map[string]string{ + "nbns:hostname": hostname, + } } } }