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