12 oct 2023

HTML Smugling y ofuscamiento de JS para evitar firewall

En este breve artículo de Elliot Killick, se explica cómo hacer que cualquier payload de JavaScript sea completamente indetectable a través del uso del ofuscamiento, con herramientas como Ofuscator, creada por Timofey Kachalov.

Esta sencilla técnica funciona muy bien, incluso demasiado bien, para evadir la detección de cualquier herramienta de seguridad ofensiva que genere JavaScript.

Caso de uso perfecto: HTML Smugling

La introspección de archivos con el objetivo de bloquear/detectar EXE, scripts y otras descargas es una característica común de los firewalls de próxima generación (NGFW) que implementan predominantemente las empresas. Para eludir esta medida de seguridad, los atacantes suelen utilizar una técnica conocida como Smugling HTML (¿contrabando de HTML?).

Esta técnica funciona ocultando un archivo malicioso en JavaScript, con el objetivo de que la víctima lo descargue para luego decodificar la carga útil final. Como de costumbre, la víctima simplemente verá que se está descargando un archivo y no se dará cuenta de la forma furtiva en la que entregamos el payload.

Los archivos adjuntos de correo electrónico de fuentes externas a una organización a menudo se eliminan. De ahí que un sitio web, con un enlace en el correo electrónico, habitualmente se utilice para entregar un archivo. La mayoría de los grandes proveedores de correo electrónico, como Gmail o Outlook, también eliminan los archivos adjuntos con extensiones problemáticas. Naturalmente, los defensores crearon firmas para estas herramientas de JavaScript de contrabando HTML para que pudieran ser detectadas a través de la red (a diferencia de las cargas útiles finales).

Estás son las detecciones de uno de esos proyectos de contrabando de HTML más popular: EmbedInHTML.


En la práctica, la detección de un NGFW para este tipo de carga útil sería mucho mayor. La configuración de los antivirus de VirusTotal no están tan orientados a detectar este tipo de amenazas. Aún así, tenemos muchas detecciones (no deseadas).

Entonces, los defensores hicieron su movimiento. Ahora es el turno del atacante: ¿Cómo podría un atacante volverse completamente indetectable (al menos... por ahora)?

Sencillo, simplemente pegue su carga útil en obfuscator.io y luego haga clic en el botón "OFUSCAR".

Consejo profesional: si está "contrabandeando" un archivo binario (o cualquier tipo de archivo), definitivamente asegúrese de seleccionar la opción de cifrado RC4. Esto es necesario para eliminar los últimos fragmentos de información que los NGFW podrían utilizar para encontrar el payload.

Se podría pensar que ofuscar JavaScript de esta manera sería una gran señal de alerta para los NGFW y otros programas de detección. Esto sería cierto en casi cualquier otro caso, como con la ofuscación de PowerShell o los empaquetadores de archivos binarios (por ejemplo, los antivirus tienden a odiar el empaquetador UPX).

Sin embargo, en el mundo de JavaScript es muy normal ver scripts muy minificados y, a veces, ofuscados para mantener el tamaño de los archivos lo más bajo posible para la web y posiblemente para proteger el código propietario. Esto hace que mezclarse con las grandes cantidades de esos scripts legítimos ya existentes sea muy problemático.

Fuente: Elliot on Security

Suscríbete a nuestro Boletín

1 comentario:

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!