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