U. Bandit Level 20 → Level 21 - Walkthrough
Objetivo del Nivel
El objetivo de este nivel es utilizar un binario con permisos setuid
llamado suconnect
, que conecta a un puerto en localhost y verifica la contraseña del nivel anterior. Si la contraseña es correcta, devolverá la contraseña del siguiente nivel.
¿Qué es setuid
?
setuid
?El bit setuid
es un permiso especial en sistemas Unix/Linux que permite a un archivo ejecutable ejecutarse con los privilegios del propietario del archivo, en lugar de los privilegios del usuario que lo ejecuta. En este caso, suconnect
se ejecuta con los permisos de bandit21
, lo que nos permite acceder a información restringida.
Información de Conexión
Host:
bandit.labs.overthewire.org
Puerto:
2220
Usuario:
bandit20
Contraseña: Se obtiene en el nivel anterior.
Comandos Útiles
Para resolver este nivel, utilizaremos los siguientes comandos:
nc -l -p <puerto>
- Inicia un servidor de escucha en un puerto específico../suconnect <puerto>
- Conecta al puerto especificado en localhost.echo "<mensaje>" | nc -l -p <puerto>
- Envia un mensaje al servidor de escucha.
Resolución Paso a Paso
1. Identificar el binario setuid
setuid
Al listar los archivos en el directorio de inicio, encontramos un binario llamado suconnect
:
ls
Salida esperada:
suconnect
Para obtener más información sobre este archivo, usamos file
:
file suconnect
Salida esperada:
suconnect: setuid ELF 32-bit LSB executable...
Esto confirma que suconnect
tiene permisos setuid
y se ejecuta con los privilegios del usuario propietario.
2. Iniciar un servidor de escucha
Abrimos un segundo terminal y ejecutamos:
echo "0qXahG8ZjOVMN9Ghs7iOWsCfZyXOUbYO" | nc -l -p 1112
Este comando inicia un servidor de escucha en el puerto 1112
y envía la contraseña cuando se establece la conexión.
3. Ejecutar suconnect
suconnect
En el primer terminal, ejecutamos suconnect
apuntando al puerto 1112
:
./suconnect 1112
Salida esperada:
Read: 0qXahG8ZjOVMN9Ghs7iOWsCfZyXOUbYO
Password matches, sending next password
4. Obtener la contraseña del siguiente nivel
En el segundo terminal, el servidor de escucha recibirá y devolverá la contraseña del nivel 21:
EeoULMCra2q0dSkYj561DX7s1CpBuOBt
5. Acceder al Nivel 21
Usamos la contraseña obtenida para iniciar sesión en bandit21
:
ssh bandit21@bandit.labs.overthewire.org -p 2220
Cuando se solicite, ingresamos la contraseña EeoULMCra2q0dSkYj561DX7s1CpBuOBt
.
Notas Adicionales
suconnect
se ejecuta con permisos elevados y verifica la contraseña ingresada.Un servidor de escucha es útil para interactuar con programas que esperan entradas de red.
Verifica que el puerto utilizado no esté ocupado antes de ejecutar el servidor de escucha.
¡Felicidades! Has completado el Nivel 20 y estás listo para continuar con el Nivel 21.
Última actualización