Malware que utiliza la REST API para ejecutar código de forma remota

Esta semana, Jetpack Scan marcó el archivo de licencia de una extensión premium y el cliente se puso en contacto con nosotros para pedirnos más información al respecto. Así que me puse el sombrero de detective para investigarlo.

No es raro encontrarse con código sospechoso que acaba siendo obra de un desarrollador demasiado precavido que intenta ocultar código mediante métodos de ofuscación habituales. Esto es aún más común al analizar código de gestión de licencias. Pero en este caso resultó ser algo bastante más siniestro.

Malware inyectado en la línea 684

A primera vista, pensé que el problema era la forma en que el desarrollador había decidido ocultar la URL de la API de licencia o incluso la clave del cliente (sí, he visto algunas de esas claves codificadas directamente en el archivo license.php).

Mientras inspeccionaba el archivo, observé que era un script personalizado basado en la herramienta https://amember.com/, pero, tras descodificar rápidamente la parte sospechosa, pude confirmar sus intenciones maliciosas.

Malware descodificado

Este malware añade una ruta a la WordPress REST API denominada am-member/license, lo que hace saltar la primera alarma: o bien se trataba de un ataque dirigido o bien el usuario había obtenido esta extensión en sitios no oficiales. Esta línea de código no estaba presente en ninguna otra versión de este plugin.

La ruta esperará una solicitud con dos parámetros específicos: blowfish y blowf, donde el primero solo sirve como comprobación y el segundo contiene la carga útil final, que se evalúa si ambos no están vacíos. Llamar a los parámetros blowfish es un buen detalle, ya que el archivo de licencia utiliza Crypt_Blowfish para cifrar el contenido.

Para llevar a cabo el ataque, el atacante solo tiene que crear una URL como: hxxp://Targeted[.]Domain/wp-json/am-member/license?blowfish=attack&blowf=echo("Hello from Jetpack Scan"); y esperar los resultados.

Prueba de concepto del ataque en acción

Se contactó con los desarrolladores de la extensión para asegurarnos de que este código no se había inyectado en su base de código por error o mediante un ataque. Respondieron recomendándonos descargar la última versión y utilizarla.

Siempre te recomendaría revisar tus registros de acceso para detectar cualquier solicitud sospechosa a la REST API (cualquier solicitud a wp-json) que no esperes en tu sitio. También es una tarea de mantenimiento importante, junto con revisar las cuentas de usuario, cambiar periódicamente tus contraseñas y no descargar versiones pirateadas de extensiones de WordPress (tengo una breve entrada sobre esto). 

Te recomendamos encarecidamente que tengas un plan de seguridad para tu sitio que incluya análisis de malware y copias de seguridad. Jetpack Security es una excelente opción de seguridad de WordPress para garantizar que tu sitio y tus visitantes estén seguros.

Explora las ventajas de Jetpack

Descubre cómo Jetpack puede ayudarte a proteger, acelerar y hacer crecer tu sitio de WordPress.

Explorar planes

¿Tienes alguna pregunta?

La sección de comentarios está cerrada para este artículo, pero seguimos aquí para ayudarte. ¡Visita el foro de soporte y estaremos encantados de responder a tus preguntas!

Ver foro de soporte