Analytics

Analytics es una máquina Linux de dificultad fácil con servicios HTTP y SSH expuestos. La enumeración del sitio web revela una instancia de Metabase, que es vulnerable a la ejecución remota de código de autenticación previa ([CVE-2023-38646](https://nvd.nist.gov/vuln/detail/CVE-2023-38646)), que se aprovecha para obtener un punto de apoyo dentro de un contenedor Docker.

Al enumerar el contenedor Docker, vemos que las variables de entorno establecidas contienen credenciales que se pueden usar para acceder al host mediante SSH. La enumeración posterior a la explotación revela que la versión del kernel que se ejecuta en el host es vulnerable a GameOverlay, que se aprovecha para obtener privilegios de root.


Reconnaissance

Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Analytics. Este resultado lo almacenaremos en un archivo llamado allPorts.

A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.

Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que se encuentra expuesta una página web de Nginx.

Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.

Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Añadiremos en nuestro archivo /etc/hosts la siguiente entrada.

Web Enumeration

Accederemos a http://analytical.htb y verificaremos que se trata de una página web en la cual no nos muestra gran información.

Realizaremos una enumeración de directorios y páginas del sitio web, no logramos obtener ninguna información a través de la herramienta de dirsearch.

Subdomain Enumeration

Al realizar una enumeración de subdominios en el sitio web, nos encontramos con un subdominio llamado data.

Añadiremos esta nueva entrada en nuestro archivo /etc/hosts.

Accederemos a http://data.metabase.htb y verificamos que se trata de un panel de incio de sesión de Metabase.

MetaBase es una plataforma que permite analizar el contenido de los archivos históricos (Log Files) generados por el sistema Proxy y las plataformas de gestión como Dspace, Open Journal System y Koha de las unidades de información.

Initial Foothold

Metabase Exploitation - PreAuth Remote Code Execution [RCE] (CVE-2023-38646)

Buscando posibles vulnerabilidades sobre Metabase, nos encontramos con el siguiente CVE-2023-38646.

Nos encontramos con el siguiente repositorio con un PoC del exploit. Nos lo descargaremos el repositorio en nuestro equipo y visualizaremos el funcionamiento del exploit main.py.

En el PoC se nos requiere el setup-token del Metabase, el cual podemos localizar a través del siguiente comando.

Por otro lado, nos pondremos en escucha por un puerto para recibir la Reverse Shell.

Ejecutaremos el exploit para enviarnos una Reverse Shell hacia nuestro equipo.

Verificaremos que hemos ganado acceso al sistema, pero al parecer se trata de un Docker y no nos encontramos aún en el equipo principal.

Initial Access

Docker Container Information Leakage

Al revisar las variables que tenía dispone el usuario, nos encontramos con unas credenciales del acceso a Metabase del usuario metalytics.

Probaremos de acceder mediante SSH a través del usuario metalytics para verificar si podemos acceder con las credenciales obtenidas. Logramos el acceso y visualizar la flag de user.txt.

Privilege Escalation

Kernel Exploitation - GameOver(lay)/OverlayFS

Revisamos la versión del Kernel en busca de vulnerabilidades a través de la versión de Kernel.

Nos encontramos con el siguiente repositorio en el cual nos mencionan que la versión que dispone el equipo probablemente sea vulnerable a GameOver(lay).

Las vulnerabilidades , rastreadas como CVE-2023-2640 y CVE-2023-32629 (puntajes CVSS: 7.8) y denominadas GameOver(lay) , están presentes en un módulo llamado OverlayFS y surgen como resultado de verificaciones de permisos inadecuadas en ciertos escenarios, lo que permite un atacante local para obtener privilegios elevados.

Overlay Filesystem se refiere a un sistema de archivos de montaje de unión que hace posible combinar múltiples árboles de directorios o sistemas de archivos en un solo sistema de archivos unificado.

A continuación se incluye una breve descripción de los dos defectos:

  • CVE-2023-2640: en los kernels de Ubuntu que llevan tanto c914c0e27eb0 como «UBUNTU: SAUCE: overlayfs: Saltar la verificación de permisos para trustd.overlayfs.* xattrs», un usuario sin privilegios puede establecer atributos extendidos privilegiados en los archivos montados, lo que hace que se establezcan en los archivos superiores sin los controles de seguridad adecuados.

  • CVE-2023-32629: Vulnerabilidad de escalada de privilegios locales en kernels de Ubuntu overlayfs ovl_copy_up_meta_inode_data omitir comprobaciones de permisos al llamar a ovl_do_setxattr en kernels de Ubuntu

En pocas palabras, GameOver(lay) hace posible «crear un archivo ejecutable con capacidades de archivo con alcance y engañar al Kernel de Ubuntu para que lo copie en una ubicación diferente con capacidades sin alcance, otorgando a cualquiera que lo ejecute privilegios de root».

Realizamosla explotación y nos convertimos en usuario root pudiendo visualizar la flag de root.txt.

Última actualización

¿Te fue útil?