gatenet.service_detectors package¶
Submodules¶
gatenet.service_detectors.coap module¶
coap.py¶
Service detection strategy for CoAP protocol.
- Public API:
CoAPDetector
- class gatenet.service_detectors.coap.CoAPDetector[source]¶
Bases:
ServiceDetectorService detector for CoAP servers. Detects CoAP servers from port and banner.
gatenet.service_detectors.fallback module¶
Fallback service detection using default port services. Returns a default service name for common ports, or a generic unknown service label.
- class gatenet.service_detectors.fallback.FallbackDetector[source]¶
Bases:
ServiceDetectorFallback detector using default port services. Returns a default service name for common ports, or a generic unknown service label.
- DEFAULT_PORT_SERVICES = {21: 'FTP', 22: 'SSH', 23: 'Telnet', 25: 'SMTP', 53: 'DNS', 80: 'HTTP', 110: 'POP3', 143: 'IMAP', 443: 'HTTPS', 993: 'IMAPS', 995: 'POP3S', 3389: 'RDP', 8000: 'HTTP', 8080: 'HTTP'}¶
- detect(port, banner)[source]¶
Return a default service name for the port, or a generic unknown label.
- Parameters:
port (int) – The port number to check.
banner (str) – The banner string (if present, returns unknown service).
- Returns:
The detected service name, or a generic unknown label.
- Return type:
Optional[str]
gatenet.service_detectors.ftp module¶
Service detection strategy for FTP protocol. Detects FTP servers based on port and banner string.
- class gatenet.service_detectors.ftp.FTPDetector[source]¶
Bases:
ServiceDetectorService detector for FTP servers. Detects vsftpd, FileZilla, or generic FTP servers from port and banner.
gatenet.service_detectors.generic module¶
Service detection by generic indicators. Detects services by searching for known software indicators in the banner string.
- class gatenet.service_detectors.generic.GenericServiceDetector[source]¶
Bases:
ServiceDetectorDetects services by generic indicators. Searches for known software names in the banner string.
- SERVICE_INDICATORS = {'apache': 'Apache Server', 'docker': 'Docker Registry', 'elasticsearch': 'Elasticsearch', 'gitlab': 'GitLab', 'jenkins': 'Jenkins CI/CD', 'mongodb': 'MongoDB Database', 'mysql': 'MySQL Database', 'nginx': 'Nginx Server', 'postgresql': 'PostgreSQL Database', 'redis': 'Redis Server'}¶
- detect(port, banner)[source]¶
Detect service by searching for known software indicators in the banner.
- Parameters:
port (int) – The port number (unused in this detector).
banner (str) – The banner string to search for indicators.
- Returns:
The detected service name, or None if not found.
- Return type:
Optional[str]
gatenet.service_detectors.http module¶
http.py¶
Service detection strategy for HTTP protocol.
- Public API:
HTTPDetector
- class gatenet.service_detectors.http.HTTPDetector[source]¶
Bases:
ServiceDetectorService detector for HTTP servers.
gatenet.service_detectors.imap module¶
imap.py¶
Service detection strategy for IMAP protocol.
- Public API:
IMAPDetector
- class gatenet.service_detectors.imap.IMAPDetector[source]¶
Bases:
ServiceDetectorService detector for IMAP servers. Detects IMAP or IMAPS servers from port and banner.
gatenet.service_detectors.mqtt module¶
mqtt.py¶
Service detection strategy for MQTT protocol.
- Public API:
MQTTDetector
- class gatenet.service_detectors.mqtt.MQTTDetector[source]¶
Bases:
ServiceDetectorService detector for MQTT brokers. Detects MQTT brokers from port and banner.
gatenet.service_detectors.pop3 module¶
pop3.py¶
Service detection strategy for POP3 protocol.
- Public API:
POP3Detector
- class gatenet.service_detectors.pop3.POP3Detector[source]¶
Bases:
ServiceDetectorService detector for POP3 servers. Detects POP3 or POP3S servers from port and banner.
gatenet.service_detectors.port_mapping module¶
Service detection by direct port mapping. Maps well-known ports to common service names.
- class gatenet.service_detectors.port_mapping.PortMappingDetector[source]¶
Bases:
ServiceDetectorDetects services by direct port mapping. Returns a service name for a known port, or None if not found.
- PORT_MAPPING = {23: 'Telnet Server', 53: 'DNS Server', 110: 'POP3 Server', 143: 'IMAP Server', 443: 'HTTPS Server', 993: 'IMAPS Server', 995: 'POP3S Server', 3389: 'Remote Desktop Protocol (RDP)'}¶
gatenet.service_detectors.sip module¶
sip.py¶
Service detection strategy for SIP protocol.
- Public API:
SIPDetector
- class gatenet.service_detectors.sip.SIPDetector[source]¶
Bases:
ServiceDetectorService detector for SIP servers. Detects SIP servers from port and banner.
gatenet.service_detectors.smtp module¶
smtp.py¶
Service detection strategy for SMTP protocol.
- Public API:
SMTPDetector
- class gatenet.service_detectors.smtp.SMTPDetector[source]¶
Bases:
ServiceDetectorService detector for SMTP servers. Detects Postfix, Sendmail, or generic SMTP servers from port and banner.
gatenet.service_detectors.ssh module¶
ssh.py¶
Service detection strategy for SSH protocol.
This module provides the SSHDetector and ServiceDetector ABC for extensible service detection.
- Public API:
ServiceDetector
SSHDetector
- class gatenet.service_detectors.ssh.SSHDetector[source]¶
Bases:
ServiceDetectorService detector for SSH servers.
Module contents¶
- class gatenet.service_detectors.BannerKeywordDetector[source]¶
Bases:
ServiceDetectorDetects services by banner keywords. Searches for known protocol keywords in the banner string.
- BANNER_KEYWORDS = [(['telnet'], 'Telnet Server'), (['pop3'], 'POP3 Server'), (['imap'], 'IMAP Server')]¶
- detect(port, banner)[source]¶
Detect service by searching for protocol keywords in the banner.
- Parameters:
port (int) – The port number (unused in this detector).
banner (str) – The banner string to search for keywords.
- Returns:
The detected service name, or None if not found.
- Return type:
Optional[str]
- class gatenet.service_detectors.CoAPDetector[source]¶
Bases:
ServiceDetectorService detector for CoAP servers. Detects CoAP servers from port and banner.
- class gatenet.service_detectors.FTPDetector[source]¶
Bases:
ServiceDetectorService detector for FTP servers. Detects vsftpd, FileZilla, or generic FTP servers from port and banner.
- class gatenet.service_detectors.FallbackDetector[source]¶
Bases:
ServiceDetectorFallback detector using default port services. Returns a default service name for common ports, or a generic unknown service label.
- DEFAULT_PORT_SERVICES = {21: 'FTP', 22: 'SSH', 23: 'Telnet', 25: 'SMTP', 53: 'DNS', 80: 'HTTP', 110: 'POP3', 143: 'IMAP', 443: 'HTTPS', 993: 'IMAPS', 995: 'POP3S', 3389: 'RDP', 8000: 'HTTP', 8080: 'HTTP'}¶
- detect(port, banner)[source]¶
Return a default service name for the port, or a generic unknown label.
- Parameters:
port (int) – The port number to check.
banner (str) – The banner string (if present, returns unknown service).
- Returns:
The detected service name, or a generic unknown label.
- Return type:
Optional[str]
- class gatenet.service_detectors.GenericServiceDetector[source]¶
Bases:
ServiceDetectorDetects services by generic indicators. Searches for known software names in the banner string.
- SERVICE_INDICATORS = {'apache': 'Apache Server', 'docker': 'Docker Registry', 'elasticsearch': 'Elasticsearch', 'gitlab': 'GitLab', 'jenkins': 'Jenkins CI/CD', 'mongodb': 'MongoDB Database', 'mysql': 'MySQL Database', 'nginx': 'Nginx Server', 'postgresql': 'PostgreSQL Database', 'redis': 'Redis Server'}¶
- detect(port, banner)[source]¶
Detect service by searching for known software indicators in the banner.
- Parameters:
port (int) – The port number (unused in this detector).
banner (str) – The banner string to search for indicators.
- Returns:
The detected service name, or None if not found.
- Return type:
Optional[str]
- class gatenet.service_detectors.HTTPDetector[source]¶
Bases:
ServiceDetectorService detector for HTTP servers.
- class gatenet.service_detectors.IMAPDetector[source]¶
Bases:
ServiceDetectorService detector for IMAP servers. Detects IMAP or IMAPS servers from port and banner.
- class gatenet.service_detectors.MQTTDetector[source]¶
Bases:
ServiceDetectorService detector for MQTT brokers. Detects MQTT brokers from port and banner.
- class gatenet.service_detectors.POP3Detector[source]¶
Bases:
ServiceDetectorService detector for POP3 servers. Detects POP3 or POP3S servers from port and banner.
- class gatenet.service_detectors.PortMappingDetector[source]¶
Bases:
ServiceDetectorDetects services by direct port mapping. Returns a service name for a known port, or None if not found.
- PORT_MAPPING = {23: 'Telnet Server', 53: 'DNS Server', 110: 'POP3 Server', 143: 'IMAP Server', 443: 'HTTPS Server', 993: 'IMAPS Server', 995: 'POP3S Server', 3389: 'Remote Desktop Protocol (RDP)'}¶
- class gatenet.service_detectors.SIPDetector[source]¶
Bases:
ServiceDetectorService detector for SIP servers. Detects SIP servers from port and banner.
- class gatenet.service_detectors.SMTPDetector[source]¶
Bases:
ServiceDetectorService detector for SMTP servers. Detects Postfix, Sendmail, or generic SMTP servers from port and banner.
- class gatenet.service_detectors.SSHDetector[source]¶
Bases:
ServiceDetectorService detector for SSH servers.