Inject

20240730171001.png

Inject es una máquina Linux de dificultad fácil que presenta un sitio web con una funcionalidad de carga de archivos vulnerable a la inclusión de archivos locales (LFI). Al explotar la vulnerabilidad LFI, se pueden enumerar los archivos del sistema, lo que revela que la aplicación web usa una versión específica del módulo Spring-Cloud-Function-Web susceptible a CVE-2022-22963. La explotación de esta vulnerabilidad otorga un punto de apoyo inicial como usuario frank. El movimiento lateral se logra mediante una enumeración adicional de archivos, que revela una contraseña de texto sin formato para phil. Luego, se puede explotar un cronjob que se ejecuta en la máquina para ejecutar un playbook Ansible malicioso, obteniendo finalmente un shell inverso como usuario root.

Reconocimiento

Iniciamos con el reconocimiento de las puertos abiertos y servicios que se tiene

  • -p-: Escanea todos los puertos (del 1 al 65535).

  • --open: Muestra solo los puertos que están abiertos.

  • --min-rate 5000: Establece una tasa mínima de envío de paquetes de 5000 paquetes por segundo, acelerando el escaneo.

  • -Pn: Omite la fase de descubrimiento de host, asumiendo que el host está activo (útil si los pings están bloqueados).

  • -n: No realiza resolución de nombres DNS, utilizando solo direcciones IP.

  • -vvv: Proporciona una salida muy detallada y verbosa.

  • 10.10.11.204: La dirección IP del objetivo.

  • -oG allportsScan: Guarda los resultados del escaneo en un archivo en formato "grepable" llamado allportsScan.

Luego de tener los puertos abiertos procedemos a enumerar los servicios de estos

  • -p22,8080: Escanea específicamente los puertos 22 (SSH) y 8080 (HTTP alternativo).

  • -sC: Utiliza scripts NSE (Nmap Scripting Engine) por defecto para realizar detección de versiones, detección de servicios y algunas comprobaciones comunes de seguridad.

  • -sV: Intenta detectar versiones de los servicios que están ejecutándose en los puertos abiertos.

  • -vvv: Proporciona una salida muy detallada y verbosa.

  • -Pn: Omite la fase de descubrimiento de host, asumiendo que el host está activo (útil si los pings están bloqueados).

  • -oN servicesScan: Guarda los resultados del escaneo en un archivo llamado servicesScan en formato normal.

Sitio web

En el sitio web encontramos el siguiente contenido

20240730173033.png

Tenemos un apartado para subir archivos

20240730190159.png

Al cargar una imagen podemos subir un archivo de tipo img y luego poder visualizar dicha imagen

20240730190553.png

Explotación

LFI

Enumerando podemos encontrar que se tiene una vulnerabilidad de lfi y podemos leer el /etc/passwd

20240730190640.png

Además, podemos observar que se tiene directory listing.

20240730192854.png

En el directorio /home/frank encontramos los siguientes archivos:

En /home/phil tenemos los siguientes:

En /home/frank/.m2/settings.xml tenemos lo siguiente:

  • /var/www/WebApp/

  • /var/www/WebApp/.settings/

  • /var/www/WebApp/pom.xml

Shell - Frank

CVE-2022-22963

Buscando un poco mas en la web encontramos una vulnerabilidad relacionada con springframework

Usamos el exploit y podemos obtener una shell como el usuario frank

20240731174039.png

Anteriormente encontramos unas credenciales en pom.xml que nos sirve para hacer movimiento lateral al usuario phil

Shell - phil

20240731175128.png

Enumerando los procesos podemos encontrar que se ejecuta /usr/bin/python3 /usr/local/bin/ansible-parallel /opt/automation/tasks/playbook_1.yml cada cierto tiempo

20240731182552.png

Además, nosotros pertenecemos al grupo de staff

20240731182614.png

Shell - root

Revisamos el archivo playbook_1.yml y tenemos lo siguiente:

Para informarnos de como funciona y crear una tarea maliciosa.

Luego podemos agregar nuestra tarea maliciosa que ejecutara un script en bash shell.sh

El contenido de shell.sh contiene lo siguiente

Luego de esperar un tiempo podemos ver que tenemos una copia de la /bin/bash en /tmp/cmd

20240731191714.png

Además este tiene permisos de suid y podemos escalar privilegios

20240731191744.png

Last updated