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:
-
core —
Target/ScanResulttypes, a simple thread pool, a leveled logger -
net — a sockets shim (Winsock2 / POSIX) and the
ConnectScanner, which does a non-blockingconnect()bounded bypoll()/WSAPoll()instead of socket timeouts -
fingerprint — grabs a banner (passively, or with a small probe like an HTTP
HEADor a RedisPING), 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
