A comprehensive CLI/TUI application for building penetration testing commands safely and interactively.
β Interactive Command Building - Walk through prompts to build accurate commands
β 120+ Tools Supported - Comprehensive penetration testing toolkit
β Command Preview - Review commands before execution
β Clipboard Integration - Copy commands to clipboard
β Template System - Save and reuse command templates
β File Export - Export commands as executable scripts
β Hint Mode - Beginner-friendly explanations
β Modular Design - Easy to add new tools
β Safe by Default - No execution without explicit confirmation
- Python 3.8+
- Linux/Mac (Windows with WSL recommended)
xclip(Linux X11) -sudo apt install xclipxsel(Linux wayland) -sudo apt install xselpbcopy(macOS) - built-in
# Clone or navigate to the project
git clone https://github.com/AaryanBansal-dev/ShadowCaster.git
# Navigate to the ShadowCaster directory
cd ShadowCaster
# Make scripts executable
chmod +x shadowcaster.sh run.py
# Run the application
./shadowcaster.sh
# or
python3 main.pyShadowCaster/
βββ main.py # Main application
βββ run.py # Python launch script
βββ shadowcaster.sh # Bash launch script
βββ configs/ # Tool configurations
β βββ nmap_config.json
β βββ hydra_config.json
β βββ sqlmap_config.json
β βββ wpscan_config.json
β βββ gobuster_config.json
β βββ aircrack_config.json
βββ modules/ # Tool builders
β βββ __init__.py
β βββ tool_builders.py
βββ utils/ # Utility modules
β βββ __init__.py
β βββ command_builder.py # Base builder class
β βββ config_loader.py # Config file management
β βββ display.py # UI/Display utilities
β βββ file_manager.py # File operations
βββ templates/ # Saved command templates
python3 main.pyYou'll see a menu with options:
- Build New Command - Interactively create a command
- Load Template - Use a saved template
- Manage Templates - View/edit/delete templates
- Settings - Configure hint mode and other options
- Exit - Quit application
- Select a tool from the available options
- Enter required parameters (e.g., target IP)
- Choose optional flags from categories
- Preview and handle the generated command
After building a command, you can:
- Preview - Display the full command
- Copy to Clipboard - Ready to paste elsewhere
- Save to File - Export as executable script
- Save as Template - Reuse later with a custom name
- Execute - Run the command (with confirmation)
Enable 'Settings' for explanations of each flag and option. Great for learning!
ShadowCaster now supports 120+ penetration testing tools organized into the following categories:
Hydra, John the Ripper, Hashcat, Medusa, Ophcrack, RainbowCrack, Crunch, CeWL, Patator, Crowbar, and more
Nmap, SQLMap, Nikto, Gobuster, FFUF, Dirsearch, Feroxbuster, BurpSuite, OWASP ZAP, wafw00f, Commix, w3af, WhatWeb, Wfuzz, XSSer, and more
Amass, Sublist3r, WPScan, theHarvester, Maltego, Recon-ng, SpiderFoot, Shodan CLI, DNSenum, DNSRecon, and more
Masscan, Netcat, hping3, Unicornscan, ZMap, tcpdump, Wireshark, Ettercap, Bettercap, and more
Metasploit, msfvenom, SearchSploit, Armitage, BeEF, Social-Engineer Toolkit, Veil, Empire, and more
Aircrack-ng, Reaver, Bully, Wifite, Airgeddon, Pixiewps, cowpatty, Pyrit, MDK3, and more
Autopsy, Volatility, Foremost, ExifTool, Binwalk, bulk_extractor, YARA, ClamAV, and more
OpenVAS, Nessus, Lynis, Wapiti, Arachni, Nuclei, Trivy, Grype, Snyk, and more
sqlninja, jSQL Injection, mongoaudit, NoSQLMap, ODAT, and more
CrackMapExec, Mimikatz, Responder, LinPEAS, WinPEAS, BloodHound, Impacket, enum4linux, and more
For a complete list of all 120 tools, see ALL_TOOLS.md
Build New Command β Select Nmap
Target: 192.168.1.100
Select: TCP SYN scan, Ports: 1-1000, Timing: Aggressive
Output: nmap -sS -p 1-1000 -T4 192.168.1.100
Build New Command β Select Hydra
Target: 192.168.1.50
Service: ssh
Username: root
Wordlist: /path/to/wordlist.txt
Output: hydra -l root -P /path/to/wordlist.txt ssh 192.168.1.50
Build New Command β Select WPScan
URL: http://target.com
Enumerate: Plugins, Themes, Users
Output: wpscan --url "http://target.com" --enumerate p,t,u
- Create
configs/newtool_config.jsonwith tool options - Create a builder class in
modules/tool_builders.pyextendingCommandBuilder - Add to
TOOL_BUILDERSdict inmain.py
Example config structure:
{
"name": "ToolName",
"description": "Tool description",
"command": "tool-command",
"categories": {
"Category Name": {
"options": [
{
"flag": "-flag",
"description": "Flag description",
"variable": false
}
]
}
},
"required": {
"param": {
"prompt": "Enter param:",
"description": "Param description"
}
}
}Currently, the app runs interactively. Command-line argument support is coming soon.
- NO commands are executed without explicit user confirmation
- Always review commands before execution
- Only use in authorized testing environments
- Respect the scope and rules of engagement
- Keep audit trails of your testing activities
The application can't copy to the clipboard. Install:
- Ubuntu/Debian:
sudo apt install xclip - Fedora:
sudo dnf install xclip - Arch:
sudo pacman -S xclip
If templates don't save, ensure the templates/ directory exists and is writable:
mkdir -p templates/
chmod 755 templates/Check that all JSON config files are valid:
python3 -m json.tool configs/nmap_config.jsonUse for authorized penetration testing only. Ensure you have proper authorization before testing any system.
To add features or tools:
- Create a config file in
configs/ - Implement builder in
modules/tool_builders.py - Update documentation
This project is licensed under the GNU Affero General Public License v3 (AGPL-3.0).
The AGPL-3.0 license was chosen specifically to:
- Force source code publication for anyone running modified ShadowCaster as a service
- Prevent closed-source commercialization - if someone takes this project, closes it, and offers it as a hosted product, they must share their improvements
- Keep derived code open - ensures that any modifications or enhancements remain available to the community
- Protect against SaaS exploitation - prevents companies from offering ShadowCaster as a hosted service without contributing back
- Source code must be made available when distributing the software
- Network use clause: If you run a modified version on a server, you must provide the source code to users
- Copyleft protection: Derivative works must also be licensed under AGPL-3.0
- Patent protection: Contributors grant patent licenses to users
See LICENSE for the full license text.
Created by Aaryan Bansal, also known as NotUnHackable