Documentation ¶
Index ¶
- Constants
- func CleanupHandlersUnix(s *Scanner)
- func GetInterfaceFromIP(ip net.IP) (*net.Interface, error)
- func GetSourceIP(dstip net.IP) (net.IP, error)
- func GetSrcParameters(destIP string) (srcIP net.IP, networkInterface *net.Interface, err error)
- func NewScannerUnix(scanner *Scanner) error
- func SetupHandlerUnix(s *Scanner, interfaceName string) error
- func TCPReadWorkerPCAPUnix(s *Scanner)
- type Handlers
- type Options
- type PkgFlag
- type PkgResult
- type PkgSend
- type Result
- type Scanner
- func (s *Scanner) ACKPort(dstIP string, port int, timeout time.Duration) (bool, error)
- func (s *Scanner) CleanupHandlers()
- func (s *Scanner) Close()
- func (s *Scanner) ConnectPort(host string, port int, timeout time.Duration) (bool, error)
- func (s *Scanner) ConnectVerify(host string, ports map[int]struct{}) map[int]struct{}
- func (s *Scanner) EnqueueICMP(ip string, pkgType PkgFlag)
- func (s *Scanner) EnqueueToTCP(ip string, port int, pkgType PkgFlag)
- func (s *Scanner) ICMPReadWorker()
- func (s *Scanner) ICMPWriteWorker()
- func (s *Scanner) ScanSyn(ip string)
- func (s *Scanner) SendAsyncPkg(ip string, port int, pkgFlag PkgFlag)
- func (s *Scanner) SetupHandler(interfaceName string) error
- func (s *Scanner) SetupHandlers() error
- func (s *Scanner) StartListenScan()
- func (s *Scanner) TCPReadWorker()
- func (s *Scanner) TCPReadWorkerPCAP()
- func (s *Scanner) TCPResultWorker()
- func (s *Scanner) TCPWriteWorker()
- func (s *Scanner) TuneSource(ip string) error
- type State
- type TCPSequencer
Constants ¶
const ( DeadlineSec = 10 ProtocolICMP = 1 )
Some constants
Variables ¶
This section is empty.
Functions ¶
func CleanupHandlersUnix ¶
func CleanupHandlersUnix(s *Scanner)
CleanupHandlersUnix CleanupHandlers for all interfaces
func GetInterfaceFromIP ¶
GetInterfaceFromIP 通过IP获取网卡名称、mac地址 GetInterfaceFromIP gets the name of the network interface from local ip address
func GetSourceIP ¶
GetSourceIP gets the local ip based on our destination ip
func GetSrcParameters ¶
GetSrcParameters gets the network parameters from the destination ip
func NewScannerUnix ¶
func SetupHandlerUnix ¶
func TCPReadWorkerPCAPUnix ¶
func TCPReadWorkerPCAPUnix(s *Scanner)
Types ¶
type Options ¶
type Options struct { Timeout time.Duration Retries int Rate int Debug bool Proxy string Stream bool }
Options of the scan
type PkgResult ¶
type PkgResult struct {
// contains filtered or unexported fields
}
PkgResult contains the results of sending TCP packages
type PkgSend ¶
type PkgSend struct { SourceIP string // contains filtered or unexported fields }
PkgSend is a TCP package
type Scanner ¶
type Scanner struct { SourceIP net.IP NetworkInterface *net.Interface Ports []int IPRanger *ipranger.IPRanger State State ScanResults *Result // contains filtered or unexported fields }
func NewScanner ¶
NewScanner creates a new full port scanner that scans all ports using SYN packets.
func (*Scanner) CleanupHandlers ¶
func (s *Scanner) CleanupHandlers()
CleanupHandlers for all interfaces
func (*Scanner) ConnectPort ¶
ConnectPort a single host and port
func (*Scanner) ConnectVerify ¶
ConnectVerify is used to verify if ports are accurate using a connect request
func (*Scanner) EnqueueICMP ¶
EnqueueICMP outgoing ICMP packets
func (*Scanner) EnqueueToTCP ¶
EnqueueToTCP 传出 TCP 数据包
func (*Scanner) ICMPReadWorker ¶
func (s *Scanner) ICMPReadWorker()
ICMPReadWorker reads packets from the network layer
func (*Scanner) ICMPWriteWorker ¶
func (s *Scanner) ICMPWriteWorker()
ICMPWriteWorker writes packet to the network layer
func (*Scanner) SendAsyncPkg ¶
SendAsyncPkg 将单个数据包发送到端口 SendAsyncPkg sends a single packet to a port
func (*Scanner) SetupHandler ¶
SetupHandler to listen on the specified interface
func (*Scanner) SetupHandlers ¶
SetupHandlers to listen on all interfaces
func (*Scanner) StartListenScan ¶
func (s *Scanner) StartListenScan()
StartListenScan of the scanner
func (*Scanner) TCPReadWorker ¶
func (s *Scanner) TCPReadWorker()
TCPReadWorker reads and parse incoming TCP packets
func (*Scanner) TCPReadWorkerPCAP ¶
func (s *Scanner) TCPReadWorkerPCAP()
TCPReadWorkerPCAP 使用 pcap 读取和解析传入的 TCP 数据包
func (*Scanner) TCPWriteWorker ¶
func (s *Scanner) TCPWriteWorker()
TCPWriteWorker 发送 TCP 数据包的 TCPWriteWorker
func (*Scanner) TuneSource ¶
TuneSource 获取本机IP、网卡名称、mac地址 TuneSource automatically with ip and interface
type TCPSequencer ¶
type TCPSequencer struct {
// contains filtered or unexported fields
}
TCPSequencer generates linear TCP sequence numbers that wrap around after reaching their maximum value.
According to specs, this is the correct way to approach TCP sequence number since linearity will be guaranteed by the wrapping around to initial 0.
func NewTCPSequencer ¶
func NewTCPSequencer() *TCPSequencer
NewTCPSequencer creates a new linear tcp sequenc enumber generator
func (*TCPSequencer) Next ¶
func (t *TCPSequencer) Next() uint32
Next returns the next number in the sequence of tcp sequence numbers