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.
Log in or sign up for Devpost to join the conversation.