Borb3d Page

Página para compartir conocimientos

View on GitHub

Wonderland WriteUp

Volver al Indice

Esta máquina ha sido creada por “NinjaJc01”, tiene una dificultad de “Medium” y decir que, personalmente, me ha encantado la sala.
Quizás, si tengo que ponerle un pero, tiene demasiados cambios de usuario pero en sí muy buena en su totalidad.


# Enumeración

Comenzamos como siempre realizando una enumeración de los puertos con nmap, pero, en este caso vamos a variar un poco la sintáxis del primer comando para escanear los puertos ya que me iba demasiado lento.

nmap1 nmap2

Esta máquina tiene solo el puerto 22 y el 80 abierto y no parece tener demasiadas cosas que buscar solo con esta información, así que accedemos a la web y en la página principal vemos un pequeño texto sobre el tema “Alicia en el país de las maravillas” y la imagen del conejo.
Si examinamos el conejo y analizamos la URL de esta imagen vemos un directorio “img”, accedemos a él y vemos 3 imagenes, y 2 de ellas son la misma pero les cambia el color y el formato… curioso.

img

Descargo las 3 imágenes y me pongo a hacerle Steganografía mientras dejo Dirsearch trabajando buscando algún directorio interesante.
El comando que he usado para hacer la “Stego” ha sido:
steghide info "fichero"

stego

Como vemos, hemos encontrado un fichero .txt dentro de una de las imágenes (la principal), así que lo extraemos con el comando que he dejado justo antes y abrimos el archivo a ver que contiene.

Pista dirsearch

Dejo arriba también la imagen de la búsqueda con dirsearch ya que al leer esta “pista” y ver que dirsearch había sacado un directorio solo con la letra “r”, no necesito saber más.
Accedo a este directorio “r” y aparece este texto.

Would you tell me, please, which way I ought to go from here?

Lo que me hace pensar… tengo que colocar cada letra de la pista en un directorio hasta crear la palabra.

r a b b i t

# Explotación

En el código fuente de esta nueva página hemos encontrado las credenciales en texto plano de uno de los usuarios, accedemos vía SSH y como vemos en la imagen que dejo a continuación, en el directorio home de este usuario, ¿está la flag de root?, y veo que en la “ayuda” de la flag de user dice.

Everything is upside down here.

Así que intento buscar la flag de user en el directorio de root y ¡perfecto!, tenemos la flag de User.

userFlag

# Post-Explotación

Como siempre, comprobamos los permisos que tiene este usuario como root con el comando "sudo -l" y vemos que tiene privilegios de ejecutar un archivo de python3.6 con el usuario “rabbit”, así que entendemos que antes de root debemos de cambiar de usuario.
Le echamos un vistazo rápido al fichero y vemos que hace uso de la librería “random”, así que vamos a crear una librería falsa para que cuando lo ejecutemos, use la librería falsa que hemos creado.

sudo-l

Para crear esta “librería falsa” lo único que debemos hacer es:

randomPy

Ejecutamos el comando tal como vemos en la imagen (con las rutas absolutas) para que sea ejecutado con los privilegios de ese usuario y listo, hemos cambiado de usuario.

rabbitPrives

Vamos al directorio de este nuevo usuario y vemos que hay un archivo con SUID, así que vamos a ejecutarlo a ver que hace.

execTeaParty

Según vemos solo saca un texto con la hora actual, se queda parado (intentamos sacar una bash ahí por probar algo) y luego salta el “error” y se acaba el programa.

catTeaParty

Examinamos más a fondo el programa y vemos que el comando para sacar la hora no tiene ruta absoluta así que… PATH hijacking de nuevo, solo que esta vez, debemos modificar el path para que coja primero el directorio que le digamos.

Path

Ejecutamos ahora sí, el programa llamado “TeaParty” de nuevo y listo, ahora somos el usuario “hatter”, echamos un ojo a su directorio y vemos un archivo llamado “password.txt” con la pass de este usuario, así que accedemos por ssh para trabajar mejor.
Ejecutamos nuevamente el comando "sudo -l" y vemos que este usuario no se encuentra en el archivo “sudoers” por lo que no puede ejecutar este comando…(¿hemos descendido de privilegios?).

hatterSudo

Pienso…(no hemos realizado todo esto para descender…algo tiene que haber)así que realizo una enumeración del sistema y encuentro que, el comando "/usr/bin/perl" tiene “capabilities” para ejecutarse como ROOT…y se lo que pensáis (¿podríamos habernos aprovechado de esto con el primer usuario que conseguimos?)pero NO, no tenían permisos para ejecutar "/usr/bin/perl".
Realizamos una búsqueda por Google para encontrar como aprovecharnos de esto (la verdad no me manejo con “perl”) y encuentro un artículo que lo deja bien facilito.
Privesc Capabilities Perl

rootFlag

Lo ejecutamos y…¡Somos ROOT!, cogemos nuestro premio y hemos acabado esta sala.