Ir al contenido

Academy

Autor
Santiago Chavarro

Enumeración
#

nmap -p22,80,33060 -sVC -A IP 

PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 c0:90:a3:d8:35:25:6f:fa:33:06:cf:80:13:a0:a5:53 (RSA)
|   256 2a:d5:4b:d0:46:f0:ed:c9:3c:8d:f6:5d:ab:ae:77:96 (ECDSA)
|_  256 e1:64:14:c3:cc:51:b2:3b:a6:28:a7:b1:ae:5f:45:35 (ED25519)
80/tcp    open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Hack The Box Academy
|_http-server-header: Apache/2.4.41 (Ubuntu)
33060/tcp open  mysqlx  MySQL X protocol listener

Puerto 80
#

Revisando la pagina web se puede saber que esta usando php:

gobuster dir -u http://IP -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --no-error -t 200 -x php

Voy a tratar de interceptar una petición en el login que hay en admin.php para ver como se esta cargando la petición pero no encontré nada util entonces lo hice en la pagina del registro, y pude ver que al momento de mandar la petición para registrarse se puede modificar el rol:

Por defecto viene en 0 entonces lo asigné como 1 y al momento de iniciar sesión en el panel como admin me permitió el acceso:

Al entrar en esa URL nos encontramos con que hay una APP Laravel y esta su KEY 1:

Vemos que tener esta APP_KEY nos da la posibilidad de usar el CVE-2018-15133

Hay diferentes exploits que podemos usar para obtener ejecución remota de comandos pero me parece un ejercicio interesante hacer el nuestro propio que fue lo que hice la PoC esta presente en el siguiente GitHub

Usuario
#

En el directorio root de la pagina Academy hay un archivo con nombre .env en el encontraremos unas credenciales de la base de datos que podemos reusar con el usuario cry0l1t3

Root
#

Ya con el usuario cry0l1t3 vemos que hace parte del grupo adm y podemos leer los archivos auth.log dure un rato tratando de leerlos simplemente con cat pero no logre nada al final termine encontrando que con aureport y la opción --tty nos mostraba un reporte de este archivo y podía mostrar las credenciales en texto plano.

Después de iniciar sesión como ese usuario verificamos nuestros permisos sudo:

Verificando en Gtfobins encontramos que podemos escalar privilegios con la siguiente cadena de comandos:

TF=$(mktemp -d)
echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >$TF/composer.json
sudo composer --working-dir=$TF run-script x

Referencias
#


  1. La APP_KEY de Laravel es un componente de seguridad crucial en una aplicación Laravel. Se trata de una clave de cifrado simétrico de 32 bytes generada aleatoriamente y codificada en base64 que Laravel utiliza para diversas operaciones criptográficas. Entre las funciones de esta clave esta el cifrado/descifrado de datos incluyendo datos de sesión y cookies, garantizando su integridad y evitando la manipulación por parte del cliente. Tokens de restablecimiento de contraseña. La APP_KEY es fundamental para mantener la seguridad de su aplicación Laravel al proteger los datos confidenciales tanto en tránsito como en reposo. Garantizar que los datos cifrados no puedan ser manipulados o modificados sin la clave correcta. ↩︎