# T1056.004 - Credential API Hooking ## Descrição Adversários interceptam chamadas a funções de API do sistema operacional responsáveis por processar credenciais de autenticação, capturando senhas, tokens e hashes em memória antes que sejam criptografados ou transmitidos de forma segura. Diferente de [[t1056-001-keylogging|Keylogging]], que captura tudo que é digitado, o API Hooking foca específicamente nas funções que manipulam credenciais - resultando em dados mais precisos e acionáveis. No contexto brasileiro e latino-americano, esta técnica é amplamente utilizada por grupos de fraude financeira que visam instituições bancárias, corretoras e fintechs. Trojans bancários como [[s0330-zeus-panda|Zeus Panda]], [[s0266-trickbot|TrickBot]] e [[s0386-ursnif|Ursnif]] - todos com histórico de campanhas no Brasil - utilizam API Hooking para capturar credenciais de acesso a internet banking, portais corporativos e sistemas de home office. A sofisticação da técnica a torna difícil de detectar por antivírus convencionais. Em Windows, os mecanismos de hooking incluem redirecionamento de chamadas via modificação da IAT (Import Address Table), hooks inline (sobrescrita dos primeiros bytes de funções de API) e hooks de procedimento via `SetWindowsHookEx`. Em Linux e macOS, adversários exploram as variáveis de ambiente `LD_PRELOAD` e `DYLD_INSERT_LIBRARIES` para carregar bibliotecas maliciosas que interceptam funções do sistema - como `libc read` utilizada por clientes SSH e SCP. > **Técnica pai:** T1056 - Input Capture | **Tática:** Collection + Credential Access ## Attack Flow ```mermaid graph TB A([Acesso Inicial]) --> B([Execução de Payload]) B --> C([Injeção em Processo Alvo]) C --> D(["T1056.004 - Credential<br/>API Hooking"]):::highlight D --> E([Intercepção de<br/>Função de API]) E --> F{Tipo de Hook} F -- IAT Hook --> G([Modificação da<br/>Import Address Table]) F -- Inline Hook --> H([Patch dos 1ºs<br/>Bytes da Função]) F -- LD_PRELOAD --> I([Biblioteca Maliciosa<br/>Carregada]) G --> J([Captura de Credencial]) H --> J I --> J J --> K([Exfiltração para C2]) classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b ``` ## Como Funciona **Passo 1 - Injeção no Processo Alvo** O malware identifica processos que lidam com credenciais - navegadores (`chrome.exe`, `firefox.exe`), clientes de e-mail (`outlook.exe`), clientes VPN, clientes SSH - e injeta código malicioso no espaço de memória do processo via técnicas como [[t1055-process-injection|Process Injection]]. No Windows, funções como `VirtualAllocEx`, `WriteProcessMemory` e `CreateRemoteThread` são usadas para este fim. Em Linux, o hook é instalado antecipadamente via `LD_PRELOAD` antes do processo ser iniciado. **Passo 2 - Instalação do Hook e Redirecionamento de Fluxo** O código injetado modifica o endereço de uma função-alvo (ex: `NtCreateFile`, `CryptProtectData`, `SslEncryptPacket`, `libc read`) para apontar para o código malicioso. Quando o processo legítimo chama essa função normalmente - por exemplo, ao processar um login -, o fluxo de execução é desviado para o hook que captura os parâmetros (incluindo a senha em texto claro) antes de repassar a chamada à função original, mantendo o comportamento normal e sem levantar suspeitas. **Passo 3 - Captura e Exfiltração de Credenciais** As credenciais interceptadas (usuário, senha, tokens, cookies de sessão) são armazenadas em um buffer temporário em memória e periodicamente enviadas ao servidor de [[c2|Comando e Controle (C2)]] via canais criptografados (HTTPS, DNS tunneling). Trojans como [[s0266-trickbot|TrickBot]] e [[s0484-carberp|Carberp]] implementam este fluxo completo, chegando a capturar credenciais de múltiplos sistemas simultaneamente. ## Detecção ### Event IDs Relevantes (Windows) | Event ID | Log | Descrição | |----------|-----|-----------| | **10** | Sysmon | ProcessAccess - acesso a memória de processo remoto (PROCESS_VM_WRITE) | | **8** | Sysmon | CreateRemoteThread - criação de thread em processo externo | | **7** | Sysmon | ImageLoaded - carregamento de DLL não assinada ou suspeita | | **4656** | Security | Handle request a objeto LSASS - possível dump ou hook de credenciais | | **4663** | Security | Acesso ao processo LSASS | ### Sigma Rule - Detecção de API Hooking via Acesso a LSASS ```yaml title: Suspicious Process Access to LSASS - Potential API Hooking id: f3c8a1d2-7e94-4b0f-a5c9-8d2f1e3b6a07 status: experimental description: > Detecta acesso suspeito ao processo LSASS com permissões de escrita em memória, indicativo de API Hooking para captura de credenciais (T1056.004). author: RunkIntel daté: 2026-03-24 tags: - attack.collection - attack.credential_access - attack.t1056.004 logsource: product: windows category: process_access service: sysmon detection: selection: EventID: 10 TargetImage|endswith: '\lsass.exe' GrantedAccess|contains: - '0x1010' - '0x1038' - '0x143a' - '0x1fffff' filter_legit: SourceImage|contains: - '\MsMpEng.exe' - '\SentinelAgent.exe' - '\CrowdStrike' - '\csagent.exe' condition: selection and not filter_legit falsepositives: - Ferramentas de segurança legítimas (EDR, AV) - Ferramentas de depuração em ambiente de desenvolvimento level: high ``` ### Detecção em Linux (LD_PRELOAD) ```yaml title: Suspicious LD_PRELOAD Usage - Potential API Hooking id: b2d4f7a9-1c63-4e8a-9b07-5f3c2d8e1a94 status: experimental description: > Detecta uso de LD_PRELOAD com bibliotecas fora de caminhos padrão do sistema, indicativo de hooking malicioso (T1056.004). author: RunkIntel daté: 2026-03-24 tags: - attack.collection - attack.t1056.004 logsource: product: linux category: process_creation detection: selection: EventID: 1 CommandLine|contains: 'LD_PRELOAD' filter_legit: CommandLine|contains: - '/lib/' - '/usr/lib/' - '/usr/local/lib/' condition: selection and not filter_legit falsepositives: - Desenvolvimento e testes legítimos - Ferramentas de profiling (valgrind, ltrace) level: medium ``` ## Mitigação | Controle | Mitigação | Aplicação em Organizações Brasileiras | |----------|-----------|---------------------------------------| | EDR com proteção de memória | Implantar solução EDR com capabilities de anti-tamper e proteção de processos críticos (LSASS Protected Process Light - PPL) | Microsoft Defender Credential Guard, CrowdStrike Falcon - especialmente crítico para bancos sob regulação do BACEN | | Restrição de DLLs não assinadas | Habilitar Windows Defender Application Control (WDAC) ou AppLocker para bloquear carregamento de DLLs não assinadas digitalmente | Aplicável em ambientes corporativos Windows - reduz superfície de ataque de IAT/inline hooking | | Isolamento de credenciais | Habilitar Windows Credential Guard para proteger credenciais em domínio usando virtualização (VBS) | Disponível no Windows 10/11 Enterprise e Server 2016+ - recomendado por padrões LGPD e ISO 27001 | | Monitoramento de LD_PRELOAD | Auditar e alertar sobre uso de `LD_PRELOAD` em ambientes Linux, especialmente em servidores SSH e aplicações de autenticação | Relevante para ambientes Linux corporativos (bancos, operadoras, governo) | | Autenticação multifator | Implementar MFA em todos os sistemas críticos - mesmo credenciais capturadas tornam-se inúteis sem o segundo fator | Obrigatório pela resolução BACEN 4.893/2021 para instituições financeiras brasileiras | | Gestão de secrets | Evitar armazenamento local de credenciais - usar gerenciadores como HashiCorp Vault ou CyberArk PAM | Reduz o valor das credenciais capturadas via hooking | ## Threat Actors que Usam - **[[g0068-platinum|PLATINUM]]** - APT de origem sul-asiática com foco em espionagem governamental e telecomúnicações. Documentado usando API Hooking sofisticado para captura de credenciais em alvos de alto valor na Ásia e potencialmente no setor de [[telecommunications|telecomúnicações]] da América Latina. ## Software Associado | Ferramenta | Tipo | Descrição | |-----------|------|-----------| | [[s0330-zeus-panda\|Zeus Panda]] | Trojan bancário | Variante do Zeus com hooks em APIs de navegadores; amplamente usado no Brasil contra internet banking | | [[s0266-trickbot\|TrickBot]] | Malware modular | Módulo de hooking de APIs bancárias - extensamente documentado em campanhas no Brasil e LATAM | | [[s0386-ursnif\|Ursnif]] (Gozi) | Trojan bancário | Um dos trojans bancários mais antigos em atividade; usa hooking de APIs de navegador para captura de formulários de login | | [[s0484-carberp\|Carberp]] | Trojan bancário | Malware russo de fraude bancária com módulo avançado de hooking - base para variantes posteriores | | [[s0182-finfisher\|FinFisher]] | Spyware comercial | Ferramenta de espionagem governamental com hooking de APIs de comunicação e autenticação | | [[s1154-versamem\|VersaMem]] | Webshell modular | Implante avançado que usa hooking de funções de servidor web para capturar credenciais | | [[s0416-rdfsniffer\|RDFSNIFFER]] | Malware | Hooking de APIs RDP/RDS para captura de credenciais de sessões remotas | | [[s0363-empire\|Empire]] | Framework ofensivo | Framework de pós-exploração com módulo de credential harvesting via API hooking | | [[s0412-zxshell\|ZxShell]] | RAT | Backdoor chinês com capacidade de hooking de APIs de autenticação Windows | | [[s0251-zebrocy\|Zebrocy]] | Dropper/RAT | Ferramenta do [[g0007-apt28\|APT28]] com capacidade de captura de credenciais via interceptação de APIs | --- *Fonte: [MITRE ATT&CK - T1056.004](https://attack.mitre.org/techniques/T1056/004)*