TwoMillion
Last updated
Last updated
TwoMillion es una máquina de dificultad easy donde nos encontraremos con una API donde nos comunicaremos con ella para obtener un código de invitación que requería al registrarnos, luego abusando de ciertos endpoints de la API configuraremos nuestra cuenta para cambiarla como Administrador abusando de un endpoint de la API. Luego una vez poniendo nuestra cuenta como administrador podremos abusar de un endpoint que unicamente tenían acceso los administrador de regenerar una VPN donde nos solicita un parámetro donde abusaremos de un Command Injection para ganar acceso a la máquina. En la máquina al enumerar podremos encontrarnos con unas credenciales expuestas de la base de datos MySQL donde podremos comprobar que las credenciales expuestas son reutilizadas por el usuario admin existente en el sistema. Luego enumerando el sistema podremos fijarnos que tiene un kernel desactualizado haciéndolo vulnerable al .
Vamos a empezar con un nmap:
22/tcp
OpenSSH 8.9p1
80/tcp
Nginx -> Redirección a http://2million.htb
Vamos a añadir el dominio 2million.htb
a nuestro /etc/hosts
:
Ahora vamos a acceder a el:
Vamos a hacerle fuzzing:
Podremos ver un directorio de registro, vamos a acceder a el e intentar registrarnos:
Al intentar registrarnos nos comenta:
No tenemos ningún código de invitación, vamos a seguir enumerando a ver que encontramos. En la sección de las DevTools
en el Debugger
pude encontrar estos archivos JavaScript:
El que más me llama la atención es inviteapi.min.js
ya que no tenemos ningún código de invitación, vamos a ver que contiene:
Si intentamos leer el código podremos ver lo siguiente:
Voy a pegar el output en un archivo .js
en Visual Studio Code:
Podremos ver 2 endpoints de la API:
/api/v1/invite/verify
/api/v1/invite/how/to/generate
El que más me llama la atención y me interesa para registrarme es saber como generar un código de invitación así que mandaré una petición por POST
con curl
:
Podremos ver que esta ofuscado en el método packed
vamos a deobfuscarlo con :