what is openport

openport is an opensourced port scanner and vulnerability analyzer: point it at your own infrastructure, and it scans ports, fingerprints what’s listening on them, and flags known CVEs and common misconfigurations.

the project functions through a TCP connect scan as the always-available baseline with an optional raw-socket SYN scan mode - alongside a local json ruleset for vulnerability matching rather than depending on a live CVE API. the CVE API will be included in future updates.

the project scope is in four phases: scanning, fingerprinting, the vulnerability rule engine, and reporting

how openport is built

the c++ codebase is split into small static libraries linked into one openport executable via CMake:

  • coreTarget/ScanResult types, a simple thread pool, a leveled logger

  • net — a sockets shim (Winsock2 / POSIX) and the ConnectScanner, which does a non-blocking connect() bounded by poll()/WSAPoll() instead of socket timeouts

  • fingerprint — grabs a banner (passively, or with a small probe like an HTTP HEAD or a Redis PING), then runs it through ~20 curated regex signatures to pull out a product and version. tls ports get an additional OpenSSL-based probe for negotiated protocol, ciphering and certificate hygiene

  • vuln — a version-constraint comparator that handles messy version strings, currently packed with (vuln-rules.json) of real CVEs and misconfiguration checks, and a small registry of heuristic checks (FTP anonymous login, Redis with no auth, weak/self-signed/expired TLS, Telnet/RDP exposure etc) for findings that aren’t just based on version age

  • report — console output, JSON, and a self-contained single-file HTML report with client-side severity

working examples

example one example two

ref: https://nvd.nist.gov/vuln/search?resultType=records