Bandit Nivel 14 a 15
Pagina oficial: https://overthewire.org/wargames/bandit/bandit15.html
Marco: OverTheWire Bandit es un wargame legal y educativo diseñado para aprender Linux y seguridad desde cero. Cada nivel te da acceso SSH al siguiente si resuelves el reto.
Objetivo
Estas conectado como bandit14. La contrasena del usuario bandit14 esta guardada en /etc/bandit_pass/bandit14 y puedes leerla porque eres ese usuario.
El reto: enviar esa contrasena al puerto 30000 de localhost. Si la contrasena es correcta, el servidor te devuelve la contrasena de bandit15.
Que aprendes
Comandos principales
| Comando | Para que sirve |
|---|---|
nc (netcat) | Abrir una conexion TCP/UDP a un host:puerto y enviar/recibir datos |
cat | Leer el contenido de un archivo |
| (pipe) | Pasar la salida de un comando como entrada del siguiente |
Conceptos
- Puerto TCP: canal numerado (0-65535) por el que un proceso escucha conexiones. El servidor de este nivel escucha en el puerto
30000. - localhost: nombre que siempre apunta a la propia maquina (IP
127.0.0.1). No sales a internet. - netcat (
nc): la “navaja suiza” de las redes. Puede actuar como cliente o servidor TCP/UDP. Aqui lo usas como cliente: te conectas a un puerto y mandas texto. - Pipe (
|): redirige la salida estandar de un comando a la entrada estandar del siguiente. Permite encadenar sin archivos intermedios.
Paso a paso
Paso 0: Conectarte al nivel (si aun no estas dentro)
ssh bandit14@bandit.labs.overthewire.org -p 2220Introduce la contrasena de bandit14 cuando se la pida.
Paso 1: Leer la contrasena actual (opcional, para entender que tienes)
cat /etc/bandit_pass/bandit14Lo que veras:
<cadena_de_~32_caracteres>
Esa cadena es tu contrasena actual como bandit14. La necesitas para el siguiente paso.
Paso 2a: Enviar la contrasena con pipe (forma directa y recomendada)
cat /etc/bandit_pass/bandit14 | nc localhost 30000Que hace cada parte:
cat /etc/bandit_pass/bandit14— lee la contrasena y la manda a la salida estandar.|— conecta esa salida con la entrada denc.nc localhost 30000— abre una conexion TCP al puerto 30000 de la propia maquina y envia lo que llega por stdin.
Lo que veras:
Correct!
<cadena_de_~32_caracteres>
La segunda linea es la contrasena de bandit15. Copiala.
Paso 2b: Alternativa interactiva (para entender el protocolo)
nc localhost 30000El terminal queda esperando tu entrada. Pega manualmente la contrasena de bandit14 y pulsa Enter:
<cadena_de_~32_caracteres>
Lo que veras tras pulsar Enter:
Correct!
<cadena_de_~32_caracteres>
Para salir de nc sin respuesta del servidor: Ctrl+C o Ctrl+D.
Por que funciona
El puerto 30000 de bandit.labs.overthewire.org (accesible como localhost desde dentro del servidor) ejecuta un pequeno servicio de validacion:
- Acepta una conexion TCP.
- Lee una linea de texto.
- Comprueba si coincide con la contrasena de
bandit14almacenada en el sistema. - Si es correcta, responde con
Correct!y la contrasena del siguiente nivel. - Cierra la conexion.
nc es el intermediario perfecto: establece el canal TCP y deja que el texto fluya en ambas direcciones. Con el pipe, el flujo es completamente automatico: cat lee el archivo, el pipe lo manda a nc, nc lo envia al servidor y el servidor responde.
Este patron (enviar datos a un puerto y leer la respuesta) es la base de protocolos como HTTP, SMTP o cualquier API de red.
Errores comunes
El comando nc no existe
Algunos sistemas tienen ncat (de nmap) en lugar de nc. Prueba:
ncat localhost 30000En el servidor de Bandit deberia estar disponible nc.
Pego la contrasena pero no pasa nada
Asegurate de pulsar Enter despues de pegar. nc en modo interactivo espera una linea completa terminada en \n.
Wrong! como respuesta
Significa que la cadena enviada no coincide. Causas frecuentes:
- Copiaste mal la contrasena (espacio extra, caracter recortado).
- Usaste la contrasena de otro nivel.
- Si escribiste a mano, un caracter es incorrecto.
Vuelve a leer con cat /etc/bandit_pass/bandit14 y usa el pipe directamente para evitar errores de tipeo.
La conexion se cierra sin respuesta
Si el servidor recibe una linea vacia (solo \n) puede cerrar sin responder. Asegurate de que el archivo tiene contenido antes de enviarlo:
cat /etc/bandit_pass/bandit14 | wc -cDebe mostrar un numero mayor que 0.
Pasar al siguiente nivel
Con la contrasena obtenida (la cadena que aparecio tras Correct!), abre una nueva terminal y ejecuta:
ssh bandit15@bandit.labs.overthewire.org -p 2220Introduce la contrasena de bandit15 cuando se solicite. Ya estas en el nivel 15.
Conexiones
- 00_README — indice de todos los niveles de Bandit
- MOC_Ciberseguridad — mapa de contenido de ciberseguridad
- Nivel anterior: 14-nivel-13-a-14 — obtencion de la SSH key de bandit14
- Siguiente nivel: 16-nivel-15-a-16 — envio por SSL/TLS con
openssl s_client