installation:
the script below sets up pwncat-cs
for use inside the project folder you’ll be working inside. pwncat-cs
relies on an older python version, so its sets up the environment so that it automatically switches to that python version upon entering the project folder, making pwncat-cs
usable. so yeah, get inside a project folder first
nano install_pwncat_cs.sh
#!/bin/bash
set -e
echo "[*] Installing dependencies (∪.∪ )...zzz"
sudo apt update && sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev git
# Detect shell + config file
USER_SHELL = $( basename " $SHELL " )
if [ " $USER_SHELL " = "zsh" ]; then
SHELL_CONFIG = " $HOME /.zshrc"
elif [ " $USER_SHELL " = "bash" ]; then
SHELL_CONFIG = " $HOME /.bashrc"
else
echo "[!] Unsupported shell: $USER_SHELL . Defaulting to .bashrc"
SHELL_CONFIG = " $HOME /.bashrc"
fi
# Install pyenv if not already there
if [ ! -d " $HOME /.pyenv" ]; then
echo "[*] Installing pyenv 〜( ̄▽ ̄〜)"
curl https://pyenv.run | bash
else
echo '[*] pyenv already installed ¯\_(ツ)_/¯'
fi
# Append pyenv config to shell config if not already there
if ! grep -q 'pyenv init' " $SHELL_CONFIG " ; then
echo '[*] Patching $SHELL_CONFIG with pyenv config (⌐■_■)'
{
echo ''
echo '# >>> pyenv config >>>'
echo 'export PYENV_ROOT="$HOME/.pyenv"'
echo 'export PATH="$PYENV_ROOT/bin:$PATH"'
echo 'eval "$(pyenv init --path)"'
echo 'eval "$(pyenv init -)"'
echo 'eval "$(pyenv virtualenv-init -)"'
echo '# <<< pyenv config <<<'
} >> " $SHELL_CONFIG "
else
echo '[*] pyenv config already in $SHELL_CONFIG ¯\_(ツ)_/¯'
fi
# Load pyenv for current script session
export PYENV_ROOT = " $HOME /.pyenv"
export PATH = " $PYENV_ROOT /bin: $PATH "
eval "$( pyenv init --path )"
eval "$( pyenv init -)"
eval "$( pyenv virtualenv-init -)"
# Install Python 3.11.7 if not installed
if ! pyenv versions --bare | grep -q "^3.11.7$" ; then
echo '[*] Installing Python 3.11.7 (❁´◡`❁)'
pyenv install 3.11.7
else
echo '[*] Python 3.11.7 already installed ¯\_(ツ)_/¯'
fi
# Create and activate venv
echo "[*] Creating pyenv virtualenv 'pwncat-env' (~o ̄3 ̄)~"
pyenv virtualenv 3.11.7 pwncat-env || echo "Already exists"
pyenv local pwncat-env
# Install pwncat-cs
echo "[*] Installing pwncat-cs... -_-"
pip install --upgrade pip
pip install pwncat-cs
echo "[+] Done! Restart your terminal or run: source $SHELL_CONFIG "
chmod +x install_pwncat_cs.sh
./install_pwncat_cs.sh
usage:
pwncat-cs --listen --port 1337