From 250e2284f67fec3dfade37ad3f419172b64fd6bc Mon Sep 17 00:00:00 2001 From: rpriven <74690648+rpriven@users.noreply.github.com> Date: Thu, 26 Jan 2023 02:27:31 -0700 Subject: [PATCH] Create toolbelt.py Updated to python version of toolbelt --- toolbelt.py | 306 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 toolbelt.py diff --git a/toolbelt.py b/toolbelt.py new file mode 100644 index 0000000..0183035 --- /dev/null +++ b/toolbelt.py @@ -0,0 +1,306 @@ +#!/usr/bin/python3 + +###################### +''' Djedi Toolbelt ''' +''' Python3 Reboot ''' +###################### + +''' +######################################################################### + +WARNING: + + This script is approximately 5 GB and will take a while to run. + + Please make sure you check this before installing. + + Menu will be coming in one of the next updates to help + cater to your preferences and custom requirements. + +######################################################################### +''' + +''' +TO DO: + + Finish - apt threading (sort of, with apt-fast) + + Add - Menu selection for the various categories: + - apt tools only + - opt tools only + - python tools only + - go tools only + - docker tools only + - scripts only + + Threading for /opt tools + + Find out where scripts are actually downloading + + Add C2 - Probably Havoc + Add PowerView (if not already included) + + Double-check all tools + + Add section for Bug Bounty tools + + Add section for API tools + + Add option to download the recon.py automation script, + which uses this toolbelt + +''' + +import subprocess, os, threading +from concurrent.futures import ThreadPoolExecutor, as_completed +from termcolor import colored +from tqdm import tqdm + +threads = [] + +# Check if the user is running as root +if os.geteuid() != 0: + print(colored("Please run as root", 'red')) + exit(1) + +''' +subprocess.run(["pip", "install", "progress"]) + +tools = ["tool1", "tool2", "tool3"] +bar = Bar('Installing', max=len(tools)) +for tool in tools: + # Code to install the tool + bar.next() +bar.finish() +''' + +# Figlet +os.system("figlet DjediToolbelt | lolcat") + +# Version +print("v.0.3\n") + +# Message +print(colored("[*] Installing Pentest & Bug Bounty Toolbox Suite", 'magenta')) + +######################### +''' Aptitude Programs ''' +######################### + +def apt_tools(): + subprocess.run(["sudo", "apt", "update"]) + subprocess.run(["sudo", "apt", "install", "apt-fast"]) + + programs = ["nmap", "naabu", "nuclei", "burpsuite", "feroxbuster", "nikto", "masscan", "gobuster", "seclists", "sqlmap", "git"] + + for program in programs: + if os.system(f"command -v {program}") == 0: + print(colored(f"[*] {program} is already installed", 'blue')) + else: + print(colored(f"[+] Installing / updating {program}", 'green')) + os.system(f"sudo apt-fast install {program} -y") + if os.system(f"command -v {program}") != 0: + print(colored(f"[*] Error: Failed to install the program: {program}", 'red')) + exit(1) + os.system(f"sudo apt-fast install docker docker.io golang-go -y") + +################## +''' /opt Tools ''' +################## + +def opt_tools(): + # Pimpmykali + os.chdir("/opt") + if not os.path.isdir("/opt/pimpmykali"): + print(colored("[+] Installing pimpmykali...", 'green')) + os.system("sudo git clone https://github.com/Dewalt-arch/pimpmykali") + os.chdir("pimpmykali") + print(colored("[+] Installing Golang...", 'green')) + os.system("sudo ./pimpmykali.sh --go") + print(colored("[+] Installing Impacket...", 'green')) + os.system("sudo ./pimpmykali.sh --impacket") + os.system("sudo ./pimpmykali.sh --upgrade") + os.chdir("/opt") + else: + print(colored("[*] pimpmykali is already installed", 'blue')) + + # xnLinkFinder + if not os.path.isdir("/opt/xnLinkFinder"): + print(colored("[+] Installing xnLinkFinder...", 'green')) + os.system("git clone https://github.com/xnl-h4ck3r/xnLinkFinder.git") + os.chdir("xnLinkFinder") + os.system("sudo python setup.py install") + os.chdir("/opt") + else: + print(colored("[*] xnLinkFinder is already installed", 'blue')) + + # Knockpy + if not os.path.isdir("/opt/knock"): + print(colored("[+] Installing Knockpy...", 'green')) + os.system("sudo git clone https://github.com/guelfoweb/knock.git") + os.chdir("knock") + os.system("pip3 install -r requirements.txt") + os.chdir("/opt") + else: + print(colored("[*] Knockpy is already installed", 'blue')) + + # Sublist3r + if not os.path.isdir("/opt/Sublist3r"): + print(colored("[+] Installing Sublist3r...", 'green')) + os.system("sudo git clone https://github.com/aboul3la/Sublist3r.git") + os.chdir("Sublist3r") + os.system("pip install -r requirements.txt") + os.chdir("/opt") + else: + print(colored("[*] Sublist3r is already installed", 'blue')) + + # Striker + if not os.path.isdir("/opt/Striker"): + print(colored("[+] Installing Striker...", 'green')) + os.system("sudo git clone https://github.com/s0md3v/Striker.git") + os.chdir("Striker") + os.system("pip install -r requirements.txt") + os.chdir("/opt") + else: + print(colored("[*] Striker is already installed", 'blue')) + + # wafw00f + if not os.path.isdir("/opt/wafw00f"): + print(colored("[+] Installing wafw00f...", 'green')) + os.system("git clone https://github.com/EnableSecurity/wafw00f.git") + os.chdir("wafw00f") + os.system("pip3 install -r requirements.txt") + os.system("sudo python setup.py install") + os.chdir("/opt") + else: + print(colored("[*] wafw00f is already installed", 'blue')) + + # Waymore + if not os.path.isdir("/opt/waymore"): + print(colored("[+] Installing waymore...", 'green')) + os.system("git clone https://github.com/xnl-h4ck3r/waymore.git") + os.chdir("waymore") + os.system("pip3 install -r requirements.txt") + os.system("sudo python setup.py install") + os.chdir("/opt") + else: + print(colored("[*] waymore is already installed", 'blue')) + + # XSStrike + if not os.path.isdir("/opt/XSStrike"): + print(colored("[+] Installing XSStrike...", 'green')) + os.system("git clone https://github.com/s0md3v/XSStrike.git") + os.chdir("XSStrike") + os.system("pip3 install -r requirements.txt") + os.system("sudo python setup.py install") + os.chdir("/opt") + else: + print(colored("[*] XSStrike is already installed", 'blue')) + +#################### +''' Python Tools ''' +#################### + +def python_tools(): + print(colored("[+] Installing / Updating Python Tools...", 'green')) + subprocess.run(["pip3", "install", "--upgrade", "wfuzz"]) + subprocess.run(["pip3", "install", "arjun"]) + subprocess.run(["pip3", "install", "scrapy"]) + subprocess.run(["pip3", "install", "tld"]) + subprocess.run(["pip3", "install", "requests"]) + subprocess.run(["pip3", "install", "fuzzywuzzy"]) + +################ +''' Go Tools ''' +################ + +def go_tools(): + print(colored("[+] Installing / Updating Go Tools...", 'green')) + commands = [ + ["go", "install", "-v", "github.com/projectdiscovery/naabu/v2/cmd/naabu@latest"], + ["go", "install", "-v", "github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest"], + ["go", "install", "-v", "github.com/projectdiscovery/katana/cmd/katana@latest"], + ["go", "install", "-v", "github.com/projectdiscovery/httpx/cmd/httpx@latest"], + ["go", "install", "-v", "github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest"], + ["go", "install", "-v", "github.com/OWASP/Amass/v3/...@master"], + ["go", "install", "-v", "github.com/tomnomnom/assetfinder@latest"], + ["go", "install", "-v", "github.com/tomnomnom/httprobe@latest"], + ["go", "install", "-v", "github.com/sensepost/gowitness@latest"], + ["go", "install", "-v", "github.com/haccer/subjack@latest"], + ["go", "install", "-v", "github.com/hakluke/hakrawler@latest"], + ["go", "install", "-v", "github.com/rverton/webanalyze/cmd/webanalyze@latest"], + ] + + with ThreadPoolExecutor() as executor: + results = [executor.submit(subprocess.run, cmd) for cmd in commands] + for f in as_completed(results): + print(colored(f.result(), 'green')) + +#################### +''' Docker Tools ''' +#################### + +def docker_tools(): + # RustScan + print(colored("[+] Installing / Updating RustScan...", 'green')) + os.system("docker pull rustscan/rustscan:2.0.1") + if os.path.isfile("~/.zshrc"): + print(colored("[+] adding rustscan alias to ~/.zshrc", 'green')) + with open("~/.zshrc", "a") as f: + f.write("alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:2.0.1'") + elif os.path.isfile("~/.bashrc"): + print(colored("[+] adding rustscan alias to ~/.bashrc", 'green')) + with open("~/.bashrc", "a") as f: + f.write("alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:2.0.1'") + +############### +''' Scripts ''' +############### + +def useful_scripts(): + def scripts_dir(): + if not os.path.isdir(os.path.expanduser("~/scripts")): + # os.chdir(["cd", os.path.expanduser("~")]) + os.chdir(os.path.expanduser("~")) + os.makedirs(os.path.expanduser("~/scripts"), exist_ok=True) + os.chdir(os.path.expanduser("~/scripts")) + subprocess.run(["echo", "created", "scripts", "and", "moved", "into", "it"]) + else: + os.chdir(os.path.expanduser("~/scripts")) + subprocess.run(["echo", "directory", "/scripts", "already", "exists,", "moving", "into", "it"]) + + scripts_dir() + + scripts = ["https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh", "https://github.com/411Hall/JAWS/raw/master/jaws-enum.ps1", "https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh", "https://github.com/carlospolop/PEASS-ng/releases/download/20230122/winPEASany_ofs.exe", "https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php", "https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh", "https://github.com/PowerShellMafia/PowerSploit/raw/master/Recon/PowerView.ps1"] + + script_threads = [] + + def download_script_thread(script): + subprocess.run(f"wget {script}", shell=True) + + def download_script(scripts): + for script in tqdm(scripts): + print(colored(f"[+] Grabbing {script}", 'green')) + t = threading.Thread(target=download_script_thread, args=(script,)) + script_threads.append(t) + t.start() + + for t in script_threads: + t.join() + + print(colored("[*] All scripts downloaded", 'green')) + + download_script(scripts) + +try: + apt_tools() + opt_tools() + go_tools() + docker_tools() + useful_scripts() +except KeyboardInterrupt: + print(colored(f"[*] Exiting: KeyboardInterrupt", 'red')) + +print(colored("[*] Installation Complete", 'magenta')) +print(colored("[*] Reboot Recommended", 'magenta')) +print(colored("[*] You are now Equipped!", 'green'))