tutorial track

OverTheWire: Bandit

An independent, spoiler-aware companion for Linux command-line fundamentals. Progress stays on this device in browser storage; credentials are never collected.

By

Progress
0/34 complete
Stored locally in your browser (no account required).
Continue
0%
OverTheWire Bandit: how to use this learning track
Practice Linux fundamentals in OverTheWire’s beginner wargame without publishing or storing game credentials.
Bandit Level 0 → 1
Connect with SSH and read the file that introduces the track.
Bandit Level 1 → 2
Read a file whose name looks like a command option.
Bandit Level 2 → 3
Handle a filename containing spaces without splitting it into arguments.
Bandit Level 3 → 4
Reveal and read a hidden file inside a directory.
Bandit Level 4 → 5
Classify several files and select the human-readable one.
Bandit Level 5 → 6
Search a directory tree by exact file properties.
Bandit Level 6 → 7
Search the server by owner, group, and byte size while controlling error noise.
Bandit Level 7 → 8
Find the value beside a known marker in a large text file.
Bandit Level 8 → 9
Sort repeated records and isolate the only unique line.
Bandit Level 9 → 10
Extract readable strings from binary-looking data and filter by a marker.
Bandit Level 10 → 11
Decode Base64 text while keeping encoded and encrypted data distinct.
Bandit Level 11 → 12
Reverse a ROT13 substitution with character translation.
Bandit Level 12 → 13
Reverse a hexdump and unwrap repeated compression formats safely.
Bandit Level 13 → 14
Use a provided private key to authenticate to the next local account.
Bandit Level 14 → 15
Send one line to a local TCP service and inspect its response.
Bandit Level 15 → 16
Use a TLS client to communicate with an encrypted local service.
Bandit Level 16 → 17
Discover listening ports, identify TLS, and submit data to the right service.
Bandit Level 17 → 18
Compare two files and identify the changed line.
Bandit Level 18 → 19
Run a remote command when an interactive login is immediately closed.
Bandit Level 19 → 20
Inspect and use a setuid helper within its intended game boundary.
Bandit Level 20 → 21
Coordinate a local listener with a privileged client program.
Bandit Level 21 → 22
Trace a scheduled task from cron configuration to its output artifact.
Bandit Level 22 → 23
Reproduce a scheduled script's deterministic filename calculation.
Bandit Level 23 → 24
Write a time-bounded script for a cron-controlled execution directory.
Bandit Level 24 → 25
Enumerate a small PIN space efficiently over one persistent connection.
Bandit Level 25 → 26
Inspect a nonstandard login shell and use a pager escape deliberately.
Bandit Level 26 → 27
Use the escaped shell and a local setuid helper to read the next credential.
Bandit Level 27 → 28
Clone an SSH Git repository and inspect its working tree.
Bandit Level 28 → 29
Recover a removed secret by inspecting Git history.
Bandit Level 29 → 30
Inspect remote branches rather than trusting the default checkout.
Bandit Level 30 → 31
Enumerate Git tags and inspect the object a tag references.
Bandit Level 31 → 32
Create the required file, account for ignore rules, and push it to the remote.
Bandit Level 32 → 33
Escape an uppercase command shell and recover a normal shell context.
Bandit Level 33: track complete
Confirm the current official track endpoint and consolidate what you learned.