Invoke-DOSfuscation v1.0

Share this…

Invoke-DOSfuscation es un marco de ofuscación del comando cmd.exe compatible con PowerShell v2.0 +. (Libro blanco: https://www.fireeye.com/blog/threat-research/2018/03/dosfuscation-exploring-obfuscation-and-detection-techniques.html)

adosfuscation1

En los últimos años hemos sido testigos de una gran cantidad de técnicas de ofuscación y evasión empleadas por varios actores de amenazas. Algunas de estas técnicas son increíblemente complejas, mientras que otras son sencillas, pero ambas categorías se emplean para evadir la detección, dijo la seguridad de la información. En la experiencia se ha encontrado APT32 y FIN7 para sacar las técnicas de ofuscación más atractivas y su creatividad es digna de mención.

Los atacantes utilizan cada vez más las técnicas de ofuscación para evadir las detecciones basadas en gran medida en los valores del argumento de la línea de comando. Para contrarrestar esto, un experto en seguridad de la información pasó cinco meses investigando y desarrollando técnicas de ofuscación y codificación nativas de cmd.exe para que pudiéramos crear detecciones robustas para estas técnicas centrales que aún no hemos visto en la naturaleza.

El objetivo de este marco es permitir a los defensores generar aleatoriamente miles de comandos de muestra únicos ofuscados para probar y ajustar sus capacidades de detección frente a estas técnicas. El profesional de la seguridad de la información incluyó un arnés de prueba completo en esta versión para automatizar este proceso de prueba de detección.

En muchos sentidos, este marco permite a los defensores difuminar las técnicas de ofuscación de cmd.exe, y al crear esta herramienta descubrió numerosas oportunidades adicionales de ofuscación que no descubrió en la investigación inicial.

Compartió esta información con Microsoft en noviembre de 2017 y preguntó sobre las oportunidades para exponer una visibilidad adicional al funcionamiento interno del uso de cmd.exe de las técnicas centrales que son los componentes básicos de todas las funciones de ofuscación integradas en este marco.

Si bien todos los componentes de ofuscación están integrados en funciones formales independientes, la mayoría de los usuarios encontrarán la función Invoke-DOSfuscation como la forma más fácil de explorar y visualizar las técnicas de ofuscación que admite este marco. Sin embargo, para el fuzzing y la exploración profunda de las numerosas opciones de ajuste para cada categoría de ofuscación, se recomienda que las funciones individuales se utilicen directamente fuera del contenedor de la función Invoke-DOSfuscation.

Para permitir a los defensores comenzar fácilmente a rastrear y probar ideas de detección, este marco también incluye un módulo adicional, Invoke-DOSfuscationTestHarness.psm1, que se importa automáticamente con el resto del proyecto. Las dos funciones clave en este módulo para defensores son:

  • Invoke-DosTestHarness – Genera (con configuraciones de argumento predeterminadas) más de 1000 comandos ofuscados aleatoriamente de una lista de comandos de prueba para la integridad de la carga útil y fines de detección. Cada iteración de arnés de prueba aleatoriza todos los argumentos de función disponibles y llama directamente a las cuatro funciones de ofuscación en lugar de utilizar los valores de Nivel de ofuscación más estandarizados (1-3) que usa la función Invoke-DOSfuscation impulsada por menús de forma predeterminada. Esto produce un rango de ofuscación significativamente más amplio contra el cual se pueden construir detecciones más exhaustivas. Cada comando ofuscado se compara con la segunda función:
  • Get-DosDetectionMatch – Comprueba un comando de entrada (cadena) contra todos los valores de detección de expresiones regulares ingresados ​​en la matriz $ regexDetectionTerms en la función. Esto se llama automáticamente por Invoke-DosTestHarness, pero también se puede llamar de manera independiente.

Al final de cada prueba, se mostrarán las estadísticas de invocación del arnés para la ejecución y detección del comando adecuado, de modo que los defensores puedan identificar rápidamente qué comandos tienen 0 o solo 1-2 coincidencias de detección y cuáles podrían necesitar una mejor cobertura.

Finalmente, para evitar que los defensores tengan que ejecutar el arnés de prueba para comenzar, el experto en seguridad de la información ha proporcionado 1000 comandos de muestra en el directorio de ejemplos desglosados ​​en cada una de las cuatro funciones de ofuscación. Los formatos incluyen archivos .txt y archivos .evtx de seguridad y Sysmon. El experto incluyó un par de reglas de detección de muestra en la matriz $ regexDetectionTerms en Invoke-DOSfuscationTestHarness.psm1, pero querrá agregar y probar muchas más reglas mientras prueba los comandos de muestra ofuscados). Además de los archivos .txt con los comandos sin procesar, hay archivos .evtx que contienen los registros de ejecución del proceso (eventos EID 1 de Sysmon) para cada uno de los 1000 comandos de muestra. Estos registros de eventos son tremendamente útiles para construir indicadores basados ​​en ejecuciones de procesos secundarios matizados que son subproductos de varias técnicas básicas en las que se crea Invoke-DOSfuscation.

adosfuscation