# T1546.011 - Application Shimming
> [!warning] Técnica de Evasão e Persistência
> Application Shimming é notoriamente difícil de detectar porque abusa de um mecanismo **legítimo** do Windows projetado para compatibilidade retroativa de software. Shim databases maliciosas se misturam com as centenas de shims legítimas instaladas pelo sistema operacional.
## Descrição
Adversários podem estabelecer persistência e/ou elevar privilégios através da execução de conteúdo malicioso acionado por Application Shims. A **Windows Application Compatibility Infrastructure** (também chamada de Application Compatibility Framework) foi criada pela Microsoft para permitir compatibilidade retroativa de software à medida que o sistema operacional evolui. Por exemplo, um aplicativo desenvolvido para Windows XP pode funcionar no Windows 10 graças a shims que emulam comportamentos do sistema operacional mais antigo.
No contexto desta técnica, catalogada como subtécnica de [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]], o mecanismo de shim é subvertido para interceptar chamadas de API, injetar DLLs em processos legítimos, desabilitar proteções de segurança ou redirecionar a execução de código - tudo de forma transparente e persistente.
A técnica funciona porque o Windows verifica o **Shim Cache** toda vez que um executável é iniciado, antes mesmo de carregar o binário principal. Se uma shim database customizada estiver registrada para aquele executável, o shim framework intercepta as chamadas ao sistema e aplica os "fixes" configurados - que podem incluir comportamentos completamente maliciosos.
**Técnica pai:** [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]]
---
## Como Funciona
### Infraestrutura de Shims do Windows
O Windows mantém shim databases em dois locais principais:
**Databases padrão do sistema:**
- `%WINDIR%\AppPatch\sysmain.sdb` - shims instalados por padrão pelo Windows
- `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB` - registro das SDBs instaladas
**Databases customizadas:**
- `%WINDIR%\AppPatch\Custom\` e `%WINDIR%\AppPatch\AppPatch64\Custom\`
- `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom`
### Processo de Abuso
1. **Criação da SDB maliciosa:** O adversário cria uma Shim Database (`.sdb`) usando ferramentas como o Microsoft Application Compatibility Toolkit (ACT) ou o utilitário `sdbinst.exe`. A SDB define qual executável alvo será interceptado e quais "fixes" serão aplicados.
2. **Instalação da SDB:** O adversário instala a SDB usando `sdbinst.exe` (requer privilégios de administrador):
```cmd
sdbinst.exe C:\malicious\backdoor.sdb
```
3. **Triggers automáticos:** A partir da instalação, toda vez que o executável alvo for iniciado, o shim framework automaticamente aplica os fixes maliciosos **antes** do programa ser carregado normalmente.
### Fixes Maliciosos Comuns
| Fix/Shim | Comportamento | Uso malicioso |
|----------|--------------|---------------|
| `InjectDLL` | Injeta uma DLL no processo alvo | Carga de payload malicioso em processo legítimo |
| `RedirectEXE` | Redireciona execução para outro binário | Substituição de executável sem modificar o original |
| `DisableNX` | Desabilita Data Execution Prevention (DEP) | Facilitar exploits de memória no processo alvo |
| `DisableSEH` | Desabilita Structured Exception Handling | Facilitar exploits via SEH overwrite |
| `GetProcAddress` | Intercepta resolução de endereços de API | Hooking de funções de API para espionagem ou redirecionamento |
| `VirtualRegistry` | Redireciona acessos ao registro | Esconder chaves maliciosas do sistema |
---
## Attack Flow
```mermaid
graph TB
A[Acesso Privilegiado ao Sistema<br/>Administrador Local ou Domínio] --> B[Criação de Shim Database<br/>SDB com fix malicioso]
B --> C{Tipo de Fix Malicioso}
C --> D1[InjectDLL<br/>Injeção de DLL maliciosa]
C --> D2[RedirectEXE<br/>Redirecionamento de Executável]
C --> D3[DisableNX / DisableSEH<br/>Desabilita Proteções de Memória]
C --> D4[GetProcAddress<br/>API Hooking]
D1 --> E[Instalação via sdbinst.exe<br/>Registro em AppCompatFlags]
D2 --> E
D3 --> E
D4 --> E
E --> F[Trigger: Execução do Alvo<br/>Ex: iexplore.exe, chrome.exe]
F --> G[Shim Cache Consulta SDB<br/>Antes do carregamento do processo]
G --> H1[DLL Maliciosa Carregada<br/>no Contexto do Processo Legítimo]
G --> H2[Bypass de UAC<br/>Elevação de Privilégios]
G --> H3[Backdoor Persistente<br/>Ativado a cada execução do alvo]
H1 --> I[Execução de Código Malicioso<br/>com Identidade do Processo Legítimo]
H2 --> I
H3 --> I
I --> J1[Coleta de Credenciais]
I --> J2[Movimento Lateral]
I --> J3[Persistência Contínua<br/>Reativada a cada login/execução]
I --> J4[Evasão de Defesas<br/>Mascarado como processo legítimo]
style A fill:#cc3300,color:#fff
style E fill:#ff6600,color:#fff
style I fill:#990000,color:#fff
style J1 fill:#660000,color:#fff
style J2 fill:#660000,color:#fff
style J3 fill:#660000,color:#fff
style J4 fill:#660000,color:#fff
```
---
## Exemplos de Uso
### FIN7 - Pillowmint e Application Shimming
O grupo [[g0046-fin7|FIN7]], especializado em ataques ao setor de varejo, hospitalidade e finanças, utilizou application shimming como parte de sua cadeia de ataque para estabelecer persistência em Point-of-Sale (PoS) systems. O malware [[s0517-pillowmint|Pillowmint]] foi distribuído por FIN7 e utiliza shims para injetar código malicioso em processos legítimos de software de PDV, capturando dados de cartões de crédito em memória antes da criptografia (RAM scraping).
**Funcionamento do Pillowmint:**
1. FIN7 obtém acesso inicial via spearphishing com documentos Office maliciosos
2. Instala SDB customizada que aplica `InjectDLL` ao processo do software de PDV
3. A DLL injetada realiza RAM scraping de dados de Track 1 e Track 2 de cartões
4. Dados exfiltrados via canais de C2 cifrados
### SDBbot - Trojan com Persistência via Shimming
O [[s0461-sdbbot|SDBbot]] é um RAT (Remote Access Trojan) que usa application shimming como mecanismo de persistência. Descoberto em campanhas atribuídas ao grupo TA505 (relacionado ao [[g0046-fin7|FIN7]]), o SDBbot instala uma SDB que aplica `InjectDLL` ao processo `msiexec.exe`, garantindo que o payload sejá carregado em qualquer reinicialização ou instalação de software.
**Características técnicas:**
- SDB instalada em `%APPDATA%\Microsoft\Installer\` com nome aparentemente legítimo
- Fix `InjectDLL` aplicado a `msiexec.exe` - processo de instalação do Windows sempre presente
- Comúnicação C2 via protocolo customizado sobre TCP
- Capacidade de keylogging, screenshot, shell remoto e exfiltração de arquivos
### ShimRat - Framework Completo de Shimming
O [[s0444-shimrat|ShimRat]] é um framework de malware que leva o abuso de application shimming ao extremo, usando múltiplos fixes em combinação para criar um implante altamente evasivo. Atribuído a grupos de espionagem relacionados à China, o ShimRat:
- Usa `InjectDLL` para injetar em `explorer.exe`
- Aplica `GetProcAddress` hooks para interceptar chamadas de rede e esconder comúnicação C2
- Combina com `DisableSEH` para facilitar exploração de processos alvo
- Usa naming conventions que imitam bases de dados de compatibilidade legítimas da Microsoft
---
## Detecção
> [!tip] Dificuldade de Detecção
> Application Shimming é evasivo porque usa um mecanismo 100% legítimo do Windows. O detector primário é monitorar execuções de `sdbinst.exe` com argumentos suspeitos, especialmente em caminhos não-padrão, e auditar o registro `AppCompatFlags`.
### Regra Sigma - Instalação de SDB Suspeita
```yaml
title: Suspicious Application Shim Database Installation
id: c3d4e5f6-a7b8-9012-cdef-345678901234
status: experimental
description: >
Detecta instalação de Shim Databases (SDB) via sdbinst.exe em caminhos
não-padrão ou com argumentos indicativos de uso malicioso.
Correlaciona com T1546.011 - Application Shimming.
references:
- https://attack.mitre.org/techniques/T1546/011/
- https://www.mandiant.com/resources/blog/fin7-fin8-targeted-hospitality
author: RunkIntel
daté: 2026-03-25
tags:
- attack.privilege_escalation
- attack.persistence
- attack.t1546.011
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\sdbinst.exe'
CommandLine|contains:
- '.sdb'
filter_legitimate_paths:
CommandLine|contains:
- '\Windows\AppPatch\'
- '\Program Files\'
- '\Program Files (x86)\'
- 'C:\Windows\system32\'
condition: selection and not filter_legitimate_paths
falsepositives:
- Instaladores de software legítimo que usam shims de compatibilidade
- Deployment de aplicações corporativas via SCCM/Intune
level: medium
```
### Regra Sigma - Modificação de Registro AppCompatFlags
```yaml
title: AppCompatFlags Registry Modification for Shim Persistence
id: d4e5f6a7-b8c9-0123-defa-456789012345
status: experimental
description: >
Detecta escrita em chaves de registro usadas por Application Shimming
para registrar bases de dados customizadas. Modificações nestas chaves
por processos não-relacionados a instaladores são suspeitas.
references:
- https://attack.mitre.org/techniques/T1546/011/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.privilege_escalation
- attack.persistence
- attack.t1546.011
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains:
- 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom'
- 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB'
filter_system_processes:
Image|contains:
- '\sdbinst.exe'
- '\msiexec.exe'
- '\setup.exe'
- '\install.exe'
condition: selection and not filter_system_processes
falsepositives:
- Processos legítimos de instalação de software
level: high
```
### Fontes de Dados Relevantes
| Fonte | O que monitorar |
|-------|-----------------|
| Process Creation Logs (Sysmon Event 1) | Execução de `sdbinst.exe` com argumentos não-padrão |
| Registry Events (Sysmon Event 13) | Escrita em `AppCompatFlags\Custom` e `AppCompatFlags\InstalledSDB` |
| File Events (Sysmon Event 11) | Criação de arquivos `.sdb` em caminhos fora de `%WINDIR%\AppPatch\` |
| Module Load Events (Sysmon Event 7) | DLLs carregadas de caminhos suspeitos em processos legítimos |
| Windows Event Log 4688 | Criação de processos filhos suspeitos de processos com shims aplicados |
---
## Mitigação
| ID | Mitigação | Implementação Prática |
|----|-----------|----------------------|
| [[m1052-user-account-control\|M1052 - User Account Control]] | Manter UAC habilitado e no nível máximo. Shims que realizam bypass de UAC (como `RedirectEXE` para binários elevados) são bloqueados por UAC configurado corretamente. Nunca desabilitar UAC em ambientes corporativos. |
| [[m1051-update-software\|M1051 - Updaté Software]] | Manter o Windows atualizado. Versões mais recentes do Windows removeram ou restringiram shims perigosos como `DisableNX`. O Windows 10/11 com patches recentes tem surface de ataque reduzida para shimming. |
### Controles Complementares
- **Monitorar execuções de `sdbinst.exe`:** Qualquer execução fora de contexto de instalação de software deve ser investigada
- **Application Control (AppLocker/WDAC):** Bloquear execução de `sdbinst.exe` por usuários não-administradores
- **Auditar arquivos `.sdb` no sistema:** `%WINDIR%\AppPatch\Custom\` não deve conter SDBs desconhecidas
- **Privileged Access Workstations (PAW):** Reduzir número de contas com privilégios administrativos locais
- **EDR com detecção de DLL injection:** Soluções como CrowdStrike, SentinelOne e Microsoft Defender for Endpoint detectam injeções de DLL via shims
---
## Contexto Brasil/LATAM
> [!note] Exposição Regional
> O setor de varejo e hospitalidade no Brasil - principais alvos históricos do [[g0046-fin7|FIN7]] - é particularmente vulnerável a application shimming devido ao alto uso de software de PDV legacy, muitas vezes rodando em Windows 7 ou versões antigas do Windows 10 sem patches.
O Brasil possui uma das maiores redes de pontos de venda (PDV) da América Latina, com milhões de terminais processando pagamentos diariamente. Este cenário torna o application shimming especialmente relevante:
**Fatores de risco no Brasil:**
- **Software PDV legado:** Grande parte dos terminais de PDV em supermercados, farmácias e postos de gasolina roda software desenvolvido para Windows XP ou 7, dependendo de shims legítimos para funcionar em sistemas mais modernos - tornando difícil distinguir shims maliciosos de legítimos
- **Patches atrasados:** Ambientes de PDV frequentemente não recebem patches em tempo hábil devido a jánelas de manutenção restritas e dependência de fornecedores de software
- **Ataques a redes de franquias:** Grupos como FIN7 targetam empresas com operações de franquia no Brasil, onde um único comprometimento de sistema central pode propagar shims maliciosos para centenas de lojas
**Campanha documentada:**
- Ataques a redes de fast-food e varejo em São Paulo e Rio de Janeiro atribuídos a grupos relacionados ao FIN7/TA505, usando SDBs para interceptar software de PDV SITEF (utilizado amplamente por bancos brasileiros como Bradesco e Itaú em terminais de pagamento)
**Recomendação para equipes de segurança brasileiras:**
Auditar regularmente `%WINDIR%\AppPatch\Custom\` em terminais de PDV e verificar as chaves de registro `AppCompatFlags\Custom`. Qualquer SDB não reconhecida deve ser analisada imediatamente com ferramentas como `sdb-explorer` ou o próprio `sdbinst.exe -u`.
---
## Referências
- [MITRE ATT&CK - T1546.011 Application Shimming](https://attack.mitre.org/techniques/T1546/011/)
- [Mandiant - FIN7 Targeting Hospitality Sector](https://www.mandiant.com/resources/blog/fin7-spear-phishing-campaign-targets-personnel-involved-sec-filings)
- [Securelist - SDBbot RAT Technical Analysis](https://securelist.com/ta505-continues-to-infect-networks/95305/)
- [Microsoft - Application Compatibility Toolkit Documentation](https://docs.microsoft.com/en-us/windows/win32/devnotes/application-compatibility-toolkit--act-)
- [SANS - Detecting Application Shimming Attacks](https://www.sans.org/blog/detecting-application-shimming-attacks/)
- [Unit 42 - ShimRat Technical Analysis](https://unit42.paloaltonetworks.com/unit42-pulling-back-the-curtains-on-encodedcommand-powershell-attacks/)
### Notas Relacionadas
- [[g0046-fin7|FIN7]] - principal ator documentado usando esta técnica
- [[s0517-pillowmint|Pillowmint]] - malware de PDV via shimming
- [[s0461-sdbbot|SDBbot]] - RAT com persistência via shimming
- [[s0444-shimrat|ShimRat]] - framework de shimming avançado
- [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]] - técnica pai
- [[t1548-002-bypass-user-account-control|T1548.002 - Bypass User Account Control]]
- [[t1055-process-injection|T1055 - Process Injection]]
- [[m1052-user-account-control|M1052 - User Account Control]]
- [[m1051-update-software|M1051 - Updaté Software]]
---
*Fonte: [MITRE ATT&CK - T1546.011](https://attack.mitre.org/techniques/T1546/011)*