Skip to main content
HackTheBox machines – Compromised WriteUp

HackTheBox machines – Compromised WriteUp

Compromised es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en Linux

Compromised es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Difícil.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Compromised 10.10.10.207 a /etc/hosts como compromised.htb y comenzamos con el escaneo de puertos nmap.

En este caso no vemos muchos servicios disponibles por lo que comenzaremos revisando el portal web existente a través del puerto 80.

 

Enumeración

Accedemos a través del navegador al puerto 80 de la máquina visualizando el siguiente portal web:

Enumerando el puerto 80 de la máquina Compromised

 

Revisamos un poco el portal y no vemos nada que pueda ayudarnos a continuar, aparte de la creación de una cuenta de usuario pero con la cual no podemos tampoco avanzar por el momento. Comenzaremos la enumeración de directorios y ficheros con el fin de conocer alguna ruta que nos ayude a avanzar, lanzaremos gobuster en primer lugar:

 

Y descubrimos el directorio de backup que puede traer cosas interesantes, así que accedemos al mismo y descubrimos lo siguiente:

Acceso a los backups del site

 

En el mismo existe un fichero tar.gz descargamos el mismo y se trata de una copia del portal que vimos anteriormente, aśi que procedemos a revisar el mismo con el fin de descubrir alguna vulnerabilidad.

Analizando el código del mismo encontramos varias cosas interesantes, por un lado la versión de litecart en el fichero index.php:

 

También encontramos el salt de una password en el fichero config.inc.php:

 

Y en el fichero login.php de la seccioón de admin un fichero txt oculto donde se almacenan las credenciales:

 

Accederemos entonces a través del navegador al fichero txt descubierto en el fichero de login.php y conseguiremos las credenciales del usuario admin:

Y que utilizaremos para acceder a la cuenta de este usuario a través del portal de admin:

Logueando como administrador de litecart

 

Utilizamos las claves obtenidas en este formulario y accederemos al portal donde veremos una sección similar a la siguiente captura:

Portal de administración de litecart

 

Analizamos un poco el portal pero vamos a google directamente a buscar si existe alguna vulnerabilidad conocida acerca de la versión utilizada de litecart y encontramos una vulnerabilidad de Arbitrary File Upload y una poc de la misma:

https://medium.com/@foxsin34/litecart-2-1-2-arbitrary-file-upload-authenticated-1b962df55a45

Además de la poc explicada y el exploit existente en el mismo, encontramos otro exploit que nos ayudará más al menos en esta primera fase, y que utilizaremos para verificar la vulnerabilidad:

https://www.exploit-db.com/exploits/45267

Así que ejecutaremos el exploit para verificarla:

Pero accedemos a dicha url y para nuestra sorpresa aparece vacío, es decir, no nos ha funcionado. Revisando en google y hablando con otros usuarios de htb parece que el exploit necesita de alguna modificación para funcionar, así que nos vamos al exploit y modificaremos el siguiente código:

Por este otro:

Una vez hecha la modificación, ejecutaremos de nuevo el exploit:

Y veremos la información de php a través del phpinfo:

Información de la configuración de php

 

En el mismo vemos la versión de php 7.2.24 pero además de esto vemos que hay una serie de funcionalidades de php que se encuentrar desactivadas:

Funciones desactivadas en php en Compromised

Así que buscamos en google y encontramos un bug en php, el #74605 en el cual se pueden bypasear para poder habilitar de nuevo las mismas y que este bug afecta a las versiones php desde la 7.0 hasta la 7.3

Además de esto encontramos un exploit para bypassear esta configuración:

https://packetstormsecurity.com/files/154728/PHP-7.3-disable_functions-Bypass.html

Nos descargaremos dicho exploit, pero antes de continuar necesitaremos realizar una modificación en el mismo. Cambiaremos el siguiente código:

Por este otro:

Ahora necesitaremos subir el fichero al portal web siguiendo los pasos descritos en la poc vista anteriormente o, utilizando el exploit mencionado en la misma, en nuestro caso por comodidad vamos a utilizar el script, así que procederemos a su ejecución:

La subida se ha realizado correctamente así que accederemos al navegador para obtener información del usuario que tiene abierto el mismo:

LFI en Compromised

Y vemos que tenemos acceso con el usuario www-data, así que el siguiente paso será obtener el fichero /etc/passwd para descubrir los usuarios existentes en la máquina:

Acceso al fichero passwd

 

Y vemos una cosa muy interesante y es que el usuario mysql puede abrir una shell con bash por lo que será el camino a seguir a continuación para acceder a la máquina. Trataremos de ver las funciones del mismo lanzando la siguiente consulta a través de nuestro fichero bypass.php

Ahora que conocemos la configuración del mismo, al igual que vimos en el backup, vamos a intentar recuperar las credenciales del usuario de la base de datos a través del fichero config.inc.php y descubrimos lo siguiente:

Ahora que ya conocemos las credenciales de acceso, lo utilizaremos para introducir nuestra clave ssh en el fichero authorized_keys de mysql y acceder por ssh a la máquina.

Creamos nuestra clave ssh y lanzaremos el siguiente comando a través del parámetro cmd:

Ahora sólo nos queda acceder a la máquina por ssh con la clave generada y el usuario mysql:

 

Revisamos ahora en la home de este usuario y encontramos un fichero muy interesante llamado strace-log.dat

Así que revisamos el mismo y encontramos varias contraseñas:

 

 

Obteniendo la flag de user

Probamos el acceso con el usuario sysadm y una de las password descubiertas y conseguir escalar a este usuario.

Y si nos vamos  a la home del mismo conseguimos la flag de user:

Con esto ya tenemos completada la mitad de la máquina, ahora vamos a por root.

 

Escalado de privilegios

Ahora que ya estamos con el usuario sysadm utilizaremos la herramienta de linpeas para enumerar el sistema y encontramos un fichero sospechoso y que debereos de analizar:

Descargaremos el mismo en nuestra máquina y lo analizaremos con la herramienta radare2 y encontramos una password en la función pam_sm_authenticate

Haciendo ingenieria inversa al fichero pam_unix.so

 

Así que utilizaremos la misma para poder escalar privilegios a root y bingo, somos root:

 

 

Obteniendo la flag de root

Ahora que somos root sólo nos queda ir a la home de este usuario y conseguir nuestra flag:

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *