A comprehensive Python-based vulnerability scanner for detecting common security issues in web applications and networks.
✅ Port Scanning - Detect open ports and running services ✅ Weak Configuration Detection - Identify misconfigured services ✅ Outdated Software Detection - Check for known vulnerable versions ✅ Vulnerability Report Generation - JSON, HTML, and text reports ✅ CVE Database Integration - Check against known vulnerabilities ✅ Service Fingerprinting - Identify services and versions
git clone https://github.com/crimsonvortex69/vulnerability-scanner.git
cd vulnerability-scanner
pip install -r requirements.txt# Scan a single host
python scanner.py -t 192.168.1.1
# Scan with specific port range
python scanner.py -t 192.168.1.1 -p 80-443
# Generate HTML report
python scanner.py -t 192.168.1.1 --report html
# Verbose output
python scanner.py -t 192.168.1.1 -vUsage: python scanner.py [OPTIONS]
Options:
-t, --target TEXT Target IP address or hostname [required]
-p, --ports TEXT Port range (e.g., 1-1000) [default: 1-65535]
--timeout INT Socket timeout in seconds [default: 2]
--report TEXT Report format (json, html, text) [default: text]
-o, --output TEXT Output file path [default: report]
-v, --verbose Enable verbose output
--check-cve Check against CVE database
--help Show this message and exit
vulnerability-scanner/
├── scanner.py # Main entry point
├── modules/
│ ├── __init__.py
│ ├── port_scanner.py # Port scanning functionality
│ ├── version_detector.py # Software version detection
│ ├── config_analyzer.py # Configuration analysis
│ └── cve_checker.py # CVE database lookup
├── reports/
│ ├── __init__.py
│ ├── json_reporter.py # JSON report generation
│ ├── html_reporter.py # HTML report generation
│ └── text_reporter.py # Text report generation
├── utils/
│ ├── __init__.py
│ └── logger.py # Logging utilities
├── requirements.txt # Project dependencies
└── README.md # This file
socket- Network communication (built-in)nmap/python-nmap- Advanced port scanningrequests- HTTP requests for service detectionclick- CLI interfacecolorama- Colored terminal outputjinja2- HTML report templating
Human-readable format with color-coded severity levels:
- 🔴 CRITICAL
- 🟠 HIGH
- 🟡 MEDIUM
- 🟢 LOW
Structured data format for automation and integration:
{
"target": "192.168.1.1",
"scan_date": "2026-05-26T10:30:00Z",
"vulnerabilities": [
{
"port": 22,
"service": "SSH",
"version": "OpenSSH 5.1",
"severity": "HIGH",
"cve": ["CVE-2020-14145"]
}
]
}Interactive web-based report with charts and severity filters.
python scanner.py -t 192.168.1.0/24 --report html -o network_scanpython scanner.py -t example.com -p 80,443,8080,3306 --check-cve --report jsonwhile true; do
python scanner.py -t 192.168.1.1 --report json -o scans/$(date +%s).json
sleep 3600
done- Unauthorized scanning may violate laws and regulations
- Always get written permission before testing systems
- Use responsibly and ethically
- Document all scanning activities
- UDP scanning requires elevated privileges
- Some firewalls may block or interfere with scanning
- False positives are possible; manual verification recommended
- Network latency may affect accuracy
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This tool is for educational and authorized testing purposes only. Unauthorized access to networks is illegal.