Revert change to dns.spoof, as https://github.com/bettercap/bettercap/pull/496 is a better option.

This commit is contained in:
WangYi 2020-10-09 20:44:15 +08:00
commit 447836fdb5

View file

@ -24,7 +24,6 @@ type DNSSpoofer struct {
Hosts Hosts
TTL uint32
All bool
ResolveAll bool
waitGroup *sync.WaitGroup
pktSourceChan chan gopacket.Packet
}
@ -34,7 +33,6 @@ func NewDNSSpoofer(s *session.Session) *DNSSpoofer {
SessionModule: session.NewSessionModule("dns.spoof", s),
Handle: nil,
All: false,
ResolveAll: true,
Hosts: Hosts{},
TTL: 1024,
waitGroup: &sync.WaitGroup{},
@ -66,10 +64,6 @@ func NewDNSSpoofer(s *session.Session) *DNSSpoofer {
"^[0-9]+$",
"TTL of spoofed DNS replies."))
mod.AddParam(session.NewBoolParameter("dns.spoof.resolve_all",
"false",
"If true the module will resolve every DNS request, even if it is not covered by spoof list, useful when gateway and dns is one the same ip."))
mod.AddHandler(session.NewModuleHandler("dns.spoof on", "",
"Start the DNS spoofer in the background.",
func(args []string) error {
@ -112,8 +106,6 @@ func (mod *DNSSpoofer) Configure() error {
return err
} else if err, mod.All = mod.BoolParam("dns.spoof.all"); err != nil {
return err
} else if err, mod.ResolveAll = mod.BoolParam("dns.spoof.resolve_all"); err != nil {
return err
} else if err, address = mod.IPParam("dns.spoof.address"); err != nil {
return err
} else if err, domains = mod.ListParam("dns.spoof.domains"); err != nil {
@ -295,16 +287,6 @@ func (mod *DNSSpoofer) onPacket(pkt gopacket.Packet) {
}
break
} else {
if mod.ResolveAll {
ips, err := net.LookupIP(qName)
if err == nil && len(ips) > 0 {
redir, who := DnsReply(mod.Session, mod.TTL, pkt, eth, udp, qName, ips[0], dns, eth.SrcMAC)
if redir != "" && who != "" {
mod.Info("sending forward DNS reply for %s %s to %s.", tui.Red(qName), tui.Dim(redir), tui.Bold(who))
}
break
}
}
mod.Debug("skipping domain %s", qName)
}
}
@ -324,7 +306,7 @@ func (mod *DNSSpoofer) Start() error {
src := gopacket.NewPacketSource(mod.Handle, mod.Handle.LinkType())
mod.pktSourceChan = src.Packets()
for packet := range mod.pktSourceChan {
if !mod.Running() || packet == nil {
if !mod.Running() {
break
}