08 agosto 2013

OpenX Source 2.8.10 infectado con una puerta trasera

Se ha descubierto que la última versión del software OpenX (evolución de OpenAds) Source, utilizado para la gestión de campañas de publicidad online, habría sido comprometida. 

Tras conocer que la página principal de OpenX fuese atacada, se ha confirmado por  la propia empresa que el fichero de la última versión 2.8.10 de su versión Source contendría una puerta trasera que permitiría la ejecución remota de código en todos aquellos servidores dónde se instalase. La versión vulnerable se encuentra disponible desde Noviembre de 2012.

Si bien en el blog oficial de OpenX únicamente se informa a los usuarios del incidente y cómo corregir o actualizar el software a la 2.8.11, en Sucuri han analizado la puerta trasera incluída. 

Según algunas fuentes, la puerta trasera se encontraría en el siguiente fichero JavaScript dentro de la carpeta de plugins:

/plugins/deliveryLog/vastServeVideoPlayer/flowplayer/3.1.1/flowplayer-3.1.1.min.js

Dentro de este fichero, se encontraron etiquetas de código PHP, las cuales tras ser descodificadas evidencian la puerta trasera que permitiría, mediante la función eval:

Mitigando el problema

Obviamente, la mejor solución sería la de actualizar la versión 2.8.11 del software, ya disponible en la página oficial de OpenX Source:

También se puede recurrir a una solución más manual. Dentro del directorio de instalación de OpenX 2.8.10, buscar todos los ficheros con extensión Javascript que contengan etiquetas típicas de php:

$ find . -name \*.js -exec grep -l '<?php'

Una vez localizados los ficheros (el que debería aparecer como mínimo es el citado anteriormente, flowplayer-3.1.1.min.js), sustituir por los nuevos ficheros de la 2.8.11 o anteriores a la 2.8.10, ya que este plugin no ha sido modificado.

Seguro que pronto aparecerá un módulo para Metasploit que facilite aún más la ejecución de código en servidores con versión Source 2.8.10 instalada y no parcheada.

[+] OpenX Ad Server Backdoor - isc.sans.org

5 comments :

Ricardo J. Barberis dijo...

Buenas, en el find no se ven los caracteres que hay que buscar, supongo que el navegador los interpreta como un tag html?
La secuencia a buscar segun el post en Sucuri es '<?php'
(por si tampoco se ve, es corchete_angular_abierto + signo_de_interrogacion_cerrado + php)

Security By Default dijo...

Arreglado muchas gracias Ricardo!

Michb dijo...

En cualquier caso como es posible ejecutar ejecutar código php desde un js. al parecer se pasa por la variable ?vastPlayer=echo%201. alguien sabe como ejecutar el backdoor?

Jesus dijo...

La variable debe pasarse por POST y codificada en ROT13 y al reverso 'echo 999;' seria ';999 bupr'
Para que un .js se ejecute debe estar modificado el .htaccess o php.ini

Michb dijo...

Al parecer los que pusieron el backdoor contaban con que todos los servidores tuviesen configurado el .htaccess o el php.ini para poder acceder a ejecutar el código php?