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