7 wargames Β· 130+ writeups Β· open source

Learn Linux and security by watching the terminal.

Work through the OverTheWire wargames with level-by-level writeups, and learn the concepts through wargame-independent topic guides. By your side is Robin β€” a terminal assistant that opens your SSH session, tracks your progress, and lets you ask an AI for help when you get stuck. 🐱

7
Wargames
5
Topic Areas
20
Pwn Modules
∞
Curiosity
robin@linux_learning: ~/robinagent
$ ./robin --agent

Robin Agent is a terminal-based learning tool that rides along while you solve the wargames. It opens SSH for you, keeps track of your progress, and lets you ask questions in a NotebookLM notebook built for that specific game β€” all on one screen.

01

Wargame picker menu

Choose from Bandit, Leviathan, Krypton, Natas, Narnia, Behemoth and Utumno β€” each listed with its difficulty and topics.

02

Automatic SSH + progress tracking

It enters your password, opens the session, and remembers where you left off in progress.json. You pick up right where you stopped.

03

AI chat in the side pane

A TMUX split screen: wargame on the left, Robin Chat on the right. When you're stuck, ask that game's NotebookLM notebook.

04

Two modes

[1] AI-assisted β€” a notebook is prepared for each game. [2] Hard mode β€” no AI, straight into the wargame.

install & run
# virtualenv + dependencies
$ cd robinagent
$ python3 -m venv .venv && source .venv/bin/activate
$ pip install -r requirements.txt

# AI mode (optional)
$ pip install "notebooklm-py[browser]"
$ playwright install chromium

# launch β€” opens inside TMUX
$ python robinagent.py
tmux [0] wargame [1] robin chat
wargame Β· ssh
bandit12@bandit:~$ ls
data.txt
bandit12@bandit:~$ file data.txt
data.txt: ASCII text, hexdump
bandit12@bandit:~$ xxd -r data.txt > /tmp/o
bandit12@bandit:~$ file /tmp/o
/tmp/o: gzip compressed data
bandit12@bandit:~$
robin chat Β· notebooklm
you
how do I open a gzip file with no extension?
🐱 robin
Extension doesn't matter: mv /tmp/o /tmp/o.gz then gzip -d. Keep checking the type with file at each layer β€” this level is nested compression.
you
and if it turns out to be bzip2?
🐱 robin
use bzip2 -d, or tar xf if it's a tar...

Dependencies: textual (TUI) Β· pexpect (SSH pty) Β· rich Β· pyyaml Β· notebooklm-py (opt.)

$ ls overthewire/

OverTheWire is a free platform that teaches Linux and security skills in a game format. From beginner to advanced, in the recommended order:

Bandit→ Leviathan→ Krypton→ Natas→ Narnia→ Behemoth→ Utumno
Bandit01 / 07

The starter wargame for Linux terminal skills β€” SSH, reading files, permissions and basic tools. You can begin from scratch.

1/10
Difficulty
34
Levels
SSHcat Β· less Β· filegrep Β· sortfindbase64 Β· rot13
bandit.labs.overthewire.org:2220 writeups β†’
Leviathan02 / 07

Binary analysis and simple exploit techniques. You inspect binary behaviour with ltrace/strace. Bandit recommended first.

3/10
Difficulty
8
Levels
ltrace Β· straceSUID binarysymlinkbasic RE
leviathan.labs...:2223 writeups β†’
Krypton03 / 07

Cryptography fundamentals β€” from classic ciphers to modern approaches. You crack encrypted messages.

3/10
Difficulty
7
Levels
Caesar · ROTVigenèrefrequency analysisXOR
krypton.labs...:2231 writeups β†’
Natas04 / 07

Web security β€” HTTP, source-code analysis, SQL injection, XSS and more. Played in the browser.

4/10
Difficulty
35
Levels
HTTP headersSQL injectionXSSfile inclusionPHP
natas.labs.overthewire.org writeups β†’
Narnia05 / 07

Binary exploitation β€” buffer overflow, format string and basic exploit development. Requires reading assembly.

6/10
Difficulty
10
Levels
stack overflowformat stringshellcodeGDBSUID exploit
narnia.labs...:2226 writeups β†’
Behemoth06 / 07

Intermediate binary exploitation. More complex scenarios than Narnia, ASLR and various protections.

7/10
Difficulty
9
Levels
stack Β· heap overflowret-to-libcGOT/PLTpwntools
behemoth.labs...:2221 writeups β†’
Utumno07 / 07

Advanced binary exploitation. Minimum hints, maximum difficulty β€” for experienced exploit developers only.

9/10
Difficulty
8
Levels
ROPheap exploitationASLR bypassPIE bypass
utumno.labs...:2227 writeups β†’
$ tree topic_guides/

Files where commands and concepts are kept as wargame-independent reference β€” now all readable inside the site. Click a category to open the reader.

$ cat resources.md

A curated selection of external resources collected in the repo β€” for when you want to go deeper.