W. Bandit Level 22 → Level 23 - Walkthrough
Objetivo del Nivel
El objetivo de este nivel es analizar el uso de cron
, el programador de tareas en sistemas Unix/Linux, para descubrir un script que se ejecuta periódicamente y extrae la contraseña del siguiente nivel.
¿Qué es cron
?
cron
?cron
es un daemon en sistemas Unix/Linux que ejecuta tareas programadas en intervalos específicos definidos en archivos cronjob
. En este nivel, debemos encontrar el cronjob
que ejecuta un script para recuperar la contraseña de bandit23
.
Información de Conexión
Host:
bandit.labs.overthewire.org
Puerto:
2220
Usuario:
bandit22
Contraseña: Se obtiene en el nivel anterior.
Comandos Útiles
Para resolver este nivel, utilizaremos los siguientes comandos:
ls -l /etc/cron.d/
- Lista los archivoscronjob
en el directorio de configuración.cat /etc/cron.d/<cronjob>
- Muestra el contenido de uncronjob
.cat <ruta_del_script>
- Muestra el contenido del script ejecutado porcron
.echo <cadena> | md5sum
- Calcula el hash MD5 de una cadena.
Resolución Paso a Paso
1. Identificar el cronjob
cronjob
Listamos los archivos cronjob
en el directorio /etc/cron.d/
:
ls -l /etc/cron.d/
Salida esperada:
total 24
-rw-r--r-- 1 root root 122 Sep 19 07:08 cronjob_bandit23
...
Vemos que hay un archivo cronjob_bandit23
, que es el que nos interesa.
2. Inspeccionar el cronjob
cronjob
Leemos el contenido de cronjob_bandit23
:
cat /etc/cron.d/cronjob_bandit23
Salida esperada:
@reboot bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
* * * * * bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
Esto indica que el script /usr/bin/cronjob_bandit23.sh
se ejecuta cada minuto.
3. Analizar el script
Leemos el contenido del script:
cat /usr/bin/cronjob_bandit23.sh
Salida esperada:
#!/bin/bash
myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)
echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"
cat /etc/bandit_pass/$myname > /tmp/$mytarget
Este script extrae la contraseña de bandit23
y la almacena en /tmp/
con un nombre basado en el hash MD5 de la cadena I am user bandit23
.
4. Calcular el nombre del archivo
Ejecutamos el siguiente comando para obtener el hash MD5:
echo "I am user bandit23" | md5sum | cut -d ' ' -f 1
Salida esperada:
8ca319486bfbbc3663ea0fbe81326349
5. Obtener la contraseña
Leemos el archivo generado por el script en /tmp/
:
cat /tmp/8ca319486bfbbc3663ea0fbe81326349
Salida esperada:
0Zf11ioIjMVN551jX3CmStKLYqjk54Ga
6. Acceder al Nivel 23
Usamos la contraseña obtenida para iniciar sesión en bandit23
:
ssh bandit23@bandit.labs.overthewire.org -p 2220
Cuando se solicite, ingresamos la contraseña 0Zf11ioIjMVN551jX3CmStKLYqjk54Ga
.
Notas Adicionales
cron
permite ejecutar tareas programadas automáticamente.Podemos analizar
cronjobs
para descubrir tareas que manipulan archivos sensibles.El uso de
md5sum
en este caso se basa en la identificación del usuario.
¡Felicidades! Has completado el Nivel 22 y estás listo para continuar con el Nivel 23.
Última actualización