toolbelt/toolbelt.py
rpriven 250e2284f6
Create toolbelt.py
Updated to python version of toolbelt
2023-01-26 02:27:31 -07:00

306 lines
11 KiB
Python

#!/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'))