Laboratório de Forense de Malware para Office — Análise Estática no REMnux
Análise estática de dois arquivos Office maliciosos, realizada inteiramente dentro de uma VM REMnux isolada. Nada foi executado — apenas inspecionado.
Configuração
- VM REMnux, sem pastas compartilhadas com o host
- Ferramentas: sha256sum, file, unzip e a suíte oletools (oleid, olevba, oledump, mraptor)
- Ambas as amostras obtidas do MalwareBazaar (abuse.ch)
Amostra 1: Documento Word malicioso (.docx)
SHA-256: 68e82279bff55cf3b9f1f22ec4a165b1b1245a359f7e8d86664b2541d8f8d3fe
O que encontrei:
- Um arquivo dentro do docx (
nste.xml) era na verdade dados em Rich Text Format disfarçados de XML — uma inconsistência que já é um sinal de alerta por si só
- Um objeto incorporado era um executável VBS de 196 KB (
419876.vbs)
- Outro objeto incorporado correspondia ao CVE-2017-11882 — um exploit conhecido do Equation Editor que é executado apenas ao abrir o arquivo, sem necessidade de macros
Veredito: Malicioso. Este é um documento real weaponizado usando um RCE conhecido para entregar um executável.
Amostra 2: Arquivo Excel malicioso (.xlsx)
SHA-256: dc65419ba5d83b980d7018198a14209fa2f5ebf6f99d47bfe9f586852087befe
O que encontrei:
- O arquivo estava criptografado (protegido por senha), o que normalmente oculta o conteúdo de macros dos scanners de antivírus
- Tinha 4 módulos VBA, mas todos os 4 retornaram vazios — o
mraptor retornou "Macro OK" sem flags de AutoExec/Write/Execute
- Uma planilha estava oculta
- Havia strings codificadas em hexadecimal em um stream de macro XLM no estilo antigo, separado da camada VBA
- A decodificação dessas strings não revelou shellcode nem uma URL de download — apenas alguns identificadores de type-library
Veredito: Suspeito, mas inconclusivo. A criptografia, a planilha oculta e as strings ofuscadas parecem táticas de evasão, mas não consegui confirmar um payload ativo real na camada VBA. O payload real pode estar na camada de macro XLM legada (que não reverti completamente), ou esta pode ser uma amostra incompleta/em preparação.
Etapas que segui
- Calcular o hash de cada arquivo (SHA-256) para cadeia de custódia
- Verificar o tipo real do arquivo com
file, comparando com a extensão
- Executar
oleid para uma leitura rápida sobre criptografia/macros/links externos
- Executar
oledump para listar cada objeto incorporado
- Executar
olevba para extrair e decodificar qualquer código-fonte VBA
- Executar
mraptor para verificar comportamento de macro com execução automática
O que isso demonstra
- Como identificar uma inconsistência de tipo de arquivo usada para burlar a detecção
- Como o CVE-2017-11882 funciona sem precisar de macros
- Como verificar de fato o comportamento de macros em vez de presumi-lo a partir de indicadores superficiais
- Por que criptografia + planilhas ocultas + strings ofuscadas não significam automaticamente "malicioso confirmado" — às vezes as evidências são inconclusivas, e vale a pena dizer isso claramente
Fontes
Autor
Mofolorunsho Adeleke
GitHub: https://github.com/Mo200909