A modular, Python-based reconnaissance tool for passive and active information gathering. Designed to run cross-platform on Windows and Linux, and fully Docker-compatible.
- DNS Enumeration: (
--dns) usingdnspython
SupportsA,MX,TXT, andNSrecords. - Subdomain Enumeration (
--subdomains) usingcrt.sh - WHOIS Lookup (
--whois) usingpython-whois
- Port Scanning (
--portscan) using Python sockets - Banner Grabbing and Technology Detection for open ports
- Generates TXT, JSON, and HTML summary reports
- Includes timestamps, IP resolutions, and module outputs
- Reports saved in
output/reports/directory - Raw results saved in
output/raw/directory
git clone https://github.com/<username>/custom-recon-tool.git
cd custom-recon-tool
mkdir -p output/raw output/reportspython -m venv venv
source venv/bin/activate # Linux
venv\Scripts\activate # Windows
pip install -r requirements.txtpython main.py example.com --dns --subdomains --whois --portscan -vv
-vincreases verbosity (-v=INFO,-vv=DEBUG)
Build the Docker image:
docker build -t custom-recon-tool .Create the output folder:
mkdir -p output/raw output/reports
Run the tool inside Docker:
docker run --rm \
-v "$(pwd)/output:/app/output" \
custom-recon-tool example.com --dns --subdomains --whois -vvReports and raw results are mapped to your local
output/folder.
recon_tool/
│
├── main.py
├── requirements.txt
├── config.py
├── logger.py
├── dispatcher.py
├── reporting.py
├── passive/
│ ├── dns/
│ ├── subdomains/
│ └── whois/
├── active/
│ ├── portscan/
│ ├── banner/
│ └── tech/
├── output/
│ ├── raw/
│ └── reports/
└── README.md
| Option | Description |
|---|---|
--dns |
Run DNS enumeration |
--subdomains |
Run subdomain enumeration (crt.sh) |
--whois |
Run WHOIS lookup |
--portscan |
Run socket-based port scanning and banner grabbing |
-v, -vv |
Increase logging verbosity |
- Passive modules may fail if external services (crt.sh, WHOIS) are slow or blocked.
- Default output directories are created automatically.
- Ensure Docker is installed to use the containerized version.
MIT License Feel free to modify and extend this tool for personal or educational purposes.
Abdur Rehman Siddiqui