OverTheWire Bandit — guía y progreso

Wargame legal y educativo para aprender terminal/Linux jugando. En cada nivel encuentras una contraseña escondida que te deja entrar por SSH al siguiente. Aquí tienes el walkthrough paso a paso de todos los niveles (0→33) + tu tabla de progreso.

Cómo se juega

  1. Te conectas al nivel N:
ssh bandit<N>@bandit.labs.overthewire.org -p 2220

(El nivel 0 usa la contraseña bandit0.) 2. Resuelves el reto → obtienes la contraseña del nivel N+1. 3. exit y entras al siguiente con esa contraseña. Y así hasta el 33 (el final actual). 4. Páginas oficiales con pistas: https://overthewire.org/wargames/bandit/

Úsalos así: intenta el nivel tú primero; si te atascas, mira el paso concreto. No leas la solución entera de golpe.

Terminal Kitty (Error opening terminal: xterm-kitty). Si usas Kitty como terminal, al abrir un programa interactivo dentro del servidor (nano, vi, more, less, y el paginador de git log/git show) verás ese error: el servidor no tiene el “terminfo” de Kitty. Solución: export TERM=xterm (una vez por sesión SSH) o prefijando el comando (TERM=xterm nano archivo). Afecta sobre todo a 16→17, 23→24, 25→26, 26→27 y a los niveles git (28→32). (Si entras desde tu portátil no pasa: kitty sí tiene su terminfo ahí.)

Cambio de OverTheWire (2025-2026) — localhost bloqueado para SSH. Ahora bloquean conectarte al puerto SSH 2220 desde localhost (Connecting from localhost is blocked to conserve resources). Afecta a los niveles que hacen ssh -i ...@localhost: 13→14, 16→17, 25→26. Solución: usa el hostname real bandit.labs.overthewire.org (mismo puerto 2220), o copia la clave a tu portátil y conéctate desde ahí. NO afecta a nc/openssl contra puertos del juego (30000/30001/31xxx/30002 en 14→15, 15→16, 16→17, 24→25) ni, de momento, a los clones git por localhost (27→32, ver nota en 28-nivel-27-a-28).

Walkthroughs (todos los niveles)

Básicos — manejo de archivos (0→5)

Buscar y procesar texto / decodificar (5→13)

Claves SSH y red cifrada (13→17)

diff y SSH no interactivo (17→19)

setuid y cron (19→24)

Bucles y shells restringidos (24→27)

Git (27→32)

Truco de shell / final

  • 33-nivel-32-a-33 — escapar del “uppercase shell” con $0 (nivel 33 = final)

Mi progreso (rellena a mano)

Bajo riesgo (es un juego), pero por hábito: no subas este archivo con contraseñas a un repo público.

NivelQué aprendíContraseña obtenida
0→1ssh, ls, cat
1→2archivo -
2→3espacios/escape
3→4ls -a
4→5file
5→6find props
6→7find / user/group
7→8grep
8→9sort+uniq -u
9→10strings
10→11base64
11→12ROT13 tr
12→13xxd+descompresión
13→14ssh -i
14→15nc
15→16openssl s_client
16→17nmap+key
17→18diff
18→19ssh no interactivo
19→20setuid
20→21nc -l+setuid
21→22cron
22→23cron+md5sum
23→24cron ejecuta tu script
24→25fuerza bruta for+nc
25→26escapar more/vi
26→27vi shell+setuid
27→28git clone
28→29git log/show
29→30ramas git
30→31tags git
31→32git add -f+push
32→33$0 (uppercase shell)

Conexiones