Análise Forense de Arquivos ODT: Detectando Macros e Phishing no Linux

Documentos de texto são vetores de ataque extremamente comuns. Muitas vezes, recebemos um arquivo que parece inofensivo, mas que pode esconder scripts maliciosos (macros) ou links de phishing.

Neste tutorial, vou mostrar como realizei uma análise forense em um arquivo .odt (LibreOffice) usando apenas o terminal Linux.

Vamos descobrir se o arquivo possui macros escondidas, verificar metadados e extrair links sem precisar abrir o documento. Isso aumentará a segurança do analista.

As ferramentas que usaremos são: ExifTool, Unzip e Grep.

Passo 1: Reconhecimento Inicial com ExifTool

A primeira etapa de qualquer análise forense é entender a origem do arquivo sem executá-lo. O comando exiftool é perfeito para ler os metadados.

Nesse caso estamos investigando o arquivo Untitled 1.odt.

Usei a flag -v (verbose) para tentar ver não apenas os dados básicos, mas a estrutura interna XML.

O Comando:

exiftool -v "Untitled 1.odt"

O Resultado: Aqui podemos ver informações valiosas, como o software gerador (LibreOffice 24.2) e o sistema operacional (Linux X86_64), o que ajuda a criar um perfil da origem do arquivo.

Saída real da análise:

FileModifyDate = 1765105816
  FileType = ODT
  MIMEType = application/vnd.oasis.opendocument.text
  Generator = LibreOffice/24.2.7.2$Linux_X86_64 LibreOffice_project/420$Build-2
  ...

Passo 2: Caçando Macros (A Estrutura do Arquivo)

Muitos analistas esquecem que arquivos .odt (assim como .docx) são, na verdade, arquivos compactados (ZIP). Isso significa que podemos listar seu conteúdo sem abrir o editor de texto.

Para um arquivo ODT ter uma macro (código malicioso executável), ele precisa ter uma pasta chamada Basic/ ou Scripts/ em sua estrutura.

Vamos verificar isso com o unzip:

O Comando:

unzip -l "Untitled 1.odt"

Análise do Resultado: No arquivo que analisei, a saída listou imagens e XMLs de configuração, mas nenhuma pasta de script.

Log da verificação:

Archive:  Untitled 1.odt
  Length      Date    Time    Name
---------  ---------- -----   ----
    20672  2025-12-05 15:19   styles.xml
    55869  2025-12-05 15:19   content.xml
    29852  2025-12-05 15:19   Pictures/100000010000034100000189085A293B.png
...

Veredito: O arquivo está limpo de execução de código (Macros).

Passo 3: Detectando Phishing (Extração de Links)

Se não há macros, o perigo pode estar em um link malicioso. Cuidado: Nunca use o comando cat em arquivos ODT, pois eles são binários e vão desconfigurar seu terminal.

A maneira correta é usar o unzip -p (pipe) para ler o arquivo content.xml (onde fica o texto) e filtrar por links.

A Tentativa com Ruído (O que não fazer): Se fizermos apenas um grep por “http”, teremos muitos falsos positivos, pois o XML do LibreOffice usa URLs para definir seus próprios padrões (namespaces).

unzip -p "Untitled 1.odt" content.xml | grep -oP 'http[s]?://[^"]+'

sso retornou dezenas de linhas da W3C e OpenOffice.org que não são links clicáveis.

A Abordagem Cirúrgica (O jeito certo): Para achar links reais de phishing, devemos buscar pelo atributo xlink:href, que é onde o link clicável realmente mora.

O Comando:

unzip -p "Untitled 1.odt" content.xml | grep -oP 'xlink:href="\K[^"]+'

O resultado:

Pictures/10000001000000DB000001AFC762D0A7.png
Pictures/100000010000013D000000E64AE49725.png
Pictures/10000001000001E2000001624AEC2141.png
...

Observe que os “links” encontrados apontam para a pasta interna Pictures/. Isso confirma que não há links externos para sites falsos. O documento contém apenas imagens embutidas localmente.

Conclusão da Análise

Com apenas três comandos no terminal, conseguimos determinar que:

  1. O arquivo foi gerado em ambiente Linux.
  2. Não possui código executável (Macros).
  3. Não possui links de phishing externos.

Essa triagem rápida é essencial para profissionais de segurança antes de abrir qualquer anexo suspeito em um ambiente isolado (sandbox).

Veja mais:

Ferramentas Kali Obsoletas: 5 Substituições Modernas para seu Testes

ClickFix: A Ameaça Silenciosa que Transforma Seu Clipboard em um Vetor de RCE

Como Proteger seu Servidor Contra Ataques de Força Bruta com ufw limit

Como Procurar Rootkits e Malwares em Servidores Linux com chkrootkit

AIDE : IDS para Linux Ubuntu Instalação e Configuração

https://exiftools.com

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer