From 628c0b79fba707385232164d36465c66a2a90a72 Mon Sep 17 00:00:00 2001 From: Ben Gardiner Date: Mon, 25 Apr 2022 21:38:23 +0000 Subject: [PATCH] ndp.spoof: use validator for neighbour parameter, print targets on start, complain when a MAC can't be found (UDP thing doesn't always work) --- modules/ndp_spoof/ndp_spoof.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/ndp_spoof/ndp_spoof.go b/modules/ndp_spoof/ndp_spoof.go index 69c8cc51..64002aac 100644 --- a/modules/ndp_spoof/ndp_spoof.go +++ b/modules/ndp_spoof/ndp_spoof.go @@ -32,7 +32,9 @@ func NewNDPSpoofer(s *session.Session) *NDPSpoofer { mod.AddParam(session.NewStringParameter("ndp.spoof.targets", "", "", "Comma separated list of IPv6 victim addresses.")) - mod.AddParam(session.NewStringParameter("ndp.spoof.neighbour", "fe80::1", "", + mod.AddParam(session.NewStringParameter("ndp.spoof.neighbour", + "fe80::1", + session.IPv6Validator, "Neighbour IPv6 address to spoof, clear to disable NA.")) mod.AddParam(session.NewStringParameter("ndp.spoof.prefix", "d00d::", "", @@ -122,7 +124,7 @@ func (mod *NDPSpoofer) Start() error { } return mod.SetRunning(true, func() { - mod.Info("ndp spoofer started - neighbour=%s prefix=%s", mod.neighbour, mod.prefix) + mod.Info("ndp spoofer started - targets=%s neighbour=%s prefix=%s", mod.addresses, mod.neighbour, mod.prefix) mod.waitGroup.Add(1) defer mod.waitGroup.Done() @@ -179,6 +181,8 @@ func (mod *NDPSpoofer) getTargets(probe bool) map[string]net.HardwareAddr { // do we have this ip mac address? if hw, err := mod.Session.FindMAC(ip, probe); err == nil { targets[ip.String()] = hw + } else { + mod.Info("couldn't get MAC for ip=%s, put it into the neighbour table manually e.g. ping -6") } }