Bandit Nivel 18 a 19
Nivel del wargame Bandit de OverTheWire — juego legal y educativo para aprender seguridad en terminal Linux.
Objetivo
La contraseña del siguiente nivel (bandit19) está guardada en el archivo readme dentro del directorio home de bandit18. El problema: el archivo .bashrc de bandit18 ha sido modificado para expulsarte en cuanto abres una sesión interactiva. Tienes que leer ese archivo sin que el shell llegue a ejecutarse.
Qué aprendes
| Comando / Concepto | Para qué sirve |
|---|---|
ssh usuario@host -p puerto <comando> | Ejecuta un comando remoto por SSH sin abrir una sesión interactiva |
.bashrc | Archivo de configuración que Bash ejecuta al iniciar una sesión interactiva |
| Shell interactiva vs. no-interactiva | Diferencia clave: .bashrc solo corre en sesiones interactivas |
cat <archivo> | Muestra el contenido de un archivo en la terminal |
Jerga que necesitas entender
- .bashrc: un script que Bash carga automáticamente cuando abres una shell interactiva (como cuando haces
sshnormal). Si alguien poneexitologoutahí, te echa al instante. - Shell interactiva: la sesión normal donde escribes comandos y el sistema responde. El
.bashrcse ejecuta aquí. - Shell no-interactiva / comando SSH directo: cuando le dices a SSH que ejecute un comando concreto en lugar de abrir una sesión. En este modo, Bash no carga el
.bashrc, así que la trampa no se activa.
Paso a paso
1. Conéctate a bandit17 (el nivel anterior) y obtén la contraseña de bandit18
Si ya tienes la pass de bandit18, pasa directamente al paso 2.
2. Ejecuta el comando directamente por SSH sin abrir sesión interactiva
En lugar del comando ssh habitual, añades el comando que quieres ejecutar al final:
ssh bandit18@bandit.labs.overthewire.org -p 2220 cat readmeSSH te pedirá la contraseña de bandit18 (la que obtuviste en el nivel anterior). Introdúcela.
Qué verás:
This is a OverTheWire game server.
More information on http://www.overthewire.org/wargames
bandit18@bandit.labs.overthewire.org's password:
<cadena_de_~32_caracteres>
Esa <cadena_de_~32_caracteres> que aparece es la contraseña de bandit19. Cópiala.
Nota: es posible que también veas el mensaje “Byebye !” que el
.bashrcimprime antes de echar a los usuarios con sesión interactiva. Aparece porque SSH abre brevemente el entorno, pero el comandocat readmeya ha terminado de ejecutarse antes de que el.bashrcpueda cerrar nada de forma efectiva. Lo importante es que la contraseña sí aparece.
3. Verifica que funcionó
Si la cadena aparece en la salida, lo has conseguido. No necesitas nada más en este nivel.
Por qué funciona
Cuando ejecutas ssh usuario@host comando, SSH usa un mecanismo diferente al de una sesión interactiva:
- Abre la conexión con el servidor remoto.
- Lanza Bash en modo no-interactivo para ejecutar el comando específico (
cat readme). - En modo no-interactivo, Bash no lee ni ejecuta
.bashrc. - El comando termina, devuelve su salida (el contenido de
readme) a tu terminal local, y la conexión se cierra.
La trampa del nivel (el exit o logout en .bashrc) nunca llega a activarse porque el mecanismo que lo dispara — la shell interactiva — nunca se abre.
Tu terminal local
|
| ssh ... cat readme
v
Servidor bandit (Bash no-interactivo)
|
| .bashrc NO se carga
| ejecuta: cat readme
| devuelve el contenido
v
Tu terminal local recibe la contraseña
Errores comunes
| Error | Causa | Solución |
|---|---|---|
| Solo ves “Byebye !” y nada más | Olvidaste añadir cat readme al final del comando SSH | Asegúrate de que el comando quede exactamente como se muestra en el paso 2 |
Permission denied (publickey) | El servidor rechazó la contraseña o la escribiste mal | Vuelve a introducir la contraseña; fíjate en mayúsculas/minúsculas |
| La contraseña no aparece | Copiaste un carácter de más o de menos del nivel anterior | Revisa que la pass de bandit18 esté completa y sin espacios extra |
ssh: connect to host bandit.labs.overthewire.org port 2220: Connection refused | Problema de red o el servidor está caído momentáneamente | Espera unos minutos e inténtalo de nuevo |
Pasar al siguiente nivel
Con la contraseña obtenida, conéctate a bandit19:
ssh bandit19@bandit.labs.overthewire.org -p 2220Introduce la <cadena_de_~32_caracteres> que copiaste como contraseña.
Conexiones
- 00_README — índice general del wargame y cómo empezar
- MOC_Ciberseguridad — mapa de contenido de ciberseguridad