Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 81afb0d8e582d5b5…

MALICIOUS

Office (OOXML)

1.65 MB Created: 2021-03-16 13:01:33 UTC Authoring application: Microsoft Excel 15.0300 First seen: 2021-10-11
MD5: b376ce282504fd1cb3d4f4851b8df8ad SHA-1: cd1343a8a27dce54f45ea761816dd6a85195e761 SHA-256: 81afb0d8e582d5b538d8f85b2235887f3a0f6e64b00cb7228fc3a84e367d63d0
270 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File T1137.005 DLL Search Order Hijacking T1071.001 Web Protocols

The sample is an Excel document containing a Workbook_Open VBA macro that executes upon opening. This macro utilizes WScript.Shell and CreateObject to potentially download and install a malicious Excel add-in (XLL) named 'BedvitXLL(x64).xll' or 'BedvitXLL(x86).xll', replacing any existing versions. The macro also attempts to delete existing add-ins and uses Shell() to execute commands, indicating a clear intent to compromise the user's system by installing a malicious component.

Heuristics 8

  • VBA project inside OOXML medium 6 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Shell() call in VBA critical OLE_VBA_SHELL
    Shell() call in VBA
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
  • Workbook_Open macro high OLE_VBA_WBOPEN
    Workbook_Open macro
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
  • 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.
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
  • 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.cyberforum.ru/blogs/829006/blog4964.html In document text (OOXML body / shared strings)
    • https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=97498&TITLE_SEO=97498-khranenie-faylov-i-faylovyy-menedzher-v-fayleliste-excelIn document text (OOXML body / shared strings)
    • https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/d5fk67ky(v=vs.84In 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) 30071 bytes
SHA-256: 672909c578678983a966e8de2c8985c591a6b41d240807080dee990c939d1cb9
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "AutoInstallation"
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
Option Explicit
'Option Compare Binary 'Text 'Binary

Private Sub Workbook_Open()
    Dim ai As AddIn, xll As AddIn, nameXLL As String
'
If ThisWorkbook.FullName Like "*xlam" Then
    If MsgBox("Вы открыли инсталлятор надстройки." & vbNewLine & "Хотите её установить, заменив существующие версии?", vbQuestion + vbOKCancel, "BedvitXLL") = 1 Then
    Application.EnableEvents = 0
        'On Error Resume Next
        If Application.Workbooks.Count = 0 Then Workbooks.Add 'Создаём новую книгу если нет открытых (для AddIns.Add)
        '===========================автоустановка========================================
        #If Win64 Then
        '  Code is running in 64-bit version of Microsoft Office
            nameXLL = "BedvitXLL(x64).xll"
        #Else
        '  Code is running in 32-bit version of Microsoft Office
            nameXLL = "BedvitXLL(x86).xll"
        #End If
        
        For Each ai In AddIns
            If ai.Name Like nameXLL Then
                'ai.Installed = True         'Включаем для возможностит отключить и удалить файл
                ai.Installed = False        'Отключаем
                If Dir(ai.FullName) <> "" Then
                    SetAttr ai.FullName, vbReadOnly
                    SetAttr ai.FullName, GetAttr(ai.FullName) And (Not vbReadOnly)
                    Kill ai.FullName            'Удаляем файл
                End If
                Exit For
            End If
        Next
        ByteSheet.UnloadF Application.UserLibraryPath, nameXLL, 1, 0, 0, 0, 0, 0
        DoEvents
        Set xll = AddIns.Add(FileName:=Application.UserLibraryPath & nameXLL, CopyFile:=True) 'Если такой надстройки не было, подключаем её
        DoEvents
        Application.Wait (Now + 1 / 86400) ' ждем 1 сек
        Err = 0
        xll.Installed = True 'Включаем надстройку
        DoEvents
        Err = 0
        xll.Installed = True 'Включаем надстройку
        DoEvents
        If Err = 0 Then
            MsgBox "Библиотека (надстройка): Установлена.", vbInformation + vbOKOnly, "BedvitXLL"
        Else
            MsgBox "Библиотека (надстройка): НЕ установлена." & vbNewLine & "Установите и подключите вручную." & vbNewLine & "Стандартная папка для Add-In:" & vbNewLine & Application.UserLibraryPath, vbExclamation + vbOKOnly, "BedvitXLL"
        End If
    End If
    Application.EnableEvents = 1
    ThisWorkbook.Close 0
End If
End Sub


Attribute VB_Name = "ByteSheet"
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
Option Explicit
Sub START_MENU() 'ЗАГРУЗИТЬ, ПОСМОТРЕТЬ_ВЫГРУЗИТЬ, ПОСМОТРЕТЬ_УДАЛИТЬ
'Функционал для работы с файлами от BEDVIT (Виталий Бедный), 2018г., особая благодарность - Андрей VG (Андрей) за инфо.поддержку
'Пакетная загрузка, выгрузка, удаление, просмотр, запуск
'правильный счетчик, сообщение об ошибках, пакет параметров для выгрузки, распаковки, запуска
'Функуционал в простоте! без форм и сторонних библиотек все на одном листе,
'который можно переносить без потери данных в другие проекты или копировать код на любой другой лист и он станет Хранилищем
'Стартовое меню (START_MENU) - начало работы с Хранилищем визуально или
'программно через функции возвращающие количество файлов загруженных, выгруженных, удаленных, открытых
'e-mail: bedvit@mail.ru,
'всегда свежая версия на http://www.cyberforum.ru/blogs/829006/blog4964.html
'форум:https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=97498&TITLE_SEO=97498-khranenie-faylov-i-faylovyy-menedzher-v-fayleliste-excel
'v.05 от 28/06/2018
    
... (truncated)
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 79360 bytes
SHA-256: 86bba7bac0d1573e5787def7aa6e15d8c89d9bc94a97fdf636b5e5186dcd83c5