Create toolbelt.py
Updated to python version of toolbelt
This commit is contained in:
parent
04543a5eef
commit
250e2284f6
1 changed files with 306 additions and 0 deletions
306
toolbelt.py
Normal file
306
toolbelt.py
Normal file
|
|
@ -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'))
|
||||
Loading…
Add table
Reference in a new issue