2024: CVE antiguas, objetivos nuevos: ataque activo a ThinkPHP
Comentario editorial y adicional de Tricia Howard
Resumen ejecutivo
Los investigadores de Akamai han descubierto una nueva campaña dirigida a las aplicaciones de ThinkPHP que son vulnerables a CVE-2018-20062 y CVE-2019-9082. Parece que la campaña está organizada por un grupo de ciberamenazas de habla china.
Es posible que la campaña haya comenzado en octubre de 2023 con un número limitado de clientes/organizaciones. Itonly se ha extendido recientemente.
Los ataques se originaron desde varias direcciones IP asociadas a servidores alojados en el proveedor de nube "Zentlayer" (ASN 21859), ubicado principalmente en Hong Kong.
El ataque intenta recuperar código oculto adicional de otro servidor de ThinkPHP vulnerado para obtener un punto de apoyo inicial.
Después de atacar correctamente el sistema, los atacantes instalarán un shell web en chino llamado Dama para mantener un acceso persistente al servidor.
Las acciones posteriores pueden implicar la propagación más amplia dentro del centro de datos de la víctima o la incorporación del servidor en la infraestructura de ataque.
Introducción
Estamos observando una tendencia preocupante en materia de seguridad: los atacantes están aprovechando vulnerabilidades conocidas, algunas de ellas de varios años de antigüedad, y están teniendo éxito. Un buen ejemplo de esta táctica son las vulnerabilidades de ejecución remota de código (RCE) de ThinkPHP CVE-2018-20062 y CVE-2019-9082. Como puede comprobar por los nombres de las CVE, estas han estado en circulación al menos desde 2018 y, sin embargo, la actividad de ataque continúa hoy en día.
Detectamos por primera vez indicios de este comportamiento de ataque el 17 de octubre de 2023. Hemos observado una serie limitada de rastreos que aprovechan estas vulnerabilidades, pero no de la forma prevista. A diferencia de los comandos de "prueba de concepto" habituales que se ven con herramientas y analizadores automatizados, la carga útil indicó a los servidores de la víctima que instalaran un shell oculto desde un servidor remoto bajo el control del atacante.
La campaña estuvo activa solo por unos días y luego esta serie limitada de rastreos cesaron, pero eso parece haber sido tan solo el principio. A partir de abril de 2024 hemos observado una campaña similar, y esta es mucho más grande que su predecesora.
En esta entrada de blog describiremos las CVE, los intentos de ataque observados y las mitigaciones recomendadas para los afectados por esta campaña.
Acerca de las CVE
¿Qué es ThinkPHP?
ThinkPHP es un marco de aplicaciones web de código abierto chino que se utiliza principalmente para desarrollar aplicaciones web basadas en PHP. Proporciona un conjunto de bibliotecas, componentes y herramientas que simplifican el proceso de creación de aplicaciones web siguiendo el patrón arquitectónico Modelo-Vista-Controlador (MVC, del inglés "Model-View-Controller").
CVE-2018-20062 y CVE-2019-9082 son vulnerabilidades encontradas en versiones anteriores del popular marco ThinkPHP chino. Estas vulnerabilidades afectan a los sistemas de gestión de contenido basados en este marco, como NoneCMS y BMS de código abierto. Permiten a los atacantes ejecutar código de forma remota en el servidor de la víctima. Ambas vulnerabilidades forman parte de una serie de variantes de ataques dirigidas a diferentes componentes de ThinkPHP, que se publicó durante algunos años a partir de 2018, el año en que se reveló el vector de ataque inicial.
Intentos de ataque observados
Los intentos de ataque (detectados y registrados por Akamai App & API Protector) intentan utilizar las CVE para descargar un archivo llamado "public.txt" desde lo que parece ser un servidor vulnerado que está ubicado en China. El nuevo archivo malicioso se guardará en los sistemas de la víctima con el nombre "roeter.php", que creemos que es el término "router" (enrutador) escrito de forma incorrecta (Figura 1).
El archivo de texto descargado contiene una versión oculta de un shell web, un script de puerta trasera del lado del servidor para el control remoto del servidor. El código de shell web utiliza ocultación, específicamente una transformación de ROT13 básica que da como resultado una única cadena hexadecimal larga (Figura 2). Curiosamente, los atacantes eligieron una contraseña muy sencilla, "admin", para acceder al shell web.
Los ataques se originaron desde varias direcciones IP asociadas a servidores alojados en el proveedor de nube Zentlayer (ASN 21859), ubicado principalmente en Hong Kong. Nuestra breve inspección del servidor que albergaba el código de puerta trasera reveló que también estaba infectado con el mismo shell web (Figura 3).
Esto sugiere que el servidor puede ser otro nodo en la infraestructura del atacante. Este enfoque podría ayudar a reducir los costes operativos y, lo que es más importante, a ocultar la atribución, lo que dificultaría a las autoridades encargadas del cumplimiento de la ley que dejaran el servidor inoperativo, ya que no pueden simplemente pedir al ISP que apague el servidor de producción de una organización legítima.
Nuevo shell web Dama
El shell web muestra capacidades avanzadas, como la navegación por el sistema de archivos, que permite operaciones como la edición y eliminación de archivos, y la modificación de la marca de tiempo, con fines de ocultación. Aunque observamos que es común que los atacantes de Europa occidental y oriental utilicen shells web en inglés (por ejemplo, el shell web WSO-NG), este destaca por el origen chino de la interfaz de usuario (Figura 4).
Además de los mecanismos avanzados mencionados anteriormente, Dama facilita la carga de archivos en el servidor y recopila datos técnicos cruciales del sistema, incluidas versiones precisas del sistema operativo e información de PHP, lo que ayuda a identificar los ataques de derivación de privilegios pertinentes (Figura 5).
Pero no acaba ahí. Entre las funciones posteriores al ataque se incluyen el análisis de puertos de red y el acceso a bases de datos y datos de servidor existentes. Además, el shell web ofrece diversos métodos para la derivación de privilegios, como eludir las funciones de PHP sensibles desactivadas para escapar del entorno de pruebas de PHP y ejecutar comandos de shell en el servidor.
También aprovecha el Programador de tareas de Windows para volver a configurar WMI y agregar usuarios con privilegios altos. Aunque está equipado con un intérprete de PHP para la ejecución directa de código, el soporte para una interfaz de línea de comandos (CLI) para ejecutar comandos directos de shell del sistema operativo está notablemente ausente, lo cual es sorprendente dada su amplia funcionalidad.
Mitigación con App & API Protector
Se recomienda encarecidamente actualizar ThinkPHP a la versión más reciente, que actualmente es la 8.0.
Dado que es difícil identificar todos los activos que podrían ser vulnerables a estas CVE y la aplicación de parches en sí misma podría no ser una opción viable, recomendamos encarecidamente la implementación de App & API Protector , con su motor Adaptive Security Engine para reducir los riesgos asociados a las CVE de ThinkPHP.
Si ya utiliza Adaptive Security Engine, puede abordar fácilmente estos riesgos configurando la acción del grupo de ataque de plataforma web en el modo de denegación para mejorar la protección. Como alternativa, los clientes pueden optar por establecer la regla individual 3000189 ("RCE de ThinkPHP [CVE-2018-20062]") en el modo de denegación.
Resumen
Este shell web es otro ejemplo más de un ataque que se produce cualquier día: a pesar de que se conocen desde hace mucho tiempo, los atacantes siguen atacando y aprovechando estas vulnerabilidades, con un éxito notable. Esto pone de relieve el desafío persistente al que se enfrentan las organizaciones a la hora de identificar activos vulnerables y mantener procesos de gestión de parches eficaces.
Los recientes ataques originados por un adversario de habla china ponen de manifiesto una tendencia constante de atacantes que utilizan un shell web completo, diseñado para un control avanzado de las víctimas. Curiosamente, no todos los clientes objetivo utilizaban ThinkPHP, lo que sugiere que los atacantes podrían estar atacando indiscriminadamente una amplia gama de sistemas.
Esta es otra dicotomía interesante que ha aumentado recientemente en prevalencia; es decir, algunos aspectos de los ataques son muy sofisticados (como los controles de ocultación en la tecnología) y otros son casi al azar (como no tener soporte para una CLI). A medida que se produzcan más y más avances tecnológicos, es probable que veamos que esta brecha continúe creciendo porque, aunque la tecnología es avanzada, eso no necesariamente indica que el atacante que está detrás de ellos también sea avanzado. Eso no quiere decir que el creador del shell web Dama no sea sofisticado; es simplemente un indicio de cómo está cambiando el sector en su conjunto.
Dado que nuestros clientes estaban protegidos de estos intentos de ataque, no podemos determinar con seguridad la intención final de los atacantes. Sin embargo, basándonos en nuestra experiencia, sus objetivos podrían haber incluido la incorporación de los sistemas de las víctimas en la infraestructura de ataque para lanzar ataques adicionales, reclutando a los servidores para una potente red de ataques distribuidos de denegación de servicio (DDoS) o botnets de criptominería, llevar a cabo ataques de ransomware o esquemas de extorsión, o realizar el movimiento lateral para recopilar información sobre las organizaciones.
Manténgase informado
El grupo de inteligencia sobre seguridad de Akamai seguirá supervisando y defendiendo contra amenazas como el shell web Dama, y publicará nuestros hallazgos para toda la comunidad. Para obtener actualizaciones en tiempo real, síganos en X (anteriormente Twitter).