mirror of
https://github.com/bettercap/bettercap.git
synced 2024-11-03 04:00:07 -08:00
122 lines
2.6 KiB
Go
122 lines
2.6 KiB
Go
package session
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/bettercap/bettercap/v2/network"
|
|
)
|
|
|
|
func prefixMatches(prefix, what string) bool {
|
|
return prefix == "" || strings.HasPrefix(what, prefix)
|
|
}
|
|
|
|
func addIfMatches(to *[]string, prefix string, what string) {
|
|
if prefixMatches(prefix, what) {
|
|
*to = append(*to, what)
|
|
}
|
|
}
|
|
|
|
func (s *Session) LANCompleterForMacs(prefix string) []string {
|
|
macs := []string{""}
|
|
s.Lan.EachHost(func(mac string, e *network.Endpoint) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
})
|
|
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 {
|
|
macs := []string{""}
|
|
s.WiFi.EachAccessPoint(func(mac string, ap *network.AccessPoint) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
})
|
|
return macs
|
|
}
|
|
|
|
func (s *Session) WiFiCompleterFull(prefix string) []string {
|
|
macs := []string{""}
|
|
s.WiFi.EachAccessPoint(func(mac string, ap *network.AccessPoint) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
ap.EachClient(func(mac string, c *network.Station) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
})
|
|
})
|
|
return macs
|
|
}
|
|
|
|
func (s *Session) BLECompleter(prefix string) []string {
|
|
macs := []string{""}
|
|
s.BLE.EachDevice(func(mac string, dev *network.BLEDevice) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
})
|
|
return macs
|
|
}
|
|
|
|
func (s *Session) HIDCompleter(prefix string) []string {
|
|
macs := []string{""}
|
|
s.HID.EachDevice(func(mac string, dev *network.HIDDevice) {
|
|
addIfMatches(&macs, prefix, mac)
|
|
})
|
|
return macs
|
|
}
|
|
|
|
func (s *Session) EventsCompleter(prefix string) []string {
|
|
events := []string{""}
|
|
all := []string{
|
|
"sys.log",
|
|
"session.started",
|
|
"session.closing",
|
|
"update.available",
|
|
"mod.started",
|
|
"mod.stopped",
|
|
"endpoint.new",
|
|
"endpoint.lost",
|
|
"wifi.client.lost",
|
|
"wifi.client.probe",
|
|
"wifi.client.new",
|
|
"wifi.client.handshake",
|
|
"wifi.ap.new",
|
|
"wifi.ap.lost",
|
|
"ble.device.service.discovered",
|
|
"ble.device.characteristic.discovered",
|
|
"ble.device.connected",
|
|
"ble.device.new",
|
|
"ble.device.lost",
|
|
"ble.connection.timeout",
|
|
"hid.device.new",
|
|
"hid.device.lost",
|
|
"http.spoofed-request",
|
|
"http.spoofed-response",
|
|
"https.spoofed-request",
|
|
"https.spoofed-response",
|
|
"syn.scan",
|
|
"net.sniff.mdns",
|
|
"net.sniff.mdns",
|
|
"net.sniff.dot11",
|
|
"net.sniff.tcp",
|
|
"net.sniff.upnp",
|
|
"net.sniff.ntlm",
|
|
"net.sniff.ftp",
|
|
"net.sniff.udp",
|
|
"net.sniff.krb5",
|
|
"net.sniff.dns",
|
|
"net.sniff.teamviewer",
|
|
"net.sniff.http.request",
|
|
"net.sniff.http.response",
|
|
"net.sniff.sni",
|
|
}
|
|
|
|
for _, e := range all {
|
|
addIfMatches(&events, prefix, e)
|
|
}
|
|
|
|
return events
|
|
}
|