A lightweight, opinionated web security reconnaissance scanner designed to quickly assess a targetβs external attack surface using HTTP analysis, TLS inspection, Nmap profiling, and heuristic CVE correlation.
This tool is built for early-stage assessments, where speed, clarity, and low noise matter more than exhaustive coverage.
β οΈ Legal Notice
This tool is intended only for systems you own or have explicit authorization to test.
Most scanners fall into one of two extremes:
- Enterprise-grade tools that are powerful but heavy, noisy, and opaque
- Simple scripts that are fast but narrowly focused
This project aims for the middle ground.
The goal is to answer questions a security engineer or attacker would ask early in an engagement:
- What stack am I talking to?
- Are obvious security controls missing?
- Is TLS configured safely?
- Are sensitive paths exposed?
- What does a careful Nmap scan reveal?
- Based on what I see, what known vulnerabilities should I research next?
The scanner prioritizes signal over volume and context over verdicts.
- Server and framework identification
- Security header analysis
- HTTP method discovery (
OPTIONS,TRACE, etc.) - Detection of exposed sensitive paths
- TLS protocol and cipher detection
- Certificate subject, issuer, and validity
- Basic weak-cipher identification
Selectable scan profiles that reflect real-world tradeoffs:
normalβ standard service detectionstealthβ slower timing, scan delaysparanoidβ extremely cautious, low-noise scansdecoyβ advanced use only
Supports both:
python-nmap(if installed)- Native Nmap binary fallback
- Extracts product/version hints from headers and Nmap output
- Queries the CIRCL CVE API
- Returns:
- CVE ID
- Short description
- CVSS score (if available)
- Publication date
CVEs are correlated, not confirmed.
This step is about prioritization and research β not exploitation.
- HTML β clean, readable reports
- JSON β automation and pipelines
- Excel (XLSX) β analyst and management-friendly
The scanner is intentionally designed around how attackers and experienced testers operate:
- Fingerprint quietly
- Check misconfigurations before vulnerabilities
- Confirm exposure, not just presence
- Correlate versions to known weaknesses
- Decide whether deeper effort is justified
No payload fuzzing.
No exploit attempts.
No assumptions.
Basic scan with HTML output:
python app.py https://example.com --output report.htmlpython app.py https://example.com \
--output report.html \
--nmap-profile stealthpython app.py example.com \
--output report.json \
--fast \
--no-nmap