From 4f5f89b6e1a6cacfdadd7c421e65be2ab307a983 Mon Sep 17 00:00:00 2001 From: Simone Margaritelli Date: Tue, 23 Mar 2021 19:22:05 +0100 Subject: [PATCH] fix: do not add unhandled dns types to dns spoofing packets (closes #843) --- modules/dns_spoof/dns_spoof.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/dns_spoof/dns_spoof.go b/modules/dns_spoof/dns_spoof.go index 8302474c..ab9a350a 100644 --- a/modules/dns_spoof/dns_spoof.go +++ b/modules/dns_spoof/dns_spoof.go @@ -192,6 +192,13 @@ func DnsReply(s *session.Session, TTL uint32, pkt gopacket.Packet, peth *layers. answers := make([]layers.DNSResourceRecord, 0) for _, q := range req.Questions { + // do not include types we can't handle and that are not needed + // for successful spoofing anyway + // ref: https://github.com/bettercap/bettercap/issues/843 + if q.Type.String() == "Unknown" { + continue + } + answers = append(answers, layers.DNSResourceRecord{ Name: []byte(q.Name), @@ -231,7 +238,7 @@ func DnsReply(s *session.Session, TTL uint32, pkt gopacket.Packet, peth *layers. err, raw = packets.Serialize(ð, &ip6, &udp, &dns) if err != nil { - log.Error("error serializing packet: %s.", err) + log.Error("error serializing ipv6 packet: %s.", err) return "", "" } } else { @@ -252,7 +259,7 @@ func DnsReply(s *session.Session, TTL uint32, pkt gopacket.Packet, peth *layers. err, raw = packets.Serialize(ð, &ip4, &udp, &dns) if err != nil { - log.Error("error serializing packet: %s.", err) + log.Error("error serializing ipv4 packet: %s.", err) return "", "" } }