An automated, modular reconnaissance framework designed for security professionals and penetration testers. Stop clicking twenty tools — build the one that does it for you.
The Web Recon Automation Framework accepts a target domain and automatically collects publicly available reconnaissance data, compiling it into a clean, professional Markdown report. It is built with a robust, modular architecture to ensure graceful error handling and high reliability.
Developed by: Darshan (GitHub: @123dars)
- 🕵️♂️ WHOIS Scanning: Retrieves registrar details, creation dates, and expiration dates.
- 🌐 DNS Enumeration: Queries essential records including A, AAAA, MX, NS, and TXT.
- 🌍 Network Profiling: Resolves primary IP addresses and performs Geolocation tracking (Country, City, ISP, Organization).
- 🔒 Web & Security Scanning:
- Analyzes HTTP response headers.
- Detects missing critical security headers (CSP, HSTS, X-Frame-Options).
- Checks for sensitive exposed files (
robots.txt,sitemap.xml). - Extracts and validates SSL/TLS Certificate details (Issuer, Validity dates).
- 📄 Automated Reporting: Dynamically generates a structured, client-ready Markdown (
.md) report timestamped for your records.
This tool is engineered with a strict Modular Architecture:
- Each scanning capability is separated into distinct files inside the
modules/directory (Single Responsibility Principle). - The main
recon.pyengine orchestrates the modules. - Built-in
try...exceptexception handling guarantees graceful degradation. If a target server blocks a web request or times out, the framework logs the error and continues executing the remaining modules without crashing.
- Python 3.x installed on your system.
-
Clone the repository:
git clone https://github.com/123dars/web-recon-framework.git cd web-recon-framework -
Create a virtual environment (Recommended):
python3 -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
Run the script from your terminal and provide the target domain as an argument.
python recon.py <target_domain>Example:
python recon.py scanme.nmap.orgOnce the scan completes, a detailed report (e.g., recon_report_scanme.nmap.org_2026-07...md) will be generated in your current directory.
IMPORTANT: Only run this tool against domains you own or are explicitly authorized to scan (e.g., your own website, or an authorized testing server like scanme.nmap.org). Building reconnaissance automation is legal and highly encouraged for educational purposes; running it against unauthorized targets is unethical and potentially illegal. The developer is not responsible for any misuse of this tool.
This project is licensed under the MIT License - see the LICENSE file for details.