Análise de Malware baseado em Macros VBA

O Vba2Graph é uma ferramenta para Análise de Malware baseado em macros VBA. Auxilia na análise de macros maliciosas do Office. É capaz gerar um gráfico das chamadas de VBA, com possíveis palavras-chave maliciosas destacadas. Permite a análise rápida de macros maliciosas e a fácil compreensão do fluxo de execução.

Recursos:

  • Keywords destacadas;
  • Suporte a VBA Properties ;
  • Suporte à declaração de função externa;
  • Macros complicados com triggers de execução _Change ;
  • Esquemas de cores extravagantes.

Prós:

  • Muito rápido;
  • Funciona muito bem na maioria das macros maliciosas observadas desta natureza.

Contras:

  • Estático (dynamicaly resolved calls não seriam reconhecidas).

Exemplos:

Exemplo 1:

Trickbot downloader – utiliza o objeto Resize como trigger inicial, seguido pelas triggers TextBox_Change.

Figura 1: exemplo de uso Vba2Graph

.

Exemplo 2:

Figura 2: exemplo de uso Vba2Graph

.

Instalação:

Instalação oletools:

https://github.com/decalage2/oletools/wiki/Install

Instalação Requerimentos Python:

pip2 install -r requirements.txt

Instalação Graphviz:

Windows

Instale Graphviz msi:

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

Adicione dot.exe à variável de ambiente PATH ou somente:

set PATH=%PATH%;C:\Program Files (x86)\Graphviz2.38\bin

Mac

brew install graphviz

Ubuntu

sudo apt-get install graphviz

Arch

sudo pacman -S graphviz

Utilização do Vba2Graph:

usage: vba2graph.py [-h] [-o OUTPUT] [-c {0,1,2,3}] (-i INPUT | -f FILE)
 
optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        output folder (default: "output")
  -c {0,1,2,3}, --colors {0,1,2,3}
                        color scheme number [0, 1, 2, 3] (default: 0 - B&W)
  -i INPUT, --input INPUT
                        olevba generated file or .bas file
  -f FILE, --file FILE  Office file with macros

Exemplos de Utilização (Todas as Plataformas):

Somente Python 2 é suportado:

# Generate call graph directly from an Office file with macros [tnx @doomedraven]
python2 vba2graph.py -f malicious.doc -c 2    
 
# Generate vba code using olevba then pipe it to vba2graph
olevba malicious.doc | python2 vba2graph.py -c 1
 
# Generate call graph from VBA code
python2 vba2graph.py -i vba_code.bas -o output_folder

Output / Saída:

Você terá 4 pastas no seu diretório de output:

  • png : a imagem gráfica real que você está procurando;
  • svg : mesma imagem do gráfico, apenas em gráficos vetoriais;
  • dot : o arquivo de ponto que foi usado para criar a imagem do gráfico;
  • bas : o código de funções do VBA que foi reconhecido pelo script (para depuração).

Processamento em Lote:

Mac/Linux:

O arquivo de script batch.sh é anexado para executar olevba e vba2graph em uma pasta de entrada de documentos maliciosos.

Exclua o diretório output. Utilize com cuidado.

.

* * * * *

.

Fonte: Github do projeto // Autor: @MalwareCantFly

Tradução por Tiago Souza

Disclaimer: Todas as informações aqui contidas são para fins didáticos e não para causar danos e prejuízos para alguém, usem sempre o conhecimento aqui compartilhado com ética e responsabilidade. Não nos responsabilizamos pela utilização indevida do conteúdo aqui exposto. Leia mais no aviso legal em nosso site.

.

Deixe o seu comentário:

Seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.