OSCP notesExtended library
Browse tracks

Extra tools to obtain

Prepare Kali once, then return to the linked procedure when you need a tool. All Bash blocks on this page run inside Kali, unless a block is explicitly labelled for a Windows build machine. Internet access is needed for installation and downloads; no setup block scans or authenticates to a target.

Complete sections 1–3 for the baseline. Section 4 contains alternatives, legacy sources and tools that need additional configuration: prepare only those you choose. An existing checkout should be reviewed/updated deliberately; skip its git clone rather than cloning over it. A failed download or build is unfinished preparation, not a usable tool.

1. Prepare the workspace

mkdir -p "$HOME/oscp/tools"/{repos,venvs,downloads,bin,config,receivers,artifacts/{linux/{x64,x86},windows/{x64,x86}}} "$HOME/oscp/work"
export PATH="$HOME/oscp/tools/bin:$HOME/.local/bin:$PATH"
sudo apt update
sudo apt install git curl unzip file bzip2 python3-venv pipx peass

Keep source checkouts in repos, isolated Python environments in venvs, archives in downloads, Kali executables in bin and deliverable files in artifacts. The PATH change applies to this shell; add the same export once to ~/.zshrc (or your actual shell's startup file) if you want it in future terminals. Explicit paths below also work without changing PATH.

Prefer Kali packages when available. A project with extra Python dependencies needs its own virtual environment; do not use sudo pip or override Kali's externally managed Python environment. Python application isolation.

2. Install tools used on Kali

Install the baseline's shared Kali packages together. Existing packages are retained or updated by APT; review its proposed changes before accepting.

Check tools normally bundled with Kali

Tools such as ffuf, Nmap, NetExec and Impacket are still used throughout these notes. Being bundled with the standard Kali toolset does not guarantee availability on a minimal, older or customized VM:

command -v ffuf nmap nxc impacket-mssqlclient
ffuf -V

If a command is missing, install its package from the lookup below; for example:

sudo apt install ffuf
Bundled Kali tools used in the notes — packages and owning pages

This lookup describes the standard Kali default toolset and base system, not every optional Kali package or every possible image. Package availability and actual installation are separate checks. Install only the missing package you need.

Tool / familyKali packageUsed in these notes
Apache HTTP Serverapache2File Inclusion Vulnerabilty
BashbashNetwork Scan
BIND tools: dig and hostbind9-dnsutils, bind9-host53 - DNS
BusyBoxbusyboxTransfer Files
CeWLcewlBrute Forcing
creddump7creddump7Windows Privesc
CrunchcrunchBrute Forcing
curlcurlNetwork Scan
DIRBdirb80, 443 - HTTP/S
dpkgdpkgLinux Enumeration
enum4linuxenum4linuxNetwork Scan
Evil-WinRMevil-winrmAD Lateral Movement
ffufffuf53 - DNS
FTP clientftpNetwork Scan
GNU coreutilscoreutilsNetwork Scan
GNU findutilsfindutils80, 443 - HTTP/S
GNU grepgrep389, 636, 3268, 3269 - LDAP
GNU sedsedBrute Forcing
Gobustergobuster53 - DNS
HashcathashcatWindows Privesc
HydrahydraBrute Forcing
Impacket examplespython3-impacket, impacket-scripts135, 593 - MSRPC
iproute2: ip and ssiproute2Linux Enumeration
John the Ripper and kirbi2johnjohn389, 636, 3268, 3269 - LDAP
kmod: lsmod and modinfokmodLinux Enumeration
ldap3python3-ldap3389, 636, 3268, 3269 - LDAP
linPEASpeassLinux Privesc
Linux capabilities: getcaplibcap2-binLinux Privesc
MasscanmasscanNetwork Scan
MedusamedusaBrute Forcing
Metasploit / msfvenom / Meterpretermetasploit-framework3306 - Mysql
MimikatzmimikatzAD Authentication
mkpasswdwhoisLinux Privesc
MySQL clientmariadb-client3306 - Mysql
NBTscannbtscan139, 445 - SMB
Net-SNMP: snmpwalksnmpNetwork Scan
net-tools: ifconfig and routenet-toolsFile Inclusion Vulnerabilty
Netcatnetcat-traditional, windows-binariesNetwork Scan
NetExecnetexec139, 445 - SMB
NFS utilities: showmountnfs-commonNetwork Scan
Niktonikto80, 443 - HTTP/S
Nmap and NSEnmapNetwork Scan
Nucleinuclei80, 443 - HTTP/S
onesixtyoneonesixtyone161 - SNMP
OpenLDAP: ldapsearchldap-utils389, 636, 3268, 3269 - LDAP
OpenSSH: ssh and scpopenssh-clientServices Exploitation
OpenSSLopenssl25, 465, 587 - SMTP
Passing-the-hash toolkitpassing-the-hashWindows Privesc
Pentestmonkey PHP reverse shellwebshellsReverse/Bind Shells
PHPphp80, 443 - HTTP/S
PostgreSQL: psqlpostgresql-client5432 - Postgres
PowerUppowersploitWindows Privesc
PowerViewpowersploitAD Manual Enumeration
ProxyChains-NGproxychains4Reverse/Bind Shells
pwdump / fgdump (legacy tool directory)windows-binariesWindows Privesc
Pythonpython3Network Scan
rdesktoprdesktopAD Lateral Movement
Redis CLIredis-toolsSQL Injection
rpcclient and smbclientsmbclientNetwork Scan
RubyrubyTransfer Files
samdump2samdump2Windows Privesc
SearchSploit / Exploit-DBexploitdbServices Exploitation
SMBMapsmbmap139, 445 - SMB
SocatsocatTransfer Files
SQLite CLIsqlite3SQL Injection
sqshsqshSQL Injection
sudosudoNetwork Scan
systemd: systemctlsystemdLinux Privesc
Telnettelnet21 - FTP
UPXupx-uclWindows Downloads
util-linux: mount, lsblk, namei and suutil-linux111 - NFS/RPC
Wapitiwapiti80, 443 - HTTP/S
Wfuzzwfuzz53 - DNS
Wgetwget21 - FTP
WhatWebwhatweb80, 443 - HTTP/S
WHOISwhois53 - DNS
winPEASpeassWindows Privesc
WPScanwpscanWeb Application Attacks
sudo apt install autorecon enum4linux-ng sslscan smbclient snmp nfs-common seclists python3-ldapdomaindump sharphound

AutoRecon · enum4linux-ng · SecLists · ldapdomaindump · SharpHound

AutoRecon

Runs on Kali. Use the existing selected-plugin profile; installation does not select a safe scan profile automatically. Upstream.

Create the shared AutoRecon profile once. Keep an existing reviewed file, or choose a new filename and use that same path in your runs.

mkdir -p "$HOME/oscp/tools/config"
( set -o noclobber
cat > "$HOME/oscp/tools/config/autorecon.toml" <<'EOF'
exclude-tags = "default"
port-scans = "top-tcp-ports,all-tcp-ports"
service-scans = "curl,curl-robots,ssl-scan,enum4linux,smbclient,snmpwalk,showmount"
reports = "markdown"
max-scans = 8
max-port-scans = 2

[enum4linux]
tool = "enum4linux-ng"
EOF
)

Excluding the default tag disables its automatic plugin selection; the explicitly listed port/service/report plugins override that exclusion. Without this guard, additional default-tagged plugins can still run. This uses installed plugins, with no custom plugin directory or Python launcher. Eight total scans/two port scans are an initial concurrency limit, not a speed guarantee. Nmap timing stays at AutoRecon's default. Review local global settings and generated commands if customized. A missing plugin/dependency is a setup failure, not a negative result. Configuration and plugin controls.

Check on Kali:

autorecon --version
autorecon --config "$HOME/oscp/tools/config/autorecon.toml" --list

Use AutoRecon · Setup source

enum4linux-ng

Runs on Kali. SMB/RPC inventory; do not duplicate an already complete pass. Upstream.

Check on Kali:

enum4linux-ng -h

Use enum4linux-ng · Setup source

SecLists

Shared wordlists used by the web/password procedures. Available as a Kali package but not guaranteed by the default toolset; inspect the selected file and its size. Upstream.

Check on Kali:

test -s /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
ls /usr/share/seclists/Passwords

Use SecLists · Setup source

ldapdomaindump

Runs on Kali. Readable LDAP inventory; credentials/connectivity are supplied only when using the procedure. Upstream.

Check on Kali:

ldapdomaindump --help

Use ldapdomaindump · Setup source

Chisel

Matched upstream 1.12.0 amd64 builds for Kali/Linux and Windows. Use this explicit path if a different Kali-packaged version is installed; keep both tunnel ends on the chosen release. Upstream.

curl -fL https://github.com/jpillora/chisel/releases/download/v1.12.0/chisel_1.12.0_linux_amd64.gz -o "$HOME/oscp/tools/downloads/chisel-linux.gz"
gzip -dc "$HOME/oscp/tools/downloads/chisel-linux.gz" > "$HOME/oscp/tools/bin/chisel"
chmod u+x "$HOME/oscp/tools/bin/chisel"
cp "$HOME/oscp/tools/bin/chisel" "$HOME/oscp/tools/artifacts/linux/x64/chisel"
curl -fL https://github.com/jpillora/chisel/releases/download/v1.12.0/chisel_1.12.0_windows_amd64.zip -o "$HOME/oscp/tools/downloads/chisel-windows.zip"
unzip -o "$HOME/oscp/tools/downloads/chisel-windows.zip" -d "$HOME/oscp/tools/artifacts/windows/x64/chisel"

Check on Kali:

"$HOME/oscp/tools/bin/chisel" --version
file "$HOME/oscp/tools/artifacts/windows/x64/chisel/"*.exe

Use Chisel · Setup source

3. Prepare tools delivered to targets

These commands prepare files on Kali. They do not run the Windows/Linux collectors against a target. Match the target's OS, architecture and runtime before copying a file; an artifact directory name is not proof of compatibility.

Prepare the packaged PEAS artifacts

PEAS is supplied by the shared peass package above. Copy the script and architecture-specific executables without changing the installed package:

cp /usr/share/peass/linpeas/linpeas.sh "$HOME/oscp/tools/artifacts/linux/linpeas.sh"
cp /usr/share/peass/winpeas/winPEASx64.exe "$HOME/oscp/tools/artifacts/windows/x64/winPEASx64.exe"
cp /usr/share/peass/winpeas/winPEASx86.exe "$HOME/oscp/tools/artifacts/windows/x86/winPEASx86.exe"
file "$HOME/oscp/tools/artifacts/windows/"{x64/winPEASx64.exe,x86/winPEASx86.exe}

Use the existing Linux first pass or Windows first pass to select a run. PEAS findings still need manual verification. If a package path changes, inspect dpkg -L peass; do not substitute an unrelated executable silently.

pspy

Runs on a Linux x64 target. Static upstream binary; choose pspy32 for i386. Only its help is suitable for a local preparation check; monitoring belongs to the target procedure. Upstream.

curl -fL https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64 -o "$HOME/oscp/tools/artifacts/linux/x64/pspy64"
chmod u+x "$HOME/oscp/tools/artifacts/linux/x64/pspy64"

Check on Kali:

file "$HOME/oscp/tools/artifacts/linux/x64/pspy64"

Use pspy · Setup source

PrivescCheck

Runs in Windows PowerShell on the target. Download the standalone release, not an incomplete development source tree. File presence is not target execution validation. Upstream.

curl -fL https://github.com/itm4n/PrivescCheck/releases/latest/download/PrivescCheck.ps1 -o "$HOME/oscp/tools/artifacts/windows/PrivescCheck.ps1"

Check on Kali:

test -s "$HOME/oscp/tools/artifacts/windows/PrivescCheck.ps1"
head -n 3 "$HOME/oscp/tools/artifacts/windows/PrivescCheck.ps1"

Use PrivescCheck · Setup source

AccessChk

Windows native binaries. Keep the extracted package and select accesschk.exe for x86 or accesschk64.exe for x64; read the bundled EULA. Upstream.

curl -fL https://download.sysinternals.com/files/AccessChk.zip -o "$HOME/oscp/tools/downloads/AccessChk.zip"
unzip -o "$HOME/oscp/tools/downloads/AccessChk.zip" -d "$HOME/oscp/tools/artifacts/windows/accesschk"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/accesschk/accesschk64.exe"

Use AccessChk · Setup source

SharpHound

Runs on a Windows collection host. Keep companion files and match the collector to the installed BloodHound CE ingestion version. Upstream.

cp -a /usr/share/sharphound "$HOME/oscp/tools/artifacts/windows/"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/sharphound/SharpHound.exe"

Use SharpHound · Setup source

Stage only the files selected for a target

Replace TARGET with your private working label. Create this directory only when preparing that host; it is separate from the reusable tool store.

mkdir -p "$HOME/oscp/work/TARGET/"{staging,evidence}
cp "$HOME/oscp/tools/artifacts/linux/linpeas.sh" "$HOME/oscp/work/TARGET/staging/"
sha256sum "$HOME/oscp/work/TARGET/staging/linpeas.sh"

For a Windows host, choose its matching files instead. Keep complete companion directories together, especially SharpHound and native/scripts/ad-map. Use the existing transfer instructions from the selected staging directory; do not serve your entire tool or evidence store. Compare the transferred file's hash where supported.

4. Optional tools and configuration

These are alternatives or conditional additions, not another mandatory installation pass. Setup is shared with the owning track; Use links return to its operational commands. Windows-source builds require a separate compatible Windows build environment, not merely a source clone on Kali.

Reusable profiles, endpoints and packaged files

These are shared recipes from the owning procedures, including stock tools. Prepare static files once. Server startup and per-host receiving directories remain conditional; do not run every listener during baseline preparation.

Configure Legacy Samba client profile

Optional Kali client profile for an evidenced SMB1/NT1-only endpoint. It is not needed for the normal SMB procedure and does not modify /etc/samba/smb.conf. Samba client configuration.

sudo apt install smbclient samba-common-bin
mkdir -p "$HOME/oscp/tools/config"
( set -o noclobber
cat > "$HOME/oscp/tools/config/smb-legacy.conf" <<'EOF'
[global]
client min protocol = NT1
client max protocol = SMB3
EOF
)
testparm -s "$HOME/oscp/tools/config/smb-legacy.conf"

Keep normal defaults for modern endpoints. Pass this file with smbclient -s only for the selected compatibility check; protocol negotiation and authentication are separate issues. The profile does not enable NTLMv1 or prove that credentials work. Keep an existing reviewed file rather than overwriting it.

Use Legacy Samba client profile · Setup source

Configure Kali SSH endpoint

Optional Kali endpoint for the existing SCP and Plink reverse-forward procedures. Use your ordinary Kali account; neither root login nor a global trust change is required. OpenSSH server configuration.

sudo apt install openssh-server
sudo sshd -t
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

The syntax check must succeed. Record/compare the server key fingerprint when connecting; the fingerprint is host-specific and stays private. Start the service only when that workflow needs it:

sudo systemctl start ssh.service
systemctl is-active ssh.service
ss -ltn '( sport = :22 )'

The intended host must be able to reach the endpoint. An active service/listener does not prove remote reachability or successful authentication. If forwarding is denied by policy, review the specific SSH restriction rather than enabling root login. Stop it only if you started it solely for the finished task:

sudo systemctl stop ssh.service

Use Kali SSH endpoint · Setup source

Prepare packaged Windows support files when selected

PowerUp, PowerView, Mimikatz and Windows Netcat are used in the existing tracks. Prepare only the files selected for a procedure; match architecture and access requirements. These commands copy files on Kali without executing them. Kali PowerSploit, Mimikatz and Windows binaries.

sudo apt install windows-binaries powersploit mimikatz
mkdir -p "$HOME/oscp/tools/artifacts/windows/"{powersploit,mimikatz}
cp /usr/share/windows-resources/binaries/nc.exe "$HOME/oscp/tools/artifacts/windows/x86/nc.exe"
cp /usr/share/windows-resources/powersploit/Privesc/PowerUp.ps1 "$HOME/oscp/tools/artifacts/windows/powersploit/"
cp /usr/share/windows-resources/powersploit/Recon/PowerView.ps1 "$HOME/oscp/tools/artifacts/windows/powersploit/"
cp -a /usr/share/windows-resources/mimikatz/Win32 /usr/share/windows-resources/mimikatz/x64 "$HOME/oscp/tools/artifacts/windows/mimikatz/"
file "$HOME/oscp/tools/artifacts/windows/x86/nc.exe" "$HOME/oscp/tools/artifacts/windows/mimikatz/"{Win32,x64}/mimikatz.exe
test -s "$HOME/oscp/tools/artifacts/windows/powersploit/PowerUp.ps1"
test -s "$HOME/oscp/tools/artifacts/windows/powersploit/PowerView.ps1"

Keep the matching complete Mimikatz directory together. Return to PowerUp, PowerView, or credential-access prerequisites for actual use. Use target staging before transfer. File checks do not establish Windows execution.

Use Packaged Windows support files · Setup source

Configure HTTP file receiver

Optional Kali HTTP receiver for the existing .NET UploadFile method. Prepare the PHP endpoint once; select a separate receiving directory and listen address for each use. This uses a foreground PHP server, not a change to the global Apache webroot. PHP upload handling.

sudo apt install php-cli
mkdir -p "$HOME/oscp/tools/receivers/http"
( set -o noclobber
cat > "$HOME/oscp/tools/receivers/http/upload.php" <<'PHP'
<?php
$directory = getenv('OSCP_UPLOAD_DIR');
if (!$directory || !is_dir($directory) || !isset($_FILES['file']) || $_FILES['file']['error'] !== UPLOAD_ERR_OK) {
    http_response_code(400);
    exit('Invalid upload');
}
$name = basename($_FILES['file']['name']);
$destination = $directory . DIRECTORY_SEPARATOR . $name;
if ($name === '' || file_exists($destination)) {
    http_response_code(409);
    exit('Choose a new filename');
}
if (!move_uploaded_file($_FILES['file']['tmp_name'], $destination)) {
    http_response_code(500);
    exit('Upload failed');
}
echo 'Saved';
PHP
)
php -l "$HOME/oscp/tools/receivers/http/upload.php"

Keep an existing reviewed script, or choose a different endpoint directory. When needed, replace TARGET with the private host label and LHOST with Kali's reachable interface address. Start in the foreground:

mkdir -p "$HOME/oscp/work/TARGET/received"
export OSCP_UPLOAD_DIR="$HOME/oscp/work/TARGET/received"
php -S LHOST:8000 -t "$HOME/oscp/tools/receivers/http"

Use /upload.php in the existing client command. Inspect the received filename/content and compare its hash; a Saved response alone does not establish byte-for-byte integrity. PHP's configured request/upload size limits still apply. Stop this receiver with Ctrl+C when finished; do not serve the evidence directory itself.

Use HTTP file receiver · Setup source

Configure TFTP file receiver

Conditional fallback when a Windows TFTP client is already available and UDP connectivity permits the transfer. Prepare the server package on Kali. APT may start a packaged service under the local service policy; check systemctl status atftpd and sudo ss -lunp before starting the foreground receiver. Do not start a second listener on an occupied port. Kali atftp/atftpd documentation.

sudo apt install atftpd
atftpd --help

For one selected transfer, replace TARGET, FILE and LHOST. Precreate the receiving file and run the server in the foreground under your ordinary Kali identity after binding the UDP port:

mkdir -p "$HOME/oscp/work/TARGET/received"
touch "$HOME/oscp/work/TARGET/received/FILE"
sudo atftpd --daemon --no-fork --user "$(id -un)" --group "$(id -gn)" --bind-address LHOST --port 69 --pidfile "$HOME/oscp/work/TARGET/atftpd.pid" "$HOME/oscp/work/TARGET/received"

Use that exact FILE destination in the target's put command. This unauthenticated protocol is an on-demand transfer fallback, not a permanently running baseline service. Check the resulting file/hash, and stop the foreground receiver with Ctrl+C when finished. If a target lacks TFTP or the path is blocked, use the existing HTTP/SCP/SMB choices rather than enabling target features by default.

Use TFTP file receiver · Setup source

Configure SOCKS client profile

Prepare one explicit ProxyChains profile on Kali; it works with either the existing Chisel reverse SOCKS transport or SSH dynamic forwarding. It does not create a tunnel. ProxyChains upstream.

mkdir -p "$HOME/oscp/tools/config"
( set -o noclobber
cat > "$HOME/oscp/tools/config/proxychains-oscp.conf" <<'EOF'
strict_chain
proxy_dns
[ProxyList]
socks5 127.0.0.1 1080
EOF
)

Keep an existing reviewed profile, or use a new name. If the actual SOCKS listener uses another port, create a separate profile with that port and pass its path explicitly. Check the local parser without contacting a target:

proxychains4 -f "$HOME/oscp/tools/config/proxychains-oscp.conf" /bin/true

The configuration should load. This does not establish a working listener or route; the owning pivot procedure checks those when the tunnel is running.

Use SOCKS client profile · Setup source

Kali alternatives

Prepare nmapAutomator

Retained alternative, not an additional mandatory pass after AutoRecon. Upstream modes have different dependencies; inspect the selected mode before use. Upstream.

git clone --depth 1 https://github.com/21y4d/nmapAutomator.git "$HOME/oscp/tools/repos/nmapAutomator"

Check on Kali:

bash -n "$HOME/oscp/tools/repos/nmapAutomator/nmapAutomator.sh"

Use nmapAutomator · Setup source

Prepare Feroxbuster

Optional Kali alternative for recursive content discovery. Upstream.

sudo apt install feroxbuster

Check on Kali:

feroxbuster --version

Use Feroxbuster · Setup source

Prepare dirsearch

Optional Kali alternative for path discovery. Upstream.

sudo apt install dirsearch

Check on Kali:

dirsearch --help

Use dirsearch · Setup source

Prepare Chameleon

Optional Rust-based web discovery tool. The config and technology wordlists are required even when the binary builds successfully. The three filename corrections below align the upstream profile with its case-sensitive wordlist checkout. Preserve an existing ~/.config/chameleon installation and review its paths instead of overwriting it. Compilation requires a compatible Rust toolchain; do not use its installer as an opaque substitute for reviewing dependencies. Upstream.

sudo apt install cargo build-essential perl pkg-config
git clone --depth 1 https://github.com/iustin24/chameleon.git "$HOME/oscp/tools/repos/chameleon"
cargo build --release --manifest-path "$HOME/oscp/tools/repos/chameleon/Cargo.toml"
mkdir -p "$HOME/.config/chameleon"
git clone --depth 1 https://github.com/iustin24/chameleon-wordlists.git "$HOME/.config/chameleon/wordlists"
( set -o noclobber; sed -e 's@/GO.txt@/Golang.txt@g' -e 's@/umbraco.txt@/Umbraco.txt@g' -e 's@/Joommla.txt@/Joomla.txt@g' "$HOME/oscp/tools/repos/chameleon/config.toml" > "$HOME/.config/chameleon/config.toml" )

Check on Kali:

"$HOME/oscp/tools/repos/chameleon/target/release/chameleon" --help
python3 - <<'PY'
import pathlib, tomllib
config = pathlib.Path.home() / ".config/chameleon/config.toml"
data = tomllib.loads(config.read_text())
def check(value):
    if isinstance(value, dict):
        for child in value.values():
            check(child)
    elif isinstance(value, str) and value.startswith("~/"):
        path = pathlib.Path(value).expanduser()
        assert path.is_file(), f"Missing configured file: {path}"
check(data)
PY

Use Chameleon · Setup source

Prepare ZAP

Optional general-lab web proxy/scanner. This does not approve active scanner/automation features for the exam; follow the feature-specific restrictions in the owning section. Upstream.

sudo apt install zaproxy

Check on Kali:

zaproxy -version

Use ZAP · Setup source

Prepare MongoDB shell

The existing examples use the legacy mongo client. This optional Kali package supplies that spelling; it may not support modern server/authentication requirements. Use the vendor-supported mongosh client when the actual server requires it; do not assume the two CLIs are identical. Upstream.

sudo apt install mongodb-clients

Check on Kali:

mongo --version

Use MongoDB shell · Setup source

Prepare sqlcmd

Optional official Go sqlcmd for Kali amd64; this is not the separate ODBC mssql-tools package. The existing -S/-U connection form is supported; review encryption/authentication options in the installed help for the actual server. Upstream.

mkdir -p "$HOME/oscp/tools/repos/sqlcmd"
curl -fL https://github.com/microsoft/go-sqlcmd/releases/download/v1.10.0/sqlcmd-linux-amd64.tar.bz2 -o "$HOME/oscp/tools/downloads/sqlcmd.tar.bz2"
tar -xjf "$HOME/oscp/tools/downloads/sqlcmd.tar.bz2" -C "$HOME/oscp/tools/repos/sqlcmd"
ln -s "$HOME/oscp/tools/repos/sqlcmd/sqlcmd" "$HOME/oscp/tools/bin/sqlcmd"

Check on Kali:

"$HOME/oscp/tools/bin/sqlcmd" --version

Use sqlcmd · Setup source

Prepare CUPP

Optional Kali wordlist profiler. It creates a local wordlist, not permission to spray accounts. Upstream.

sudo apt install cupp

Check on Kali:

cupp -h

Use CUPP · Setup source

Prepare Windows Exploit Suggester Next Generation

Runs on Kali. Definition update needs Internet access; host analysis uses a separately collected systeminfo file. Upstream.

git clone --depth 1 https://github.com/bitsadmin/wesng.git "$HOME/oscp/tools/repos/wesng"
cd "$HOME/oscp/tools/repos/wesng"
python3 wes.py --update

Check on Kali:

python3 "$HOME/oscp/tools/repos/wesng/wes.py" --help

Use Windows Exploit Suggester Next Generation · Setup source

Prepare BloodHound.py CE

Optional Kali-side alternative to Windows SharpHound; requires Python/pipx and a compatible BloodHound CE importer. Upstream CE branch. Skip installation if a suitable command already exists; do not replace a managed installation merely to obtain another collector.

pipx install bloodhound-ce
bloodhound-ce-python --help

Help must expose DCOnly, --disable-autogc and --zip. Legacy bloodhound-python uses a different output schema. A successful help screen does not verify domain connectivity or graph ingestion.

Use BloodHound.py CE · Setup source

Prepare bloodyAD

Optional Kali LDAP rights query tool. Upstream. Use an isolated Python environment; keep a suitable existing installation.

pipx install bloodyAD
bloodyAD get writable -h

Help must include --detail and --partition. Select get writable for the inventory above; add, remove and set are separate state-changing operations. Setup/help checks do not authorize target activity.

Use bloodyAD · Setup source

Prepare FreeRDP

FreeRDP 3 client used in the RDP/drive-transfer variants. A minimal/custom image may not have it even if older notes assume xfreerdp. The /version check requires no target. Upstream.

sudo apt install freerdp3-x11

Check on Kali:

xfreerdp3 /version

Use FreeRDP · Setup source

Prepare Remmina

Optional graphical RDP client on Kali; requires a desktop session when used. Prefer one chosen RDP client, not repeated attempts through every GUI. Upstream.

sudo apt install remmina

Check on Kali:

remmina --version

Use Remmina · Setup source

Prepare oletools: MacroRaptor

MacroRaptor runs locally on Kali to inspect a selected Office document. It does not execute the document or prove that a target will run its macros. Upstream.

sudo apt install oletools

Check on Kali:

mraptor -h

Use oletools: MacroRaptor · Setup source

Prepare Kerbrute

Kali amd64 binary. Choose another upstream asset for ARM/i386; this does not authorize or perform authentication attempts. Upstream.

curl -fL https://github.com/ropnop/kerbrute/releases/download/v1.0.3/kerbrute_linux_amd64 -o "$HOME/oscp/tools/bin/kerbrute"
chmod u+x "$HOME/oscp/tools/bin/kerbrute"

Check on Kali:

"$HOME/oscp/tools/bin/kerbrute" version

Use Kerbrute · Setup source

Prepare exe2hex

Legacy transfer encoder, not an installed Kali package in the current repository. Invoke the reviewed Python 3 source explicitly. Encoding does not establish execution, transfer integrity or endpoint compatibility. Upstream.

git clone --depth 1 https://github.com/g0tmi1k/exe2hex.git "$HOME/oscp/tools/repos/exe2hex"

Check on Kali:

python3 "$HOME/oscp/tools/repos/exe2hex/exe2hex.py" -h

Use exe2hex · Setup source

Linux alternatives

Prepare Linux Smart Enumeration

Alternative Linux shell collector; retain its script rather than running a second full inventory by habit. Upstream.

git clone --depth 1 https://github.com/diego-treitos/linux-smart-enumeration.git "$HOME/oscp/tools/repos/linux-smart-enumeration"
cp "$HOME/oscp/tools/repos/linux-smart-enumeration/lse.sh" "$HOME/oscp/tools/artifacts/linux/lse.sh"

Check on Kali:

bash -n "$HOME/oscp/tools/artifacts/linux/lse.sh"

Use Linux Smart Enumeration · Setup source

Prepare Linux Exploit Suggester 2

Optional Perl suggester: run on Kali with the observed target kernel release, or transfer it for target-side use when Perl is available. Matching a kernel string does not account for every distribution backport. Upstream.

git clone --depth 1 https://github.com/jondonas/linux-exploit-suggester-2.git "$HOME/oscp/tools/repos/linux-exploit-suggester-2"
cp "$HOME/oscp/tools/repos/linux-exploit-suggester-2/linux-exploit-suggester-2.pl" "$HOME/oscp/tools/artifacts/linux/linux-exploit-suggester-2.pl"

Check on Kali:

perl -c "$HOME/oscp/tools/artifacts/linux/linux-exploit-suggester-2.pl"

Use Linux Exploit Suggester 2 · Setup source

Windows alternatives and builds

Prepare Our native AD / host helpers

Windows PowerShell 5.1. The repository requires authorized GitHub access; authenticate on Kali when prompted. If you already have a local checkout, use it instead of cloning again. Preserve native/scripts/ad-map and the module; transfer the directory, not only the entry script. Upstream.

sudo apt install gh
gh auth login
gh auth setup-git
git clone --depth 1 https://github.com/ArmaanLeg3nd/OSCP-Exploitation-Reference.git "$HOME/oscp/tools/repos/OSCP-Exploitation-Reference"
mkdir -p "$HOME/oscp/tools/artifacts/windows/native/scripts"
cp -a "$HOME/oscp/tools/repos/OSCP-Exploitation-Reference/scripts/ad-map" "$HOME/oscp/tools/artifacts/windows/native/scripts/"

Check on Kali:

test -s "$HOME/oscp/tools/artifacts/windows/native/scripts/ad-map/ADMap.psm1"
test -s "$HOME/oscp/tools/artifacts/windows/native/scripts/ad-map/Invoke-ADMap.ps1"
test -s "$HOME/oscp/tools/artifacts/windows/native/scripts/ad-map/Get-HostSurface.ps1"

Use Our native AD / host helpers · Setup source

Prepare Seatbelt

Windows .NET build required. A source checkout is not a runnable Seatbelt.exe. Use a Windows Developer Command Prompt with MSBuild and the project's .NET Framework targeting pack; build Release, then transfer its output and dependencies to Kali. Upstream.

git clone --depth 1 https://github.com/GhostPack/Seatbelt.git "$HOME/oscp/tools/repos/Seatbelt"

Check on Kali:

test -s "$HOME/oscp/tools/repos/Seatbelt/Seatbelt.sln"

On the Windows build machine, clone the same upstream project and run from its directory:

MSBuild.exe Seatbelt.sln /p:Configuration=Release

Inspect the build output directory for the executable and required DLL/config files. Copy that complete output into ~/oscp/tools/artifacts/windows/Seatbelt/ on Kali using the existing transfer procedure. A modern dotnet build on Kali is not assumed to support these legacy .NET Framework projects.

Use Seatbelt · Setup source

Prepare SharpUp

Windows .NET build required. A source checkout is not a runnable SharpUp.exe. Use a Windows Developer Command Prompt with MSBuild and the project's .NET Framework targeting pack; build Release, then transfer its output and dependencies to Kali. Upstream.

git clone --depth 1 https://github.com/GhostPack/SharpUp.git "$HOME/oscp/tools/repos/SharpUp"

Check on Kali:

test -s "$HOME/oscp/tools/repos/SharpUp/SharpUp.sln"

On the Windows build machine, clone the same upstream project and run from its directory:

MSBuild.exe SharpUp.sln /p:Configuration=Release

Inspect the build output directory for the executable and required DLL/config files. Copy that complete output into ~/oscp/tools/artifacts/windows/SharpUp/ on Kali using the existing transfer procedure. A modern dotnet build on Kali is not assumed to support these legacy .NET Framework projects.

Use SharpUp · Setup source

Prepare Watson

Windows .NET build required. A source checkout is not a runnable Watson.exe. Use a Windows Developer Command Prompt with MSBuild and the project's .NET Framework targeting pack; build Release, then transfer its output and dependencies to Kali. Watson additionally supports only its documented legacy OS builds. Upstream.

git clone --depth 1 https://github.com/rasta-mouse/Watson.git "$HOME/oscp/tools/repos/Watson"

Check on Kali:

test -s "$HOME/oscp/tools/repos/Watson/Watson.sln"

On the Windows build machine, clone the same upstream project and run from its directory:

MSBuild.exe Watson.sln /p:Configuration=Release

Inspect the build output directory for the executable and required DLL/config files. Copy that complete output into ~/oscp/tools/artifacts/windows/Watson/ on Kali using the existing transfer procedure. A modern dotnet build on Kali is not assumed to support these legacy .NET Framework projects.

Use Watson · Setup source

Prepare PrintSpoofer

Conditional legacy Windows path. Select PrintSpoofer32.exe for x86; obtaining the binary does not establish compatible OS, spooler state or token rights. Upstream.

curl -fL https://github.com/itm4n/PrintSpoofer/releases/download/v1.0/PrintSpoofer64.exe -o "$HOME/oscp/tools/artifacts/windows/x64/PrintSpoofer.exe"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/x64/PrintSpoofer.exe"

Use PrintSpoofer · Setup source

Prepare JuicyPotato

Conditional legacy Windows path. Verify the PE architecture and compatible CLSID/OS before target delivery; do not treat it as a universal escalation utility. Upstream.

curl -fL https://github.com/ohpe/juicy-potato/releases/download/v0.1/JuicyPotato.exe -o "$HOME/oscp/tools/artifacts/windows/x64/JuicyPotato.exe"
curl -fL https://raw.githubusercontent.com/ohpe/juicy-potato/master/CLSID/GetCLSID.ps1 -o "$HOME/oscp/tools/artifacts/windows/GetCLSID.ps1"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/x64/JuicyPotato.exe"
test -s "$HOME/oscp/tools/artifacts/windows/GetCLSID.ps1"

Use JuicyPotato · Setup source

Prepare PsExec (Sysinternals)

Windows native utility. Keep the official distribution/EULA and select the matching architecture; use requires the permissions in the owning procedure. Upstream.

curl -fL https://download.sysinternals.com/files/PSTools.zip -o "$HOME/oscp/tools/downloads/PSTools.zip"
unzip -o "$HOME/oscp/tools/downloads/PSTools.zip" -d "$HOME/oscp/tools/artifacts/windows/pstools"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/pstools/PsExec64.exe"

Use PsExec (Sysinternals) · Setup source

Prepare Process Monitor

Optional Windows GUI diagnostic tool requiring the appropriate administrator/driver access. The current release supports Windows 11 / Server 2019 and newer; do not assume it runs on the legacy Windows 7 example. Select a vendor-supported compatible build or use the existing manual checks. Upstream.

curl -fL https://download.sysinternals.com/files/ProcessMonitor.zip -o "$HOME/oscp/tools/downloads/ProcessMonitor.zip"
unzip -o "$HOME/oscp/tools/downloads/ProcessMonitor.zip" -d "$HOME/oscp/tools/artifacts/windows/procmon"

Check on Kali:

file "$HOME/oscp/tools/artifacts/windows/procmon/Procmon64.exe"

Use Process Monitor · Setup source

Prepare Kerberoast scripts and tgsrepcrack

Retained legacy PowerShell SPN-enumeration alternative. The actual script referenced here is GetUserSPNs.ps1; this does not install obsolete cracking scripts. Prefer the existing Impacket/Rubeus owner for ticket requests; these mechanisms have distinct prerequisites. Upstream.

mkdir -p "$HOME/oscp/tools/artifacts/windows/legacy-ad"
curl -fL https://raw.githubusercontent.com/nidem/kerberoast/master/GetUserSPNs.ps1 -o "$HOME/oscp/tools/artifacts/windows/legacy-ad/GetUserSPNs.ps1"

Check on Kali:

test -s "$HOME/oscp/tools/artifacts/windows/legacy-ad/GetUserSPNs.ps1"

Use Kerberoast scripts and tgsrepcrack · Setup source

Prepare Get-SPN.ps1

Retained standalone PowerShell SPN lookup; inspect the script and available directory context before use. Obtaining a script is separate from having authenticated directory access. Upstream.

mkdir -p "$HOME/oscp/tools/artifacts/windows/legacy-ad"
curl -fL https://raw.githubusercontent.com/compwiz32/PowerShell/master/Get-SPN.ps1 -o "$HOME/oscp/tools/artifacts/windows/legacy-ad/Get-SPN.ps1"

Check on Kali:

test -s "$HOME/oscp/tools/artifacts/windows/legacy-ad/Get-SPN.ps1"

Use Get-SPN.ps1 · Setup source

Prepare Rubeus

Windows .NET tool. Kali currently packages an older release; compare its supported options with the command you intend to use. Build the matching upstream version on a Windows .NET build environment when newer functionality is required. Upstream.

sudo apt install rubeus
cp -a /usr/share/windows-resources/rubeus "$HOME/oscp/tools/artifacts/windows/"

Check on Kali:

dpkg-query -W rubeus
file "$HOME/oscp/tools/artifacts/windows/rubeus/Rubeus.exe"

Use Rubeus · Setup source

Local services and Windows features

Prepare RSAT Active Directory PowerShell

Runs on an owned Windows 10/11 Pro or Enterprise management host, not Kali. Install from elevated PowerShell only when you administer that host; a low-privilege domain shell does not imply this feature is available. This feature is required for the Get-AD* examples, not for PowerView or the native LDAP helper. Upstream.

Get-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools*
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

Check on the Windows management host:

Get-Module -ListAvailable ActiveDirectory
Import-Module ActiveDirectory
Get-Command Get-ADUser

On Windows Server, use elevated PowerShell instead:

Install-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
Get-Command Get-ADUser

If you cannot install RSAT, use the existing LDAP/PowerView methods rather than assuming Get-ADUser is a built-in cmdlet.

Use RSAT Active Directory PowerShell · Setup source

Prepare BloodHound

Optional local AD graph service using the upstream CE quickstart, not the old Electron startup sequence. Requires Docker/Compose, at least 8 GB RAM and about 10 GB free storage. CLI installation is interactive and starts local containers; record its generated credentials privately and change them on first login. If port 8080 is occupied, use the CLI configuration rather than stopping unrelated services. Upstream.

sudo apt install docker.io docker-compose-v2
sudo systemctl start docker
mkdir -p "$HOME/oscp/tools/repos/bloodhound-ce"
cd "$HOME/oscp/tools/repos/bloodhound-ce"
curl -fL https://github.com/SpecterOps/bloodhound-cli/releases/download/v0.2.1/bloodhound-cli-linux-amd64.tar.gz -o "$HOME/oscp/tools/downloads/bloodhound-cli.tar.gz"
tar -xzf "$HOME/oscp/tools/downloads/bloodhound-cli.tar.gz"
sudo ./bloodhound-cli install

Check on Kali:

sudo "$HOME/oscp/tools/repos/bloodhound-ce/bloodhound-cli" running
curl -I http://127.0.0.1:8080

Keep using the same sudo context for CLI management so its configuration/data directory stays consistent. Installation is a first-time operation: resume an existing installation with sudo "$HOME/oscp/tools/repos/bloodhound-ce/bloodhound-cli" up, and stop its containers with the same path followed by down; do not use uninstall as a stop command because it deletes stored data.

Use the official CE quickstart for installation prompts, version matching, start/stop and recovery. Confirm the web login before collecting domain data; docker ps alone does not prove the application is ready.

Use BloodHound · Setup source

Conditional sources and wordlists

Prepare Probable Wordlists

Optional data collection, not an executable installation. Inspect sizes and choose one relevant dictionary; do not concatenate every list or treat it as a required download. Upstream.

git clone --depth 1 https://github.com/berzerk0/Probable-Wordlists.git "$HOME/oscp/tools/repos/probable-wordlists"

Check on Kali:

git -C "$HOME/oscp/tools/repos/probable-wordlists" rev-parse --short HEAD

Use Probable Wordlists · Setup source

Prepare WordList Compendium

Optional data collection, not an executable installation. Inspect sizes and choose one relevant dictionary; do not concatenate every list or treat it as a required download. Upstream.

git clone --depth 1 https://github.com/Dormidera/WordList-Compendium.git "$HOME/oscp/tools/repos/wordlist-compendium"

Check on Kali:

git -C "$HOME/oscp/tools/repos/wordlist-compendium" rev-parse --short HEAD

Use WordList Compendium · Setup source

Prepare Google fuzzing dictionaries

Optional data collection, not an executable installation. Inspect sizes and choose one relevant dictionary; do not concatenate every list or treat it as a required download. Upstream.

git clone --depth 1 https://github.com/google/fuzzing.git "$HOME/oscp/tools/repos/google-fuzzing"

Check on Kali:

git -C "$HOME/oscp/tools/repos/google-fuzzing" rev-parse --short HEAD

Use Google fuzzing dictionaries · Setup source

Prepare Jhaddix content-discovery list

Optional web-path dictionary. Inspect the list and select a sensible scope/rate; its presence is not a reason to repeat complete discovery. Upstream.

mkdir -p "$HOME/oscp/tools/artifacts/wordlists"
curl -fL https://gist.githubusercontent.com/jhaddix/b80ea67d85c13206125806f0828f4d10/raw/content_discovery_all.txt -o "$HOME/oscp/tools/artifacts/wordlists/content_discovery_all.txt"

Check on Kali:

wc -l "$HOME/oscp/tools/artifacts/wordlists/content_discovery_all.txt"

Use Jhaddix content-discovery list · Setup source

Prepare CrackStation dictionary

Optional human-password subset, roughly 247 MiB compressed / 684 MiB expanded. Select only if useful and allow disk space for both files. Expected archive SHA256: 201f8815c71a47d39775304aa422a505fc4cca18493cfaf5a76e608a72920267. The full list is about 15 GiB expanded and is not part of this setup. Upstream.

mkdir -p "$HOME/oscp/tools/artifacts/wordlists"
curl -fL https://crackstation.net/files/crackstation-human-only.txt.gz -o "$HOME/oscp/tools/downloads/crackstation-human-only.txt.gz"
gzip -dk "$HOME/oscp/tools/downloads/crackstation-human-only.txt.gz"
mv "$HOME/oscp/tools/downloads/crackstation-human-only.txt" "$HOME/oscp/tools/artifacts/wordlists/"

Check on Kali:

sha256sum "$HOME/oscp/tools/downloads/crackstation-human-only.txt.gz"
wc -l "$HOME/oscp/tools/artifacts/wordlists/crackstation-human-only.txt"

Use CrackStation dictionary · Setup source

Prepare Windows kernel exploit collection

Source/reference collection, not a general tool installation. Obtain only when the owning technique is applicable. Read the selected PoC requirements and build/runtime instructions; no exploit is executed by this checkout. Upstream.

git clone --depth 1 https://github.com/SecWiki/windows-kernel-exploits.git "$HOME/oscp/tools/repos/windows-kernel-exploits"

Check on Kali:

git -C "$HOME/oscp/tools/repos/windows-kernel-exploits" rev-parse --short HEAD

Use Windows kernel exploit collection · Setup source

Prepare Token privilege research

Source/reference collection, not a general tool installation. Obtain only when the owning technique is applicable. Read the selected PoC requirements and build/runtime instructions; no exploit is executed by this checkout. Upstream.

git clone --depth 1 https://github.com/hatRiot/token-priv.git "$HOME/oscp/tools/repos/token-priv"

Check on Kali:

git -C "$HOME/oscp/tools/repos/token-priv" rev-parse --short HEAD

Use Token privilege research · Setup source

Prepare EventViewer-UACBypass

Source/reference collection, not a general tool installation. Obtain only when the owning technique is applicable. Read the selected PoC requirements and build/runtime instructions; no exploit is executed by this checkout. Upstream.

git clone --depth 1 https://github.com/CsEnox/EventViewer-UACBypass.git "$HOME/oscp/tools/repos/EventViewer-UACBypass"

Check on Kali:

git -C "$HOME/oscp/tools/repos/EventViewer-UACBypass" rev-parse --short HEAD

Use EventViewer-UACBypass · Setup source

Prepare Hot Potato

Historical general-lab source only. This technique uses spoofing/relay and is outside the current exam baseline. This checkout does not build, stage or run potato.exe. Read the selected source/build requirements only for an independently authorized compatible lab. Upstream.

git clone --depth 1 https://github.com/foxglovesec/Potato.git "$HOME/oscp/tools/repos/Potato"

Check on Kali:

git -C "$HOME/oscp/tools/repos/Potato" rev-parse --short HEAD

Use Hot Potato · Setup source

Prepare ZeroLogon PoC (source example)

Source/reference collection, not a general tool installation. Obtain only when the owning technique is applicable. Read the selected PoC requirements and build/runtime instructions; no exploit is executed by this checkout. Upstream.

git clone --depth 1 https://github.com/dirkjanm/CVE-2020-1472.git "$HOME/oscp/tools/repos/CVE-2020-1472"

Check on Kali:

git -C "$HOME/oscp/tools/repos/CVE-2020-1472" rev-parse --short HEAD

Use ZeroLogon PoC (source example) · Setup source

Prepare Simple PHP Web Shell

Optional payload source, not a Kali service to install or start. Select one reviewed file matching the application runtime, edit required parameters, and copy only that file into the target staging directory. Do not deploy the whole collection. Upstream.

git clone --depth 1 https://github.com/artyuum/Simple-PHP-Web-Shell.git "$HOME/oscp/tools/repos/simple-php-web-shell"

Check on Kali:

git -C "$HOME/oscp/tools/repos/simple-php-web-shell" rev-parse --short HEAD

Use Simple PHP Web Shell · Setup source

Prepare PHP web shell (drag0s)

Optional payload source, not a Kali service to install or start. Select one reviewed file matching the application runtime, edit required parameters, and copy only that file into the target staging directory. Do not deploy the whole collection. Upstream.

git clone --depth 1 https://github.com/drag0s/php-webshell.git "$HOME/oscp/tools/repos/php-webshell-drag0s"

Check on Kali:

git -C "$HOME/oscp/tools/repos/php-webshell-drag0s" rev-parse --short HEAD

Use PHP web shell (drag0s) · Setup source

Prepare JSP shells (LaiKash)

Optional payload source, not a Kali service to install or start. Select one reviewed file matching the application runtime, edit required parameters, and copy only that file into the target staging directory. Do not deploy the whole collection. Upstream.

git clone --depth 1 https://github.com/LaiKash/JSP-Reverse-and-Web-Shell.git "$HOME/oscp/tools/repos/jsp-shells-laikash"

Check on Kali:

git -C "$HOME/oscp/tools/repos/jsp-shells-laikash" rev-parse --short HEAD

Use JSP shells (LaiKash) · Setup source

Prepare JSP-Webshells (threedr3am)

Optional payload source, not a Kali service to install or start. Select one reviewed file matching the application runtime, edit required parameters, and copy only that file into the target staging directory. Do not deploy the whole collection. Upstream.

git clone --depth 1 https://github.com/threedr3am/JSP-Webshells.git "$HOME/oscp/tools/repos/jsp-webshells"

Check on Kali:

git -C "$HOME/oscp/tools/repos/jsp-webshells" rev-parse --short HEAD

Use JSP-Webshells (threedr3am) · Setup source

Prepare Web shell collection (tennc)

Optional payload source, not a Kali service to install or start. Select one reviewed file matching the application runtime, edit required parameters, and copy only that file into the target staging directory. Do not deploy the whole collection. Upstream.

git clone --depth 1 https://github.com/tennc/webshell.git "$HOME/oscp/tools/repos/webshell-tennc"

Check on Kali:

git -C "$HOME/oscp/tools/repos/webshell-tennc" rev-parse --short HEAD

Use Web shell collection (tennc) · Setup source

5. Verify preparation

command -v autorecon enum4linux-ng ldapdomaindump
autorecon --version
"$HOME/oscp/tools/bin/chisel" --version
file "$HOME/oscp/tools/artifacts/linux/x64/pspy64"
file "$HOME/oscp/tools/artifacts/windows/sharphound/SharpHound.exe"
test -s "$HOME/oscp/tools/artifacts/windows/PrivescCheck.ps1"
find "$HOME/oscp/tools/artifacts" -type f -printf '%P\n'

A missing command/file needs its setup entry revisited. file distinguishes ELF, PE and text artifacts; it does not prove that a target will run them. A source-only .NET checkout is not a completed executable build. Check selected options with the installed tool's help before use. BloodHound additionally needs its web login working and a compatible collector; a downloaded ZIP is not that check.

All upstream tool links by track

Network Scan

Tool linksUsed in this track
AutoRecon
AutoRecon — source 2
Network Scan
nmapAutomatorNetwork Scan

Services Exploitation

Tool linksUsed in this track
Chameleon80, 443 - HTTP/S
dirsearch80, 443 - HTTP/S
enum4linux-ng139, 445 - SMB
Feroxbuster80, 443 - HTTP/S
SecLists21 - FTP
ZAP80, 443 - HTTP/S

Web Application Attacks

Tool linksUsed in this track
MongoDB shellSQL Injection
sqlcmdSQL Injection

Brute Forcing

Tool linksUsed in this track
CrackStation dictionaryBrute Forcing
CUPPBrute Forcing
Google fuzzing dictionariesBrute Forcing
Jhaddix content-discovery listBrute Forcing
Probable WordlistsBrute Forcing
SecListsBrute Forcing
WordList CompendiumBrute Forcing

Privilege Escalation

Tool linksUsed in this track
AccessChkWindows Privesc
EventViewer-UACBypassWindows Privesc
Hot PotatoWindows Privesc
JuicyPotato
JuicyPotato — source 2
Windows Privesc
Linux Exploit Suggester 2Linux Privesc
Linux Smart EnumerationLinux Privesc
Our native AD / host helpersWindows Privesc
PrintSpooferWindows Privesc
PrivescCheck
PrivescCheck — source 2
Windows Privesc
Process MonitorWindows Privesc
PsExec (Sysinternals)Windows Privesc
pspyLinux Privesc
PuTTY / PlinkWindows Privesc
SeatbeltWindows Privesc
SharpUpWindows Privesc
Token privilege researchWindows Privesc
WatsonWindows Privesc
Windows Exploit Suggester Next Generation
Windows Exploit Suggester Next Generation — source 2
Windows Exploit Suggester Next Generation — source 3
Windows Privesc
Windows kernel exploit collection
Windows kernel exploit collection — source 2
Windows kernel exploit collection — source 3
Windows Privesc

Active Directory

Tool linksUsed in this track
BloodHoundAD Automatic Enumeration
BloodHound.py CEAD Automatic Enumeration
bloodyADAD Automatic Enumeration
FreeRDPAD Authentication
Get-SPN.ps1AD Manual Enumeration
Kerberoast scripts and tgsrepcrackAD Manual Enumeration
KerbruteAD Attacking Kerberos
ldapdomaindumpAD Automatic Enumeration
oletools: MacroRaptorAD Lateral Movement
Our native AD / host helpersAD Automatic Enumeration
RemminaAD Authentication
RSAT Active Directory PowerShellAD Manual Enumeration
RubeusAD Attacking Kerberos
SharpHoundAD Automatic Enumeration
ZeroLogon PoC (source example)AD Lateral Movement

Transfer Files

Tool linksUsed in this track
exe2hexWindows Downloads

Shells

Tool linksUsed in this track
ChiselReverse/Bind Shells
JSP shells (LaiKash)Web Shells
JSP-Webshells (threedr3am)Web Shells
PHP web shell (drag0s)Web Shells
Simple PHP Web ShellWeb Shells
Web shell collection (tennc)Web Shells