ReconStorm is an advanced reconnaissance tool for penetration testers and bug hunters, automating subdomain enumeration, port scanning, and web enumeration.
ReconStorm is a CLI-based reconnaissance tool for gathering domain information. It automates tasks such as subdomain enumeration, port scanning, web technology detection, directory enumeration, and more.
- Accept a domain name from the user via command-line arguments (
-d example.com
). - Create a main directory named after the target domain to store results.
- Inside the main directory, create subdirectories for each scan type:
subdomains/
β Stores subdomain enumeration resultsports/
β Stores port scanning resultsweb_tech/
β Stores detected web technologiesscreenshots/
β Stores website screenshotsdirectories/
β Stores directory enumeration resultsdns_info/
β Stores DNS and WHOIS lookup resultshttp_probing/
β Stores HTTP probing results
- Display a success message once the folder structure is created.
[+] Folder structure created for: example.com
- Use Subfinder (
subfinder -d example.com
) to find subdomains. - Store the found subdomains in
subdomains/subdomains.txt
. - Display the discovered subdomains on the terminal.
β
Optionally, integrate Amass (amass enum -d example.com
) for deeper enumeration.
[+] Running subfinder for example.com...
[+] Found subdomains saved in subdomains/subdomains.txt
- Use Nmap (
nmap -p- example.com
) to scan for open ports. - Store the scan results inside
ports/nmap_scan.txt
. - Display the detected open ports in the terminal.
β
Use Masscan (masscan -p1-65535 example.com
) for faster scanning.
[+] Running Nmap for example.com...
[+] Open ports saved in ports/nmap_scan.txt
- Use WhatWeb (
whatweb example.com
) or Wappalyzer to detect web technologies. - Store detected technologies in
web_tech/tech_stack.json
. - Display the results in JSON format on the terminal.
[+] Running WhatWeb for example.com...
[+] Technologies detected: Apache, PHP, WordPress
[+] Results saved in web_tech/tech_stack.json
- Use GoWitness (
gowitness scan --target example.com
) to capture website screenshots. - Save the screenshots inside
screenshots/
. - Display a confirmation message on completion.
[+] Capturing screenshot for example.com...
[+] Screenshot saved in screenshots/
- Use ffuf (
ffuf -u https://example.com/FUZZ -w wordlist.txt
) to find hidden directories. - Store the results in
directories/dirs.txt
. - Display discovered directories on the terminal.
[+] Running directory enumeration for example.com...
[+] Found directories:
- /admin
- /uploads
- /login
[+] Results saved in directories/dirs.txt
- Use WHOIS (
whois example.com
) to get domain ownership information. - Store the WHOIS results in
dns_info/whois.txt
. - Use DNSRecon (
dnsrecon -d example.com
) to fetch DNS records. - Store DNS records in
dns_info/dns_records.txt
.
[+] Running WHOIS lookup for example.com...
[+] WHOIS data saved in dns_info/whois.txt
[+] Running DNS Recon for example.com...
[+] DNS records saved in dns_info/dns_records.txt
- Use httpx (
httpx -list subdomains.txt -o live_subdomains.txt
) to check for live subdomains. - Store live subdomains inside
http_probing/live_subdomains.txt
. - Display live subdomains on the terminal.
[+] Running HTTP probing for example.com...
[+] Live subdomains:
- https://blog.example.com
- https://shop.example.com
[+] Results saved in http_probing/live_subdomains.txt
- Use multithreading (
threading
orasyncio
) to run multiple tasks in parallel. - Assign each scan its own thread for faster execution.
- Display a progress bar (
tqdm
) to indicate progress.
β 10x Faster Execution π
- Convert scan results into a structured JSON file (
report.json
). - Allow users to export results as CSV (
report.csv
). - Save reports inside the main domain directory.
[+] Generating structured report...
[+] Report saved as example.com/report.json
β
Support multiple domains (-d domain1.com domain2.com
).
β
Add a configuration file (config.yaml
) to customize scan options.
β
Implement error handling for missing tools or incorrect inputs.
1οΈβ£ User runs the script:
python3 reconstorm.py -d example.com
2οΈβ£ Script creates the project directory structure.
3οΈβ£ Runs all reconnaissance modules in parallel:
- Subdomain Enumeration
- Port Scanning
- Web Tech Detection
- Screenshot Capture
- Directory Enumeration
- DNS & WHOIS Lookup
- HTTP Probing 4οΈβ£ Saves structured output inside the domain folder. 5οΈβ£ Displays a summary report in the terminal.