Nuevo método de ofuscación en JavaScript utilizado en ataques de phishing
Un nuevo método de ofuscación en JavaScript, con caracteres Unicode invisibles, está siendo utilizado en sofisticados ataques de phishing a comités políticos en EE. UU.

Un nuevo método de ofuscación en JavaScript, que utiliza caracteres Unicode invisibles para representar valores binarios, está siendo utilizado activamente en ataques de phishing dirigidos a afiliados de un comité de acción política (PAC) en Estados Unidos. Juniper Threat Labs, que detectó el ataque, reporta que ocurrió a principios de enero de 2025 y tiene signos de sofisticación, como la utilización de técnicas avanzadas de ofuscación.
Esta técnica fue divulgada por el desarrollador Martin Kleppe en octubre de 2024, y su rápida adopción en ataques reales resalta cómo la investigación nueva puede ser rápidamente convertida en armas. La ofuscación explota caracteres Unicode invisibles, específicamente los de Hangul, que permiten ocultar el código malicioso de manera efectiva.
En este método, cada carácter ASCII en el payload de JavaScript es convertido en una representación binaria de 8 bits, y los valores binarios (unos y ceros) son reemplazados por caracteres Hangul invisibles. Este código ofuscado se almacena como una propiedad en un objeto JavaScript, haciendo que el payload parezca vacío a simple vista, lo que dificulta su detección.
Un breve script de bootstrap recupera el payload oculto utilizando un 'get() trap' de JavaScript Proxy. Al acceder a la propiedad oculta, el Proxy convierte nuevamente los caracteres Hangul invisibles en binario y reconstruye el código original de JavaScript. Juniper señala que los atacantes llevan a cabo pasos adicionales de ocultación, como codificar el script con base64 y emplear chequeos anti-debugging para evadir el análisis.
Los ataques son altamente personalizados e incluyen información no pública. El código inicial de JavaScript intentaría activar un punto de interrupción del depurador si se estuviera analizando, detectando un retraso y, en ese caso, abortando el ataque redirigiendo a un sitio web benigno. Esta técnica de ofuscación hace que los ataques sean difíciles de detectar, ya que el espacio en blanco reduce la probabilidad de que los escáneres de seguridad lo marquen como malicioso.
Dado que el payload es solo una propiedad en un objeto, podría ser inyectado en scripts legítimos sin levantar sospechas. Además, el proceso de codificación es simple de implementar y no requiere conocimientos avanzados. Juniper también informa que dos de los dominios utilizados en esta campaña estaban vinculados previamente al kit de phishing Tycoon 2FA. Esto sugiere que es probable que veamos esta técnica de obfuscación invisible adoptada por una gama más amplia de atacantes en un futuro cercano.