martes, junio 04, 2019

WP Live Chat Support: Un nuevo plugin con un XSS que pone en riesgo tu WordPress

La seguridad relacionada con los plugins de WordPress es un problema recurrente que parece no tiene una solución a corto plazo. Ya hemos hablado varias veces, e incluso 0xWord tiene publicado un libro dedicado a íntegramente a la fortificar la seguridad WordPress, sobre la seguridad y los problemas de inseguridad de este CMS, el más utilizado en el mundo.

Figura 1: WP Live Chat Support: Un nuevo plugin con un XSS que pone en riesgo tu WordPress

Además, hace un par de meses publicamos un paper con diferentes técnicas para detectar y analizar la seguridad del código estático de estos plugins de WordPress, obteniendo como resultado final varios CVE los cuales detallan varias vulnerabilidades en los mismos.

Figura 2: Libro "Máxima Seguridad en WordPress"

A pesar de todos los esfuerzos para concienciar a los usuarios de WordPress, los problemas de seguridad siguen estando de máxima actualidad. En concreto, el último problema detectado consiste en explotar la vulnerabilidad de un plugin para desviar a los visitantes de la web hacia otras ubicaciones maliciosas.


Ya no basta con tener la instalación WordPress al día de actualizaciones, un posible vector de ataque también puede aparecer a través de los plugins. Eso sí, recuerda que “WordPress in Paranoid Mode” del cual ya hemos hablado varias veces (hasta hicimos una versión en Docker), es siempre la opción más segura. En esta conferencia Chema Alonso explica todos los detalles de nuestros procesos de fortificación en "Hardening WordPress Like a Hacker".


Figura 4: Hardening WordPress Like a Hacker


Este último incidente de seguridad, registrado hace un par días, (al menos 47 páginas web fueron víctimas de este exploit, y este número sigue subiendo) está relacionado con el plugin WP Live Chat Support, bastante popular con más de 50.000 instalaciones activas.

La explotación del plugin WP Live Chat Support

Este plugin permite a los visitantes de la web chatear en directo con los responsables a través de una interfaz diseñada para realizar dicha función. La vulnerabilidad explotada es un XSS o Cross Site Scripting, la cual permite insertar código malicioso (Javascript) en cualquier página web que utilice este plugin. Este es uno de los Client-Side Attacks más comunes y conocidos por los atacantes de tecnologías web.

Figura 5: Libro de Hacking Web Technologies: Client-Side Attacks
XSS | CSSP | SSRF|  XSPA | SSJS

Los desarrolladores de este plugin ya han publicado una versión nueva, la 8.0.27, que soluciona esta vulnerabilidad. En definitiva, está claro que actualizar los plugins de WordPress se ha convertido en una tarea crítica de seguridad.

Figura 6: Sitio web de WP Live Chat Support

Entrando un poco más en los detalles de esta vulnerabilidad, encontramos que el problema está asociado a una llamada (hook) “admin_init” no segura la cual es la causante de la inyección de código. Este código malicioso inyectado en la web aparece ofuscado, como se puede ver en la siguiente imagen:

Figura 7: Código ofuscado del script inyectado

Y este es el código resultante una vez decodificado es el que se puede ver en la Figura 8. Por lo tanto, desde cualquier ubicación de la web en la cual aparezca la opción de WP Live Chat Support (es decir, el icono del plugin) sería posible inyectar código malicioso.

Figura 8: Código fuente del script decodificado

Echando un vistazo al análisis realizado por la empresa de seguridad Zscaler´s ThreatLabZ, podemos observar que el código del script inyectado hace una llamada a la web hxxps://blackawardago[.]com desde la cual se ejecuta el script principal. Como consecuencia de su ejecución, los visitantes se redirigen a múltiples URLs las cuales publican pop-ups de publicidad, errores falsos, etcétera. En la siguiente imagen se muestran algunas de estas URLs:

Figura 9: Código fuente del script decodificado

Mantener la seguridad de nuestro sitio WordPress es una prioridad absoluta, pero como hemos podido observar, no podemos centrarnos sólo en la seguridad del CMS exclusivamente. Los plugins se están convirtiendo en el mayor problema relacionado con la seguridad de WordPress. De nada sirve tener nuestra web al día si no realizamos un seguimiento e incluso auditorías, de los plugins instalados.


Figura 10: Faast For WordPress de ElevenPaths

Si necesitas una solución profesional para auditar y mantener segura tu página WordPress, recuerda que ElevenPaths ofrece la solución Faast For WordPress, un servicio de pentesting persistente para sitios con dominio WordPress. Más Referencias:

[Libro] Máxima Seguridad en WordPress
[Libro] Hardening GNU/Linux
[Paper] WordPress in Paranoid Mode (Parte 1)
[Paper] WordPress in Paranoid Mode (Parte 2)
[Paper] Detección y estimación de vulnerabilidades en WordPress
[Vídeo] Proteger WordPress con Latch
[Vídeo] Proteger WordPress con Latch Cloud TOTP
[Vídeo] MyWordPress in Paranoid Mode (conferencia Chema Alonso)
[Vídeo] MyWordPress in Paranoid Mode (ElevenPaths Talks de Pablo González)
[Vídeo] Ejemplo de uso de Latch en WordPress
[Vídeo] Hardening WordPress like a hacker
[Vídeo] WordPress Demo XSS en WP-UserAgent
[BlogPost] My WordPress in Paranoid Mode
[BlogPost] Máxima Seguridad en WordPress
[BlogPost] Hackear un WordPress con Network Packet Manipulation
[BlogPost] Fortificar comunicación entre WordPress y MySQL
[BlogPost] WordPress Latch Enforcement
[BlogPost] WordPress aún más seguro con Latch Lock After Request
[BlogPost] Fortificar WordPress frente a ataques de fuerza bruta
[BlogPost] Ataques (al corazón) de tu WordPress
[BlogPost] Cómo robarle las contraseñas a los administradores de WordPress
[BlogPost] Agrupar el control de varios WordPress con un solo Latch
[BlogPost] WordPress: Time-Based XSPA (Cross-Site Port Attack)
[BlogPost] Cómo debería ser un WordPress un poco más seguro
[BlogPost] WPHardening: Automatizar fortificación de WordPress
[BlogPost] Protege los borradores de los artículos de tu WordPress
[BlogPost] Registro de cuentas en WordPress públicos
[BlogPost] Riesgos en la ejecución de tareas de Cron
[BlogPost] WordPres: XSS en plugin WP-UserAgent
[BlogPost] Listar los plugins de WordPress en un pentest
[BlogPost] WordPress: SQL Injection en Scarcity Builder Plugin
[BlogPost] Docker WordPress in Paranoid Mode
[BlogPost] Faast for WordPress
[BlogPost] Cómo buscar {y encontrar} 0days en plugins de WordPress

Autor: Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades.

No hay comentarios:

Publicar un comentario