Inspiration

I wanted to create a tool that blends network with real world vulnerability. Most basic port scanners stop at identifying open ports, but I wanted to take it further and tell the user what those ports mean for security.

What it does

  • Find all open TCP ports.
  • Grav service banners.
  • Identify known vulnerabilities using a local CVE database or live CVE API lookup.
  • Export the results to a structured JSON report.

How I built it

I built the port scanner in Python using the following:

  • socket for port scanning and banner grabbing.
  • requests to pull CVE data from CIRCL's public API.
  • colorama for clean, color coded output.
  • Flask to simulate a vulnerable service for testing.
  • A small local JSON CVE database to support offline use.

Challenges we ran into

  • Accurately parsing service banners.
  • Ensuring compatibility with macOS Python and terminal environments.
  • Handing slow or unresponsive ports without blocking the entire scan.

Accomplishments that we're proud of

  • Built a working scanner that grabs banners and identifies CVEs.
  • Created a simulated test environment using Flask for reliable demos.
  • Packaged everything cleanly with outputs and an exportable report.

What I learned

  • How to work with low level network sockets in Python.
  • How banner grabbing and CVE enumeration work.
  • How to use APIs.

What's next for Raccoon's Port Scanner

  • Add multi threading to increase speed.
  • Add UDP port scanning and more like FTC, SMTP, etc.
  • Build a front end for the app.
  • Integrate machine learning to flag abnormal services/ports.

Built With

Share this project:

Updates