THL Bridgenton — Linux

Gm4tsyGm4tsy
3 min read

Para poder hacer uso de esta máquina primero debemos descargar el archivo y así poder desplegar el laboratorio.

Descargamos el archivo de la página https://thehackerslabs.com/

Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos un archivo.

Para desplegar el laboratorio usaremos nuestro hipervisor favorito, así también al ejecutarlo podemos ver que nos indica la dirección IP que tiene la máquina.

Realizamos un ping a la máquina para comprobar la conexión y observamos que sí la tenemos.

Iniciamos un escaneo de puertos y podemos observar varios puertos habilitados.

Volvemos a realizar un escaneo más detallado de los puertos, pero no observamos mucha más información.

Ingresamos la dirección IP en el navegador y podemos observar una página que los botones llevan a un login y otro a un formulario.

En registro.php tenemos la opción para subir archivos.

Probamos realizando un escaneo de subdirectorios y podemos ver que hay un directorio llamado uploads.

Probaremos subiendo una reverse-shell.

Probamos subiendo directamente, pero no es posible.

Para ver si podemos subir alguna variación interceptamos el envío del formulario con Burpsuite.

Enviamos la captura a intruder y seleccionamos solo la extensión.

Cargamos nuestro payload y le damos en start attack.

Revisando los resultados se puede observar que phtml es el que acepta.

Para evitar subir el archivo y repetir el proceso solo enviamos el request de esa captura al repeater y lo enviamos.

Al dirigirnos al directorio de uploads podemos ver que tenemos el archivo subido.

Iniciamos nuestro listener.

Hacemos clic en el archivo que subimos y en nuestro listener ya tenemos acceso.

Para facilitar las cosas en este punto migraremos la shell porque en este caso nos ocurre que no podemos hacer uso de las flechas o subir y bajar al comando anterior. Para ello primero hacemos

script /dev/null -c bash

luego un ctrl+z, regresaremos a nuestra consola seguido de ello ingresaremos los siguientes comandos para recuperar la shell usamos stty

stty raw -echo; fg
                reset xterm

para obtener más características usamos

export TERM=xterm

para la variable de entorno

echo $SHELL

y para pasar a bash usamos

export SHELL=/bin/bash

para establecer el tamaño adecuado de la consola ingresamos

stty rows 59 cols 236

de esta manera ya nos podemos mover con más libertad en la consola. Listamos los usuarios que tenemos y vemos a root con james.

Revisando los archivos temporales tenemos un example.py

Revisando el archivo observamos que importa la librería hashlib la cual podríamos aprovechar, pero por ahora no nos sirve, ya que no podemos ejecutar el archivo como sudo y realizar un library hijacking.

Comprobando permisos SUID observamos que para james tenemos el permiso para el binario base64.

Buscando en la página de GTFOBins observamos como hacer uso de este binario.

Puesto que podemos leer un archivo de james el único que por defecto podría existir es el id_rsa y es el que leemos.

Tratamos de ingresar usando el id_rsa, pero nos pide un password.

Usamos ssh2john para extraer el hash y con john obtenemos el password.

Nos conectamos ingresando la frase obtenida.

Realizamos un sudo -l y podemos ver el archivo en Python que encontramos al comienzo. Ahora sí podemos realizar el library hijacking que indicamos antes.

Para escalar usando esta librería solo debemos crear un archivo en la misma ubicación del script.

Este archivo lo que realizara es generarnos una shell. Luego le damos permisos de ejecución al archivo.

Cuando ejecutemos el archivo podemos observar que nos genera una consola con permisos de root. De esta manera culminando esta máquina.

0
Subscribe to my newsletter

Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gm4tsy
Gm4tsy