I like to move it, move it... (CVE-2023-34362)

A finales de mayo de 2023 saltaron las alarmas con la noticia de que la banda de ransomware Cl0p estaba explotando varios exploits (hasta tres) para entrar en servidores que ejecutaban el front-end web de MOVEit, un producto de Progress Software que permite compartir ficheros de forma segura. 

 

En esas fechas, encontrábamos algo más de 2500 instancias públicas en Shodan y más de 200 organizaciones se sumaban a la lista de afectadas por los ataques, aunque ciertos rumores comentan que las vulnerabilidades podrían haber estado siendo explotadas desde 2021.

La vulnerabilidad crítica es la catalogada como CVE-2023-34362 y es un SQLi, si bien hay varias etapas para poder explotar con éxito el servidor MOVEit. Empieza con un bypass de autenticación donde se usa guestaccess.aspx para crear una sesión y leer tokens CSRF. Estos elementos de sesión luego se combinan con una inyección de encabezados HTTP o una técnica de smuggling para eludir cualquier restricción de autenticación e IP, lo que permite el acceso a moveitisapi.dll, que luego se usa para realizar la inyección SQL.

La inyección de SQL se usa para leer datos confidenciales de la base de datos y luego para crear nuevas cuentas de administrador del sistema que luego se pueden usar para otras tareas con un mayor nivel de permiso. La etapa final del exploit es una vulnerabilidad de deserialización de .NET en un proceso de upload que se puede abusar para obtener la ejecución remota de código.  

¿El problema (o la bendición)? que ya tenemos las PoC totalmente funcionales en Ruby o Python. Los pasos para explotarlo son los siguientes:

1. Bypassear los controles de acceso remoto sobre las cuentas de Sysadmin y crear un nuevo Sysadmin utilizando la vulnerabilidad principal de SQLi
2. Recopilación de datos sobre la clave API y una ID de carpeta
3. Comenzar una subida de archivo reanudable que se puede interrumpir para que se genere una ID de archivo y se almacene en la base de datos
4. Uso de la subida interrumpida del archivo para filtrar la clave de cifrado (denominada clave de organización)
5. Uso de la clave de organización para cifrar un gadget de deserialización generado previamente
6. Subir el gadget de deserialización cifrado (creado con yoserial) a la base de datos usando la ID del archivo como ID de referencia
7. Activar el gadget de deserialización llamando al ID de archivo
8. Limpieza de la base de datos mediante la eliminación de IoC en función de las actividades del exploit

Contramedidas

Varios fabricantes e investigadores como Mandiant, Florian Roth, y Huntress Labs ya han lanzado detecciones, IoCs y Yaras.
El proveedor ha publicado un aviso que recomienda algunas acciones, especialmente si tiene instalada una versión anterior de MOVEit.

  • Modificar las reglas del firewall para denegar el tráfico HTTP y HTTPS a la aplicación MOVEit Transfer en los puertos 80 y 443 hasta que se aplique un parche.
  • Revisar todas las cuentas de usuario en MOVEit y asegurarse de que los privilegios se asignen correctamente y que se eliminen las cuentas no utilizadas o no autorizadas.
  • Comprobar y eliminar sesiones activas.
  • Buscar nuevas creaciones de archivos en C:\Windows\temp\ y C:\MoveitTransfer\wwwroot\, especialmente para archivos con una extensión [.]cmdline.
  • Eliminar todos los archivos APP_WEB_[random].dll ubicados en C:\Windows\Microsoft. NET\Framework64\[versión]\ASP temporal. Archivos NET\raíz\[aleatorio]\[aleatorio]\

Pero sobretodo asegurarse de que la versión de MOVEit sea superior a 2023.0.1, es decir, ¡actualizar o morir!

Referencias:


Comentarios