Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 bde211800a1e5a34…

MALICIOUS

Office (OLE)

82.0 KB Created: 2020-05-20 16:56:00 Authoring application: Microsoft Office Word First seen: 2020-08-10
MD5: 6d917a2a37f8c88261b7ae8df7eca55d SHA-1: d0259076418b593c3ab16a58f7c4f1c392706deb SHA-256: bde211800a1e5a3414bfe048947b51fd858dc79ddb03ed40ede46cc003469b01
284 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment T1140 Deobfuscate/Decode Files or Information

The file contains heavily obfuscated VBA macros, including an AutoOpen macro that uses GetObject to execute code. Heuristics indicate it functions as a downloader, likely executing a second-stage payload. ClamAV detection confirms its malicious nature as Doc.Downloader.Mryi-7859265-0. The VBA code appears to be designed to download and execute further content, though specific URLs are not directly present in the provided script excerpt.

Heuristics 9

  • ClamAV: Doc.Downloader.Mryi-7859265-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Mryi-7859265-0
  • VBA macros detected medium 4 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Obfuscated auto-exec VBA loader critical OLE_VBA_OBFUSCATED_AUTOEXEC_LOADER
    Auto-exec VBA reconstructs strings with a heavy custom decoder (numeric char-array, repeated hex-string decode, or junk-token Replace removal) and feeds them to a COM-instantiation or execution sink. This obfuscated-loader shape keeps CreateObject/Shell/URL indicators out of the macro source.
  • AutoOpen macro high OLE_VBA_AUTOOPEN
    AutoOpen macro
  • GetObject call high OLE_VBA_GETOBJ
    GetObject call
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.
  • Legacy WordBasic auto-exec macro marker medium OLE_LEGACY_WORDBASIC_AUTOEXEC
    OLE Word document contains a legacy WordBasic auto-execution marker such as AutoOpen, but no modern VBA project was recovered and no stronger macro-virus family marker was present. This is analyst-facing evidence for old Word macro execution surface, not a downloader or parser-CVE attribution by itself.
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.
  • 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/drawingml/2006/main In document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 20371 bytes
SHA-256: be08d1a757fbdc4ee0b45b9b534c2083dd09225e4d6bbd8d972ba775336b07fe
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s). Carved artifact contains 2 long base64-like blob(s).
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True

Attribute VB_Name = "Module1"
Public Sub I_Import(strTableName As String)

    On Error GoTo Err_I_Import

    Dim objCon1         As New ADODB.Connection
    Dim objCon2         As New ADODB.Connection
    Dim objRS1          As New ADODB.Recordset
    Dim objRS2          As New ADODB.Recordset
    
    Dim strSQL          As String

    Dim strPath         As String               'Excel??????
    Dim strSheetname    As String               'Excel????
    Dim strFilename     As String               'Excel?????
    Dim strNowTime      As String               'DataSetID??????
    Dim lngTotalCount   As Long                 '???????
    Dim lngCount        As Long                 '?????????
    
    Dim strGenCharEwo As String                 '?????????Gen Char E. wo??
    
    Dim rc              As Variant              '????????
    Dim strStatus       As String               '????????

    strNowTime = nowTime

    Select Case strTableName
        
        Case E '?????????(E?)
            strStatus = "E?????"
        
        Case R '?????????(R?)
            strStatus = "R?????"
        
        Case y '?????????(????)
            strStatus = "????"
    
    End Select
    
    '// ?????????????????????????
    strPath = fncFileSelect()
    '// ?????????????
    If Len(strPath) = 0 Then
        Exit Sub
    End If

    strFilename = Mid(strPath, InStrRev(strPath, "\") + 1)
    
    If vbNo = MsgBox(strFilename & "????????????????", vbYesNo + vbQuestion, strStatus) Then
        '// ?????????????
        Exit Sub
    End If

    '// ?????????????(mod_Common??)
    Call SetWaitingStatus(True)
    
    '// Excel????????????????????(mod_Common_Excel??)
    Call xlsApliOpen
    strSheetname = xlGetSheetName(strPath)       '???????
    
    '// Excel???????????DB?????????????????
    objCon1.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _
              & "Data Source=" & strPath & ";" _
              & "Extended Properties=""Excel 8.0; HDR=Yes;"""
    Set objCon2 = Application.CurrentProject.Connection

    Set objRS1 = New ADODB.Recordset
    
    objRS1.Open "select * from " & "[" & strSheetname & "$]", _
             objCon1, adOpenStatic, adLockReadOnly, adCmdText

    '// ???????????6??????????I??????????????
    If objRS1.Fields.Count <> 6 Then
        MsgBox "??????????I?????????????????????"
        GoTo Exit_I_Import
    End If

    '// ?????????????????????????????????????
    If strTableName <> y Then
        strSQL = "DELETE * FROM " & strTableName??????
        With Application.CurrentProject.Connection
            .Execute (strSQL)
        End With
    End If

    '// ?????????
    objRS1.MoveLast
    lngTotalCount = objRS1.RecordCount
    objRS1.MoveFirst
    lngCount = 1

    Set objRS2 = New ADODB.Recordset
    objRS2.Open strTableName, objCon2, adOpenKeyset, adLockOptimistic

    '// ??????????????
    Do Until objRS1.EOF = True

        'table???
        If Nz(objRS1(0).Value, "") = Null Then
            'null
            strGenCharEwo = vbNullString
        ElseIf Left(Nz(objRS1(0).Value, ""), 1) <> "0" Then
            '??0???????????
            strGenCharEwo = Nz(objRS1(0).Value, "")
        Else
            '??0??????0???
            strGenCharEwo = Right(objRS1(0).Value, Len(objRS1(0).Value) - 1)
        End If

        With objRS2
            .AddNew
            .Fields(0) = strGenCharEwo
            .Fields(1) = Right$(Nz(objRS1(1).Value, ""), 6)
            .Fields(2) = Nz(objRS1(2).Value, "")
            .Fields(3) = Nz(objRS1(3).Value, "")
            .Fields(4) = Nz(objRS1(4).Value, "")
            .Fields(5) = Nz(objRS1(5).Value, "")
            .Fields(6) = strNowTime
            .Fields(7) = Left$(s
... (truncated)