🟢Busqueda
Last updated
Last updated
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
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.
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.
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
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.