Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.
Descargamos el archivo de la página dockerlabs.es/#
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos
Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.
Realizamos el escaneo de la dirección IP y podemos observar que tenemos 2 puertos habilitados.
Vamos a la página web podemos observar que solo tenemos la página default de apache2
.
Realizamos un primer escaneo y podemos observar que no tuvimos éxito debido a que no obtuvimos alguna información extra.
Por ello realizamos uno más profundo y podemos observar que encontramos un archivo adicional llamado penguin.html
.
Al dirigirnos a la página a simple vista parece que solo se trata de una página de prueba.
Revisamos el código, pero no encontramos alguna información que nos pueda ser de utilidad.
Por ello descargamos la imagen para analizarla y usando steghide
tratamos de extraer la imagen, pero no tenemos el password.
Para este paso haremos uso de stegcracker
, ya que con esta herramienta podemos realizar un ataque de fuerza bruta. Ejecutamos la herramienta y podemos observar que el password es chocolate
.
Volvemos a ejecutar steghide
y observamos que pudimos extraer el archivo.
Si revisamos podemos observar que el archivo es de KeePass.
Intentamos abrirlo, pero tiene contraseña así que podemos optar por aplicar fuerza bruta, para ello primero debemos obtener el hash y usaremos keepass2john
.
Una vez obtenido el hash usamos john
para romper el hash, luego de un momento observamos que el password es password1
.
Usamos keepassxc
.
Ingresamos el password y podemos observar que tenemos un usuario y un password pinguinomaravilloso123
.
Probamos ingresar, pero no es posible.
Revisando la sesión de KeePass podemos observar que dice penguin /pingucontraseña
.
Usamos ese nombre para comprobar si es posible ingresar.
Como la shell no es muy práctica ingresamos el siguiente comando y ya tenemos una mucho mejor.
script /dev/null -c bash
Una vez hecho eso, realizamos un pwd
para ver donde estamos y luego un ls
y podemos observar 2 archivos.
Si leemos ambos archivos observamos que el primero indica un texto y el segundo nos indica como se genera ese archivo con el texto.
Revisando los permisos podemos observar en ambos archivos que todos los usuarios (el propietario, el grupo y otros) tienen permiso total sobre el archivo: pueden leerlo, escribir en él y ejecutarlo.
Y como podemos ejecutar archivos procedemos a modificar el archivo para que de permisos a la bash. Ejecutamos el archivo y primero nos da un error. Pero luego volvemos a intentarlo y podemos observar que sí funciona y ya obtuvimos el root.
Suponemos que fue por una tarea programada para el archivo llamado script.sh para ello probamos tratando de leer las tareas crontab
, pero no es posible porque no encuentra el comando.
Para ver si es correcto que se ejecutó por una tarea programada usaremos pspy64
. Por eso una vez con el archivo en nuestro directorio iniciaremos un servidor para poder descargarlo.
Descargamos el archivo en la máquina víctima y podemos observar que ya tenemos el archivo.
Le damos permisos de ejecución.
Podemos observar que efectivamente el archivo se está ejecutando muchas veces como root y por ello se puedo ejecutar el comando que agregamos al script.
Con esa última revisión sobre lo sucedido podemos dar por concluida esta máquina de manera exitosa.