# T1127.002 - ClickOnce ## Técnica Pai Sub-técnica de [[t1127-trusted-developer-utilities-proxy-execution|T1127 - Trusted Developer Utilities Proxy Execution]], que descreve o abuso de ferramentas legítimas de desenvolvimento para executar código malicioso de forma a contornar controles de segurança que confiam nessas utilities. ## Descrição Adversários podem usar aplicações ClickOnce - distribuídas por meio de arquivos `.appref-ms` e `.application` - para executar código malicioso por proxy através de uma utility legítima do Windows. O ClickOnce é um framework de implantação da Microsoft que permite criar aplicações .NET auto-atualizáveis para Windows, instaladas a partir de um compartilhamento de arquivos ou página web com mínima interação do usuário. Quando uma aplicação ClickOnce é iniciada, ela roda como processo filho de `DFSVC.EXE` - o serviço responsável por instalar, iniciar e atualizar o aplicativo. Como aplicações ClickOnce recebem apenas permissões limitadas, **não requerem privilégios administrativos para instalação**, o que torna essa técnica especialmente atraente para adversários que ainda não escalaram privilégios no ambiente-alvo. O abuso do ClickOnce é versátil: o adversário pode disfarçar código .NET malicioso como software legítimo, exibi-lo como popup de instalação quando um usuário visita um site comprometido via [[t1204-user-execution|T1204 - User Execution]], ou invocar o framework diretamente via [[t1218-011-rundll32|T1218.011 - Rundll32]] sem qualquer interação do usuário. A execução pode ser tornada persistente ao copiar o arquivo `.appref-ms` para a pasta de inicialização do usuário por meio de [[ Startup Folder]]. ## Como Funciona O fluxo de abuso do ClickOnce pode ocorrer por três vetores distintos: **Vetor 1 - Engenharia social via web:** O adversário hospeda um payload .NET em um servidor controlado, disfarçado de aplicação legítima. Quando o usuário visita a página, o browser exibe o popup nativo do ClickOnce solicitando instalação. A aparência é idêntica a software legítimo, aumentando a taxa de aceitação pelo usuário. **Vetor 2 - Execução via Rundll32 (sem interação do usuário):** O framework ClickOnce pode ser invocado diretamente via linha de comando, usando o `dfshim.dll` - biblioteca central do ClickOnce - como proxy de execução. Isso permite inicializar uma aplicação maliciosa sem nenhuma jánela de popup ou confirmação do usuário, tornando o ataque silencioso. **Vetor 3 - Persistência via Startup Folder:** O arquivo `.appref-ms` (atalho de referência de aplicação ClickOnce) é copiado para a pasta de inicialização do perfil do usuário. Na próxima vez que o usuário fizer login, o payload é executado automaticamente com as permissões do usuário corrente. ## Attack Flow ```mermaid graph TB A[Entrega do Payload ClickOnce<br/>Phishing / Site Malicioso / Email] --> B[Interação do Usuário ou<br/>Execução Direta via Rundll32] B --> C[DFSVC.EXE Inicia como Processo Pai<br/>Proxy de Execução Legítimo] C --> D[Payload .NET Executado<br/>como Filho de DFSVC.EXE] D --> E{Objetivo do Adversário} E --> F[Execução de Código Remoto<br/>C2 / Backdoor] E --> G[Persistência<br/>Cópia para Startup Folder<br/>T1547.001] E --> H[Coleta de Credenciais<br/>Dados do Usuário] ``` ## Exemplos de Uso **Campanha de phishing financeiro (documentada 2023-2024):** grupos de cibercrime utilizaram páginas de phishing que imitavam portais bancários e de RH corporativos para distribuir aplicações ClickOnce maliciosas. O popup de instalação, visualmente indistinguível de atualizações legítimas de software Java ou .NET Framework, tinha alta taxa de aceitação em ambientes corporativos com baixa maturidade de conscientização de segurança. **Abuso de assinatura de código:** adversários com acesso a certificados de assinatura de código legítimos (roubados ou comprados) asssinaram aplicações ClickOnce maliciosas, fazendo com que o [[m1045-code-signing|M1045 - Code Signing]] por si só não fosse suficiente como controle. O payload passava pela verificação de assinatura e era executado sem alertas adicionais. **Execução via Rundll32 em Red Team engagements:** o comando `rundll32.exe dfshim.dll,ShOpenVerbApplication1 <caminho-para-.application>` é amplamente documentado em relatórios de Red Team como método para executar payloads ClickOnce bypassando políticas de AppLocker que não contemplam `DFSVC.EXE` como binário confiável nas regras de exceção. ## Detecção A detecção efetiva requer monitoramento da cadeia de processos, especialmente a criação de processos filhos a partir de `DFSVC.EXE`: ```yaml title: Execução de Processo Filho Suspeito a Partir de DFSVC.EXE (ClickOnce Abuse) status: experimental logsource: category: process_creation product: windows detection: selection_parent: ParentImage|endswith: '\dfsvc.exe' filter_legitimate: Image|endswith: - '\dfsvc.exe' - '\msiexec.exe' - '\WerFault.exe' selection_suspicious: Image|endswith: - '\powershell.exe' - '\cmd.exe' - '\wscript.exe' - '\cscript.exe' - '\mshta.exe' - '\regsvr32.exe' - '\rundll32.exe' condition: selection_parent and selection_suspicious and not filter_legitimate fields: - Image - ParentImage - CommandLine - ParentCommandLine - User level: high tags: - attack.defense_evasion - attack.t1127.002 ``` Sinais adicionais de detecção: - Execução de `rundll32.exe` com argumento `dfshim.dll,ShOpenVerbApplication1` - Criação de arquivos `.appref-ms` em diretórios de startup (`%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\`) - Downloads de arquivos `.application` ou `.appref-ms` de domínios recém-registrados ou com reputação baixa - Conexões de rede originadas de `DFSVC.EXE` para IPs externos ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1042 | [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Desabilitar o serviço ClickOnce (`DFSVC.EXE`) em ambientes corporativos onde aplicações ClickOnce não sejam utilizadas legitimamente. Pode ser feito via Group Policy Object (GPO) restringindo a execução do binário. | | M1021 | [[m1021-restrict-web-based-content\|M1021 - Restrict Web-Based Content]] | Bloquear o download e a execução de arquivos `.application` e `.appref-ms` por meio de proxies web e controles de filtragem de conteúdo. Impedir que o browser acione automaticamente o handler do ClickOnce. | | M1045 | [[m1045-code-signing\|M1045 - Code Signing]] | Exigir que todas as aplicações ClickOnce sejam assinadas por certificados de publishers previamente aprovados e gerenciados pela organização. Bloquear aplicações assinadas por certificados desconhecidos ou de publishers externos não autorizados. | ## Contexto Brasil/LATAM O ClickOnce é especialmente relevante no contexto brasileiro devido à **alta penetração de aplicações .NET legadas** em ambientes corporativos e governamentais - sistemas de ERP, portais fiscais (e-CAC, NFe), e ferramentas de certificação digital são frequentemente distribuídos via ClickOnce no Brasil. Isso cria uma base de usuários amplamente condicionada a aceitar popups de instalação ClickOnce como comportamento normal, elevando significativamente a taxa de sucesso de campanhas de engenharia social que utilizam essa técnica. Relatórios do [[sources|CERT.br]] e análises de grupos como [[g0049-oilrig|OilRig]] e grupos de cibercrime que operam no setor [[financial|financeiro]] brasileiro documentam o uso crescente de instaladores falsos disfarçados de plugins de segurança bancária - um vetor perfeitamente alinhado com o perfil de abuso do ClickOnce. A [[febraban|FEBRABAN]] alertou sobre campanhas que usam falsos instaladores de módulos de segurança de internet banking, cujo comportamento é consistente com aplicações ClickOnce maliciosas. Em avaliações de Red Team em organizações brasileiras dos setores [[sector-government|governo]] e [[financial|financeiro]], o vetor ClickOnce via Rundll32 apresenta alta taxa de sucesso em ambientes com políticas de AppLocker parcialmente implementadas, onde `DFSVC.EXE` não é explicitamente controlado. ## Referências - MITRE ATT&CK - T1127.002: Trusted Developer Utilities Proxy Execution: ClickOnce - Microsoft Documentation: ClickOnce Security and Deployment - [[t1127-trusted-developer-utilities-proxy-execution|T1127 - Trusted Developer Utilities Proxy Execution]] (técnica pai) - [[t1204-user-execution|T1204 - User Execution]] (técnica auxiliar de entrega) - [[t1218-011-rundll32|T1218.011 - Rundll32]] (vetor de execução alternativo) - [[ Startup Folder]] (persistência associada) - [[m1042-disable-or-remove-feature-or-program|M1042 - Disable or Remove Feature or Program]] - [[m1021-restrict-web-based-content|M1021 - Restrict Web-Based Content]] - [[m1045-code-signing|M1045 - Code Signing]] --- *Fonte: MITRE ATT&CK - T1127.002*