.__ _____
|__| _____/ ____\____ ____ ______ ______
| |/ \ __\/ _ \ / _ \\____ \/ ___/
| | | \ | ( <_> | <_> ) |_> >___ \
|__|___| /__| \____/ \____/| __/____ >
\/ |__| \/
This tool automates various reconnaissance tasks for Capture The Flag (CTF) challenges, HackTheBox, TryHackMe, and similar environments. It integrates multiple scanning tools to discover subdomains, directories, API endpoints, and potential vulnerabilities.
Disclaimer: This tool is intended for legal and ethical purposes only, such as CTF challenges, penetration testing on systems you own, or those for which you have explicit permission.
- WAF Detection: Identifies if the target is behind a Web Application Firewall (WAF) using
wafw00f. - Subdomain Fuzzing: Discovers subdomains using
ffufwith primary and fallback wordlists. - Directory Fuzzing: Identifies directories and recursively scans them.
- API Endpoint Discovery: Uncovers hidden API endpoints.
- Port Scanning: Performs comprehensive port scans using
nmap. - Sensitive Information Detection: Scans for potential sensitive data leaks.
- JWT Analysis: Analyzes JSON Web Tokens for vulnerabilities.
- IDOR Testing: Tests for Insecure Direct Object References by manipulating parameters.
- Web Technology Detection: Utilizes
WhatWebto detect underlying technologies. - Adaptive Scanning: Adjusts scanning behavior based on response times and WAF presence using a machine learning model.
- Comprehensive Reporting: Generates reports in HTML, JSON, and CSV formats.
- Logging: Detailed logs with rotating file handlers for easy debugging.
- Unit Testing: Ensures reliability and functionality through automated tests.
- Continuous Integration (CI): Automated testing via GitHub Actions to maintain code quality.
git clone https://github.com/Info0ps/recon_tool.git
cd recon_toolGiven the externally-managed-environment issue on Kali, it's recommended to use a virtual environment.
Create a Virtual Environment
python3 -m venv venvActivate the Virtual Environment
source venv/bin/activateUpgrade pip Inside the Virtual Environment
pip install --upgrade pipSInstall Dependencies
pip install -r requirements.txtIf you prefer not to use a virtual environment, install dependencies system-wide with the --user flag:
python3 -m pip install --user -r requirements.txtCaution: This method may lead to package conflicts. Using a virtual environment is safer.
Ensure the following tools are installed and accessible in your PATH:
nmapffufwafw00fwhatweb
Nmap:
sudo apt-get install nmapFFUF:
sudo apt-get install ffufIf ffuf isn't available via apt, install it manually:
sudo apt-get install git
git clone https://github.com/ffuf/ffuf.git
cd ffuf
go build
sudo mv ffuf /usr/local/bin/wafw00f:
sudo apt-get install wafw00fWhatWeb:
sudo apt-get install whatwebModify the configuration file at config/config.ini as needed. Adjust settings like MaxThreads, MinRate, wordlist paths, etc., based on your requirements and system capabilities.
If you haven't trained your ML model yet:
Ensure you have a dataset at data/scan_data.csv with the following columns:
response_time(float)status_code(int)content_length(int)waf_detected(bool: 0 or 1)stealthy_mode(bool: 0 or 1) — This is your target variable.
python3 recon_tool/train_model.pyThis will create models/stealthy_mode_model.pkl.
Ensure that the wordlists/ directory contains comprehensive wordlists for subdomain, directory, and API endpoint fuzzing. Use well-maintained lists from sources like SecLists.
Execute your reconnaissance tool as follows:
python3 main.py --target 10.129.147.53 --verbose--target: (Required) The target domain, IP address, or URL.--config: (Optional) Path to the configuration file. Defaults toconfig/config.ini.--verbose: (Optional) Enable verbose logging for more detailed output.
python3 main.py --target example.com --verboseNote: If using a virtual environment, ensure it's activated before running the script.
Since packages installed via apt reside in /usr/lib/python3/dist-packages, and user-installed packages are in ~/.local/lib/python3.12/site-packages, ensure that both are included in sys.path if necessary. This was handled in the updated main.py by appending the system site-packages directory.
After reducing concurrency, monitor your system's CPU, memory, and network usage to ensure that the tool operates within safe limits. Use tools like htop, top, or vmstat for real-time monitoring.
The provided configuration settings (MaxThreads, MinRate) are starting points. Depending on your system's performance and the target's responsiveness, you may need to fine-tune these values for optimal performance.
Review the log files generated in the logs/ directory to troubleshoot any issues or to gain insights into the tool's operations. Ensure that logging levels (INFO, DEBUG) are set appropriately based on your needs.
Before deploying the tool against critical or sensitive targets, test it in a controlled environment to ensure that all functionalities work as expected without causing unintended disruptions.