# T1134.001 - Token Impersonation/Theft ## Técnica Pai [[t1134-access-token-manipulation|T1134 - Access Token Manipulation]] ## Descrição Adversários podem **duplicar e depois personificar** o token de segurança de um usuário ou processo existente para elevar privilégios e contornar controles de acesso no Windows. Os tokens de acesso são estruturas de dados do Windows que descrevem o contexto de segurança de um processo ou thread - contendo informações sobre a identidade do usuário, seus grupos e privilégios. Ao roubar e reutilizar um token válido, o adversário consegue executar código **como se fosse outro usuário**, incluindo usuários privilegiados como SYSTEM ou administradores de domínio. O processo técnico central envolve: 1. Localizar um processo em execução cujo token sejá de interesse (ex.: processo SYSTEM, processo de um administrador logado) 2. Duplicar o token usando APIs do Windows como `DuplicateToken` ou `DuplicateTokenEx` 3. Aplicar o token duplicado ao thread atual via `ImpersonateLoggedOnUser`, ou a um processo existente via `SetThreadToken` Esta sub-técnica se distingue de [[t1134-002-create-process-with-token|T1134.002 - Creaté Process with Token]], que usa o token duplicado para **criar um novo processo** (via `CreateProcessWithTokenW` ou `CreateProcessAsUserW`), enquanto T1134.001 trata da **aplicação do token a um thread ou processo já existente**. Também difere de [[t1134-003-make-and-impersonate-token|T1134.003 - Make and Impersonaté Token]], que **cria** um token novo (ex.: via `LogonUser`), em vez de duplicar um existente. O abuso de tokens é especialmente eficaz porque opera dentro do modelo de segurança legítimo do Windows: os tokens são um mecanismo nativo, e seu uso por si só não é malicioso. Grupos como [[g0007-apt28|APT28]] e [[g0061-fin8|FIN8]] documentaram o uso extensivo dessa técnica em operações de pós-exploração para movimentação lateral e escalada de privilégios em ambientes Active Directory. > **Tática MITRE:** Defense Evasion, Privilege Escalation | **ID:** T1134.001 | **Plataforma:** Windows ## Como Funciona A manipulação de tokens no Windows explora a arquitetura de segurança baseada em tokens do sistema operacional. O fluxo completo de exploração compreende: **Pré-requisito: Privilégio SeImpersonatePrivilege** Para impersonificar tokens de outros usuários, o processo do adversário precisa do privilégio `SeImpersonatePrivilege`. Esse privilégio é concedido por padrão a: - Contas de serviço do sistema (NETWORK SERVICE, LOCAL SERVICE) - Contas no grupo Administrators - Processos com alto nível de integridade Em ataques práticos, adversários exploram serviços vulneráveis que rodam com `SeImpersonatePrivilege` (como servidores web rodando como serviço do Windows) para executar código no contexto desses serviços e então escalar para SYSTEM via token theft. **Passo 1 - Enumeração de processos e tokens** O adversário enumera processos em execução para encontrar tokens de alto valor: - Processos SYSTEM: `lsass.exe`, `winlogon.exe`, serviços Windows - Processos de usuários com sessão ativa (administradores logados via RDP ou console) - Processos de serviços com conta de domínio privilegiada Ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] (função `steal_token`), [[mimikatz|Mimikatz]] (módulo `token::elevaté`), e [[s0692-silenttrinity|SILENTTRINITY]] automatizam essa enumeração. **Passo 2 - Abertura do processo e obtenção do handle** ``` OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid) → Retorna handle para o processo alvo ``` **Passo 3 - Abertura do token do processo** ``` OpenProcessToken(hProcess, TOKEN_DUPLICATE, &hToken) → Retorna handle para o token de acesso do processo ``` **Passo 4 - Duplicação do token** ``` DuplicateTokenEx(hToken, TOKEN_ALL_ACCESS, NULL, SecurityImpersonation, TokenImpersonation, &hDuplicaté) → Cria uma cópia impersonável do token ``` **Passo 5 - Aplicação do token ao thread atual** ``` ImpersonateLoggedOnUser(hDuplicaté) → O thread atual agora opera no contexto de segurança do usuário roubado ``` ou ``` SetThreadToken(NULL, hDuplicaté) → Define o token do thread como o token duplicado ``` **Técnica "Potato" - Escalada de NETWORK SERVICE para SYSTEM** Uma família de técnicas conhecidas como "Potato" (JuicyPotato, RoguePotato, PrintSpoofer) abusa específicamente do `SeImpersonatePrivilege` para escalar de serviços de rede para SYSTEM, combinando token theft com outras primitivas do Windows (COM elevation, NTLM relay local). ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>Shell reverso / exploit de serviço<br/>com SeImpersonatePrivilege"] --> B["Enumeração<br/>Listar processos em execução<br/>Identificar tokens de alto valor"] B --> C["Abrir Processo Alvo<br/>OpenProcess() com<br/>PROCESS_QUERY_INFORMATION"] C --> D["Obter Handle do Token<br/>OpenProcessToken() com<br/>TOKEN_DUPLICATE"] D --> E["Duplicar Token<br/>DuplicateTokenEx() →<br/>cópia impersonável"] E --> F1["Impersonar Thread<br/>ImpersonateLoggedOnUser()<br/>SetThreadToken()"] E --> F2["Criar Novo Processo<br/>Ver T1134.002<br/>CreateProcessWithTokenW"] F1 --> G["Privilégios Escalados<br/>Contexto SYSTEM ou Admin<br/>Controles de acesso contornados"] G --> H["Movimentação Lateral<br/>Acesso a recursos de rede<br/>como usuário privilegiado"] H --> I["Objetivos Finais<br/>Exfiltração, ransomware,<br/>comprometimento de AD"] ``` ## Exemplos de Uso **APT28 (Fancy Bear)** O grupo [[g0007-apt28|APT28]], APT russo atribuído ao GRU (inteligência militar russa), documentadamente usa manipulação de tokens como parte de seu toolkit de pós-exploração em campanhas de espionagem. O grupo frequentemente combina esta técnica com [[t1055-process-injection|T1055 - Process Injection]] para manter acesso persistente em redes de alvos governamentais e de defesa. Em operações documentadas na Europa Oriental e NATO, o APT28 utilizou token theft para escalar de usuários de domínio comprometidos para administradores de domínio. **FIN8** O grupo [[g0061-fin8|FIN8]], ator de motivação financeira especializado em ataques contra o setor de varejo e hoteleiro, incorpora token impersonation em seu malware [[s1085-sardonic|Sardonic]] e em seus processos de pós-exploração. O grupo usa a técnica para mover lateralmente em ambientes de ponto de venda (POS) e contornar controles baseados em identidade implementados por equipes de segurança. **Cobalt Strike - steal_token** O framework [[s0154-cobalt-strike|Cobalt Strike]], amplamente usado tanto por red teams legítimos quanto por grupos criminosos, inclui o comando `steal_token <pid>` no Beacon, que automatiza todo o fluxo de token theft a partir do PID de um processo alvo. Após o roubo, todos os comandos subsequentes no Beacon operam no contexto de segurança do usuário roubado. **Mimikatz - token::elevaté** O [[mimikatz|Mimikatz]], ferramenta de referência para ataques de credenciais no Windows, inclui o módulo `token::elevaté` que realiza token theft para SYSTEM. Usado extensivamente em campanhas de ransomware como etapa de preparação antes da execução do encriptador. **Emotet e operações de ransomware** O [[s0367-emotet|Emotet]], loader/botnet amplamente distribuído, incorpora capacidades de token manipulation para facilitar movimento lateral em redes corporativas. Campanhas de [[lockbit|LockBit]] e outras operações de ransomware que usam Emotet como vetor de acesso inicial frequentemente combinam token theft com [[Windows Admin Shares]] para propagar o ransomware lateralmente. **FinFisher e Stuxnet** Tanto o spyware [[s0182-finfisher|FinFisher]] quanto o worm [[s0603-stuxnet|Stuxnet]] documentadamente utilizam manipulação de tokens para elevar privilégios em suas fases de instalação. O Stuxnet, em particular, empregou múltiplas técnicas de escalada de privilégio, incluindo token manipulation, para garantir execução privilegiada em sistemas Windows de controle industrial. ## Detecção A detecção de token theft é desafiadora porque usa APIs legítimas do Windows. A abordagem mais eficaz é correlacionar **sequências de eventos** em vez de alertar sobre chamadas individuais de API. **Sigma - Sequência de chamadas de API típicas de Token Theft:** ```yaml title: Sequência de API Indicativa de Token Impersonation/Theft id: e7f80123-4567-89ab-ef01-234567890123 status: experimental description: Detecta encadeamento de OpenProcessToken seguido de DuplicateToken e ImpersonateLoggedOnUser em curto intervalo, padrão associado a T1134.001 logsource: category: process_access product: windows definition: Requer Sysmon com captura de API calls (Event ID 10) ou EDR com telemetria de API detection: selection: CallTrace|contains: - 'OpenProcessToken' - 'DuplicateTokenEx' condition: selection falsepositives: - Software legítimo de gerenciamento de identidade - Ferramentas de segurança que inspecionam tokens de processo level: medium tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1134.001 ``` **Sigma - Processo com alto nível de integridade criado por processo de baixa integridade:** ```yaml title: Escalada de Integridade Suspeita via Token Manipulation id: f8901234-5678-90bc-f012-345678901234 status: experimental description: Detecta processo com integridade SYSTEM ou High sendo filho de processo com integridade Medium ou Low, indicando possível token theft (T1134.001) ou técnica Potato logsource: category: process_creation product: windows detection: selection_high: IntegrityLevel: - System - High filter_expected_parents: ParentImage|endswith: - '\services.exe' - '\wininit.exe' - '\lsass.exe' - '\svchost.exe' condition: selection_high and not filter_expected_parents falsepositives: - Ferramentas de administração legítimas com elevação UAC explícita - Scripts de deploy que usam RunAs level: high tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1134.001 ``` **Pontos de detecção adicionais:** - Monitorar acesso a processos SYSTEM por processos de integridade média (Sysmon Event ID 10) - Alertar sobre uso de `SeImpersonatePrivilege` por processos que não são serviços do sistema - Correlacionar mudanças de identidade em logs de auditoria do Windows (Event ID 4624 com Logon Type 9 - NewCredentials) - Detectar ferramentas conhecidas: `mimikatz.exe`, padrões de linha de comando de Cobalt Strike Beacon - Monitorar acesso a `lsass.exe` (Event ID 4656/4663) como pré-requisito comum para token theft ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1018 | [[m1018-user-account-management\|M1018 - User Account Management]] | Implementar controle rigoroso de contas privilegiadas. Minimizar o número de contas com privilégios administrativos ativos. Usar contas separadas para tarefas administrativas e operações cotidianas. Implementar Just-In-Time (JIT) provisioning para acesso privilegiado. | | M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Implementar Privileged Access Workstations (PAWs) para administração. Usar Privileged Identity Management (PIM) em ambientes Azure AD / Active Directory. Restringir o uso de contas de serviço com privilégios elevados. Auditar regularmente atribuições de `SeImpersonatePrivilege` e `SeAssignPrimaryTokenPrivilege`. | **Boas práticas adicionais:** - **Protected Users Security Group:** Adicionar contas privilegiadas ao grupo "Protected Users" no Active Directory - isso impede o uso de Kerberos delegation e limita vetores de token theft - **Credential Guard:** Habilitar Windows Defender Credential Guard para isolar LSA secrets em ambiente virtualizado - **PAM (Privileged Access Management):** Implementar solução PAM (CyberArk, BeyondTrust, Delinea) que controla e grava sessões privilegiadas - **Minimizar SeImpersonatePrivilege:** Auditar e restringir quais contas de serviço possuem esse privilégio - é o pré-requisito principal para técnicas "Potato" - **Monitoramento de LSASS:** Configurar proteção de LSASS via PPL (Protected Process Light) e alertar sobre qualquer acesso incomum ao processo ## Contexto Brasil/LATAM A manipulação de tokens de acesso é uma das técnicas de pós-exploração mais frequentes observadas em incidentes respondidos no Brasil. Grupos de ransomware que operam ativamente no país - incluindo operadores de [[lockbit|LockBit]], [[blackcat|ALPHV]] e grupos criminosos locais - rotineiramente empregam token theft como etapa de escalada de privilégios antes da execução do ransomware, especialmente em ambientes com Active Directory. O contexto brasileiro apresenta fatores que ampliam a eficácia desta técnica: **Ambientes Active Directory legados:** Grande parte das organizações brasileiras, especialmente no setor público e em empresas industriais, mantém configurações de Active Directory com delegação Kerberos irrestrita (Unconstrained Delegation) e excesso de contas com privilégios de domínio - condições que maximizam o valor de tokens roubados. **Serviços expostos com SeImpersonatePrivilege:** Servidores web, sistemas de banco de dados e aplicações de gestão empresarial (ERPs) rodando como serviços Windows frequentemente possuem `SeImpersonatePrivilege` por configuração padrão. Vulnerabilidades nessas aplicações (muito comuns em sistemas legados brasileiros) são exploradas para obter execução de código no contexto de serviço, abrindo caminho para técnicas "Potato" e token theft para SYSTEM. **Campanhas do APT28 na região:** Embora o foco do [[g0007-apt28|APT28]] sejá predominantemente em países NATO, a presença de alvos estratégicos brasileiros (Petrobras, EMBRAER, Ministério das Relações Exteriores) resulta em uso ocasional dessas técnicas contra infraestrutura crítica nacional. Equipes de SOC e CSIRT brasileiras devem priorizar a instrumentação de eventos de criação de processo com informação de integridade (Windows Security Event 4688 com integridade + Sysmon Event ID 1) e alertas sobre acesso ao processo LSASS para cobertura eficaz desta técnica. ## Software Associado - [[s0182-finfisher|FinFisher]] (spyware) - [[s0367-emotet|Emotet]] (loader/botnet) - [[s0154-cobalt-strike|Cobalt Strike]] (framework C2) - [[mimikatz|Mimikatz]] (ferramenta de credenciais) - [[s0603-stuxnet|Stuxnet]] (worm de sabotagem industrial) - [[s0692-silenttrinity|SILENTTRINITY]] (framework de pós-exploração) - [[bitpaymer|BitPaymer]] (ransomware) - [[s0140-shamoon|Shamoon]] (wiper/malware destrutivo) - [[s1229-havoc|Havoc]] (framework C2 open-source) - [[s0439-okrum|Okrum]] (backdoor) ## Referências - MITRE ATT&CK - T1134.001: Token Impersonation/Theft (v16.2) - Microsoft - "Access Tokens" (documentação oficial Windows Security) - Microsoft - "DuplicateTokenEx function" (Win32 API reference) - SANS Institute - "Detecting Token Manipulation with Windows Event Logs" - Elastic Security - "Hunting for Token Impersonation" - Itm4n - "PrintSpoofer: Abusing SeImpersonatePrivilege on Windows 10" (pesquisa técnica) - Jámes Forshaw (Google Project Zero) - pesquisa sobre token impersonation no Windows *Fonte: MITRE ATT&CK - T1134.001*