Hace unos días se dio a conocer una grave vulnerabilidad que afectaba a aquellos servidores que interpretan PHP mediante interfaz de entrada común o CGI. Esta vulnerabilidad fue analizada en detalle a lo largo de dos post y se explicó el alcance que podía tener y cuál eran los métodos para solucionarlo. Es por esto que a lo largo de los últimos días, el laboratorio de ESET Latinoamérica comenzó a realizar un seguimiento sobre una amenaza que está explotando esta vulnerabilidad de forma masiva para inyectar una webshell en PHP y brindarle funcionalidades sobre el servidor vulnerado al atacante.

¿Cómo se lleva a cabo este tipo de explotación masiva?

En una primera instancia, el atacante realiza pruebas de forma masiva a diferentes direcciones IP. La finalidad de estas pruebas es comprobar si efectivamente cada servidor utiliza CGI y si es vulnerable. En caso afirmativo, el atacante accede al servidor remoto donde aloja un archivo PHP con funcionalidades de una shell desde el servidor vulnerado mediante un método GET. De esta forma el archivo PHP queda en el servidor que fue atacado.

Ciclo de inyecciónCada sitio que es vulnerado con éxito, queda disponible para el posterior acceso del atacante. Hay que aclarar que estos ataques pueden contemplar desde acceder a archivos privados dentro del servidor, hasta realizar ataques de denegación de servicio o incluso inyección de malware en los sitios web disponibles en ese servidor.

¿Cúal es el impacto en la red?

Actualmente, durante el seguimiento que se realizó en el laboratorio de ESET Latinoamérica, se pudo comprobar la existencia de más de 1500 servidores vulnerados, en una semana. Estos servidores se encuentran alojados en diferentes partes del mundo y el promedio de infección en base a las estadísticas que se obtuvieron es de alrededor de 9 servidores por cada hora. Esta tasa de explotación exitosa llama poderosamente la atención si se contempla que hoy en día los servidores web que siguen utilizando CGI como intérprete existen en proporciones muy pequeñas comparados con aquellos que utilizan el módulo de Apache mod_php o incluso FastCGI (el cuál no es vulnerable), entre otros. A continuación, les mostramos una gráfica con los datos recopilados:

Ejemplo datos recopilados base de datos
Analizando los datos se puedo comprobar que existe una gran diversidad de servidores en diferentes países que fueron afectados. La mayoría de los servidores vulnerados pertenecen a Estados Unidos, Rusia, China, Alemania y el Reino Unido. Sin embargo, también se ven afectados países latinoamericanos (en menor proporción) cómo Argentina, Brasil y Chile.

Top 5 de países con servidores vulnerados
Lo que deja en claro este suceso es que a partir de una vulnerabilidad, que en primera instancia solo permitía ver el código fuente de archivos PHP, se pueden lograr objetivos más complejos, como por ejemplo, el compromiso de un servidor y su control de forma remota.

En el próximo post veremos detalladamente cómo se realiza el compromiso del servidor vulnerable siguiendo los métodos propuestos por esta campaña de explotación "in the wild" que se está llevando a cabo. Además se explicará parte de las funcionalidades del archivo inyectado en los servidores, las cuales son aprovechadas por el atacante detrás de esta campaña.

Fernando Catoira
Analista de Seguridad