๐ขBusqueda

Enumeraciรณn
Enumeraciรณn de puertos
Comenzamos la resoluciรณn de la mรกquina "Busqueda", enumerando que puertos tiene abiertos el sistema objetivo.

Dos puertos abiertos: 22 y 80. El siguiente paso serรก la enumeraciรณn profunda de los servicios abiertos.

Servicios abiertos:
Puerto 22 -> SSH -> OpenSSH 8.9
Puerto 80 -> HTTP -> Apache httpd 2.4.52 -> Registrar dominio en /etc/hosts
Registramos el dominio searcher.htb en el archivo /etc/hosts
Enumeraciรณn Web
La mรกquina "Busqueda" estรก ejecutando un servidor Web en el puerto 80. Vamos a enumerar su contenido.

Parece un buscador Web.
Otra cosa que encontramos enumerando el sitio Web, es una versiรณn.
Vamos a realizar la enumeraciรณn de archivos y directorios existentes. Para ello, utilizaremos la herramienta "dirsearch"

Pero parece que en el sitio Web no existen directorios.
Explotaciรณn mรฉtodo : Exploit pรบblico
Durante la enumeraciรณn del sitio Web, encontramos la versiรณn del buscador que estaba siendo utilizada. Vamos a comprobar si es una versiรณn vulnerable y si existen explois pรบblicos.
Investigando en Google sobre la versiรณn que tenemos, encontramos el siguiente exploit. Vamos a descargarlo y ver su funcionamiento.

Necesitamos un objetivo (searcher.htb), la IP de la mรกquina de ataque y un puerto de dicha mรกquina de ataque (Puerto 9001 por defecto). El funcionamiento se divide en dos parte, por un lado, ejecutamos el exploit descargado y por otro, debemos configurar un oyente nc, en nuestro casi en el puerto 9001 ppor defecto.

Y tendremos acceso desde nuestra mรกquina de ataque.

Mรฉtodo 2: Explotaciรณn manual
Vamos a tratar de explotar esta vulnerabilidad sin hacer uso del exploit. Para ello, vamos a analizar el cรณdigo el exploit que hemos utilizado anteriormente y observamos como explota la vulnerabilidad. En esta secciรณn, vamos a tratar de capturar y explotar esta vulnerabilidad utilizando Burp Suite.
Capturamos la peticiรณn vรกlida

Ahora comprobamos como explota la vulnerabilidad
Ya sabemos como se inyecta el payload, ahora vamos a tratar de confeccionar un payload que nos permita entablar la reverse shell.
Probamos el siguiente payload codificado en URL
Obtenemos el siguiente resultado

Que si lo desciframos, vamos que nos devuelve que tenemos conexiรณn como usuario "svc"

Bien, ya tenemos parte del trabajo hecho. Ahora seguimos contruyendo el payload para la reverse shell.

Y, volvemos a obtener la conexiรณn con la mรกquina objetivo. El siguiente paso serรก la bรบsqueda de la flag user.txt

Elevaciรณn de privilegios
Una vez que obtenemos conexiรณn a la mรกquina objetivo y encontramos la flag user.txt, continuamos con la elevaciรณn de privilegios dentro del sistema. Comenzamos con una enumeraciรณn de directorios.
El primer directorio que enumeraremos es el directorio Web, donde encontramos una carpeta .git que puede ser interesante.

Cambiamos al directorio del usuario "svc".

Donde tambiรฉn encontramos referencias hacia "git".
Comenzamos a inspeccionar ambos directorios.

Dentro del directorio .git encontramos un archivo de configuraciรณn "config" donde encontramos unas credenciales. Y un subdominio del dominio con el que hemos estado trabajando. Vamos a aรฑadirlo al archivo /etc/hosts.

Las credenciales son vรกlidas.

Ahora, a inspeccionar la plataforma en busca de vectores de elevaciรณn de privilegios. Pero no encontramos nada interesante.
Vamos a comenzar con las enumeraciones que nos permitirรกn conocer los vectores de elevaciรณn de privilegios. Comenzamos con sudo -l.

Debemos convertir la interfaz en interactiva. Esto lo hacemos de la siguiente manera:
Y, volvemos a ejecutar sudo -l

Utilizaremos la password que encontramos en el archivo config que encontramos en el directorio .git

Vemos que podemos ejecutar un system checkup. Veamos que podemos hacer con รฉl.

Podemos listar los docker del sistema.


Necesitamos un formato de bรบsqueda y el nombre del contenedor. Vamos a buscar como se generan estas bรบsquedas. Encontramos el siguiente enlace con informaciรณn interesante.

Sabiendo esto, vamos a tratar de dumpear toda la informaciรณn existente.

Encontramos lo que parecen las credenciales de una base de datos MySQL, y la direcciรณn IP del servidor donde se encuentra estรก base de datos.

Nos conectamos a la base de datos desde la mรกquina "Bรบsqueda" con el usuario "svc"
Pero nos devuelve el siguiente error.

Vamos a tratar de utilizar esta password para iniciar sesiรณn en la plataforma Gitea como usuario "administrator". Las credenciales son vรกlidas.
En la plataforma, encontramos un repositorio con scripts. Veamos su contenido.
Encontramos el script system-checkup.py

Que vemos que ejecuta full-checkup.sh en una ruta relativa. Vamos a crear el archivo en la mรกquina objetivo con el siguiente contenido.
Damos permisos de ejecuciรณn
Y, ejecutamos de la siguiente forma:

Posteriormente, ejecutamos.

Y solo quedarรก buscar la flag root para finalizar la resoluciรณn del CTF Bรบsqueda.

Last updated
Was this helpful?