XUT_ / MACHINES / THM

0085

Recruit

THMMACHINENONEMEDIUM

Introduction

recruit

Infíltrate en el nuevo portal de reclutamiento. Mapea el sitio, busca debilidades y gana acceso no autorizado.

Recruit acaba de lanzar su nuevo portal de reclutamiento, permitiendo a HR gestionar aplicaciones de candidatos y a los administradores ver las decisiones de contratación. Mientras que la plataforma parece funcional, la dirección sospecha que la seguridad puede haber sido sobreseida durante el desarrollo. Tu tarea consiste en evaluar la aplicación como un atacante real, mapeando su estructura, ganando acceso inicial, escalando tu acceso y finalmente explotando vulnerabilidades.

¿Puedes ganar acceso inicial, escalar tu acceso y finalmente iniciar sesión como administrador?

Getting the Flags

Reconocimiento Inicial

Comenzamos escaneando los puertos abiertos.

recruit

Ahora vamos a escanear dichos puertos más en profundidad.

recruit

Vamos a ver qué directorios tiene.

text
recruit.thm
    ├── assets [200 636B]
    ├── mail [200 453B]
    │   └── mail.log [200 2KB]
    ├── phpmyadmin [200 3KB]
    │   ├── doc
    │   │   └── html
    │   │       ├── config.html [200 44KB]
    │   │       ├── faq.html [200 48KB]
    │   │       ├── index.html [200 3KB]
    │   │       ├── search.html [200 1KB]
    │   │       ├── settings.html [200 2KB]
    │   │       └── user.html [200 2KB]
    │   ├── js
    │   │   ├── common.js [200 5KB]
    │   │   ├── config.js [200 7KB]
    │   │   ├── export.js [200 6KB]
    │   │   └── sql.js [200 9KB]
    │   ├── favicon.ico [200 22KB]
    │   └── index.php [200 3KB]
    ├── api.php [200 1019B]
    ├── file.php [200 20B]
    ├── footer.php [200 210B]
    ├── header.php [200 256B]
    └── sitemap.xml [200 471B]

Hay algunos archivos que parecen interesantes, como api.php. Vamos a ver cómo es la página web.


Profundización

Vamos a ver qué hay por la web e investigar sobre los archivos encontrados.

recruit


Explotación

LFI

Vamos a intentarlo.

recruit

Como dice que sólo se permiten archivos locales vamos a probar a leer config.php, ya que sabemos que es una aplicación PHP.

recruit

Se ve que no existe. Vamos a intentar LFI mediante filtros PHP:

recruit

Parece que esto sí que ha funcionado. Vamos a intentar iniciar sesión.

recruit


Escalada de Privilegios

SQL Injection

En la página de dashboard podemos ver un parámetro de búsqueda de empleados, por lo que vamos a probar lo que probaríamos al ver cualquier caja de búsqueda que aparentemente mira en una base de datos, emplear una SQLi.

recruit

La prueba resulta exitosa. Hay indicios de SQLi. Vamos a intentar obtener información. Vamos a intentar usar sqlmap para ello. Para poder usarlo, como la sesión se maneja con una cookie, necesitamos incluirla o no funcionará por fallo al acceder a /dashboard.php.

bash
sqlmap -u "http://recruit.thm/dashboard.php?search=1" --cookie="PHPSESSID=[COOKIE]; security=low" --dbs

recruit

Vamos a intentar extraer información de la base recruit_db:

bash
sqlmap -u "http://recruit.thm/dashboard.php?search=1" --cookie="PHPSESSID=[COOKIE]; security=low" -D recruit_db --tables

recruit

Ahora vamos a listar los datos de los usuarios.

bash
sqlmap -u "http://recruit.thm/dashboard.php?search=1" --cookie="PHPSESSID=[COOKIE]; security=low" -D recruit_db -T users --dump

recruit

Con estas credenciales vamos a intentar acceder.

recruit

Y con esto conseguimos la flag de admin.