485 lines
16 KiB
Python
485 lines
16 KiB
Python
#!/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())
|