NetRecon is a modular reconnaissance framework for authorized security testing.
It supports guided interactive usage for learners and fast flag-based execution for automation.
Use this tool only on systems you own or have explicit written permission to assess.
Unauthorized scanning may violate law and policy. You are responsible for compliant use.
- NetRecon is for defensive security testing and learning in authorized environments only.
- Do not scan public or private infrastructure without explicit approval.
- Do not use findings for exploitation, disruption, or unauthorized access.
- Always operate within legal scope, written rules of engagement, and local law.
- Interactive mode with guided prompts and metadata banner
- Argparse mode with compact nmap-style scan output
- Single host, CIDR, and multi-target scanning
- Threaded TCP scanning with retry, timeout, and jitter controls
- Optional SYN scan mode (Scapy + elevated privileges)
- Service fingerprinting and OS inference
- Plugin-based intelligence and misconfiguration checks
- CVE hint correlation
- Report export: CLI, JSON, HTML
Requirements:
- Python 3.8+
scapy(for SYN scanning features)
Install:
pip install -r requirements.txtpython netrecon.pyBehavior:
- Clears terminal first (Windows + Unix)
- Shows full banner, version, author, and contact
- Prompts for profile, plugin usage, and report export
python netrecon.py <target> [options]Behavior:
- Does not clear terminal
- Shows compact scan header and professional tabular output
- Ideal for scripts and repeatable workflows
python netrecon.py --help
python netrecon.py --about
python netrecon.py --launch-modes
python netrecon.py --list-profilesQuick:
python netrecon.py 192.168.1.10 -p quickAggressive with plugins + JSON/HTML:
python netrecon.py 10.0.0.0/24 -p aggressive --plugins --json --htmlWeb-focused:
python netrecon.py example.com -p web --plugins --htmlStealth/SYN:
python netrecon.py 192.168.1.10 -p stealth --syn -sBasic host scan:
python netrecon.py 192.168.1.10 -p quickCIDR range scan:
python netrecon.py 192.168.1.0/24 -p aggressive --pluginsCustom ports:
python netrecon.py example.com --ports 22,80,443,8443 --pluginsFull export set:
python netrecon.py 10.10.10.0/24 -p vuln --plugins --json --htmltarget: IP, hostname, CIDR, or comma-separated hosts-p, --profile:quick | stealth | aggressive | web | vuln--ports: port expression (22,80,443or1-1024)--threads: scanner thread count--timeout: socket timeout in seconds--retries: retries per probe--rate-limit: delay between probes--plugins: enable plugins--json: save JSON report--html: save HTML report--no-discovery: skip ping discovery--syn: force SYN mode-s, --stealth: enable stealth timing strategy-sV, --services: enable service fingerprinting--about: show banner + metadata--launch-modes: show mode guide--list-profiles: list profiles-h, --help: show help
| Profile | Purpose |
|---|---|
quick |
Fast top-ports visibility |
stealth |
Lower-noise randomized scan |
aggressive |
Deep recon with plugins and CVE hints |
web |
HTTP/TLS-focused analysis |
vuln |
Vulnerability-oriented recon profile |
banner_grabber: captures banners + TLS metadata + outdated version hintsdefault_creds: default credential risk mapping with port fallbacksdir_listing: directory listing detection across HTTP/HTTPSdns_enum: forward/reverse DNS enrichment with IP classificationopen_proxy: multi-method proxy exposure checksssl_info: certificate expiry, TLS version, weak cipher warningsvuln_headers: missing security headers, HSTS checks, disclosure hintsweak_ssh: legacy SSH protocol/version checkswhois_lookup: WHOIS key field extraction and enrichment
Plugins are executed together when --plugins is enabled.
To focus on a specific plugin signal, scan relevant ports/services.
Purpose:
- Capture banners and TLS metadata for service fingerprint clues.
Example:
python netrecon.py target.local --ports 21,22,80,443,8443 --pluginsPurpose:
- Flag services commonly exposed with default credentials.
Example:
python netrecon.py 192.168.1.50 --ports 21,23,3306,5432,6379 --pluginsPurpose:
- Detect directory listing exposure on HTTP/HTTPS roots.
Example:
python netrecon.py web.internal --ports 80,443,8080,8443 --pluginsPurpose:
- Resolve host/IP metadata, aliases, PTR, and IP classification.
Example:
python netrecon.py example.com -p quick --pluginsPurpose:
- Check whether proxy-like ports accept unsafe relay behavior.
Example:
python netrecon.py proxy.host --ports 3128,8080,8081,8888 --pluginsPurpose:
- Inspect TLS cert expiry, protocol version, and weak ciphers.
Example:
python netrecon.py secure.host --ports 443,465,993,995,8443 --pluginsPurpose:
- Check security headers and web disclosure issues.
Example:
python netrecon.py app.host --ports 80,443,8080,8443 --pluginsPurpose:
- Detect weak/legacy SSH protocol or server version hints.
Example:
python netrecon.py 10.0.0.10 --ports 22 --pluginsPurpose:
- Enrich targets with registrar/expiry/ownership clues where available.
Example:
python netrecon.py example.org -p quick --pluginsReports are saved in:
output/cli/output/json/output/html/
Each report includes target metadata, open ports/services, risk classification, plugin findings, CVE hints, and timing.
- Parse mode/input
- Expand targets
- Optional host discovery
- Scan ports (connect/SYN)
- Service/OS inference
- Run plugins
- Correlate CVEs
- Classify risk + render reports
- Persist outputs
Smoke checks run during this release:
python -B -c "import netrecon; print('import_ok')"
python -B netrecon.py --help
python -B netrecon.py --about
python -B netrecon.py --list-profiles
python -B netrecon.py 127.0.0.1 -p quick --ports 80,443,445 --plugins --json --htmlSee SECURITY.md for responsible disclosure and support policy.
See CODE_OF_CONDUCT.md.
MIT. See LICENSE.