Create TCP, UDP, and SOCKS5 tunnels through compromised hosts or restrictive firewalls
using jpillora/chisel. Server runs on the attacker (or a reachable node); the client
runs on the pivot host. requires_approval: true because the handler opens network
listeners and outbound connections.
| Property | Value |
|---|---|
| MITRE ATT&CK Tactic | Command and Control (TA0011) |
| Requires Approval | Yes |
| Requires Root | Conditional |
| Install Timeout | 180s |
Install
sudo bash -c 'set -e; apt-get update -y && apt-get install -y curl gzip jq ca-certificates; arch=$(uname -m); case "$arch" in x86_64) asset_arch=linux_amd64 ;; aarch64|arm64) asset_arch=linux_arm64 ;; armv7l|armv6l) asset_arch=linux_armv7 ;; i386|i686) asset_arch=linux_386 ;; *) echo "Unsupported arch: $arch" >&2; exit 1 ;; esac; ver=$(curl -fsSL https://api.github.com/repos/jpillora/chisel/releases/latest | jq -r .tag_name | sed s/^v//); if [ -z "$ver" ] || [ "$ver" = "null" ]; then ver=1.11.5; fi; url="https://github.com/jpillora/chisel/releases/download/v${ver}/chisel_${ver}_${asset_arch}.gz"; rm -f /tmp/chisel /tmp/chisel.gz; curl -fsSL --max-time 120 -o /tmp/chisel.gz "$url"; gunzip -f /tmp/chisel.gz; file /tmp/chisel | grep -q ELF || { echo "Downloaded file is not an ELF binary" >&2; exit 1; }; install -m 755 /tmp/chisel /usr/local/bin/chisel; rm -f /tmp/chisel /tmp/chisel.gz'Verify installation
command -v chisel >/dev/null 2>&1 && chisel --version >/dev/null 2>&1Uninstall
sudo bash -c 'rm -f /usr/local/bin/chisel /tmp/chisel /tmp/chisel.gz'Note
Chisel downloads the prebuilt jpillora/chisel binary from the GitHub releases API. Requires curl, gzip, jq, and sudo. Architecture (amd64/arm64/armv7/386) is auto-detected from uname -m.
| File | Contents |
|---|---|
SKILL.md |
Parameter reference, returns, examples, edge cases |
INSTALL.md |
Install / uninstall pipeline |
handler.py |
Python implementation |
Part of the OpenWar skills/tools collection