Sau
Sau es una máquina Linux de dificultad fácil que cuenta con una instancia de Request Baskets que es vulnerable a la falsificación de solicitudes del lado del servidor (SSRF) a través de [CVE-2023-27163](https://nvd.nist.gov/vuln/detail/CVE-2023-27163). Aprovechando la vulnerabilidad, podemos obtener acceso a una instancia de Maltrail que es vulnerable a la inyección de comandos del sistema operativo no autenticados, lo que nos permite obtener un shell inverso en la máquina como puma. Luego, se explota una configuración incorrecta de sudo para obtener un shell root.

Reconnaissance
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Sau. 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 encuentran abiertos el servicio SSH y una página web de Golang.
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.

Initial Access
requests-baskets 1.2.1 Exploitation (SSRF - Server Side Request Forgery) (CVE-2023-27163)
Al acceder a http://10.10.11.224:55555 nos encontramos con la interfaz de Request Basket en una versión 1.2.1-
Verificamos que podemos crear un nuevo Basket, probaremos de ver primero cómo funciona la herramienta.

Se nos generará un nuevo Basket con un Token, abriremos el Basket para probar sus funcionalidades.

Verificaremos el siguiente panel en el cual todas las respuestas al Basket creado aparecerán en el sitio web.

Hacemos una prueba de enviar una petición por GET al Basket creado y comprobamos que se nos ve reflejada en el Basket.

En las opciones presentes, nos aparece la opción de Configuración en la cual nos permite realizar un Forward hacía una dirección URL. En esta prueba, nos levantamos un servidor web y configuramos el Basket para que haga el Forward hacía nuestro servidor.

Enviamos una petición por GET y comprobamos que recibimos la solicitud, por lo tanto, parece ser que el Forward se está realizando.
Probaremos de informar en el Forward que rediriga al localhost del propio servidor, para ver si podemos realizar un Server Side Request Forgery.

Al acceder al Basket creado, comprobamos que hemos sido redirigidos a una página interna deñ servidor, por lo que parece ser que el SSRF se ha realizado correctamente.

Otra de las maneras que encontramos de explotar de manera automática esta vulnerabilidad, es a través del siguiente repositorio de GitHub.
Ejecutaremos el exploit indicándole la URL target y dónde queremos que se realice el SSRF hacía el localhost de la propia máquina. Comprobaremos que se nos ha creado un nuevo Basket en donde podemos verificar el Server Side Request Forgery.
Maltrail v.053 - Username Injection - Remote Code Execution [RCE]
Accederemos al Basket del SSRF realizado y verificaremos que se trata de un panel de inicio de sesión de Maltrail v.053.

Revisando posibles vulnerabilidades del software, nos encontramos con el siguiente exploit el cual se aprovecha de los campos del formulario de inicio de sesión para conseguir un Remote Code Execution (RCE).
En una termianl nos pondremos en escucha para recibir la Reverse Shell.
Lanzaremos el exploit indicándole nuestra dirección IP y puerto donde estaremos en escucha y el Basket vulnerable a SSRF que hemos creado anteriormente.
Revisaremos que ganamos acceso a la máquina y podemos visualizar la flag de user.txt.
Privilege Escalation
Abusing sudoers privilege (systemctl)
Revisando los permisos sudoers que dispone el usuario puma, nos encontramos que el usuario puede ejecutar como sudo el comando /usr/bin/systemctl status trail.service.
Sabiendo que podemos ejecutar el systemctl como usuario sudo. El objetivo es ejecutar la instrucción y que se ponga en modo "paginate" como con el comando LESS. En caso de que nos deje, podremos ejecutar comandos fuera del output y proporcionarnos una bash como usuario root. Logramos visualizar la flag de root.txt.
En caso de que no se nos pusiera en modo less, podemos jugar con el tamaño de columnas y filas stty para convertir la terminal más pequeña y al ejeuctar el systemctl se nos ponga en modo paginate.

Última actualización
¿Te fue útil?