Introduction

Cae por el agujero del conejo y entra en el mundo de las maravillas.
Getting the Flags
Reconocimiento Inicial
Comenzamos escaneando los puertos abiertos de la máquina.

Ahora vamos a escanear dichos puertos más en profundidad.

Vamos a listar directorios de la web.

No hemos encontrado nada, vamos a ver cómo se ve la web.

Profundización
Vamos a analizarla.

Parece que hemos encontrado una pista, vamos a ver qué hay dentro.

Un poco críptica la pista, sin embargo, si recordamos el escaneo, había un output /r --> r/. Puede que esto sean directorios.

¡Justo en el clavo! Vamos a seguir investigando. Sólo hay una imagen y algo que dada la naturaleza críptica de las pistas del reto podría llegar a ser una pista, algo sobre izquierda (left) y derecha (right). Vamos a mirar el código fuente:

Parece que hemos encontrado un usuario y una contraseña, vamos a intentar entrar por SSH.

Y estamos dentro, vamos a buscar la primera flag.

Explotación
Investigando vemos lo siguiente:

Parece que podemos ejecutar un script como rabbit. Vamos a ver de qué trata el script.

Parece que carga un poema y elige 10 lineas al azar. Sin embargo hay algo más importante, también está cargando el módulo random.

Podemos tratar de realizar un Python Module Hijacking. Para ello creamos un archivo random.py con el siguiente contenido:
import os os.system("/bin/bash")
Lo dejamos guardado en la misma carpeta del script. Y ahora ejecutamos el script como rabbit.

Una vez dentro de rabbit, podemos ver lo siguiente:

Es un binario con SUID. Si nos fijamos bien hay un comando: date.

Y lo que pasa es que este no se ejecuta con ruta completa, al contrario que /bin/echo. Vamos a mirar el PATH, porque esto podría darnos la clave para un PATH hijacking.

Acabamos de meter en el PATH como primera ruta el home de rabbit la cual es escribible por nosotros, vamos a ver qué hace el binario exactamente.

Pata explotar esto ahora vamos a crear un archivo llamado date con el siguiente contenido:
#!/bin/bash /bin/bash
Lo guardamos en la misma ruta que hemos metido en el PATH y le damos permisos de ejecución.

Ahora ejecutamos teaParty.

Hemos conseguido escalar privilegios hasta hatter (el sombrerero). Vamos a ver si este encuentra la flag de usuario.

Pues no, xD. Vamos a ver qué hay en su home.

Parece que hay una contraseña de alguien.

Escalada de Privilegios
Vamos a ver si podemos escalar privilegios de alguna forma.

Parece que hay algunas capabilities, la de perl nos permite escalar privilegios:

Sin embargo cuando tratamos de utilizarlo vemos que no nos deja:

Puede que sea porque no somos parte de grupo hatter, lo cual es raro, vamos a iniciar sesión de manera fresca por SSH con la contraseña de hatter.

Ahora ya si somos grupo hatter y sí debería dejarnos utilizar la capability.

Efectivamente ya somos root.
Vamos a buscar user.txt porque no hemos podido encontrarla sin ser root.

HUH??? Con razón no la encontrábamos, la flag user.txt estaba en el directorio root.

Ahora vamos a buscar la flag de root.txt (que estaba en el directorio home de alice, lo vimos al empezar).
Conclusión
Una máquina muy divertida. Fácil pero tampoco demasiado. En ella hemos trabajado:
- Esteganografía.
- Python Module Hijacking.
- PATH Hijacking.
Entre otras. Un reto que nos ha puesto a prueba pero dejándonos respirar.
