Inspiration

Port scanning is one of the first things every ethical hacker learns, but most tools either dump raw output that beginners can't interpret, or are so slow they're impractical for real assessments. I wanted a scanner that was fast enough to use on real targets, smart enough to explain what it found, and polished enough to generate professional reports — not just terminal output.

What It Does

Open-Port Reaper is an ethical, high-speed asynchronous port scanner with built-in intelligence:

  • Full-Range Async Scanning — Maps all 1–65,535 ports using Python's asyncio for concurrent scanning with minimal system load. Scans a full port range in seconds, not minutes.
  • Service & Banner Detection — Automatically identifies running services on open ports, extracts server banners and HTTP headers, and flags suspicious or commonly exploited ports (1433 MSSQL, 3306 MySQL, 5900 VNC, etc.).
  • Severity-Tagged Vulnerability Insights — Each discovered open port is tagged with a severity rating (Informational → Low → Medium → High → Critical) and detailed with real-world exploitation risk context. Not just "port 22 open" — but "SSH on port 22: brute-force risk, check for default credentials."
  • Domain-to-IP Resolution — Accepts both IP addresses and domain names, resolving them automatically before scanning.
  • One-Click PDF Security Reports — Generates beautifully formatted PDF audit reports with full scan results, severity breakdowns, mitigation recommendations, and timestamped findings — ready for professional documentation.
  • Hacker-Themed UI — Flask web interface with a terminal-dark aesthetic, real-time scan progress, and clean results presentation.

How I Built It

Python backend using asyncio for the concurrent scanning engine — each port probe is a coroutine, allowing thousands of simultaneous connection attempts without thread overhead. Banner grabbing uses asyncio StreamReader with timeout handling for services that don't close connections cleanly. The vulnerability database is a static JSON mapping of port numbers to service context and risk descriptions. PDF generation uses ReportLab for programmatic report creation. The Flask frontend serves the web UI and handles scan job submission and result polling.

Challenges I Ran Into

  • Async timeout handling was tricky — some services hold connections open indefinitely waiting for input before sending a banner, requiring careful timeout tuning to balance speed with accuracy.
  • Building the vulnerability context database required research into common exploitation scenarios for every frequently encountered port — making the insights genuinely useful rather than generic.

What I Learned

How Python's asyncio concurrency model works in depth, and how to design professional-grade security tooling that produces output non-experts can actually act on.

What's Next

  • CVE database integration for real-time vulnerability lookup by service version
  • UDP port scanning mode
  • Network range scanning (CIDR notation support)
  • Scheduled recurring scans with diff reporting

Built With

Share this project:

Updates