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 Hosts Hosts
TTL uint32 TTL uint32
All bool All bool
ResolveAll bool
waitGroup *sync.WaitGroup waitGroup *sync.WaitGroup
pktSourceChan chan gopacket.Packet pktSourceChan chan gopacket.Packet
} }
@ -34,7 +33,6 @@ func NewDNSSpoofer(s *session.Session) *DNSSpoofer {
SessionModule: session.NewSessionModule("dns.spoof", s), SessionModule: session.NewSessionModule("dns.spoof", s),
Handle: nil, Handle: nil,
All: false, All: false,
ResolveAll: true,
Hosts: Hosts{}, Hosts: Hosts{},
TTL: 1024, TTL: 1024,
waitGroup: &sync.WaitGroup{}, waitGroup: &sync.WaitGroup{},
@ -66,10 +64,6 @@ func NewDNSSpoofer(s *session.Session) *DNSSpoofer {
"^[0-9]+$", "^[0-9]+$",
"TTL of spoofed DNS replies.")) "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", "", mod.AddHandler(session.NewModuleHandler("dns.spoof on", "",
"Start the DNS spoofer in the background.", "Start the DNS spoofer in the background.",
func(args []string) error { func(args []string) error {
@ -112,8 +106,6 @@ func (mod *DNSSpoofer) Configure() error {
return err return err
} else if err, mod.All = mod.BoolParam("dns.spoof.all"); err != nil { } else if err, mod.All = mod.BoolParam("dns.spoof.all"); err != nil {
return err 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 { } else if err, address = mod.IPParam("dns.spoof.address"); err != nil {
return err return err
} else if err, domains = mod.ListParam("dns.spoof.domains"); err != nil { } else if err, domains = mod.ListParam("dns.spoof.domains"); err != nil {
@ -295,16 +287,6 @@ func (mod *DNSSpoofer) onPacket(pkt gopacket.Packet) {
} }
break break
} else { } 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) mod.Debug("skipping domain %s", qName)
} }
} }
@ -324,7 +306,7 @@ func (mod *DNSSpoofer) Start() error {
src := gopacket.NewPacketSource(mod.Handle, mod.Handle.LinkType()) src := gopacket.NewPacketSource(mod.Handle, mod.Handle.LinkType())
mod.pktSourceChan = src.Packets() mod.pktSourceChan = src.Packets()
for packet := range mod.pktSourceChan { for packet := range mod.pktSourceChan {
if !mod.Running() || packet == nil { if !mod.Running() {
break break
} }