Shodan Executer is a tool designed to utilize the Shodan API to scan and test remote systems for specific vulnerabilities or configurations based on user-defined parameters.
- Shodan Integration: Leverage the power of the Shodan API to identify potential targets.
- Custom Configurations: Easily specify test configurations through a JSON file.
- Multithreading: Efficiently test multiple targets concurrently.
- Progress Tracking: Ability to resume testing from where it left off.
- Output Management: Organize logs and results in a specified project folder.
- Smoke Testing: Run limited tests to verify functionality.
- Clone the repository:
git clone https://github.com/m4ary/Shodan-Executer
- Navigate to the Shodan Executer directory:
cd Shodan-Executer
- Install the required Python libraries:
pip install -r requirements.txt
Configuration parameters should be defined in a JSON file named config.json. A template (config_template.json) is provided in the repository. Rename this file to config.json and fill in the necessary details.
Here are the configuration parameters with examples:
SHODAN_API_KEY: Your Shodan API key. (e.g., "YOUR_SHODAN_API_KEY_HERE")remote_code_on_target: The command you want to execute on the target. (e.g., "nc {ip} {port}")success_text: Text that indicates a successful test. (e.g., "Connection successful")error_text: Text that indicates a failed test. (e.g., "Connection failed")search_query: Your Shodan search query. (e.g., "apache")target_port: Target port for the test. (e.g., "80")limit: Limit for the Shodan search results. (e.g., "100")num_threads: Number of threads for testing. (e.g., "10")thread_timeout: Timeout for each thread in seconds. (e.g., "60")
python Shodan_Executer.py -c <config_file> -p <project_folder> [--smoke] [--reset]
-c, --config: Specify the path to the configuration file (Required).-p, --project: Specify the project folder for logs and results (Default:default_project).--smoke: Run a smoke test to verify functionality.--reset: Start from scratch, moving previous logs/results to a backup directory.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.