# T1059.005 - Visual Basic
## Técnica Pai
Esta é uma sub-técnica de [[t1059-command-scripting-interpreter|T1059 - T1059 - Command and Scripting Interpreter]].
## Descrição
O Visual Basic (VB) é uma linguagem de programação da Microsoft amplamente integrada ao ecossistema Windows, com suporte nativo ao [[t1559-001-component-object-model|Component Object Model (COM)]] e à [[t1106-native-api|Native API]] do sistema operacional. Embora classificada como tecnologia legada, VB permanece suportada pelo .NET Framework e pelo .NET Core multiplataforma - o que garante sua sobrevivência no arsenal de adversários por décadas. Suas duas derivações mais relevantes para ataques são o **Visual Basic for Applications (VBA)**, integrado ao Microsoft Office, e o **VBScript**, interpretador de script padrão em hosts Windows.
O VBA é particularmente perigoso por estar embutido em documentos Office (.docm, .xlsm, .pptm), que são vetores legítimos de negócios recebidos via e-mail com frequência diária. Quando um usuário abre o documento e habilita macros - ou quando o atacante aplica técnicas de [[t1553-005-mark-of-the-web-bypass|Mark-of-the-Web Bypass]] para contornar a exigência de habilitação - o código VBA é executado no contexto do usuário, podendo baixar payloads adicionais, modificar o registro, criar tarefas agendadas ou executar shellcode diretamente na memória. O VBScript, por sua vez, pode ser invocado pelo interpretador nativo `cscript.exe` ou `wscript.exe`, ou ainda embutido em arquivos HTML Application (HTA) entregues via phishing.
Grupos APT utilizam VBA/VBScript como **primeiro estágio** - o stager que baixa e executa o payload real de C2 - justamente por sua ubiquidade e pela familiaridade que os usuários têm com documentos Office. A integração com [[t1566-001-spearphishing-attachment|Spearphishing Attachment]] é a combinação mais comum: um documento malicioso chega por e-mail, o usuário abre, e o macro executa silenciosamente.
**Contexto Brasil/LATAM:** O Brasil é um dos países com maior volume de campanhas baseadas em macros VBA no mundo, impulsionado pelo intenso uso corporativo do Microsoft Office e pela alta incidência de phishing financeiro. O [[s0531-grandoreiro|Grandoreiro]] - um dos trojans bancários mais ativos na América Latina, com vítimas em dezenas de países - frequentemente usa stagers VBScript para download e execução do payload principal. Campanhas contra setor financeiro brasileiro, empresas de e-commerce e contadores (um alvo frequente por acessar sistemas de pagamento) empregam macros VBA camuflados em NFes falsas, boletos e comúnicados do Banco Central.
## Attack Flow
```mermaid
graph TB
A[Spearphishing<br/>T1566.001] --> B[Documento Office<br/>com Macro VBA]
B --> C{T1059.005\nVisual Basic\nExecution}:::highlight
C --> D[Download<br/>de Payload C2]
C --> E[Execução<br/>de Shellcode]
D --> F[Backdoor<br/>Persistente]
E --> F
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b
```
## Como Funciona
1. **Preparação:** O adversário cria um documento Office armadilhado com macro VBA ou um arquivo `.hta`/`.vbs` entregue via [[t1566-001-spearphishing-attachment|Spearphishing Attachment]] ou link malicioso. Para documentos Office modernos, pode aplicar técnicas de [[t1553-005-mark-of-the-web-bypass|Mark-of-the-Web Bypass]] - como salvar o arquivo dentro de um `.zip` ou `.iso` - para evitar o bloqueio de macros da internet implementado pela Microsoft em 2022.
2. **Execução:** Ao abrir o documento (com macros habilitadas) ou ao executar o `.vbs`/`.hta` diretamente, o interpretador VBA/VBScript é invocado. O código executa ações como: baixar payload de URL remota via `XMLHTTP`, gravar arquivo em `%TEMP%`, criar entrada no registro para persistência via `WScript.Shell.RegWrite`, ou injetar shellcode em memória via chamadas à [[t1106-native-api|Native API]] do Windows. Malwares como [[s0447-lokibot|Lokibot]], [[s0531-grandoreiro|Grandoreiro]] e [[squirrelwaffle|Squirrelwaffle]] usam exatamente este padrão.
3. **Pós-execução:** O stager VB entrega o implante principal de C2 (frequentemente em memória, sem toque em disco), que assume o controle permanente. O arquivo VB original pode se autoexcluir ou permanecer como mecanismo de persistência recarregado a cada logon via `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` ou tarefa agendada. Ferramentas como [[s0250-koadic|Koadic]] permitem pivotamento via COM Objects invocados por VBScript.
## Detecção
**Fontes de dados:**
- **Windows Event Log:** Event ID 4688 (criação de processo) para `wscript.exe`, `cscript.exe`, `mshta.exe` sendo invocados por processos Office (`winword.exe`, `excel.exe`, `powerpnt.exe`)
- **Sysmon:** Event ID 1 (Process Creaté) - cadeia de processo suspeita: `WINWORD.EXE → cmd.exe → wscript.exe`; Event ID 11 (File Creaté) em `%TEMP%` por processos Office; Event ID 3 (Network Connect) originado de `wscript.exe` ou `cscript.exe`
- **Office 365 / Microsoft Defender for Office:** Detecção de macro VBA com chamadas suspeitas a `Shell()`, `CreateObject("WScript.Shell")`, `XMLHTTP`, `ADODB.Stream`
- **ETW (Event Tracing for Windows):** Provider `Microsoft-Office-Alerts` para tentativas de execução de macro bloqueadas
- **Análise de rede:** Requisições HTTP/S para URLs externas originadas de `wscript.exe`, `mshta.exe` ou `cscript.exe` - especialmente para domínios recém-registrados ou com certificados autoassinados
**Sigma Rule:**
```yaml
title: Office Application Spawning Script Interpreter
id: a2d4f8b1-3c5e-4a9b-8d2f-e7c1a6b09345
status: stable
description: >
Detecta processo Office (Word, Excel, PowerPoint) gerando interpretadores de script
como wscript.exe, cscript.exe ou mshta.exe - comportamento típico de macro VBA malicioso.
logsource:
product: windows
category: process_creation
detection:
selection_parent:
ParentImage|endswith:
- '\WINWORD.EXE'
- '\EXCEL.EXE'
- '\POWERPNT.EXE'
- '\OUTLOOK.EXE'
- '\MSPUB.EXE'
selection_child:
Image|endswith:
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\cmd.exe'
- '\powershell.exe'
- '\rundll32.exe'
condition: selection_parent and selection_child
filter_known_tools:
CommandLine|contains:
- 'C:\Program Files\Microsoft Office'
falsepositives:
- Macros legítimas de automação interna aprovadas pelo time de segurança
- Ferramentas de assinatura digital de documentos
level: high
tags:
- attack.execution
- attack.t1059.005
- attack.t1566.001
```
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Desabilitar macros VBA por padrão via GPO para todos os usuários; habilitar apenas para grupos específicos com necessidade de negócio documentada. A partir de 2022, a Microsoft bloqueia macros de arquivos da internet - garantir que esta configuração estejá ativa e não sejá contornada |
| [[Antimalware]] | Implantar solução com análise comportamental de macros (sandbox de documentos); soluções tradicionais baseadas em assinatura têm baixa eficácia contra VBA ofuscado. Microsoft Defender for Office 365 com Safe Attachments ativo é recomendado |
| [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Usar AppLocker ou WDAC para bloquear execução de `wscript.exe` e `cscript.exe` por usuários comuns; permitir apenas em contextos administrativos controlados |
| [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Configurar Microsoft Defender ou EDR para bloquear processos filhos suspeitos originados de aplicativos Office (Attack Surface Reduction Rule: `Block all Office applications from creating child processes`) |
| [[m1021-restrict-web-based-content\|M1021 - Restrict Web-Based Content]] | Bloquear entrega de arquivos `.hta`, `.vbs`, `.wsf` e documentos Office com macros via proxy de e-mail e web; aplicar sandboxing automático de anexos antes da entrega ao usuário final |
## Threat Actors que Usam
- [[g0040-patchwork|Patchwork]] - APT sul-asiático que usa documentos RTF e DOCX com macros VBA em campanhas de espionagem contra governos
- [[g0126-higaisa|Higaisa]] - grupo coreano que distribui arquivos LNK e HTA com VBScript para execução de payloads de segunda fase
- [[g0085-fin4|FIN4]] - grupo criminoso focado em insider trading; usa VBA em spearphishing direcionado a executivos financeiros
- [[g0090-wirte|WIRTE]]- APT do Oriente Médio associado ao Hamas; usa macros Excel para implantar [[s0447-lokibot|Lokibot]] e outros stealers
- [[g0112-windshift|Windshift]] - APT que usa HTA com VBScript para estabelecer backdoors em alvos macOS e Windows
- [[g0010-turla|Turla]] - grupo russo de espionagem de longa data; usa VBScript e COM Objects para execução furtiva de implantes
- [[g1006-earth-lusca|Earth Lusca]] - grupo chinês com foco em entidades governamentais e de saúde; usa documentos RTF armadilhados com macros
- [[g0075-rancor|Rancor]] - grupo de ameaças com foco no Sudeste Asiático; distribui documentos Word com macros VBA contra alvos governamentais
- [[g0129-mustang-panda|Mustang Panda]] - APT chinês que usa [[s0477-goopy|Goopy]] e outros implantes entregues via stagers VBScript
- [[g0134-transparent-tribe|Transparent Tribe]] - grupo paquistanês que usa [[crimson|Crimson]] RAT entregue por macros VBA em campanhas contra forças armadas indianas
## Software Associado
- [[s0447-lokibot|Lokibot]] (malware) - infostealer amplamente usado no Brasil, frequentemente entregue via macro VBA em NFes falsas
- [[s0531-grandoreiro|Grandoreiro]] (malware) - trojan bancário LATAM com stager VBScript; um dos mais ativos contra bancos brasileiros
- [[s0475-backconfig|BackConfig]] (malware) - backdoor do Patchwork entregue por documentos Office com macros VBA
- [[squirrelwaffle|Squirrelwaffle]] (malware) - loader que usa macros VBA para entregar Cobalt Strike e QakBot
- [[s0250-koadic|Koadic]] (ferramenta) - framework de post-exploitation baseado em COM/VBScript para movimentação lateral
- [[s0585-kerrdown|Kerrdown]] (malware) - downloader do APT32 que usa VBScript para buscar e executar payloads de segunda fase
- [[s0477-goopy|Goopy]] (malware) - backdoor do Earth Lusca/Mustang Panda entregue via stager VB
- [[s1149-chimneysweep|CHIMNEYSWEEP]] (malware) - backdoor iraniano entregue por VBScript em documentos de perseguição a dissidentes
- [[s0283-jrat|jRAT]] (malware) - RAT multiplataforma que usa VBScript como dropper em campanhas contra alvos brasileiros e latino-americanos
- [[s1064-svcready|SVCReady]] (malware) - loader que usa shellcode embutido em macros VBA para evitar gravação de payload em disco
---
*Fonte: [MITRE ATT&CK - T1059.005](https://attack.mitre.org/techniques/T1059/005)*