# T1558.004 - AS-REP Roasting ## Descrição AS-REP Roasting é uma técnica de ataque ao protocolo Kerberos que permite a adversários capturar e decifrar offline hashes de senhas de contas do Active Directory que têm a pré-autenticação Kerberos desabilitada. É uma subtécnica de [[t1558-steal-or-forge-kerberos-tickets|T1558 - Steal or Forge Kerberos Tickets]] e representa um vetor silencioso e eficaz para comprometimento de credenciais em ambientes Windows corporativos. O protocolo Kerberos foi projetado com a pré-autenticação habilitada por padrão como proteção contra ataques offline de senha. Quando habilitada, o cliente deve provar conhecimento da senha antes de receber qualquer dado criptografado do Domain Controller (DC). A conta com o atributo `DONT_REQ_PREAUTH` configurado no Active Directory - sejá por configuração intencional de sistemas legados, sejá por descuido administrativo - quebra essa proteção: o DC responde a qualquer requisição AS-REQ sem válidação prévia, retornando um AS-REP que contém dados criptografados com a senha do usuário. O atacante pode então realizar quebra offline do hash, sem gerar qualquer log de autenticação suspeito, pois não há tentativa de login no sistema alvo. Se bem-sucedido, as credenciais obtidas podem habilitar [[ta0003-persistence|Persistence]], [[ta0004-privilege-escalation|Privilege Escalation]] e [[ta0008-lateral-movement|Lateral Movement]] via [[t1078-valid-accounts|Valid Accounts]]. A técnica se relaciona diretamente com [[t1558-003-kerberoasting|Kerberoasting (T1558.003)]], sendo frequentemente utilizada em conjunto na fase de enumeração de contas vulneráveis. A diferença fundamental é que Kerberoasting requer autenticação prévia com uma conta válida, enquanto AS-REP Roasting pode ser executado sem nenhuma credencial prévia se a enumeração de contas for possível via LDAP anônimo ou via lista de usuários conhecida. **Técnica pai:** [[t1558-steal-or-forge-kerberos-tickets|T1558 - Steal or Forge Kerberos Tickets]] ## Como Funciona ### Fundamentos do Protocolo Kerberos O fluxo de autenticação Kerberos padrão (com pré-autenticação habilitada) funciona assim: 1. **AS-REQ**: O cliente envia uma requisição de autenticação ao KDC (Key Distribution Center / Domain Controller) contendo um timestamp criptografado com o hash da senha do usuário. 2. **Validação**: O KDC decripta o timestamp com o hash da senha armazenada. Se bem-sucedido, confirma que o cliente conhece a senha. 3. **AS-REP**: O KDC responde com um Ticket Granting Ticket (TGT) criptografado. ### O Problema com DONT_REQ_PREAUTH Quando a pré-autenticação está **desabilitada** (atributo `UF_DONT_REQUIRE_PREAUTH` no campo `userAccountControl`), o fluxo muda: 1. **AS-REQ sem timestamp**: O adversário envia uma requisição AS-REQ para a conta-alvo **sem** incluir o timestamp criptografado. 2. **AS-REP com dados vulneráveis**: O KDC responde imediatamente com um AS-REP que contém o TGT e um `enc-part` criptografado com o hash RC4-HMAC (ou AES, dependendo da configuração) da senha da conta. 3. **Quebra offline**: O adversário captura o `enc-part` e realiza ataque de dicionário ou força bruta offline - sem mais nenhuma interação com o DC. ### Execução Prática **Passo 1 - Enumeração de contas vulneráveis (requer conta de domínio ou acesso LDAP):** ```powershell # PowerShell via LDAP Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth ``` **Passo 2 - Captura do AS-REP hash (ferramenta [[s1071-rubeus|Rubeus]]):** ``` Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt ``` **Passo 3 - Quebra offline do hash:** O hash capturado tem o formato `$krb5asrep$23lt;user>@<domain>:<hash>` para RC4, compatível com ferramentas como Hashcat (modo 18200) e John the Ripper. A velocidade de quebra depende do algoritmo de criptografia: - **RC4-HMAC**: significativamente mais rápido de quebrar offline - **AES-256-CTS-HMAC-SHA1**: muito mais lento - senhas fracas ainda são vulneráveis ### Diferença Chave em Relação ao Kerberoasting | Aspecto | AS-REP Roasting | Kerberoasting | |---------|----------------|---------------| | Credencial necessária | Nenhuma (em alguns cenários) | Conta de domínio válida | | Conta vulnerável | `DONT_REQ_PREAUTH` ativo | Conta com SPN configurado | | Criptografia do hash | RC4 ou AES (senha do usuário) | RC4 ou AES (senha da conta de serviço) | | Detecção | Mais difícil (sem login) | Mais fácil (requer TGS-REQ) | | Técnica relacionada | [[t1558-004-as-rep-roasting\|T1558.004]] | [[t1558-003-kerberoasting\|T1558.003]] | ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>Conta de domínio baixo privilégio<br/>ou acesso LDAP anônimo"] --> B["Enumeração de Contas<br/>Busca contas com<br/>DONT_REQ_PREAUTH ativo<br/>via LDAP / PowerShell / BloodHound"] B --> C["Envio de AS-REQ sem<br/>Pré-autenticação<br/>Requisição para cada conta vulnerável<br/>ao Domain Controller"] C --> D["DC retorna AS-REP<br/>com enc-part criptografado<br/>RC4-HMAC ou AES-256<br/>derivado da senha da conta"] D --> E["Captura do Hash AS-REP<br/>Rubeus asreproast<br/>Impacket GetNPUsers.py<br/>CrackMapExec"] E --> F["Quebra Offline de Hash<br/>Hashcat modo 18200<br/>John the Ripper<br/>Wordlist + Regras"] F --> G{"Senha Fraca?"} G -- "Sim" --> H["Credencial Comprometida<br/>Acesso autenticado<br/>como conta-alvo"] G -- "Não" --> I["Tentativa Falha<br/>Nenhum log gerado<br/>no DC - silencioso"] H --> J1["Escalada de Privilégios<br/>Ta0004 Privilege Escalation<br/>se conta for admin"] H --> J2["Movimentação Lateral<br/>Ta0008 Lateral Movement<br/>Pass-the-Hash / PTT"] H --> J3["Persistência<br/>Ta0003 Persistence<br/>Acesso com credenciais válidas"] J1 --> K["Acesso a Recursos Críticos<br/>AD, servidores, sistemas de backup,<br/>controladores de domínio"] J2 --> K J3 --> K ``` ## Exemplos de Uso ### Red Teams e Pentests em Active Directory AS-REP Roasting é um dos vetores mais frequentemente explorados em engajamentos de red team em ambientes Windows corporativos. É comum encontrar contas de serviço legadas ou contas de usuários de sistemas antigos (CRMs legados, sistemas de folha de pagamento, serviços de automação) com `DONT_REQ_PREAUTH` habilitado por compatibilidade com sistemas que não suportavam pré-autenticação. Essas contas frequentemente têm senhas desatualizadas seguindo padrões previsíveis (nome da empresa + ano, estação + ano). ### Operações de Ransomware - Fase de Reconhecimento AD Grupos de ransomware como Black Basta, LockBit e operadores de Conti documentadamente utilizam AS-REP Roasting como parte da cadeia de escalada de privilégios em redes corporativas comprometidas via phishing. Após acesso inicial, a fase de reconhecimento de Active Directory - frequentemente automatizada via [[s0521-bloodhound|BloodHound]] e [[sharphound|SharpHound]] - identifica contas vulneráveis ao ataque. Credenciais obtidas são usadas para comprometer contas de maior privilégio em caminho ao Domain Admin. ### APT - Espionagem em Ambientes Windows Corporativos Embora não atribuído a um grupo específico por nome no MITRE ATT&CK para esta subtécnica, AS-REP Roasting é consistente com TTPs de grupos de espionagem que operam em ambientes Windows. Grupos como [[g0016-apt29|APT29]] (Cozy Bear) e [[g0046-fin7|FIN7]] utilizam técnicas de comprometimento de Kerberos amplamente documentadas; AS-REP Roasting é parte do arsenal de movimentação lateral em ambientes Windows. ### Impacket - Exploração Sem Arquivo O pacote [[s0357-impacket|Impacket]] inclui o script `GetNPUsers.py` que permite executar AS-REP Roasting diretamente da linha de comando em Linux, sem necessidade de estar em uma máquina Windows no domínio - útil para fases de pós-exploração em que o atacante opera de um sistema de ataque externo via acesso à porta 88 (Kerberos) do DC: ``` python3 GetNPUsers.py DOMAIN.LOCAL/ -no-pass -usersfile users.txt -format hashcat -dc-ip 10.0.0.1 ``` ## Detecção ### Regra Sigma - AS-REP Roasting via Evento de Windows Security ```yaml title: Detecção de AS-REP Roasting por Múltiplos Eventos 4768 sem Pré-autenticação status: experimental description: > Detecta possível AS-REP Roasting ao identificar múltiplos eventos Kerberos de autenticação (4768) para contas que não requerem pré-autenticação em curto intervalo de tempo, originados do mesmo IP de origem. logsource: product: windows service: security detection: selection: EventID: 4768 TicketEncryptionType: "0x17" PreAuthType: "0" timeframe: 5m condition: selection | count() by IpAddress > 3 fields: - TargetUserName - IpAddress - TicketEncryptionType - PreAuthType - ServiceName falsepositives: - Sistemas legados que genuinamente não suportam pré-autenticação - Testes de monitoramento de identidade autorizados level: high tags: - attack.credential_access - attack.t1558.004 ``` ### Regra Sigma - Execução de Rubeus com Parâmetro asreproast ```yaml title: Execução do Rubeus com Módulo AS-REP Roasting status: experimental description: > Detecta execução do Rubeus.exe com parâmetros de AS-REP Roasting, ferramenta ofensiva comumente usada por red teams e adversários para captura de hashes Kerberos AS-REP. logsource: category: process_creation product: windows detection: selection: Image|endswith: "\Rubeus.exe" CommandLine|contains: - "asreproast" - "DONT_REQ_PREAUTH" condition: selection fields: - User - Image - CommandLine - ParentImage - Hashes falsepositives: - Red team autorizado com notificação prévia ao SOC level: critical tags: - attack.credential_access - attack.t1558.004 ``` ### Query KQL para Microsoft Sentinel ```kql // Detecta AS-REP Roasting via eventos Kerberos sem pré-autenticação SecurityEvent | where EventID == 4768 | where TicketEncryptionType == "0x17" // RC4 - mais fraco e mais comum em ataques | where PreAuthType == "0" // Sem pré-autenticação | summarize Count = count(), Accounts = make_set(TargetUserName) by IpAddress, bin(TimeGenerated, 5m) | where Count > 3 | project TimeGenerated, IpAddress, Count, Accounts | order by Count desc ``` ### Indicadores de Comprometimento | Indicador | Tipo | Log de Origem | |-----------|------|--------------| | Evento 4768 com PreAuthType=0 para múltiplas contas | Evento Windows | DC Security Log | | TicketEncryptionType=0x17 (RC4) em requisições AS-REQ | Kerberos | DC Security Log | | Execução de `Rubeus.exe asreproast` | Processo | Sysmon / EDR | | Execução de `GetNPUsers.py` via Python | Processo | EDR | | Query LDAP buscando `DONT_REQ_PREAUTH` | LDAP | Active Directory | ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1047 | [[m1047-audit\|M1047 - Audit]] | Auditar regularmente contas do AD com `DONT_REQ_PREAUTH` ativo. Usar PowerShell: `Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true}`. Qualquer conta com esse atributo deve ter justificativa documentada | | M1027 | [[m1027-password-policies\|M1027 - Password Policies]] | Garantir senhas longas (mínimo 25+ caracteres) e complexas para todas as contas com pré-autenticação desabilitada, reduzindo a viabilidade da quebra offline | | M1041 | [[m1041-encrypt-sensitive-information\|M1041 - Encrypt Sensitive Information]] | Forçar uso de AES-256 no lugar de RC4 em toda a infraestrutura Kerberos. RC4 é significativamente mais fácil de quebrar offline; migrar para AES-256-CTS-HMAC-SHA1-96 aumenta drasticamente o custo de quebra | ### Controles Adicionais Recomendados - **Habilitar pré-autenticação em todas as contas**: Revisar e reabilitar `DONT_REQ_PREAUTH` em toda conta onde não há dependência técnica comprovada. Sistemas legados que não suportam pré-autenticação devem ser migrados ou isolados. - **Microsoft ATA / Defender for Identity**: Habilitar detecção nativa de AS-REP Roasting no Microsoft Defender for Identity (anteriormente ATA), que identifica padrões de enumeração de contas vulneráveis. - **Protected Users Security Group**: Adicionar contas privilegiadas ao grupo "Protected Users" no Active Directory, que força requisitos mínimos de segurança Kerberos e desabilita RC4. - **Tier Model / PAW**: Implementar modelo de administração em camadas (Tier 0/1/2) com Privileged Access Workstations para isolar contas administrativas - limita o impacto mesmo se uma conta comum for comprometida. ## Contexto Brasil/LATAM ### Active Directory em Ambientes Corporativos Brasileiros O Brasil possui alta densidade de ambientes Windows/Active Directory em grandes empresas, bancos, varejo e órgãos públicos - muitos deles operando desde a era Windows Server 2003/2008, com legados acumulados de configurações inseguras como contas de serviço sem pré-autenticação Kerberos. **Setor Financeiro**: Bancos brasileiros de médio porte e cooperativas de crédito frequentemente operam sistemas de core banking legados que requerem contas de serviço com configurações de compatibilidade do Kerberos, incluindo `DONT_REQ_PREAUTH`. Ataques de ransomware documentados no setor - reportados ao [[cert-br|CERT.br]] e pela [[febraban|FEBRABAN]] - frequentemente incluem fase de comprometimento do Active Directory que pode envolver AS-REP Roasting. **Ransomware no Brasil**: O Brasil é consistentemente um dos países mais afetados por ransomware na América Latina. Grupos como BlackCat/ALPHV, Black Basta e LockBit registram vítimas brasileiras nos setores de saúde, varejo, manufatura e governos estaduais. Esses grupos utilizam amplamente ferramentas como [[s1071-rubeus|Rubeus]], [[s0357-impacket|Impacket]] e [[s0521-bloodhound|BloodHound]] para comprometer domínios Active Directory - pipeline que inclui AS-REP Roasting como fase de reconhecimento. **Governo e Setor Público**: Municípios e governos estaduais brasileiros frequentemente operam Active Directory com higiene deficiente, incluindo contas legadas com pré-autenticação desabilitada para compatibilidade com sistemas de folha de pagamento, gestão tributária e ERPs regionais. O [[cert-br|CERT.br]] e o [[ctir-gov|CTIR.GOV]] públicam alertas recorrentes sobre comprometimento de domínios AD em prefeituras e secretarias estaduais. **BloodHound como Ferramenta de Mapeamento**: A ferramenta [[s0521-bloodhound|BloodHound]] / [[sharphound|SharpHound]], amplamente usada por red teams e adversários para mapeamento de caminhos de ataque no Active Directory, identifica automaticamente contas com AS-REP Roasting vulnerability como nós no grafo de ataque, frequentemente apontando caminhos diretos para Domain Admin. ### Grupos de Ameaça com Relevância para a Região Embora AS-REP Roasting não estejá atribuído nominalmente a grupos específicos no MITRE para ataques em LATAM, o perfil de TTPs é consistente com operações de: - Grupos de ransomware-as-a-service (RaaS) com affiliates brasileiros - Grupos de espionagem focados em órgãos governamentais brasileiros (energia, defesa, telecomúnicações) - Grupos de cibercrime financeiro locais que migraram de trojans bancários para ransomware corporativo ## Referências - [MITRE ATT&CK - T1558.004: AS-REP Roasting](https://attack.mitre.org/techniques/T1558/004) - [HarmJ0y - Roasting AS-REPs (originador da técnica)](https://harmj0y.medium.com/roasting-as-reps-e6179a65216b) - [Microsoft - Defender for Identity: AS-REP Roasting Detection](https://learn.microsoft.com/en-us/defender-for-identity/understanding-security-alerts) - [Impacket - GetNPUsers.py](https://github.com/fortra/impacket/blob/master/examples/GetNPUsers.py) - [Rubeus - AS-REP Roasting Implementation](https://github.com/GhostPack/Rubeus) - [CERT.br - Alertas sobre Ransomware em Ambientes Corporativos](https://www.cert.br/) - [Specter Ops - An Unintended Advantage: AS-REP Roasting](https://posts.specterops.io/not-a-security-boundary-breaking-forest-trusts-cd125829518d) - [[t1558-steal-or-forge-kerberos-tickets|T1558 - Steal or Forge Kerberos Tickets]] - [[t1558-003-kerberoasting|T1558.003 - Kerberoasting]] - [[t1110-002-password-cracking|T1110.002 - Password Cracking]] - [[t1078-valid-accounts|T1078 - Valid Accounts]] --- *Fonte: [MITRE ATT&CK - T1558.004](https://attack.mitre.org/techniques/T1558/004)*