# T1134.005 - SID-History Injection ## Técnica Pai Sub-técnica de [[t1134-access-token-manipulation|T1134 - Access Token Manipulation]], que cobre o conjunto de técnicas nas quais adversários manipulam tokens de acesso do Windows para se passar por outros usuários ou elevar privilégios. ## Descrição SID-History Injection é uma técnica de escalada de privilégios e evasão de controles de acesso que explora um atributo legítimo do Active Directory (AD) projetado originalmente para facilitar migrações de domínio. O atributo `SIDHistory` de um objeto de usuário no AD permite que uma conta carregue identificadores de segurança (SIDs) históricos de domínios anteriores - preservando o acesso a recursos durante processos de consolidação de domínios. Adversários com privilégios de **Domain Administrator** (ou equivalente) exploram esse mecanismo para injetar SIDs arbitrários no histórico de um usuário controlado. Quando o usuário autentica, todos os SIDs presentes no campo `SIDHistory` são incluídos em seu **token de acesso Kerberos** (no campo `ExtraSids` do PAC - Privilege Attribute Certificaté). Do ponto de vista dos servidores de recursos, esses SIDs extras são indistinguíveis de associações de grupo legítimas. Na prática, isso significa que um adversário pode: - Injetar o SID de **Enterprise Administrators** (S-1-5-21-...-519) em uma conta comum, concedendo-lhe efetivamente o máximo de privilégios da floresta AD - Criar "backdoors" de acesso persistentes que sobrevivem a resets de senha e remoção de grupos - Mover-se lateralmente entre domínios de uma floresta com acesso privilegiado silencioso - Criar Golden Tickets ou Silver Tickets com `ExtraSids` forjados via [[mimikatz|Mimikatz]] A técnica é especialmente perigosa porque o `SIDHistory` raramente é monitorado em ambientes corporativos, e contas com SIDs injetados aparecem como usuários comuns em consultas padrão do AD. ## Como Funciona ### Pré-requisitos Para executar SID-History Injection diretamente no AD, o adversário precisa de: - Privilégios de **Domain Administrator** no domínio alvo, **OU** - Acesso direto ao banco de dados NTDS.DIT via DCSync ([[t1003-003-ntds|T1003.003]]) ou acesso físico/privilegiado ao Domain Controller ### Método 1 - Injeção direta via Mimikatz (requer acesso ao DC) O [[mimikatz|Mimikatz]] implementa o módulo `sid::patch` que patcha o processo `lsass.exe` para contornar a verificação de privilégios do sistema e permite adicionar SIDs diretamente: ``` mimikatz # privilege::debug mimikatz # sid::patch mimikatz # sid::add /sam:<usuário_alvo> /new:<SID_a_injetar> ``` Esse método requer execução direta no Domain Controller com privilégios de debug. ### Método 2 - Forjamento de PAC com Golden/Diamond Ticket Com acesso ao hash `krbtgt` (obtido via DCSync - [[t1003-dcsync|T1003 - OS Credential Dumping]]), o adversário pode criar tickets Kerberos forjados que incluem o campo `ExtraSids` com SIDs privilegiados arbitrários. O [[mimikatz|Mimikatz]] e frameworks como [[s0363-empire|Empire]] suportam criação de Golden Tickets com `ExtraSids`: ``` kerberos::golden /user:<usuário> /domain:<domínio> /sid:<SID_do_domínio> /krbtgt:<hash_krbtgt> /sids:<SID_Enterprise_Admins> /ptt ``` Esse método não modifica o AD persistentemente - o SID existe apenas no ticket em memória - mas permite acesso imediato a recursos de todos os domínios da floresta. ### Método 3 - Modificação direta do NTDS.DIT Com acesso ao arquivo `NTDS.DIT` (banco de dados do AD), é possível modificar diretamente o atributo `SIDHistory` de qualquer conta, criando backdoors persistentes. ### Mecanismo de autenticação explorado Quando uma conta com `SIDHistory` populado autentica no Kerberos: 1. O KDC (Key Distribution Center) lê o atributo `SIDHistory` do objeto de usuário 2. Os SIDs históricos são inseridos no campo `ExtraSids` do PAC (Privilege Attribute Certificaté) do ticket Kerberos 3. Servidores de recursos que recebem o ticket incluem esses SIDs extras na avaliação de autorização 4. O usuário recebe acesso como se fosse membro dos grupos correspondentes aos SIDs injetados Esse comportamento é por design - foi introduzido para migração de domínios - mas se torna um vetor de ataque quando o `SIDHistory` é populado maliciosamente. ## Attack Flow ```mermaid graph TB A["🎯 Comprometimento Inicial<br/>T1566 / T1190"] --> B["⚡ Escalada de Privilégios<br/>no Domínio AD"] B --> C{"Método de Injeção"} C --> D["🔑 DCSync<br/>Obtém hash krbtgt<br/>T1003"] C --> E["🖥️ Acesso direto ao DC<br/>Execução do Mimikatz"] D --> F["🎫 Golden Ticket com ExtraSids<br/>SID Enterprise Admins forjado"] E --> G["📝 Injeção direta no<br/>atributo SIDHistory do AD<br/>sid::patch + sid::add"] F --> H["🔓 Token de acesso com<br/>SIDs privilegiados extras"] G --> H H --> I["🌐 Movimento lateral<br/>entre domínios da floresta<br/>T1021 - Remote Services"] I --> J["🕵️ Persistência silenciosa<br/>Backdoor via conta comum<br/>com SID privilegiado"] J --> K["📤 Exfiltração / Objetivos<br/>Accesso total à floresta AD"] style A fill:#8B0000,color:#fff style D fill:#8B4513,color:#fff style H fill:#B8860B,color:#fff style J fill:#006400,color:#fff style K fill:#8B0000,color:#fff ``` ## Exemplos de Uso ### Ataques pós-comprometimento de floresta AD Em investigações de resposta a incidentes de grandes organizações, forenses revelam SID-History Injection como mecanismo de persistência de longo prazo. Após obter acesso de Domain Admin, adversários injetam SIDs privilegiados em contas de serviço aparentemente inativas - contas que raramente são auditadas e cujos atributos AD não são verificados rotineiramente. ### Mimikatz - uso em Red Teams e APTs O [[mimikatz|Mimikatz]] é a ferramenta mais utilizada para implementar SID-History Injection, tanto por grupos APT quanto em exercícios de Red Team. O módulo `sid::patch` foi documentado extensivamente em relatórios de incidentes de espionagem corporativa e governamental. ### Empire Framework O framework [[s0363-empire|Empire]] implementa módulos de PowerShell que permitem injetar SIDs via modificação do PAC sem necessitar de acesso físico ao DC, bastando ter o hash `krbtgt`. É frequentemente usado em simulações de ataque avançadas para demonstrar movimento lateral inter-domínios. ### Ataques a fusões e aquisições (M&A) Ambientes corporativos em processo de fusão - onde múltiplos domínios AD são consolidados - são particularmente vulneráveis. O mecanismo de `SIDHistory` é ativamente usado durante a migração legítima, criando jánelas de oportunidade para adversários que monitoram o processo de M&A. ## Detecção SID-History Injection é historicamente subdetectado porque o atributo `SIDHistory` não é monitorado por padrão na maioria dos ambientes. A detecção requer auditoria específica do AD e análise de tickets Kerberos. **Indicadores chave:** - Conta de usuário comum com `SIDHistory` populado (especialmente com SIDs de grupos privilegiados como Enterprise Admins S-1-5-21-...-519) - Tickets Kerberos com campo `ExtraSids` contendo SIDs não esperados para o usuário - Autenticação de conta com SIDHistory não nulo acessando recursos de domínios diferentes do seu domínio home - Uso do módulo `sid::patch` do Mimikatz detectado por EDR (manipulação de processo `lsass.exe`) - Alterações no atributo `SIDHistory` de objetos de usuário no AD (evento 4738 com campo `SIDHistory`) **Regra de detecção - modificação do atributo SIDHistory:** ```yaml title: SID-History Injection - Atributo SIDHistory Modificado no AD status: experimental logsource: category: ds_object_modification product: windows detection: selection: EventID: 4742 AttributeLDAPDisplayName: 'sIDHistory' filter_legit_migration: SubjectUserName|endswith: 'Migration Service Account' condition: selection and not filter_legit_migration level: high tags: - attack.defense_evasion - attack.privilege_escalation - attack.t1134.005 ``` **Regra de detecção - conta com SID privilegiado em ExtraSids do PAC:** ```yaml title: SID-History Injection - SID Enterprise Admins em Token de Usuário Comum status: experimental logsource: category: authentication product: windows detection: selection: EventID: 4624 LogonType: 3 filter_expected: SubjectUserSid|contains: 'S-1-5-21' kerberos_pac: ExtraSids|contains: '-519' condition: selection and kerberos_pac and not filter_expected level: critical tags: - attack.defense_evasion - attack.t1134.005 ``` **Regra de detecção - limpeza de SIDHistory (técnica de anti-forense):** ```yaml title: SID-History Injection - Remoção Suspeita de SIDHistory status: experimental logsource: category: ds_object_modification product: windows detection: selection: EventID: 4742 AttributeLDAPDisplayName: 'sIDHistory' AttributeValue: '' condition: selection level: medium tags: - attack.defense_evasion - attack.t1134.005 ``` **Consulta de auditoria recomendada (PowerShell/AD):** Para identificar contas com `SIDHistory` populado no ambiente: ```powershell Get-ADUser -Filter {SIDHistory -like "*"} -Properties SIDHistory | Select-Object Name, SamAccountName, SIDHistory ``` **Fontes de dados:** | Fonte | Eventos | Descrição | |-------|---------|-----------| | Windows Security Log | 4742, 4738 | Modificação de atributos de conta de usuário | | Windows Security Log | 4768, 4769 | Emissão de TGT/TGS Kerberos - analisar ExtraSids | | AD Audit | Modificação de `sIDHistory` | Requer Auditoria de Modificação de Objeto do DS ativa | | EDR | Mimikatz `sid::patch` | Hooking de `lsass.exe` / `lsadb.dll` | | SIEM | Correlação de eventos | Login com SIDs extras → acesso inter-domínio | ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1015 | [[m1015-active-directory-configuration\|M1015 - Active Directory Configuration]] | Habilitar auditoria de modificações no AD; ativar SID Filtering (Quarantine) em trusts de domínio para bloquear SIDs de domínios externos no PAC; revisar contas com `SIDHistory` não nulo periodicamente | | M1026 | Gerenciamento de contas privilegiadas | Proteger hashes `krbtgt` com Tiered Access Model; rotacionar `krbtgt` após comprometimento suspeito; implementar Privileged Access Workstations (PAWs) | | M1027 | Políticas de senha | Rotacionar o hash `krbtgt` **duas vezes** após comprometimento confirmado - tickets forjados com o hash anterior tornam-se inválidos | **Controles específicos para SID-History Injection:** 1. **SID Filtering nas trusts** - ative `Quarantine` nas trusts de domínio para bloquear `ExtraSids` de domínios externos nos tickets Kerberos; isso é crítico em ambientes multi-domínio 2. **Desabilitar SIDHistory quando não necessário** - se a organização não está em processo de migração de domínio, o atributo `SIDHistory` não deveria ser populado em nenhuma conta; criar alertas para qualquer população do campo 3. **Monitoramento contínuo do AD** - soluções como Microsoft Defender for Identity (MDI), Semperis DSP ou Varonis detectam modificações em `SIDHistory` e comportamento anômalo de tokens Kerberos 4. **Proteger o `krbtgt`** - sem o hash `krbtgt`, o adversário não pode forjar PACs com `ExtraSids`; implementar monitoramento de DCSync ([[t1003-dcsync|T1003]]) e proteger DCs com controles de acesso rígidos ## Contexto Brasil/LATAM SID-History Injection é uma técnica pós-comprometimento de alto impacto relevante para organizações brasileiras com infraestrutura Active Directory, especialmente em contextos de: **1. Grandes grupos corporativos e holding companies** Grupos empresariais brasileiros com múltiplas subsidiárias frequentemente operam ambientes AD com múltiplos domínios em relações de trust (floresta com domínios filhos por subsidiária). Esse é o ambiente ideal para SID-History Injection - um adversário que compromete um domínio filho pode injetar SIDs do domínio raiz para escalar para o nível de floresta. **2. Setores financeiro e governo** Bancos brasileiros e órgãos governamentais com ambientes AD de grande escala são alvos de grupos APT e cibercriminosos que utilizam técnicas avançadas de movement lateral. A técnica permite que um adversário que invadiu uma estação de trabalho corporativa escale para controle total do AD silenciosamente. **3. Fusões e aquisições no mercado brasileiro** O mercado brasileiro tem visto consolidações significativas em setores como financeiro, varejo e saúde. Durante processos de M&A com integração de domínios AD, o `SIDHistory` é usado legitimamente - criando jánelas onde a técnica é difícil de distinguir de atividade legítima de migração. **4. Ferramentas populares em grupos locais de cybercrime** O [[mimikatz|Mimikatz]] é amplamente utilizado por grupos de cybercrime brasileiro que operam ransomware e fraude corporativa. Incidentes de ransomware em empresas brasileiras frequentemente revelam, em análise forense, que os adversários utilizaram técnicas de token manipulation para escalar privilégios antes de implantar o payload final. **Recomendação para equipes de segurança no Brasil:** - Auditar imediatamente todos os objetos de usuário com `SIDHistory` populado no AD - Ativar auditoria de modificação de objetos do Directory Service nos Domain Controllers - Implementar alertas em tempo real para qualquer modificação do atributo `sIDHistory` - Incluir SID-History Injection em exercícios de Purple Team e avaliações de AD Security Posture ## Referências - MITRE ATT&CK - T1134.005 (Access Token Manipulation: SID-History Injection) - Microsoft - documentação de SID Filtering e SIDHistory no Active Directory - Semperis - "SIDHistory Injection: The AD backdoor you're probably ignoring" - SpecterOps / BloodHound - pesquisa sobre SID Abuse em ambientes AD complexos - Sean Metcalf (ADSecurity.org) - análise técnica de Golden Ticket com ExtraSids - Mandiant - relatório sobre técnicas de persistência em AD pós-comprometimento --- *Fonte: MITRE ATT&CK - T1134.005*