A small Python project that scans a host for common issues such as open ports, weak web configuration, and obvious version disclosure.
- Scan open TCP ports
- Detect weak or missing security headers on web services
- Flag exposed
ServerandX-Powered-Byheaders - Identify expired or soon-to-expire TLS certificates
- Detect potentially outdated software version strings in banners and headers
- Generate JSON and text reports
- Python 3.10 or newer
Run a basic scan:
python vulnerability_scanner.py 127.0.0.1Scan a host with a custom port list:
python vulnerability_scanner.py example.com --ports 80,443,22,8000-8100Lower the timeout if you want faster results on filtered ports:
python vulnerability_scanner.py leetcode.com --ports 80,443,22,8000-8100 --timeout 0.3Change the output directory:
python vulnerability_scanner.py 192.168.1.10 --output-dir reportsThe scanner writes two files to the output directory:
vulnerability_report_<timestamp>.jsonvulnerability_report_<timestamp>.txt
The script checks ports in parallel, then inspects any open web services for headers and TLS issues. It uses simple banner and header fingerprints to spot possible outdated software versions.
This is a lightweight learning project, not a replacement for authenticated vulnerability management or a full scanner such as Nmap, OpenVAS, or Nessus.