# T1003.005 - Cached Domain Credentials ## Técnica Pai Esta é uma sub-técnica de [[t1003-os-credential-dumping|T1003 - T1003 - OS Credential Dumping]]. ## Descrição A técnica **T1003.005 - Cached Domain Credentials** descreve como adversários podem tentar acessar credenciais de domínio armazenadas em cache local nos sistemas operacionais Windows e Linux, projetadas para permitir autenticação mesmo quando o Domain Controller (DC) está indisponível. Em ambientes corporativos com Active Directory, o Windows armazena localmente um número configurável de hashes de credenciais de domínio para garantir que usuários possam fazer login mesmo durante interrupções de rede ou quando laptops estão fora da rede corporativa. No Windows Vista e versões posteriores, essas credenciais em cache são armazenadas no formato **DCC2 (Domain Cached Credentials version 2)**, também conhecido como **MS-Cache v2**. Esse formato usa derivação de chave baseada em PBKDF2 com HMAC-MD4, o que o torna resistente a ataques *pass-the-hash*, mas vulnerável a ataques de [[t1110-002-password-cracking|quebra de senha (Password Cracking)]] offline - especialmente com hardware de GPU moderno. Por padrão, o Windows armazena as últimas **10 credenciais de domínio** em cache no registro (`HKEY_LOCAL_MACHINE\SECURITY\Cache`), mas esse número pode ser alterado por política de grupo. A extração desses hashes requer privilégios de `SYSTEM` ou equivalente, tornando essa técnica frequentemente utilizada na fase pós-comprometimento, após escalada de privilégios. Em sistemas Linux integrados ao Active Directory - sejá via **SSSD (System Security Services Daemon)** ou **Quest Authentication Services (VAS)** - as credenciais em cache são armazenadas em bancos de dados locais: `/var/lib/sss/db/cache.[domain].ldb` para SSSD ou `/var/opt/quest/vas/authcache/vas_auth.vdb` para Quest. Com acesso `sudo` ou `root`, ferramentas como `tdbdump` ou `Linikatz` podem extrair esses hashes para quebra offline. Grupos APT do Oriente Médio - como [[g0064-apt33|APT33]], [[g0049-oilrig|OilRig]] e [[g0069-mango-sandstorm|MuddyWater]] - documentadamente utilizam essa técnica em campanhas de espionagem corporativa e governamental, aproveitando o acesso físico ou remoto a estações de trabalho fora da rede para extrair credenciais de domínio sem precisar atacar diretamente o Domain Controller. ## Como Funciona O processo de extração de credenciais em cache é técnicamente estruturado da seguinte forma: ### Windows - DCC2 / MS-Cache v2 **Formato do hash:** ``` $DCC2$10240#username#hash_hex ``` O número `10240` representa as iterações PBKDF2. A chave derivada combina a senha do usuário com o nome de usuário em lowercase via HMAC-MD4 iterado. **Localização no registro:** - Hive: `HKEY_LOCAL_MACHINE\SECURITY\Cache` - Chave: `NL$1` a `NL$10` (10 entradas por padrão) - Acesso requer token de `SYSTEM` (não basta `Administrator` comum) **Ferramentas utilizadas:** | Ferramenta | Método | Requisito | |---|---|---| | [[mimikatz\|Mimikatz]] | `lsadump::cache` | SYSTEM / Debug privilege | | Impacket secretsdump.py | Remoto via SMB | Credenciais de admin de domínio | | CrackMapExec | Automatizado via SMB | Admin local/domínio | | [[s0349-lazagne\|LaZagne]] | Módulo `mscache` | SYSTEM local | | [[s0119-cachedump\|Cachedump]] | Extração direta do hive | SYSTEM local | ### Linux - SSSD e Quest VAS Em distribuições Linux integradas ao AD, o SSSD armazena hashes em formato LDB (LDAP-like database): ```bash # Extração via tdbdump (requer root) tdbdump /var/lib/sss/db/cache.DOMINIO.COM.ldb | grep -A5 "cachedPassword" ``` O [[linikatz|Linikatz]] - equivalente Linux do Mimikatz - automatiza a extração e suporta múltiplos provedores de autenticação, incluindo SSSD, VAS, Centrify e PowerBroker. ### Quebra Offline - DCC2 Diferente de hashes NTLM (usáveis em pass-the-hash), DCC2 exige quebra offline. Com GPU moderna: - RTX 4090: ~2,5 bilhões de tentativas/segundo contra DCC2 - Senhas de 8 caracteres com política comum: quebrável em horas a dias - Senhas de 12+ caracteres com alta complexidade: inviável na prática Ferramentas de quebra: **hashcat** (`-m 2100`), **john the ripper** com plugin DCC2. ## Attack Flow ```mermaid graph TB A["Comprometimento inicial<br/>(Phishing, exploit, RDP bruteforce)"] --> B["Escalada de privilégios<br/>(SYSTEM / root via exploit local)"] B --> C["Extração do cache local"] C --> D["Windows: HKLM\\SECURITY\\Cache<br/>(Mimikatz lsadump::cache)"] C --> E["Linux: SSSD LDB / VAS VDB<br/>(Linikatz, tdbdump)"] D --> F["Hash DCC2 obtido<br/>(MS-Cache v2)"] E --> F F --> G["Quebra offline (Password Cracking)<br/>(hashcat -m 2100)"] G --> H["Senha em texto plano recuperada"] H --> I["Uso de conta de domínio legítima"] I --> J["SMB)"] I --> K["Acesso a recursos de domínio<br/>(Shares, emails, VPN)"] B --> L["Acesso direto se offline<br/>(Dispositivo fora da rede corporativa)"] L --> C ``` ## Exemplos de Uso ### Caso 1: APT33 - Espionagem em empresas de energia O grupo iraniano [[g0064-apt33|APT33]] (Elfin) utilizou credenciais em cache durante campanhas de espionagem contra empresas do setor de energia e aviação no Oriente Médio e nos Estados Unidos. Após comprometer estações de trabalho de funcionários com laptops corporativos via spear-phishing, o grupo extraia credenciais em cache com Mimikatz para mover-se lateralmente para servidores críticos, incluindo sistemas SCADA - sem precisar atacar diretamente Domain Controllers monitorados. ### Caso 2: OilRig - Acesso persistente em organizações governamentais O [[g0049-oilrig|OilRig]] (APT34) documentadamente combina [[t1003-005-cached-domain-credentials|extração de cache de credenciais]] com outras sub-técnicas de OS Credential Dumping para manter acesso persistente em organizações governamentais da região MENA. A técnica é particularmente eficaz quando os alvos são funcionários que trabalham remotamente com laptops corporativos, cujas credenciais em cache permitem ao atacante autenticar-se como o usuário mesmo offline. ### Caso 3: MuddyWater - Uso do LaZagne O [[g0069-mango-sandstorm|MuddyWater]] utiliza regularmente o [[s0349-lazagne|LaZagne]] - uma ferramenta open source de recuperação de senhas - que inclui módulo específico para extração de MS-Cache v2. Em intrusões documentadas em 2023-2024, o grupo implantava o LaZagne como script Python compilado em PyInstaller para evadir EDRs, extraindo não apenas credenciais em cache mas também senhas armazenadas em navegadores, clientes SSH e aplicações corporativas. ### Caso 4: Ransomware brasileiro - Pré-movimento lateral Grupos de ransomware que operam no Brasil, como afiliados das famílias [[lockbit|LockBit]] e [[blackcat|ALPHV]], frequentemente utilizam extração de credenciais em cache como primeira etapa após comprometer uma estação de trabalho, antes de atacar servidores críticos. Em incidentes documentados pelo CERT.br em 2024, análises forenses identificaram execuções de Mimikatz e CrackMapExec em múltiplas estações de trabalho da fase de reconhecimento pré-cifragem. ## Detecção ### Estrategias de detecção prioritárias **1. Acesso ao hive SECURITY do registro:** O hive `HKLM\SECURITY\Cache` é raramente acessado em operação normal. Qualquer processo que não sejá o LSASS ou processos do sistema acessando esse hive deve gerar alerta. **2. Execução de ferramentas conhecidas:** Detectar invocações de Mimikatz (`lsadump::cache`), LaZagne, secretsdump.py, e Cachedump por linha de comando ou hash de processo. **3. Acesso ao banco de dados SSSD em Linux:** Acessos ao arquivo `/var/lib/sss/db/cache.*.ldb` por processos que não sejam `sssd` ou `sssd_be` devem ser alertados. **4. Privilégio de debug (SeDebugPrivilege):** A maioria das ferramentas de extração requer `SeDebugPrivilege` para impersonar SYSTEM. Monitorar processos que solicitam e obtêm esse privilégio fora de contextos esperados. ### Regra Sigma - Acesso ao hive SECURITY via Mimikatz ```yaml title: Mimikatz Cached Domain Credentials Dump status: experimental logsource: category: process_creation product: windows detection: selection_tool: CommandLine|contains: - 'lsadump::cache' - 'sekurlsa::msv' - 'DumpCreds' - 'cachedump' selection_reg: CommandLine|contains: - 'SECURITY\Cache' - 'NL condition: selection_tool or selection_reg level: critical tags: - attack.credential_access - attack.t1003.005 ``` ### Regra Sigma - LaZagne em sistemas Windows ```yaml title: LaZagne Password Recovery Tool Execution status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: - '\lazagne.exe' CommandLine|contains: - 'mscache' - 'windows' - 'all' condition: selection level: high tags: - attack.credential_access - attack.t1003.005 ``` ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1015 | [[m1015-active-directory-configuration\|M1015 - Active Directory Configuration]] | Reduzir o número de credenciais em cache via GPO: `Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options > Interactive Logon: Number of previous logons to cache`. Para dispositivos que nunca ficam offline, definir como `0`. Para laptops, considerar `1` ou `2` no máximo. | | M1017 | [[m1017-user-training\|M1017 - User Training]] | Treinar usuários para não usar senhas de domínio em dispositivos pessoais ou não gerenciados, e reportar comportamentos suspeitos em laptops corporativos. | | M1027 | [[m1027-password-policies\|M1027 - Password Policies]] | Implementar políticas de senha com mínimo 14 caracteres, alta complexidade e rotação regular - para tornar a quebra offline de DCC2 computacionalmente inviável mesmo com hardware moderno. | | M1028 | [[m1028-operating-system-configuration\|M1028 - Operating System Configuration]] | Habilitar Credential Guard no Windows 10/11 e Windows Server 2016+ para proteger credenciais em memória. Habilitar Protected Users Security Group para contas privilegiadas. | | M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Garantir que contas privilegiadas (Domain Admins, Enterprise Admins) **nunca** façam login interativo em estações de trabalho - prevenindo que hashes privilegiados sejam armazenados em cache local. Usar contas separadas para administração e uso cotidiano. | ### Controles adicionais recomendados - **LAPS (Local Administrator Password Solution):** Senhas de administrador local únicas por máquina impedem que um hash extraído sejá reutilizado em múltiplas estações - **Microsoft Defender Credential Guard:** Isola LSASS em processo virtualizado, protegendo credenciais mesmo de processos com SYSTEM - **Auditoria de acesso ao registro:** Habilitar `Object Access: Registry` no Windows Event Logging para o hive SECURITY - **EDR com proteção de LSASS:** Soluções como CrowdStrike Falcon, SentinelOne e Microsoft Defender for Endpoint incluem proteção específica contra injeção em LSASS e acesso ao hive SECURITY ## Contexto Brasil/LATAM A extração de credenciais em cache tem relevância operacional significativa no contexto brasileiro pelas seguintes razões: **Trabalho remoto e modelo híbrido:** A adoção massiva de trabalho remoto no Brasil - acelerada pela pandemia de COVID-19 e mantida no modelo híbrido - aumentou dramaticamente o número de dispositivos corporativos operando frequentemente fora da rede corporativa. Esse cenário eleva o risco: laptops que ficam semanas fora do ambiente corporativo acumulam credenciais em cache e têm jánela estendida de exposição caso comprometidos. **Espionagem industrial LATAM:** Grupos como [[g0049-oilrig|OilRig]] e [[g0064-apt33|APT33]] têm documentado interesse em empresas do setor de energia e petroquímica da América Latina - incluindo subsidiárias de empresas internacionais no Brasil. A técnica de extração de cache é especialmente valiosa nesses casos porque permite ao adversário movimentar-se pela rede sem alertar monitoramentos do DC. **Ransomware como serviço (RaaS) no Brasil:** O Brasil é consistentemente listado entre os países mais afetados por ransomware na América Latina, com setores de saúde, educação, manufatura e governo como alvos frequentes. Análises forenses de incidentes documentados pelo CERT.br e por empresas como Kaspersky LATAM mostram que a extração de credenciais em cache é etapa padrão do playbook de grupos afiliados ao RaaS antes da fase de cifragem massiva. **Compliance e LGPD:** A extração de credenciais de domínio constitui comprometimento de dados pessoais de funcionários e potencialmente dados de clientes acessíveis pelas contas comprometidas. Organizações afetadas têm obrigação de notificação à ANPD conforme Art. 48 da LGPD - tornando a detecção precoce crítica para gestão de obrigações regulatórias. ## Referências - [MITRE ATT&CK - T1003.005](https://attack.mitre.org/techniques/T1003/005) - [Microsoft - Cached and Stored Credentials](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v=ws.11)) - [Impacket secretsdump - GitHub](https://github.com/fortra/impacket/blob/master/impacket/examples/secretsdump.py) - [Linikatz - Portcullis Labs](https://github.com/CiscoCXSecurity/linikatz) - [CERT.br - Relatório Anual de Atividade 2024](https://www.cert.br/) - [[g0064-apt33|APT33]] - grupo que utiliza esta técnica ativamente - [[g0049-oilrig|OilRig]] - grupo documentado usando extração de cache em campanhas de espionagem - [[g0069-mango-sandstorm|MuddyWater]] - usa LaZagne para extração automatizada - [[mimikatz|Mimikatz]] - principal ferramenta de extração em Windows - [[s0349-lazagne|LaZagne]] - ferramenta open source com módulo mscache - [[t1110-002-password-cracking|T1110.002 - Password Cracking]] - técnica subsequente para recuperar senha em texto plano - [[t1078-valid-accounts|T1078 - Valid Accounts]] - uso das credenciais após recuperação --- *Fonte: [MITRE ATT&CK - T1003.005](https://attack.mitre.org/techniques/T1003/005) | Versão: 16.2*