XUT_ / MACHINES / THM

0011

RootMe

THMMACHINENONEEASY

Introduction

rootme

Un CTF para principantes. ¿Puedes rootearme?

Reconnaissance

Vamos a ir respondiendo a las preguntas:

  1. ¿Cuántos puertos hay abiertos?

rootme

Hay dos puertos abiertos.

  1. ¿Cuál es la versión de Apache corriendo?

rootme

La versión de Apache corriendo es Apache/2.4.41.

  1. ¿Qué servicio corre en el puerto 22?

En el puerto 22 corre el servicio SSH.

  1. Encuentra directorios en el servidor usando GoBuster.

rootme

  1. ¿Cuál es el directorio escondido?

El directorio "escondido" es /panel/.

Getting a Shell

En esta tarea se nos pide encontrar una manera de subir y conseguir una reverse shell.

Para ello vamos a empezar yendo a la página a ver qué hay.

rootme

Hay un directorio panel/, pues vamos a ver qué hay en él.

rootme

Un formulario de subida, justo lo que necesitamos. Vamos a subir una reverse shell en PHP.

Primero modificamos una reverse shell guardada en nuestra máquina.

rootme

Nos ponemos en escucha por el puerto especificado.

rootme

Subimos la shell.

rootme

Mirando el código fuente vemos que no está permitido, pero tampoco vemos ningún script .js del lado del cliente que esté bloqueando este tipo de archivos, por lo que vamos a mirar qué hace la petición con BurpSuite.

rootme

Parece que acepta imágenes, vamos a cambiar la extensión a ver.

rootme

La subimos y...

rootme

¡Bingo!

Vamos a cargarla yendo ahora al directorio uploads/.

rootme

Le damos click y esperamos la conexión.

rootme

Da un error, vamos a probar con la extensión .phtml:

rootme rootme

Volvemos a cargarla:

rootme

Hemos obtenido la shell. Ahora la estabilizamos:

rootme

Como sabemos que la flag se llama user.txt la buscamos.

rootme

Privilege Escalation

En esta tarea nos piden tres cosas:

  1. Busca archivos con permisos SUID, ¿cuál es raro?

rootme

Hay muchos archivos pero python no suele tener permisos SUID, es raro.

  1. Encuentra una forma de escalar tus privilegios.

Buscamos por Python en el apartado SUID en la página GTFOBins.

rootme

Encontramos una forma de conseguir una shell. Como se ejecuta con SUID, obtendremos la shell de root.

rootme

Lo usamos y conseguimos la shell de root.

rootme

  1. La flag root.txt.

Buscamos el archivo y lo leemos.

rootme