An asynchronous-ready, modular CLI security utility designed to automate asset reconnaissance, passive service fingerprinting, and cryptographic/protocol configuration analysis. This architecture mirrors the core collection and analysis pipelines found in enterprise vulnerability management solutions, serving as a functional implementation of raw socket interrogation techniques.
The utility decouples target discovery from the analysis engine to ensure thread safety, predictability, and clean report generation. The pipeline operates sequentially across three logical layers:
- Network Layer (Probing): Establishes explicit IPv4 TCP connections (
AF_INET,SOCK_STREAM) across target boundaries using strict boundary timeouts to prevent socket hangs during ingress filtering. - Application Layer (Fingerprinting): Interrogates raw application channels via service-specific protocol handshakes (e.g., standard HTTP/1.1 headers) to capture software identities.
- Translation Layer (Heuristics): Processes unstructured banner strings against signature arrays to identify plaintext transmission risk vectors and legacy software iterations.
- Modular Socket Transports: Uses native low-level network wrappers to guarantee minimal system overhead and dependency isolation.
- Deterministic Version Parsing: Implements fault-tolerant byte decoding (
utf-8error handling) to normalize binary service greetings into clean string buffers. - Context-Aware Probing: Automatically adjusts transmission payloads depending on the destination port profile (e.g., injecting HTTP verb payloads on web services to elicit descriptive server response headers).
- Automated Non-Volatile Artifact Generation: Outputs structured telemetry data into timestamped flat-file assessment reports for audit trails.
vuln-scanner/
├── .gitignore # Prevents tracking of local caches, bytecode, and reports.
├── README.md # Engineering documentation and technical specifications.
├── requirements.txt # Frozen development-stage tracking dependencies.
└── vuln_scanner.py # Main engine entry point containing execution modules.