# T1649 - Steal or Forge Authentication Certificates > [!danger] Técnica de Alto Impacto - Credential Access > **Tática:** Credential Access · **ID:** T1649 · **Plataformas:** Windows, Linux, macOS, Identity Provider > Adversários roubam ou forjam certificados digitais usados para autenticação, obtendo acesso persistente que sobrevive a resets de senha - incluindo ataques Golden Certificaté contra PKI corporativa inteira. ## Descrição A técnica **Steal or Forge Authentication Certificates** (T1649) abrange o roubo e a falsificação de certificados digitais utilizados como material de autenticação para acessar sistemas e recursos remotos. Certificados digitais são amplamente usados em ambientes corporativos para assinar e criptografar mensagens, arquivos e, crucialmente, para autenticação de identidade - tornando-os um alvo de alto valor para adversários. ### Certificados como Credenciais Em ambientes Windows modernos, certificados vinculam-se a identidades e podem ser usados como credenciais alternativas às senhas: - **AD CS (Active Directory Certificaté Services):** A PKI interna da Microsoft emite certificados que autenticam usuários e máquinas no domínio. Certificados com EKU (Extended Key Usage) de "Client Authentication" ou "Smart Card Logon" podem ser usados para obter Kerberos TGTs (Ticket Granting Tickets). - **Entra ID (Azure AD):** Certificados de dispositivo vinculados ao Entra ID permitem autenticação sem senha em recursos do Microsoft 365 e Azure. - **Certificados de Máquina:** Usados para autenticação de estações e servidores em VPNs, 802.1X e outros protocolos de acesso à rede. ### Roubo vs. Forjamento **Roubo de Certificados:** O adversário extrai certificados já emitidos de storages protegidos - o repositório de certificados do Windows (certstore), arquivos `.pfx`/`.p12`, ou diretamente do Registro. O malware [[mimikatz|Mimikatz]] pode extrair certificados e chaves privadas da memória do processo `lsass.exe` ou do certstore. **Forjamento de Certificados:** Com acesso à chave privada de uma CA (Certificaté Authority) raiz ou subordinada, o adversário pode emitir certificados arbitrários para qualquer identidade do domínio. Este é o ataque conhecido como **"Golden Certificaté"** - análogo ao [[t1558-001-golden-ticket|Golden Ticket]] do Kerberos, mas para a infraestrutura PKI. Um Golden Certificaté pode autenticar como qualquer usuário do domínio por toda a vida útil do certificado, mesmo após resets de senha. ### Abuso de Configurações Incorretas do AD CS A pesquisa da SpecterOps (públicada como "Certified Pre-Owned" - 2022) catalogou 11 classes de vulnerabilidades em configurações de AD CS (ESC1 a ESC11), incluindo: - **ESC1:** Templates que permitem ao solicitante específicar o SAN (Subject Alternative Name) arbitrário - permitindo emissão de certificado como qualquer usuário - **ESC2:** Templates com qualquer finalidade ou Smartcard Logon + SAN definível pelo usuário - **ESC8:** NTLM relay para endpoints de inscrição web do AD CS O grupo [[g0016-apt29|APT29]] (Cozy Bear) explorou misconfigurations do AD CS em campanhas de espionagem de alto perfil, obtendo persistência de longo prazo via certificados forjados que sobreviveram a rotações de credenciais. ## Como Funciona ### Fluxo de Roubo de Certificados 1. **Localização:** O adversário identifica certificados com valor de autenticação no certstore do Windows (`HKCU\Software\Microsoft\SystemCertificates`, `HKLM\Software\Microsoft\SystemCertificates`) ou em arquivos `.pfx`/`.p12` em disco. 2. **Extração:** Usando `certutil`, `Mimikatz` (`crypto::certificates`), ou APIs criptográficas do Windows, o adversário exporta o certificado com a chave privada. Se a chave privada estiver marcada como "não exportável", técnicas de memory dumping do `lsass.exe` ou uso do `dpapi` podem contornar essa proteção. 3. **Autenticação:** O certificado exportado é usado para solicitar um TGT Kerberos via PKINIT (Public Key Cryptography for Initial Authentication) ou para autenticação direta em serviços que aceitam certificados. ### Fluxo de Forjamento via Golden Certificaté 1. **Comprometimento da CA:** O adversário obtém a chave privada da CA raiz ou subordinada do AD CS - via roubo do arquivo de certificado da CA, dump de memória do servidor CA, ou backup não seguro da CA. 2. **Forjamento:** Usando ferramentas como [[mimikatz|Mimikatz]] (`crypto::scauth`) ou [[s0677-aadinternals|AADInternals]], o adversário cria um certificado falso com SAN apontando para uma identidade privilegiada (ex: Domain Admin) e assina com a chave privada da CA comprometida. 3. **Autenticação Persistente:** O certificado forjado é aceito pelo Kerberos (via PKINIT) para emitir TGTs como a identidade privilegiada, sem necessidade de conhecer a senha atual da conta. 4. **Persistência Indefinida:** Como o certificado é assinado por uma CA confiável, ele continuará funcionando mesmo após resets de senha - até que o certificado expire ou a CA sejá revogada. ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(Credenciais Comprometidas / Exploit)"] --> B{"Objetivo do Adversário"} B --> C["Roubo de Certificado Existente"] B --> D["Forjamento via CA Comprometida"] C --> E["Localizar Certificados de Valor<br/>(certstore, arquivos .pfx)"] E --> F["Extrair Certificado + Chave Privada<br/>(Mimikatz, certutil, DPAPI)"] F --> G["Certificado Exportado<br/>com Chave Privada"] D --> H["Comprometer Servidor CA<br/>(roubo de chave privada da CA)"] H --> I["Emitir Certificado Forjado<br/>para Identidade Privilegiada"] I --> J["Golden Certificaté<br/>(qualquer usuário do domínio)"] G --> K["Autenticação via PKINIT<br/>(solicitar TGT Kerberos)"] J --> K K --> L["TGT Emitido pelo KDC<br/>(sem verificar senha)"] L --> M["Acesso a Recursos do Domínio"] M --> N["Movimento Lateral<br/>Ta0008 Lateral Movement"] M --> O["Persistência Pós-Reset<br/>de Senha Ta0003 Persistence"] M --> P["Escalação de Privilégio<br/>Ta0004 Privilege Escalation"] ``` ## Exemplos de Uso ### APT29 - Campanhas de Espionagem via AD CS O grupo [[g0016-apt29|APT29]] (Cozy Bear), atribuído ao SVR russo, demonstrou uso sofisticado de técnicas de abuso de PKI em múltiplas campanhas documentadas: - **SolarWinds / SUNBURST (2020):** Após comprometimento inicial, o APT29 coletou certificados de autenticação de dispositivos para movimento lateral persistente na infraestrutura Microsoft 365 das vítimas. - **Campanha de Espionagem Governamental (2022-2023):** Análises de empresas de segurança documentaram o uso do APT29 de certificados forjados para manter acesso a redes governamentais europeias após a descoberta e remediação parcial do comprometimento original. O APT29 usa ferramentas como [[s0677-aadinternals|AADInternals]] para abusar de certificados no ambiente Entra ID, permitindo autenticação persistente em recursos Microsoft Cloud sem senha. ### Ferramenta Mimikatz - Extração de Certificados O [[mimikatz|Mimikatz]] possui módulos específicos para abuso de certificados: - `crypto::certificates /export` - exporta todos os certificados do certstore atual - `crypto::certificates /export /systemstore:LOCAL_MACHINE` - exporta certificados do sistema - `lsadump::dcsync /user:<domain>\<user>` combinado com `crypto::scauth` - solicita certificado para qualquer usuário via DCSync ### Abuso de AD CS Misconfiguration (ESC1) Um usuário não privilegiado em um domínio com um templaté AD CS vulnerável (ESC1) pode solicitar um certificado específicando o SAN de um Domain Admin: ``` Certify.exe request /ca:corp-ca\CORP-CA /templaté:VulnerableTemplaté /altname:Administrator ``` O certificado resultante pode ser usado para autenticar como Administrador de Domínio via PKINIT. ### Abuso no Entra ID com AADInternals A ferramenta [[s0677-aadinternals|AADInternals]] permite abuso de certificados no Azure AD/Entra ID: ```powershell # Exportar certificado de dispositivo Entra ID Export-AADIntDeviceCertificaté # Usar certificado para obter token de acesso como dispositivo Get-AADIntAccessTokenForDeviceCompliance -Certificaté $cert ``` ## Detecção ### Monitoramento de Emissão de Certificados ```yaml title: Suspicious Certificaté Enrollment with Privileged SAN id: 9e2f5c8a-3b7d-4a1c-8f6e-2d4b7a9c1e5f status: experimental description: Detecta emissão de certificados com SAN contendo contas privilegiadas logsource: product: windows service: security detection: selection: EventID: 4886 CertificateTemplaté|contains: - 'Admin' - 'Domain' selection_san: EventID: 4887 SubjectAlternativeNames|contains: - 'Domain Admins' - 'Enterprise Admins' condition: selection or selection_san level: critical tags: - attack.credential_access - attack.t1649 falsepositives: - Processo legítimo de enrollment de certificados administrativos ``` ### Detecção de Exportação de Certificados com Chave Privada ```yaml title: Certificaté with Private Key Exported id: 3a7c9f1e-5b2d-8a4c-1f6e-9d3b5a7c2f8e status: experimental description: Detecta uso de certutil ou APIs criptográficas para exportar certificados com chave privada logsource: category: process_creation product: windows detection: selection_certutil: Image|endswith: '\certutil.exe' CommandLine|contains: - '-exportpfx' - '-p ' selection_mimikatz: CommandLine|contains: - 'crypto::certificates' - '/export' condition: selection_certutil or selection_mimikatz level: high tags: - attack.credential_access - attack.t1649 ``` ### Fontes de Dados Recomendadas | Fonte | EventID | O Que Monitorar | |-------|---------|-----------------| | Windows Security Log | 4886 | Solicitação de certificado recebida pela CA | | Windows Security Log | 4887 | Certificado emitido pela CA | | Windows Security Log | 4888 | Solicitação de certificado negada | | Windows Security Log | 4768 | TGT Kerberos solicitado via PKINIT (Certificaté) | | Sysmon EventID 1 | - | Execução de `certutil.exe` com flags suspeitas | | CA Audit Log | - | Todas as emissões de certificados - especialmente fora do horário normal | | Entra ID Sign-in Logs | - | Autenticações via certificado de dispositivo incomuns | ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1015-active-directory-configuration\|M1015]] | Active Directory Configuration | Hardening do AD CS: auditar todos os templates de certificado para configurações ESC1-ESC11. Remover a permissão de específicação de SAN em templates de usuário/máquina. Habilitar auditoria de emissão de certificados nos servidores CA. Usar o guia "Certified Pre-Owned" da SpecterOps como referência. | | [[m1042-disable-or-remove-feature-or-program\|M1042]] | Disable or Remove Feature or Program | Desabilitar funcionalidades não utilizadas do AD CS - especialmente interfaces web de inscrição (CES/CEP) se não utilizadas. Remover templates de certificado vulneráveis que não sejam necessários. | | [[m1041-encrypt-sensitive-information\|M1041]] | Encrypt Sensitive Information | Proteger as chaves privadas das CAs com HSMs (Hardware Security Modules). Chaves privadas de CA nunca devem estar em disco sem proteção de hardware. Usar proteção DPAPI para chaves privadas de usuário no certstore. | | [[m1047-audit\|M1047]] | Audit | Auditar regularmente a infraestrutura PKI: quais templates existem, quais usuários podem solicitar certificados, quais CAs estão configuradas. Usar ferramentas como `Certify.exe audit` (da SpecterOps) ou `PSPKIAudit` para identificar misconfigurations. | ### Controles Adicionais - **Certificaté Transparency:** Em ambientes Microsoft, habilitar o logging de todos os certificados emitidos para um log de auditoria centralizado. - **Monitoramento de PKINIT:** Alertar para TGTs Kerberos obtidos via certificado (EventID 4768 com `CertIssuerName` preenchido) para contas que não costumam usar autenticação baseada em certificado. - **Rotação de CA:** Em caso de comprometimento de servidor CA, revogar e substituir toda a cadeia de CA afetada - não apenas o certificado específico. - **Tiering de Administração:** Servidores CA devem estar no Tier 0 (equivalente a Domain Controllers) - acesso restrito ao máximo, monitoramento intensivo. ## Contexto Brasil/LATAM A técnica T1649 tem relevância crescente para o ambiente brasileiro e latino-americano pelos seguintes fatores: **Infraestrutura PKI Nacional:** O Brasil possui uma ICP-Brasil (Infraestrutura de Chaves Públicas Brasileira) robusta, com certificados digitais amplamente utilizados para autenticação em sistemas governamentais (e-CPF, e-CNPJ, NF-e, eSocial). Ataques a CAs da ICP-Brasil teriam impacto nacional em autenticação de transações fiscais e serviços governamentais. **Bancos e Certificados de Autenticação:** Grandes bancos brasileiros (Itaú, Bradesco, BB, Caixa) utilizam certificados de autenticação em seus ambientes corporativos internos. Um adversário que compromete a PKI interna de uma dessas instituições pode obter acesso persistente a sistemas financeiros críticos. **APT29 e Alvos Governamentais:** O [[g0016-apt29|APT29]], ator documentado nesta técnica, tem histórico de operações contra ministérios e agências governamentais ao redor do mundo. Organizações brasileiras do setor público com conexões internacionais (especialmente no contexto de relações diplomáticas) devem considerar este ator como ameaça plausível. **Baixa Maturidade de AD CS:** Em muitas organizações brasileiras de médio porte, o AD CS é instalado com configurações padrão e templates que contêm misconfigurations ESC1-ESC3 sem auditoria. A pesquisa "Certified Pre-Owned" mostrou que a maioria dos ambientes Windows corporativos tem pelo menos uma misconfiguration explorável em seus templates de certificado. **Recomendação Imediata:** Executar uma auditoria de AD CS em todas as organizações que operam Windows AD com PKI interna. Ferramentas gratuitas como `Certify.exe` (SpecterOps) e `PSPKIAudit` permitem identificar misconfigurations em minutos. Esta é uma das auditorias de maior retorno em termos de risco/esforço para ambientes Windows corporativos no Brasil. **Resposta a Incidentes:** Equipes de IR brasileiras devem incluir análise de AD CS e Golden Certificaté em playbooks de resposta a comprometimentos de Active Directory, especialmente quando há suspeita de presença prolongada de adversário. ## Referências - [MITRE ATT&CK - T1649: Steal or Forge Authentication Certificates](https://attack.mitre.org/techniques/T1649) - [SpecterOps - Certified Pre-Owned: Abusing Active Directory Certificaté Services](https://posts.specterops.io/certified-pre-owned-d95910965cd2) - [Microsoft - AD CS Security Best Practices](https://docs.microsoft.com/en-us/windows-server/identity/ad-cs/active-directory-certificaté-services-overview) - [CISA Advisory - Russian APT29 Targeting Cloud Services](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-347a) - [AADInternals - Azure AD / Entra ID Attacks](https://aadinternals.com/) - [[g0016-apt29|APT29]] - Principal ator de ameaça documentado usando esta técnica - [[mimikatz|Mimikatz]] - Ferramenta para extração de certificados e chaves privadas - [[s0677-aadinternals|AADInternals]] - Ferramenta para abuso de certificados no Entra ID - [[t1558-001-golden-ticket|T1558.001 - Golden Ticket]] - Técnica análoga para Kerberos - [[t1552-unsecured-credentials|T1552 - Unsecured Credentials]] - Técnica relacionada de coleta de credenciais - [[ta0003-persistence|TA0003 - Persistence]] - Tática habilitada por certificados forjados - [[m1015-active-directory-configuration|M1015 - Active Directory Configuration]] - Mitigação principal via hardening do AD CS --- *Fonte: [MITRE ATT&CK - T1649](https://attack.mitre.org/techniques/T1649)*