Análise Técnica de uma Amostra de JavaScript em PDF Adobe Acrobat Multi-Estágio
Visão Geral
Este repositório publica um relatório de engenharia reversa focado em código sobre uma amostra de PDF malicioso que incorpora JavaScript do Adobe Acrobat em estágios.
A amostra analisada usa um campo de formulário oculto como carregador inicial, reconstrói um corpo de JavaScript de segundo estágio por meio da decodificação de fluxo do Acrobat, realiza triagem de ambiente e abuso de interfaces específicas do Acrobat, estabelece um estágio apoiado por rede e, finalmente, descriptografa, descomprime e executa um payload de terceiro estágio adiado.
O objetivo deste repositório é análise defensiva e documentação. O foco está no comportamento observável, na estrutura de código recuperada e na reconstrução da cadeia de ataque.
Principais Descobertas
- O PDF contém um carregador de Estágio-1 incorporado armazenado em um campo de formulário oculto (
Btn1).
- O JavaScript de Estágio-2 recuperado desativa grupos de conteúdo opcionais para reduzir indicadores visuais.
- A amostra constrói seus próprios wrappers de execução privilegiada em torno de APIs do Acrobat, como
app.beginPriv() e app.endPriv().
- Ela realiza triagem de alvo, incluindo:
viewerVersion
viewerType
platform
- inferência de SO baseada no sistema de arquivos
- análise de cabeçalho PE para detectar o Reader x64
- Ela configura primitivas orientadas a exploração envolvendo getters elaborados e interfaces nativas do Acrobat, como
ANShareFile(...) e ANFancyAlertImpl(...).
- Ela constrói URLs de beacon ricas em telemetria para um endpoint remoto codificado e usa feeds JavaScript RSS como parte do seu fluxo de estágio.
- O caminho final visível do carregador é explícito:
- decodificação hexadecimal de
bird1
- descriptografia AES-CTR
- inflação DEFLATE
- armazenamento como
global.final_js
- execução via
eval(...) adiado
Resumo da Cadeia de Ataque
- O JavaScript do PDF lê o campo oculto
Btn1
- O Estágio-1 decodifica e agenda o Estágio-2
- O Estágio-2 inicializa a lógica ofuscada e oculta camadas OCG
- O ambiente alvo é identificado por impressão digital
- A configuração nativa do Acrobat orientada a exploração é tentada
- Os canais de telemetria e estágio são preparados
- O script consulta material de payload preenchido em tempo de execução
- O conteúdo criptografado é descriptografado e descomprimido na memória
- Um payload JavaScript de terceiro estágio é executado por meio de
setTimeOut
Por Que Esta Amostra É Importante
A amostra é significativa porque não é um PDF estático simples com fragmentos de script incorporados. Ela se comporta como um carregador multi-estágio estruturado que:
- qualifica o ambiente alvo
- abusa da funcionalidade privilegiada específica do Acrobat
- prepara a entrega posterior do payload
- reconstrói o código de acompanhamento inteiramente na memória
Essa combinação a torna relevante tanto para a análise de malware em PDF quanto para o estudo do comportamento de confiança e estágio do JavaScript do Acrobat.
Relatório
O relatório pode ser encontrado aqui.