From 7ef447e7265944c83132ce90ab047397e7802feb Mon Sep 17 00:00:00 2001 From: evilsocket Date: Sun, 9 Sep 2018 16:36:25 +0300 Subject: [PATCH] new: net.show now accepts an IP address parameter which, if present, will be the only endpoint listed in the table --- modules/net_recon.go | 14 ++++++++++---- modules/net_recon_show.go | 13 ++++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/modules/net_recon.go b/modules/net_recon.go index a973820b..d9009cc3 100644 --- a/modules/net_recon.go +++ b/modules/net_recon.go @@ -32,25 +32,31 @@ func NewDiscovery(s *session.Session) *Discovery { d.AddHandler(session.NewModuleHandler("net.show", "", "Show cache hosts list (default sorting by ip).", func(args []string) error { - return d.Show("address") + return d.Show("address", "") })) d.AddHandler(session.NewModuleHandler("net.show by seen", "", "Show cache hosts list (sort by last seen).", func(args []string) error { - return d.Show("seen") + return d.Show("seen", "") })) d.AddHandler(session.NewModuleHandler("net.show by sent", "", "Show cache hosts list (sort by sent packets).", func(args []string) error { - return d.Show("sent") + return d.Show("sent", "") })) d.AddHandler(session.NewModuleHandler("net.show by rcvd", "", "Show cache hosts list (sort by received packets).", func(args []string) error { - return d.Show("rcvd") + return d.Show("rcvd", "") + })) + + d.AddHandler(session.NewModuleHandler("net.show ADDRESS", `net.show ([\d\.]+)`, + "Show information about a specific address.", + func(args []string) error { + return d.Show("address", args[0]) })) return d diff --git a/modules/net_recon_show.go b/modules/net_recon_show.go index c0840dc5..4bfdbbbf 100644 --- a/modules/net_recon_show.go +++ b/modules/net_recon_show.go @@ -109,7 +109,7 @@ func (d *Discovery) getRow(e *network.Endpoint, withMeta bool) [][]string { return rows } -func (d *Discovery) Show(by string) error { +func (d *Discovery) Show(by string, addr string) error { targets := d.Session.Lan.List() if by == "seen" { sort.Sort(BySeenSorter(targets)) @@ -129,6 +129,17 @@ func (d *Discovery) Show(by string) error { targets = append([]*network.Endpoint{d.Session.Interface, d.Session.Gateway}, targets...) } + if addr != "" { + tmp := make([]*network.Endpoint, 0) + pad = 0 + for _, t := range targets { + if t.IP.String() == addr { + tmp = append(tmp, t) + } + } + targets = tmp + } + hasMeta := false for _, t := range targets { if !t.Meta.Empty() {