Un ataque de phishing oculta JavaScript mediante un truco invisible de Unicode

Iniciado por AXCESS, Febrero 19, 2025, 09:46:20 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Un nuevo método de ofuscación de JavaScript que utiliza caracteres Unicode invisibles para representar valores binarios se está utilizando de forma activa en ataques de phishing dirigidos a afiliados de un comité de acción política (PAC) estadounidense.

Juniper Threat Labs, que detectó el ataque, informa que tuvo lugar a principios de enero de 2025 y presenta indicios de sofisticación, como el uso de:

Información no pública personalizada para identificar a las víctimas,

Verificaciones de puntos de interrupción y tiempos del depurador para evadir la detección,

Enlaces de seguimiento de Postmark envueltos de forma recursiva para ocultar los destinos finales de phishing.

El desarrollador de JavaScript Martin Kleppe reveló por primera vez la técnica de ofuscación en octubre de 2024, y su rápida adopción en ataques reales destaca la rapidez con la que las nuevas investigaciones se convierten en armas.

Cómo hacer que las cargas útiles de JS sean "invisibles"

La nueva técnica de ofuscación aprovecha los caracteres Unicode invisibles, en concreto los de ancho medio de Hangul (U+FFA0) y los de ancho completo de Hangul (U+3164).

Cada carácter ASCII de la carga útil de JavaScript se convierte en una representación binaria de 8 bits, y los valores binarios (unos y ceros) que contiene se sustituyen por caracteres Hangul invisibles.

El código ofuscado se almacena como una propiedad en un objeto de JavaScript y, como los caracteres de relleno de Hangul se representan como espacios en blanco, la carga útil del script parece vacía, como se muestra en el espacio en blanco al final de la imagen siguiente.

Espacio en blanco que oculta código malicioso
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Un breve script de arranque recupera la carga oculta mediante una trampa 'get()' de proxy de JavaScript. Cuando se accede a la propiedad oculta, el proxy convierte los caracteres invisibles de relleno Hangul nuevamente en binario y reconstruye el código JavaScript original.

Los analistas de Juniper informan que los atacantes utilizan pasos de ocultación adicionales además de los mencionados anteriormente, como codificar el script con base64 y usar controles antidepuración para evadir el análisis.

Codificación Base64 de una secuencia de caracteres de relleno Hangul
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

"Los ataques eran altamente personalizados, incluían información no pública, y el código JavaScript inicial intentaba invocar un punto de interrupción del depurador si se lo estaba analizando, detectaba un retraso y luego abortaba el ataque redirigiendo a un sitio web benigno", explica Juniper.

Los ataques son difíciles de detectar, ya que los espacios en blanco reducen la probabilidad de que incluso los escáneres de seguridad los marquen como maliciosos.

Dado que la carga útil es solo una propiedad de un objeto, se podría inyectar en scripts legítimos sin levantar sospechas; además, todo el proceso de codificación es fácil de implementar y no requiere conocimientos avanzados.

Juniper dice que dos de los dominios utilizados en esta campaña estaban vinculados anteriormente al kit de phishing Tycoon 2FA.

De ser así, es probable que veamos este método de ofuscación invisible adoptado por una gama más amplia de atacantes en el futuro.


Fuente:
BleepingComputer
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta