A Python-based vulnerability scanner that uses Nmap for service and version detection and correlates detected software with publicly disclosed CVEs from the National Vulnerability Database (NVD) REST API.
- Detects open TCP ports
- Identifies running services and versions
- Retrieves relevant CVEs from the NVD API
- Displays results in a Flask web interface
- Generates a JSON report
- Prevents duplicate CVE lookups
- Handles network and API errors gracefully
- Python
- Flask
- Nmap
- Requests
- HTML
- CSS
- JSON
- NVD REST API
VulnScan/
│
├── app.py
├── scanner.py
├── cve_lookup.py
├── requirements.txt
├── templates/
│ └── index.html
└── static/style.css
git clone https://github.com/YOUR_USERNAME/VulnScan.gitcd VulnScanpython -m venv venvWindows
venv\Scripts\activateLinux/macOS
source venv/bin/activatepip install -r requirements.txtpython app.pyOpen:
http://127.0.0.1:5000
- Enter an IP address or domain.
- Click Scan.
- View detected services and related CVEs.
- Review the generated JSON report.
| Port | Product | Version | CVEs |
|---|---|---|---|
| 22 | OpenSSH | 9.2 | 3 |
| 80 | Apache httpd | 2.4.7 | 12 |
- Python Programming
- Network Scanning
- REST API Integration
- JSON Parsing
- Flask Web Development
- Secure Coding Practices
- Error Handling
- Modular Software Design
- CSV export
- PDF report generation
- Severity filtering
- Dark mode
- Scan history
- SQLite integration
- Docker deployment
This tool correlates detected software versions with publicly available CVEs from the National Vulnerability Database (NVD). It does not verify whether a vulnerability is exploitable on the target system.
Gagan HS
LinkedIn: (your profile)
GitHub: (your profile)