# T1556.005 - Reversible Encryption
> [!info] Técnica MITRE ATT&CK
> **ID:** T1556.005 | **Tática:** Credential Access | **Plataforma:** Windows (Active Directory)
> **Técnica pai:** [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]]
## Descrição
Adversários podem abusar das propriedades de criptografia de autenticação do Active Directory para obter acesso a credenciais em sistemas Windows. A propriedade `AllowReversiblePasswordEncryption` específica se a criptografia reversível de senhas está habilitada ou desabilitada para uma conta de usuário no Active Directory.
Por padrão, essa propriedade é **desabilitada** - o Windows armazena senhas como saída de funções hash unidirecionais (NTLM hash), tornando-as computacionalmente inviáveis de reverter sem ataque de força bruta. Quando habilitada, porém, o sistema armazena as senhas em um formato que pode ser descriptografado para revelar o texto claro, o que representa uma regressão grave no modelo de segurança de credenciais.
Essa configuração existe por razões de compatibilidade legada, especialmente com protocolos de autenticação CHAP (Challenge Handshake Authentication Protocol) usados em servidores de acesso remoto e VPN. No entanto, qualquer adversário com acesso adequado ao AD pode habilitar essa propriedade, aguardar a próxima troca de senha do usuário alvo e então extrair a senha em texto claro - um ataque silencioso e persistente.
A técnica se enquadra na família [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]], que abrange modificações em mecanismos de autenticação para bypass ou coleta de credenciais. É frequentemente usada por adversários com objetivos de **persistência de longo prazo** em ambientes Active Directory, pois a modificação pode permanecer indetectada por meses.
> [!danger] Impacto Crítico
> Uma vez habilitada a criptografia reversível para contas privilegiadas (Domain Admins, administradores de serviços críticos), o adversário pode extrair senhas em texto claro de qualquer conta que troque sua senha após a modificação - incluindo reinicializações forçadas via política de senha.
## Como Funciona
### Pré-requisitos
Para explorar essa técnica, o adversário precisa de:
- Privilégios de **Domain Admin** ou equivalente no Active Directory
- Ou acesso a contas com permissão de modificar propriedades de usuários (Account Operators, delegações específicas)
- Acesso ao DC (Domain Controller) para extrair os dados cifrados
### Componentes Necessários para Descriptografia
Para obter as senhas em texto claro após a habilitação da criptografia reversível, o adversário precisa de quatro componentes específicos:
1. **Senha cifrada** (`G$RADIUSCHAP`) - armazenada na estrutura `userParameters` do objeto de usuário no AD
2. **Valor aleatório de 16 bytes** (`G$RADIUSCHAPKEY`) - também em `userParameters`, usado como chave de criptografia individual
3. **Segredo LSA global** (`G$MSRADIUSCHAPKEY`) - armazenado nos segredos LSA do Domain Controller
4. **Chave estática hardcoded** na DLL `RASSFM.DLL` (Remote Access Subauthentication DLL)
Com esses quatro componentes, é possível reproduzir a chave de criptografia e descriptografar o valor da senha.
### Métodos de Habilitação
**Via Local Group Policy Editor:**
Navegar até `Computer Configuration > Windows Settings > Security Settings > Account Policies > Password Policy` e habilitar "Store passwords using reversible encryption".
**Via Propriedades de Usuário (ADUC):**
No Active Directory Users and Computers, nas propriedades da conta, aba "Account", marcar a caixa "Store password using reversible encryption".
**Via Fine-Grained Password Policy (FGPP):**
Se o nível funcional do domínio for "Windows Server 2008" ou superior, é possível aplicar uma FGPP a grupos ou usuários específicos, tornando a mudança mais cirúrgica e menos visível.
**Via [[t1059-001-powershell|PowerShell]]:**
```powershell
# Habilitar para um usuário específico
Set-ADUser -Identity "alvo" -AllowReversiblePasswordEncryption $true
# Verificar configuração atual
Get-ADUser -Identity "alvo" -Properties AllowReversiblePasswordEncryption
# Aplicar via Fine-Grained Password Policy
New-ADFineGrainedPasswordPolicy -Name "ReversiblePolicy" `
-Precedence 10 `
-ReversibleEncryptionEnabled $true `
-MinPasswordLength 8 `
-PasswordHistoryCount 3
Add-ADFineGrainedPasswordPolicySubject -Identity "ReversiblePolicy" `
-Subjects "Domain Admins"
```
### Extração das Credenciais
Após a próxima troca de senha da conta alvo, o adversário pode extrair os componentes necessários:
- Dump do atributo `userParameters` via [[t1003-os-credential-dumping|DCSync]] ou acesso direto ao NTDS.dit
- Extração dos segredos LSA do Domain Controller
- Combinação dos componentes para descriptografar a senha em texto claro
## Attack Flow
```mermaid
graph TB
A["Comprometimento Inicial<br/>Domain Admin obtido"] --> B["Reconhecimento do AD<br/>Enumerar usuários privilegiados"]
B --> C["Modificação Silenciosa<br/>Set-ADUser -AllowReversiblePasswordEncryption"]
C --> D{"Escopo da Modificação"}
D -->|"Usuário específico"| E["Aguardar Troca de Senha<br/>Política ou expiração natural"]
D -->|"Fine-Grained Policy"| F["Aplicar FGPP a grupo privilegiado<br/>Escopo ampliado, baixa visibilidade"]
E --> G["Senha Armazenada com<br/>Criptografia Reversível"]
F --> G
G --> H["Extração via DCSync<br/>T1003.006 - atributo userParameters"]
H --> I["Coleta de Segredos LSA<br/>G$MSRADIUSCHAPKEY do DC"]
I --> J["Descriptografia da Senha<br/>Reprodução da chave RASSFM.DLL"]
J --> K["Credenciais em Texto Claro<br/>Persistência de longo prazo"]
K --> L["Objetivos do Adversário<br/>Exfiltração / Acesso persistente"]
```
## Exemplos de Uso
### Cenário 1 - Espionagem Corporativa de Longo Prazo
Em operações de espionagem avançada com objetivos de longo prazo, adversários com acesso a Domain Admin em redes corporativas podem habilitar a criptografia reversível em contas de alto valor (CFO, CEO, responsáveis por P&D) e aguardar pacientemente a próxima renovação de senha. Essa abordagem é especialmente eficaz porque:
- Não gera tráfego de rede anômalo (diferente de técnicas de dumping)
- A modificação pode ser revertida antes de uma auditoria planejada
- As credenciais extraídas têm válidade até a próxima troca de senha
### Cenário 2 - Persistência Pós-Detecção
Após um incidente inicial detectado e respondido por defensores, adversários que ainda mantêm acesso temporário ao AD podem habilitar a criptografia reversível em contas críticas como mecanismo de backdoor. Mesmo após a remediação aparente do comprometimento inicial, o adversário pode retornar para extrair as novas senhas estabelecidas durante o processo de recuperação.
### Cenário 3 - Ambiente com Herança RADIUS/CHAP
Em organizações que operam infraestrutura de acesso remoto legada baseada em CHAP (servidores RADIUS antigos, VPN corporativa com autenticação MS-CHAPv2), a criptografia reversível pode já estar habilitada por razões legítimas em contas de acesso VPN. Adversários que identificam essa configuração podem explorar diretamente as contas afetadas sem necessidade de modificação prévia.
### Impacto em Ambientes com LATAM
Grupos APT associados a espionagem industrial e corporativa - com atuação documentada no Brasil e América Latina - têm histórico de explorar configurações permissivas do Active Directory em ambientes corporativos que migraram de infraestruturas RADIUS/VPN legadas sem revisar as políticas de senha associadas.
## Detecção
### Estrategias de Detecção
**1. Auditoria de Modificações de Atributos AD**
Monitorar eventos de modificação do atributo `AllowReversiblePasswordEncryption` em objetos de usuário via logs de auditoria do AD.
**2. Monitoramento de FGPP**
Detectar criação ou modificação de Fine-Grained Password Policies, especialmente quando aplicadas a grupos privilegiados.
**3. Baseline de Configuração**
Manter inventário de todas as contas com criptografia reversível habilitada e alertar para qualquer alteração fora do processo de mudança aprovado.
### Regra Sigma - Modificação de Criptografia Reversível via PowerShell
```yaml
title: AllowReversiblePasswordEncryption Enabled via PowerShell
status: experimental
description: Detecta habilitação de criptografia reversível de senha no Active Directory via PowerShell
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
CommandLine|contains|all:
- 'AllowReversiblePasswordEncryption'
- '$true'
condition: selection
level: high
tags:
- attack.credential_access
- attack.defense_evasion
- attack.t1556.005
falsepositives:
- Administradores configurando autenticação CHAP legítima
- Scripts de auditoria verificando configurações de contas
```
### Regra Sigma - Modificação de Fine-Grained Password Policy
```yaml
title: Fine-Grained Password Policy Created with Reversible Encryption
status: experimental
description: Detecta criação de FGPP com criptografia reversível habilitada
logsource:
category: ds_access
product: windows
detection:
selection:
EventID: 5136
ObjectClass: 'msDS-PasswordSettings'
AttributeLDAPDisplayName: 'msDS-PasswordReversibleEncryptionEnabled'
AttributeValue: 'TRUE'
condition: selection
level: critical
tags:
- attack.credential_access
- attack.t1556.005
```
### Fontes de Log Recomendadas
| Fonte | Evento | Descrição |
|-------|--------|-----------|
| Windows Security | 5136 | Objeto de serviço de diretório modificado |
| Windows Security | 4738 | Conta de usuário alterada |
| Windows Security | 4782 | Hash de senha de conta acessado |
| PowerShell | 4104 | Script block logging (cmdlets AD) |
| AD Auditing | - | Auditoria de modificações em `userParameters` |
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Restringir o número de contas com permissão de modificar atributos de usuário no AD. Implementar Just-In-Time (JIT) para acesso administrativo ao AD. Revisar delegações de permissão no AD regularmente. |
| M1027 | [[m1027-password-policies\|M1027 - Password Policies]] | Garantir que a política de senha do domínio tenha "Store password using reversible encryption" **desabilitada**. Auditar todas as FGPPs existentes para verificar se nenhuma tem essa configuração habilitada sem justificativa. |
### Controles Adicionais Recomendados
> [!tip] Hardening do Active Directory
> 1. **Auditoria periódica:** Executar regularmente `Get-ADUser -Filter * -Properties AllowReversiblePasswordEncryption | Where-Object {$_.AllowReversiblePasswordEncryption -eq $true}` e investigar qualquer resultado inesperado
> 2. **Inventário de FGPPs:** Verificar `Get-ADFineGrainedPasswordPolicy -Filter *` e documentar todas as políticas legítimas
> 3. **Monitoramento de mudanças:** Implementar alertas em tempo real para mudanças no atributo `AllowReversiblePasswordEncryption` via SIEM
> 4. **Privilégios mínimos:** Restringir quem pode executar `Set-ADUser` e criar FGPPs via Role-Based Access Control (RBAC)
> 5. **Migração de infraestrutura legada:** Substituir sistemas que exigem CHAP/MS-CHAPv2 por alternativas modernas que não requeiram criptografia reversível
## Contexto Brasil/LATAM
### Infraestrutura RADIUS Legada no Brasil
Muitas organizações brasileiras dos setores [[_sectors|financeiro]], [[_sectors|governo]] e [[_sectors|telecomúnicações]] operam infraestruturas de acesso remoto legadas baseadas em RADIUS com MS-CHAPv2 - o protocolo que originalmente motivou a existência da criptografia reversível no Active Directory. Essa herança tecnológica cria dois vetores de risco:
**Risco 1 - Configurações já habilitadas:** Em auditorias de segurança de ambientes AD brasileiros, não é incomum encontrar contas de serviço e contas de usuários de acesso VPN com `AllowReversiblePasswordEncryption` habilitado por razões legítimas históricas, mas que nunca foram revisadas após a modernização da infraestrutura.
**Risco 2 - Exploração por adversários sofisticados:** Grupos APT com histórico de alvos em LATAM, como operações associadas à espionagem industrial e corporativa, possuem capacidade técnica de explorar essa técnica em ambientes AD comprometidos. A baixa visibilidade da modificação - que não gera alertas em configurações padrão de SIEM - torna essa técnica particularmente atraente para operações de longo prazo.
### Setores em Maior Risco
| Setor | Fator de Risco | Razão |
|-------|---------------|-------|
| Financeiro | Alto | Infraestrutura VPN/RADIUS legada em bancos regionais |
| Governo | Alto | Sistemas AD antigos sem revisão periódica de configuração |
| Indústria/OT | Médio-Alto | Contas de serviço de sistemas de controle com CHAP |
| Telecomúnicações | Médio | Operadoras com redes de acesso remoto de longa data |
### Recomendações para Defensores LATAM
> [!note] Ação Recomendada para Equipes de Defesa Brasileiras
> Priorizar uma auditoria de configuração do Active Directory focada em:
> - Varredura de contas com criptografia reversível habilitada
> - Revisão de todas as Fine-Grained Password Policies
> - Habilitação de auditoria do Event ID 5136 para objetos `msDS-PasswordSettings`
> - Integração dos logs de modificação de atributos AD ao SIEM para detecção em tempo real
## Referências
- [MITRE ATT&CK - T1556.005 Reversible Encryption](https://attack.mitre.org/techniques/T1556/005)
- [Microsoft - AllowReversiblePasswordEncryption](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/store-passwords-using-reversible-encryption)
- [Microsoft - Fine-Grained Password Policies](https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/adac/introduction-to-active-directory-administrative-center-enhancements)
- [SpecterOps - Active Directory Security Research](https://posts.specterops.io/)
- [Microsoft - Active Directory Security Best Practices](https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory)
- [CISA - Active Directory Security Guide](https://www.cisa.gov/resources-tools/resources/active-directory-security-assessment)
---
*Fonte: [MITRE ATT&CK - T1556.005](https://attack.mitre.org/techniques/T1556/005)*