FAQ
Docker
Docker is used to create a consistent environment of the challenges on your end as well as on the instancer. Linux users can look up the docker engine installation for their distribution. Windows and Mac users can install Docker Desktop.
Each challenge will come with a Dockerfile. To build and run the image, you need to run the following commands in the terminal:
docker build -t <image_name> .
docker run -ti --rm -p <host_port>:<container_port> <image_name>
Replace the <image_name> with whatever name you want, and the <host_port> and <container_port> with the needed port (usually 8000 for web and 1337 for pwn challenges).
Pwntools usage and sample
Pwntools is an exploitation framework for pwn challenges. Debian (and most Debian based distributions) users can install it with the following command:
apt install python3-pwntools
Otherwise you can install it with pip:
pip install pwntools
You will need a python environment for this command to work, otherwise you can also run it with --break-system-packages.
To test the install you can run the following code in a python file:
from pwn import *
Below is a sample pwntools script that shows how to run a local process, a debugger, a remote connection and a remote connection to the instancer:
from pwn import *
# Use one of the following at a time
p = process('./challenge') # Local challenge
p = gdb.debug('./challenge', gdbscript='''
b *main
''') # Local challenge with debugger
p = remote('localhost', 1337) # Docker challenge
p = remote('inst-xxxxxxxxxx.tls.vuln.si', 443, ssl=True) # Remote challenge on the instancer
# Exploit goes here
p.interactive()
Netcat
Netcat is used to connect to remote instances. Linux users can install it with the following command:
apt install netcat-openbsd
Mac users can install it with Homebrew:
brew install netcat
Windows users can install the nmap version of netcat.
Connecting to instances
Click on the Instancer on the top left corner and select a challenge to run. Alternatively you can start it with the button when you open a challenge.
If the challenge is a web challenge you can copy the url by clickin on the clipboard icon or the url.
If the challenge is a pwn challenge you can copy the connection details by clicking on the clipboard icon or the url.
The connection string uses nmap's ncat by default, but you can also connect to it via the remote function of pwntools or with openssl:
openssl s_client -connect inst-xxxxxxxxxx.tls.vuln.si:443
GDB & Pwndbg
To debug the challenges you need to install gdb and pwndbg. Debian (and most Debian based distributions) users can install gdb with the following command:
apt install gdb
The prefered way of running pwndbg is by cloning and installing it from source. To do that run the following commands:
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
Verify the installation by running gdb and you should see a pwndbg> prompt.