HTB - Usage
https://app.hackthebox.com/machines/Usage
Última actualización
https://app.hackthebox.com/machines/Usage
Última actualización
Nombre de la Máquina: Usage
IP de la Máquina: 10.129.26.222
Sistema Operativo: Linux
Dificultad: Easy
Fecha de Publicación: 13 Apr 2024
Realizamos un ping a la máquina objetivo para verificar la conectividad y obtener información sobre la ruta utilizando la opción -R
para incluir la ruta de retorno:
El valor de TTL (Time To Live) igual a 63 puede ser indicativo de que el sistema operativo de la máquina objetivo es Linux. El TTL es un valor en el campo de los paquetes IP que indica la duración que un paquete puede estar en una red antes de ser descartado. Linux establece por defecto el valor de TTL de sus paquetes IP en 64, que al pasar por un salto en la red se decrementa a 63.
Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la máquina objetivo. Utilizamos las opciones -p-
para escanear todos los puertos, --open
para mostrar solo los puertos abiertos, -sS
para un escaneo de tipo TCP SYN, --min-rate 5000
para establecer la velocidad mínima de paquetes y -vvv
para un nivel de verbosidad alto. Además, utilizamos -n
para desactivar la resolución de DNS, -Pn
para no realizar el escaneo de ping, y -oG allPorts
para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra función extractPorts:
Posteriormente, realizamos un escaneo más detallado de los puertos identificados utilizando la opción -sCV
para detección de versiones y scripts de enumeración de servicios. Específicamente, indicamos los puertos a escanear con -p __PORTS__
(reemplazando __PORTS__
con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted
:
Para añadir la entrada "10.129.179.64 active.htb" al archivo /etc/hosts
, puedes usar el siguiente comando en la terminal:
Estas son las rutas que encuentro. Las cuales revisaré con Burpsuite para entenderlas mejor. Además tambien agregué admin.usage.htb a /etc/hosts.
Creo mi cuenta en usage.htb/registration
Intento resetear la clave en usage.htb/forget-password
Interceptamos la consulta con Burpsuite de /forget-password y nos percatamos de un posible BSQLi
Al hacer pruebas en el campo email, puedo identificar que quizás es vulnerable a SQLi, pero no demuestra ser una normal quizás un blind sqli, por lo que utilizaré SQLmap.
Para ello copiaré el request que obtuve de Burpsuite y lo guardaré en un archivo request.txt
Luego utilizo SQLmap con el parametro -r
Es blindsql así que puede tardar un poco mas de lo habitual.
Ingresamos con las credenciales en admin.usage.htb
Y revisando encontramos que es un panel de administración Laravel 1.8.17, buscando en internet me encuentro con el CVE-2023-24249
An arbitrary file upload vulnerability in laravel-admin v1.8.19 allows attackers to execute arbitrary code via a crafted PHP file.
Se refierere a cuando vamos a cambiar el avatar de nuestro usuario Administador en http://admin.usage.htb/admin/auth/setting
Podemos encontrar un tutorial de como ejecutar este bypass aquí
Subimos nuestro archivo malicioso en formato .JPG y al mismo tiempo interceptamos con Burpsuite.
En filename="pown.jpg"
le agrego .php a nuestro archivo quedando: pown.jpg.php
, luego lo mando al Repeater (CTRL + R)
-> Send ->Follow Redirection
Y luego vamos a la ruta donde debería estar nuestro archivo admin.usage.htb/uploads/images/pown.jpg.php
Te recomiendo que establezcas una reverse shell ya que después de unos minutos el archivo que subimos es eliminado y tendrás que bypassear de nuevo el uploader. Yo ejecuto el one liner:
Lo primero que hice fue subir LinEnum para tener una visión mas amplia de mi objetivo, al parecer también hay otro usuario Xander.
También me encontré con la existencia de varios archivos ocultos en el escritorio de Dash.
Después de revisar una por una encuentro una contraseña en el archivo .monitrc
Quiero creer que esta es la contraseña de Xander
así que pruebo conectandome mediante SSH.
Nos damos cuenta que usa 7z para comprimir todo lo de /var/www/html/ y lo hace al final colocando "..*", esto es una Wildcard y podemos abusar de ella.
Y mientras se ejecuta el binario debería lanzarnos el root.txt.