Documentation
¶
Index ¶
Constants ¶
const ( FOX = "fox" DefaultFoxPort = 1911 FoxPriority = 400 // ICS protocol tier (same as BACnet, Modbus) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FOXPlugin ¶
type FOXPlugin struct{}
FOXPlugin implements Niagara Fox protocol fingerprinting
func (*FOXPlugin) PortPriority ¶
PortPriority returns true if the port matches default Fox port (1911)
func (*FOXPlugin) Run ¶
func (p *FOXPlugin) Run(conn net.Conn, timeout time.Duration, target plugins.Target) (*plugins.Service, error)
Run performs Fox protocol detection and metadata extraction
Fox protocol hello handshake (zgrab2-compatible format): Request: "fox a 1 -1 fox hello\n{\nfox.version=s:1.0\nid=i:1\n[system fields]\n};;\n" Response: "fox a 0 -1 fox hello\n{\nkey=type:value\n...\n}\n"
The request includes system information fields that real Fox devices expect. The response contains key-value pairs in format "key=type:value" where: - key: Property name (e.g., "hostName", "app.version") - type: Data type (s=string, i=integer) - value: Property value