mirror of
https://github.com/bettercap/bettercap
synced 2025-08-19 13:09:49 -07:00
misc: small fix or general refactoring i did not bother commenting
This commit is contained in:
parent
5652d15426
commit
8446d66d12
2 changed files with 37 additions and 40 deletions
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/bettercap/bettercap/v2/session"
|
"github.com/bettercap/bettercap/v2/session"
|
||||||
"github.com/bettercap/bettercap/v2/tls"
|
"github.com/bettercap/bettercap/v2/tls"
|
||||||
|
"github.com/evilsocket/islazy/str"
|
||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
"github.com/google/gopacket/pcap"
|
"github.com/google/gopacket/pcap"
|
||||||
)
|
)
|
||||||
|
@ -39,30 +40,29 @@ func NewZeroGod(s *session.Session) *ZeroGod {
|
||||||
return mod.Stop()
|
return mod.Stop()
|
||||||
}))
|
}))
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.show", "",
|
showFull := session.NewModuleHandler("zerogod.show-full ADDRESS", `zerogod\.show-full(.*)`,
|
||||||
"Show discovered services.",
|
|
||||||
func(args []string) error {
|
|
||||||
return mod.show("", false)
|
|
||||||
}))
|
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.show-full", "",
|
|
||||||
"Show discovered services and their DNS records.",
|
|
||||||
func(args []string) error {
|
|
||||||
return mod.show("", true)
|
|
||||||
}))
|
|
||||||
|
|
||||||
// TODO: add autocomplete
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.show ADDRESS", "zerogod.show (.+)",
|
|
||||||
"Show discovered services given an ip address.",
|
|
||||||
func(args []string) error {
|
|
||||||
return mod.show(args[0], false)
|
|
||||||
}))
|
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.show-full ADDRESS", "zerogod.show-full (.+)",
|
|
||||||
"Show discovered services and DNS records given an ip address.",
|
"Show discovered services and DNS records given an ip address.",
|
||||||
func(args []string) error {
|
func(args []string) error {
|
||||||
return mod.show(args[0], true)
|
what := ""
|
||||||
}))
|
if len(args) > 0 {
|
||||||
|
what = str.Trim(args[0])
|
||||||
|
}
|
||||||
|
return mod.show(what, true)
|
||||||
|
})
|
||||||
|
showFull.Complete("zerogod.show-full", s.LANCompleterForIPs)
|
||||||
|
mod.AddHandler(showFull)
|
||||||
|
|
||||||
|
show := session.NewModuleHandler("zerogod.show ADDRESS", `zerogod\.show(.*)`,
|
||||||
|
"Show discovered services given an ip ADDRESS.",
|
||||||
|
func(args []string) error {
|
||||||
|
what := ""
|
||||||
|
if len(args) > 0 {
|
||||||
|
what = str.Trim(args[0])
|
||||||
|
}
|
||||||
|
return mod.show(what, false)
|
||||||
|
})
|
||||||
|
show.Complete("zerogod.show", s.LANCompleterForIPs)
|
||||||
|
mod.AddHandler(show)
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.save ADDRESS FILENAME", "zerogod.save (.+) (.+)",
|
mod.AddHandler(session.NewModuleHandler("zerogod.save ADDRESS FILENAME", "zerogod.save (.+) (.+)",
|
||||||
"Save the mDNS information of a given ADDRESS in the FILENAME yaml file.",
|
"Save the mDNS information of a given ADDRESS in the FILENAME yaml file.",
|
||||||
|
@ -71,7 +71,7 @@ func NewZeroGod(s *session.Session) *ZeroGod {
|
||||||
}))
|
}))
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.advertise FILENAME", "zerogod.advertise (.+)",
|
mod.AddHandler(session.NewModuleHandler("zerogod.advertise FILENAME", "zerogod.advertise (.+)",
|
||||||
"Start advertising the mDNS services from the FILENAME yaml file.",
|
"Start advertising the mDNS services from the FILENAME yaml file. Use 'off' to stop advertising.",
|
||||||
func(args []string) error {
|
func(args []string) error {
|
||||||
if args[0] == "off" {
|
if args[0] == "off" {
|
||||||
return mod.stopAdvertiser()
|
return mod.stopAdvertiser()
|
||||||
|
@ -79,9 +79,8 @@ func NewZeroGod(s *session.Session) *ZeroGod {
|
||||||
return mod.startAdvertiser(args[0])
|
return mod.startAdvertiser(args[0])
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// TODO: add autocomplete
|
impersonate := session.NewModuleHandler("zerogod.impersonate ADDRESS", "zerogod.impersonate (.+)",
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.impersonate ADDRESS", "zerogod.impersonate (.+)",
|
"Impersonate ADDRESS by advertising the same discovery information. Use 'off' to stop impersonation.",
|
||||||
"Impersonate ADDRESS by advertising the same discovery information.",
|
|
||||||
func(args []string) error {
|
func(args []string) error {
|
||||||
if address := args[0]; address == "off" {
|
if address := args[0]; address == "off" {
|
||||||
return mod.stopAdvertiser()
|
return mod.stopAdvertiser()
|
||||||
|
@ -95,19 +94,9 @@ func NewZeroGod(s *session.Session) *ZeroGod {
|
||||||
|
|
||||||
return mod.startAdvertiser(tmpFileName)
|
return mod.startAdvertiser(tmpFileName)
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
|
impersonate.Complete("zerogod.impersonate", s.LANCompleterForIPs)
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.advertise off", "",
|
mod.AddHandler(impersonate)
|
||||||
"Stop a previously started advertiser.",
|
|
||||||
func(args []string) error {
|
|
||||||
return mod.stopAdvertiser()
|
|
||||||
}))
|
|
||||||
|
|
||||||
mod.AddHandler(session.NewModuleHandler("zerogod.impersonate off", "",
|
|
||||||
"Stop a previously started impersonation.",
|
|
||||||
func(args []string) error {
|
|
||||||
return mod.stopAdvertiser()
|
|
||||||
}))
|
|
||||||
|
|
||||||
mod.AddParam(session.NewStringParameter("zerogod.advertise.certificate",
|
mod.AddParam(session.NewStringParameter("zerogod.advertise.certificate",
|
||||||
"~/.bettercap-zerogod.cert.pem",
|
"~/.bettercap-zerogod.cert.pem",
|
||||||
|
|
|
@ -16,7 +16,7 @@ func addIfMatches(to *[]string, prefix string, what string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Session) LANCompleter(prefix string) []string {
|
func (s *Session) LANCompleterForMacs(prefix string) []string {
|
||||||
macs := []string{""}
|
macs := []string{""}
|
||||||
s.Lan.EachHost(func(mac string, e *network.Endpoint) {
|
s.Lan.EachHost(func(mac string, e *network.Endpoint) {
|
||||||
addIfMatches(&macs, prefix, mac)
|
addIfMatches(&macs, prefix, mac)
|
||||||
|
@ -24,6 +24,14 @@ func (s *Session) LANCompleter(prefix string) []string {
|
||||||
return macs
|
return macs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Session) LANCompleterForIPs(prefix string) []string {
|
||||||
|
ips := []string{""}
|
||||||
|
s.Lan.EachHost(func(mac string, e *network.Endpoint) {
|
||||||
|
addIfMatches(&ips, prefix, e.IpAddress)
|
||||||
|
})
|
||||||
|
return ips
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Session) WiFiCompleter(prefix string) []string {
|
func (s *Session) WiFiCompleter(prefix string) []string {
|
||||||
macs := []string{""}
|
macs := []string{""}
|
||||||
s.WiFi.EachAccessPoint(func(mac string, ap *network.AccessPoint) {
|
s.WiFi.EachAccessPoint(func(mac string, ap *network.AccessPoint) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue