#!/usr/bin/env python3 """ Djedi Toolbelt - Configuration and Tool Definitions Defines all tools, categories, and profiles """ from typing import Dict, List # ============================================================================ # Tool Categories # ============================================================================ # APT Tools - Available via package manager APT_TOOLS_KALI = [ "nmap", "masscan", "naabu", "nuclei", "burpsuite", "feroxbuster", "nikto", "gobuster", "seclists", "sqlmap", "git", "docker.io", "docker-compose", "golang-go", "wireshark", "hydra", # Password brute force "zaproxy", # OWASP ZAP "wpscan", # WordPress scanner "evil-winrm", # WinRM shell "ghidra", # Reverse engineering (if available) "radare2", # Reverse engineering ] APT_TOOLS_DEBIAN = [ "nmap", "masscan", "nikto", "sqlmap", "git", "docker.io", "docker-compose", "golang-go", "wireshark", "hydra", "radare2", ] # /opt Tools - Cloned to /opt directory OPT_TOOLS = { "pimpmykali": { "url": "https://github.com/Dewalt-arch/pimpmykali", "post_install": [ "cd /opt/pimpmykali && sudo ./pimpmykali.sh --go", "cd /opt/pimpmykali && sudo ./pimpmykali.sh --impacket", "cd /opt/pimpmykali && sudo ./pimpmykali.sh --upgrade" ], "kali_only": True }, "xnLinkFinder": { "url": "https://github.com/xnl-h4ck3r/xnLinkFinder.git", "post_install": ["cd /opt/xnLinkFinder && sudo python setup.py install"], "kali_only": False }, "knock": { "url": "https://github.com/guelfoweb/knock.git", "post_install": ["cd /opt/knock && pip3 install -r requirements.txt"], "kali_only": False }, "Sublist3r": { "url": "https://github.com/aboul3la/Sublist3r.git", "post_install": ["cd /opt/Sublist3r && pip install -r requirements.txt"], "kali_only": False }, "Striker": { "url": "https://github.com/s0md3v/Striker.git", "post_install": ["cd /opt/Striker && pip install -r requirements.txt"], "kali_only": False }, "wafw00f": { "url": "https://github.com/EnableSecurity/wafw00f.git", "post_install": [ "cd /opt/wafw00f && pip3 install -r requirements.txt", "cd /opt/wafw00f && sudo python setup.py install" ], "kali_only": False }, "waymore": { "url": "https://github.com/xnl-h4ck3r/waymore.git", "post_install": [ "cd /opt/waymore && pip3 install -r requirements.txt", "cd /opt/waymore && sudo python setup.py install" ], "kali_only": False }, "XSStrike": { "url": "https://github.com/s0md3v/XSStrike.git", "post_install": ["cd /opt/XSStrike && pip3 install -r requirements.txt"], "kali_only": False }, "Responder": { "url": "https://github.com/lgandx/Responder.git", "post_install": ["cd /opt/Responder && pip3 install -r requirements.txt"], "kali_only": False }, "Impacket": { "url": "https://github.com/fortra/impacket.git", "post_install": [ "cd /opt/Impacket && pip3 install -r requirements.txt", "cd /opt/Impacket && sudo python3 setup.py install" ], "kali_only": False }, "BloodHound": { "url": "https://github.com/SpecterOps/BloodHound.git", "post_install": [ "echo 'BloodHound requires Neo4j - install separately'", "echo 'Download collectors: SharpHound.exe or bloodhound-python'" ], "kali_only": False }, "PlumHound": { "url": "https://github.com/PlumHound/PlumHound.git", "post_install": ["cd /opt/PlumHound && pip3 install -r requirements.txt"], "kali_only": False }, "Snaffler": { "url": "https://github.com/SnaffCon/Snaffler.git", "post_install": ["echo 'Snaffler is .NET - requires Windows or Wine'"], "kali_only": False }, "MANSPIDER": { "url": "https://github.com/blacklanternsecurity/MANSPIDER.git", "post_install": ["cd /opt/MANSPIDER && pip3 install -r requirements.txt"], "kali_only": False }, "EyeWitness": { "url": "https://github.com/RedSiege/EyeWitness.git", "post_install": [ "cd /opt/EyeWitness/Python/setup && sudo ./setup.sh" ], "kali_only": False }, "NetExec": { "url": "https://github.com/Pennyw0rth/NetExec.git", "post_install": [ "cd /opt/NetExec && pipx install .", "echo 'NetExec (nxc) replaces CrackMapExec'" ], "kali_only": False }, "Seatbelt": { "url": "https://github.com/GhostPack/Seatbelt.git", "post_install": ["echo 'Seatbelt is C# - compile on Windows or use pre-built binary'"], "kali_only": False }, "PrivescCheck": { "url": "https://github.com/itm4n/PrivescCheck.git", "post_install": ["echo 'PrivescCheck is PowerShell - run on Windows target'"], "kali_only": False }, "pre2k": { "url": "https://github.com/garrettfoster13/pre2k.git", "post_install": ["cd /opt/pre2k && pip3 install -r requirements.txt"], "kali_only": False }, "Rubeus": { "url": "https://github.com/GhostPack/Rubeus.git", "post_install": ["echo 'Rubeus is C# - compile on Windows or use pre-built binary'"], "kali_only": False }, "chisel": { "url": "https://github.com/jpillora/chisel.git", "post_install": [ "cd /opt/chisel && go build -ldflags '-s -w'", "sudo cp /opt/chisel/chisel /usr/local/bin/" ], "kali_only": False }, "ligolo-ng": { "url": "https://github.com/nicocha30/ligolo-ng.git", "post_install": [ "cd /opt/ligolo-ng && go build -o ligolo-agent cmd/agent/main.go", "cd /opt/ligolo-ng && go build -o ligolo-proxy cmd/proxy/main.go", "sudo cp /opt/ligolo-ng/ligolo-* /usr/local/bin/" ], "kali_only": False }, "evil-winrm": { "url": "https://github.com/Hackplayers/evil-winrm.git", "post_install": [ "cd /opt/evil-winrm && gem install evil-winrm", "echo 'evil-winrm installed via gem'" ], "kali_only": False }, "pspy": { "url": "https://github.com/DominicBreuker/pspy.git", "post_install": [ "cd /opt/pspy && go build -o pspy64 .", "echo 'Download pre-built releases from GitHub for production use'" ], "kali_only": False }, "cewl": { "url": "https://github.com/digininja/CeWL.git", "post_install": ["cd /opt/cewl && gem install bundler && bundle install"], "kali_only": False }, "cupp": { "url": "https://github.com/Mebus/cupp.git", "post_install": ["echo 'cupp.py ready - run with python3 /opt/cupp/cupp.py'"], "kali_only": False }, "Sliver": { "url": "https://github.com/BishopFox/sliver.git", "post_install": [ "curl https://sliver.sh/install | sudo bash", "echo 'Sliver C2 installed - run: sliver'" ], "kali_only": False }, "Havoc": { "url": "https://github.com/HavocFramework/Havoc.git", "post_install": [ "cd /opt/Havoc && make", "echo 'Havoc C2 framework built - see README for usage'" ], "kali_only": False }, "Covenant": { "url": "https://github.com/cobbr/Covenant.git", "post_install": ["echo 'Covenant is .NET - requires dotnet SDK, see documentation'"], "kali_only": False }, "zaproxy": { "url": "https://github.com/zaproxy/zaproxy.git", "post_install": ["echo 'ZAP also available as snap: sudo snap install zaproxy --classic'"], "kali_only": False }, "wpscan": { "url": "https://github.com/wpscanteam/wpscan.git", "post_install": [ "cd /opt/wpscan && gem install bundler && bundle install", "echo 'Get WPScan API token: https://wpscan.com/'" ], "kali_only": False }, "pdtm": { "url": "https://github.com/projectdiscovery/pdtm.git", "post_install": [ "cd /opt/pdtm && go install", "echo 'ProjectDiscovery Tool Manager installed - run: pdtm -install-all'" ], "kali_only": False }, } # Python Tools - Installed via pip3 PYTHON_TOOLS = [ "wfuzz", "arjun", "scrapy", "tld", "requests", "fuzzywuzzy", "shodan", # Shodan CLI "bloodhound", # bloodhound-python "jwt-tool", # JWT manipulation ] # Go Tools - Installed via go install GO_TOOLS = { "naabu": "github.com/projectdiscovery/naabu/v2/cmd/naabu@latest", "nuclei": "github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest", "katana": "github.com/projectdiscovery/katana/cmd/katana@latest", "httpx": "github.com/projectdiscovery/httpx/cmd/httpx@latest", "subfinder": "github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest", "amass": "github.com/OWASP/Amass/v3/...@master", "assetfinder": "github.com/tomnomnom/assetfinder@latest", "httprobe": "github.com/tomnomnom/httprobe@latest", "gowitness": "github.com/sensepost/gowitness@latest", "subjack": "github.com/haccer/subjack@latest", "hakrawler": "github.com/hakluke/hakrawler@latest", "webanalyze": "github.com/rverton/webanalyze/cmd/webanalyze@latest", "kerbrute": "github.com/ropnop/kerbrute@latest", "gau": "github.com/lc/gau/v2/cmd/gau@latest", "waybackurls": "github.com/tomnomnom/waybackurls@latest", "kiterunner": "github.com/assetnote/kiterunner/cmd/kiterunner@latest", } # Docker Tools DOCKER_TOOLS = { "rustscan": { "image": "rustscan/rustscan:2.0.1", "alias": "alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:2.0.1'" }, } # Useful Scripts - Downloaded to ~/scripts/payloads USEFUL_SCRIPTS = { "linpeas.sh": "https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh", "jaws-enum.ps1": "https://github.com/411Hall/JAWS/raw/master/jaws-enum.ps1", "LinEnum.sh": "https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh", "winPEASany_ofs.exe": "https://github.com/carlospolop/PEASS-ng/releases/download/20230122/winPEASany_ofs.exe", "php-reverse-shell.php": "https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php", "linux-exploit-suggester.sh": "https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh", "PowerView.ps1": "https://github.com/PowerShellMafia/PowerSploit/raw/master/Recon/PowerView.ps1", } # ============================================================================ # Installation Profiles # ============================================================================ PROFILES = { "bug-bounty": { "name": "Bug Bounty Hunter", "description": "Tools for bug bounty hunting and web application testing", "categories": { "apt": ["nmap", "masscan", "nikto", "sqlmap", "burpsuite", "git"], "go": ["nuclei", "httpx", "subfinder", "katana", "amass", "assetfinder", "httprobe"], "opt": ["Sublist3r", "wafw00f", "XSStrike"], "python": ["wfuzz", "arjun", "requests"], "scripts": True, # Install all scripts } }, "ctf": { "name": "CTF Player", "description": "Tools for Capture The Flag competitions", "categories": { "apt": ["nmap", "burpsuite", "sqlmap", "git", "wireshark"], "python": ["wfuzz", "scrapy", "requests"], "scripts": True, } }, "web-app": { "name": "Web Application Testing", "description": "Focused on web application security testing", "categories": { "apt": ["nmap", "nikto", "sqlmap", "burpsuite"], "go": ["nuclei", "httpx", "katana"], "opt": ["wafw00f", "XSStrike", "Striker"], "python": ["wfuzz", "arjun", "scrapy"], } }, "network": { "name": "Network Pentesting", "description": "Network reconnaissance and scanning tools", "categories": { "apt": ["nmap", "masscan", "wireshark"], "go": ["naabu", "amass", "assetfinder", "httprobe"], "docker": ["rustscan"], } }, "full-pentest": { "name": "Full Pentesting Arsenal", "description": "Complete toolset for comprehensive penetration testing", "categories": { "apt": "all", "go": "all", "opt": "all", "python": "all", "docker": "all", "scripts": True, } }, } # ============================================================================ # Category Metadata # ============================================================================ CATEGORIES = { "apt": { "name": "APT Tools", "description": "Tools installed via apt package manager", "icon": "📦", "requires_sudo": True, }, "go": { "name": "Go Tools", "description": "Security tools written in Go", "icon": "🔷", "requires_sudo": False, }, "opt": { "name": "/opt Tools", "description": "Tools cloned to /opt directory", "icon": "🔧", "requires_sudo": True, }, "python": { "name": "Python Tools", "description": "Tools installed via pip3", "icon": "🐍", "requires_sudo": False, }, "docker": { "name": "Docker Tools", "description": "Containerized security tools", "icon": "🐳", "requires_sudo": False, }, "scripts": { "name": "Useful Scripts", "description": "PEAS, PowerView, and other scripts", "icon": "📜", "requires_sudo": False, }, } # ============================================================================ # Helper Functions # ============================================================================ def get_apt_tools_for_distro(distro_type: str) -> List[str]: """ Get appropriate APT tools list for distro Args: distro_type: One of 'kali', 'debian', 'ubuntu', 'unknown' Returns: List of APT package names """ if distro_type == 'kali': return APT_TOOLS_KALI elif distro_type in ['debian', 'ubuntu']: return APT_TOOLS_DEBIAN else: # Conservative list for unknown distros return [ "nmap", "nikto", "sqlmap", "git", "docker.io", ] def get_opt_tools_for_distro(distro_type: str) -> Dict: """ Get appropriate /opt tools for distro Args: distro_type: One of 'kali', 'debian', 'ubuntu', 'unknown' Returns: Dictionary of /opt tools """ if distro_type == 'kali': return OPT_TOOLS # Filter out Kali-only tools for other distros return { name: config for name, config in OPT_TOOLS.items() if not config.get('kali_only', False) } def get_profile(profile_name: str) -> Dict: """ Get profile configuration by name Args: profile_name: Profile identifier Returns: Profile configuration dictionary or None """ return PROFILES.get(profile_name) def list_profiles() -> List[str]: """ Get list of available profile names Returns: List of profile names """ return list(PROFILES.keys())