Documentation ¶
Index ¶
- Constants
- Variables
- func AllPorts() []int
- func CollectTCPAddrInfo(info *TCPAddrInfo, connTimeout time.Duration, finders ...TCPAddrScanner) error
- func CommonPorts() []int
- func PortsBetween(from, to int) []int
- func RandomUserAgent() string
- func ScanDomain(info *DomainInfo, scanners ...DomainScanner)
- func ScanIPAddress(info *IPAddrInfo, scanners ...IPAddrScanner)
- func ScanWebsite(info *WebsiteInfo, finders ...WebsiteScanner)
- func TCPAddresses(ipAddr net.IP, ports []int) []*net.TCPAddr
- type DomainInfo
- type DomainScanner
- func LookupCanonicalName(log Logger) DomainScanner
- func LookupIPAddresses(log Logger) DomainScanner
- func LookupMailServers(log Logger) DomainScanner
- func LookupNameServers(log Logger) DomainScanner
- func LookupTextRecords(log Logger) DomainScanner
- func LookupWHOIS(log Logger, timeout time.Duration) DomainScanner
- type IPAddrInfo
- type IPAddrScanner
- type LogType
- type Logger
- type Service
- type TCPAddrInfo
- type TCPAddrScanner
- type TCPPortState
- type WebsiteInfo
- type WebsiteScanner
Constants ¶
View Source
const ( TCPPortStateUnknown = TCPPortState("") // timeout, unreachable, etc. TCPPortStateClosed = TCPPortState("closed") // connection explicitly refused TCPPortStateOpen = TCPPortState("open") // connection successfully established )
View Source
const ( SrvUnknown = Service("") // special service when unknown SrvCPanel = Service("cpanel") SrvCUPS = Service("cups") SrvDNS = Service("dns") SrvDocker = Service("docker") SrvFTP = Service("ftp") SrvIMAP = Service("imap") SrvKerberos = Service("kerberos") SrvHTTP = Service("http") SrvMySQL = Service("mysql") SrvNFS = Service("nfs") SrvNTP = Service("ntp") SrvPOP3 = Service("pop3") SrvSFTP = Service("sftp") SrvSSH = Service("ssh") SrvSMTP = Service("smtp") SrvSquid = Service("squid") SrvSyslog = Service("syslog") SrvTelnet = Service("telnet") SrvNodeExporter = Service("node-exporter") SrvVNC = Service("vnc") )
Common networked services
View Source
const ( LogSuccess = LogType("SUCCESS") LogError = LogType("ERROR") LogWarning = LogType("WARNING") LogDebug = LogType("DEBUG") )
View Source
const MaxPortNumber = 1 << 16
View Source
const MinPortNumber = 1
Variables ¶
View Source
var AllLogTypes = []LogType{LogSuccess, LogError, LogWarning, LogDebug}
View Source
var CommonTCPPorts = [MaxPortNumber][]Service{ 21: {SrvFTP}, 22: {SrvSSH}, 23: {SrvTelnet}, 25: {SrvSMTP}, 53: {SrvDNS}, 80: {SrvHTTP}, 88: {SrvKerberos}, 110: {SrvPOP3}, 115: {SrvSFTP}, 143: {SrvIMAP}, 443: {SrvHTTP}, 465: {SrvSMTP}, 514: {SrvSyslog}, 631: {SrvCUPS}, 993: {SrvIMAP}, 995: {SrvPOP3}, 2082: {SrvCPanel}, 2083: {SrvCPanel}, 2086: {SrvCPanel}, 2087: {SrvCPanel}, 2095: {SrvCPanel}, 2096: {SrvCPanel}, 2375: {SrvDocker}, 2376: {SrvDocker}, 2377: {SrvDocker}, 3306: {SrvMySQL}, 5009: {SrvVNC}, 9100: {SrvNodeExporter}, 8080: {SrvHTTP}, 8081: {SrvHTTP}, 4200: {SrvHTTP}, 1111: {SrvHTTP}, 2222: {SrvHTTP}, 3333: {SrvHTTP}, 4444: {SrvHTTP}, 5555: {SrvHTTP}, 6666: {SrvHTTP}, 7777: {SrvHTTP}, 8888: {SrvHTTP}, 9999: {SrvHTTP}, }
Based on: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
View Source
var SampleUserAgents = []string{
"Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",
"Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; RM-1152) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15254",
"Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246",
"Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1",
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)",
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
}
Functions ¶
func CollectTCPAddrInfo ¶
func CollectTCPAddrInfo(info *TCPAddrInfo, connTimeout time.Duration, finders ...TCPAddrScanner) error
The error is returned from net.Dial (but not on ECONNREFUSED cause this means the port is refused) the returned error can be a timeout or host unreachable error.
func CommonPorts ¶
func CommonPorts() []int
func RandomUserAgent ¶
func RandomUserAgent() string
func ScanDomain ¶
func ScanDomain(info *DomainInfo, scanners ...DomainScanner)
func ScanIPAddress ¶
func ScanIPAddress(info *IPAddrInfo, scanners ...IPAddrScanner)
func ScanWebsite ¶
func ScanWebsite(info *WebsiteInfo, finders ...WebsiteScanner)
Types ¶
type DomainInfo ¶
type DomainScanner ¶
type DomainScanner func(info *DomainInfo)
func LookupCanonicalName ¶
func LookupCanonicalName(log Logger) DomainScanner
func LookupIPAddresses ¶
func LookupIPAddresses(log Logger) DomainScanner
Can be called without finders for simple DNS lookup.
func LookupMailServers ¶
func LookupMailServers(log Logger) DomainScanner
func LookupNameServers ¶
func LookupNameServers(log Logger) DomainScanner
func LookupTextRecords ¶
func LookupTextRecords(log Logger) DomainScanner
func LookupWHOIS ¶
func LookupWHOIS(log Logger, timeout time.Duration) DomainScanner
type IPAddrInfo ¶
type IPAddrInfo struct { Addr net.IP Domains []string // reverse lookup TCP [MaxPortNumber]*TCPAddrInfo }
type IPAddrScanner ¶
type IPAddrScanner func(info *IPAddrInfo)
func ScanIPAddrDomains ¶
func ScanIPAddrDomains(log Logger) IPAddrScanner
func ScanIPAddrTCPPorts ¶
func ScanIPAddrTCPPorts(log Logger, ports []int, connTimeout time.Duration, finders ...TCPAddrScanner) IPAddrScanner
type Logger ¶
func LogAllToFile ¶
type TCPAddrInfo ¶
type TCPAddrInfo struct { Addr *net.TCPAddr State TCPPortState Banner []byte ConfirmedService Service }
func (*TCPAddrInfo) String ¶
func (info *TCPAddrInfo) String() string
type TCPAddrScanner ¶
type TCPAddrScanner func(info *TCPAddrInfo, conn net.Conn)
func DetectHTTP ¶
func DetectHTTP(httpHost string, ua string) TCPAddrScanner
Sends a HTTP request to a remote server and reports whether the server successfully replied in HTTP.
func FindTCPBanner ¶
func FindTCPBanner() TCPAddrScanner
type TCPPortState ¶
type TCPPortState string
func (TCPPortState) String ¶
func (s TCPPortState) String() string
type WebsiteInfo ¶
type WebsiteScanner ¶
type WebsiteScanner func(info *WebsiteInfo)
func ScanWebsitePages ¶
func ScanWebsitePages(log Logger, ua string, paths []string) WebsiteScanner
func ScanWebsiteRobotsTXT ¶
func ScanWebsiteRobotsTXT(log Logger, ua string) WebsiteScanner
Click to show internal directories.
Click to hide internal directories.