Una entrada de blog correspondiente que describe lo que esta herramienta hace realmente se puede encontrar aquí. Macrome también proporciona una funcionalidad que puede ser utilizada para revertir muchas de estas ofuscaciones en apoyo de los analistas y defensores de malware. La herramienta iba a incluir originalmente la funcionalidad de procesar macros para ayudar a eludir las fórmulas ofuscadas, pero @DissectMalware ya ha creado una fantástica herramienta llamada XLMMacroDeobfuscator que va más allá de todo lo que estaba planeando colocar.

Instalación / Construcción
Clona o descarga este repositorio, la herramienta puede ser ejecutada usando dotnet
– por ejemplo:
dotnet run -- build --decoy-document Docs\decoy_document.xls --payload Docs\popcalc.bin
O,
dotnet build
cd bin/Debug/netcoreapp2.0
dotnet Macrome.dll deobfuscate --path obfuscated_document.xls
Ten en cuenta que se requiere una versión 5.0+ de dotnet para que funcione como está configurada – puede ser obtenida de https://dotnet.microsoft.com/download/dotnet/5.0.
Las versiones binarias de la herramienta que no requieren dotnet y contienen un binario ejecutable se pueden encontrar en la sección de versiones para Windows, OSX y Linux.
Uso
Ejecute Macrome utilizando dotnet run
desde el directorio de la solución (solution.sln), o dotnet
contra el binario construido de Macrome. Hay tres modos de operación para Macrome – Build mode, Dump mode, y Deobfuscation mode.
Build Mode o Modo de Construcción
Ejecuta Macrome con el comando build
para generar un documento de Excel que contenga una hoja de macros ofuscada utilizando un documento señuelo y una carga útil de macro proporcionada. dotnet Macrome.dll build -h
mostrará las instrucciones de uso completas.
Por ejemplo, para construir un documento utilizando el documento señuelo path/to/decoy_document.xls
y el shellcode binario x86 almacenado en path/to/shellcode.bin
, ejecuta dotnet Macrome.dll build --decoy-document path/to/decoy_document.xls --payload /path/to/shellcode.bin
. Esto generará un documento XLS 2003 que tras ser abierto y tener el botón “Enable Content” pulsado, ejecutará el shellcode shellcode.bin
.
¿Cómo debo ejecutar esto?
El resto de la documentación explicará cada parámetro/flag en detalle, pero ahora mismo lo “último y mejor” que ofrece Macrome se puede obtener ejecutando:
Macrome build --decoy-document decoy_document.xls --payload beacon.bin --payload64-bit beacon64.bin --payload-method Base64 --method ArgumentSubroutines --password VelvetSweatshop --preamble preamble.txt --output-file-name ReadyToPhish.xls
Dump Mode o Modo Volcado
Ejecuta Macrome con el comando dump para imprimir los registros BIFF8 más relevantes de documentos arbitrarios. Esta funcionalidad es similar a la funcionalidad de volcado de macros de olevba, pero tiene un procesamiento más completo de las entradas Ptg de los edge-cases para ayudar a asegurar que el formato sea lo más parecido a las entradas reales de FÓRMULA de Excel. Esto es lo que he estado usando para depurar algunos de los extraños documentos edge-cases que se ha estado generando mientras se hacía esta herramienta, así que es comparativamente robusto.
Hay toneladas de edge-cases que no son compatibles en este momento, así que si encuentras un documento que no volcar correctamente el contenido de, por favor, abrir un tema y compartir el documento como un archivo zip.
El comando dump sólo requiere un argumento de ruta (path) que apunte al archivo de destino. Un ejemplo de invocación es:
dotnet Macrome.dll dump --path docToDump.xls
La mayoría de las flags que tiene el comando dump son para depuración, pero el dump-hex-bytes puede ser útil para los usuarios que quieran ver las cargas útiles de bytes individuales para los registros relevantes. Esta es una funcionalidad similar a la de BiffView, aunque por defecto sólo se mostrarán las entradas específicas de maldoc.
Deobfuscate Mode o Modo de Desofuscación
Ejecuta Macrome con el comando deobfuscate
para tomar un documento binario XLS ofuscado e intentar revertir varios comportamientos anti-análisis. dotnet Macrome.dll deobfuscate -h
mostrará las instrucciones completas de uso. Actualmente, por defecto este modo hará lo siguiente:
- Desocultar todas las hojas independientemente de su estado de ocultación
- Normalizar las etiquetas especificadas manualmente para todas las entradas
Lbl
que Excel interpretará como entradas Auto_Open a pesar de que su nombre no coincida con esa cadena.
Por ejemplo, para desofuscar un archivo de macros XLS 2003 malicioso en la path/to/obfuscated_file.xls
, ejecuta dotnet Macrome.dll deobfuscate --path path/to/obfuscated_file.xls
. Esto generará una copia del archivo ofuscado que será más fácil de analizar manualmente o con herramientas.
Macrome (este enlace se abre en una nueva ventana) por michaelweber (este enlace se abre en una nueva ventana)
Excel Macro Document Reader/Writer for Red Teamers & Analysts