🏢Active DirectoryAccountsPrivileged AccessAttack Paths

Contas Obsoletas e Superprivilegiadas no AD

Contas esquecidas, credenciais de ex-funcionarios e usuarios superprivilegiados sao dos pontos de entrada mais explorados no Active Directory.

Younes AZABARPor Younes AZABAR11 min de leitura
Contas Obsoletas e Superprivilegiadas no AD

Contas privilegiadas obsoletas não são apenas ruído de higiene de diretório. No Active Directory, uma conta adormecida que ainda pertence a um grupo privilegiado, ainda tem uma senha antiga ou ainda possui uma dependência de serviço pode se tornar um caminho pouco visível de volta ao domínio.

O que são contas obsoletas e superprivilegiadas?

Contas privilegiadas obsoletas são identidades antigas ou pouco visíveis que ainda resultam em acesso administrativo relevante no Active Directory. Elas costumam se sobrepor a contas superprivilegiadas: identidades que mantiveram mais acesso do que a função atual exige.

Ambientes de Active Directory acumulam contas ao longo do tempo. Funcionários saem, contratados encerram seus contratos, contas de serviço sobrevivem a projetos e identidades administrativas de emergência continuam ativadas muito depois de o motivo original desaparecer.

Do ponto de vista do atacante, essas duas condições se reforçam mutuamente. O melhor alvo não é apenas uma conta antiga. É uma conta antiga que ainda está em um caminho privilegiado, é pouco monitorada e não tem um dono claro que perceberia atividade incomum.

Como funciona

As contas do AD permanecem ativas até que alguém as desative ou exclua. Se o offboarding, a revisão de contas de serviço ou a revisão de privilégios forem ignorados, o ambiente se enche de contas que:

  • não se autenticam há meses ou anos
  • ainda pertencem a grupos privilegiados
  • têm senhas definidas há muito tempo e nunca revisadas
  • ficam fora de qualquer revisão de ciclo de vida disciplinada

Uma conta privilegiada obsoleta é atraente porque combina alto valor com pouco escrutínio. A conta pode não aparecer no trabalho administrativo diário, mas continua resultando nas mesmas permissões quando a senha é apresentada.

A orientação da Microsoft sobre remediação de contas obsoletas destaca especificamente contas inativas como um risco de segurança e recomenda verificações regulares. A mesma orientação também alerta que contas de serviço podem não fazer login por longos períodos, então a limpeza precisa de salvaguardas em vez de exclusão às cegas.

Contas privilegiadas obsoletas: limites de escopo na busca

Uma revisão de contas obsoletas deve ser precisa sobre o que os timestamps realmente significam.

LastLogonDate e os dados replicados de login subjacentes são úteis para encontrar candidatos à limpeza, mas não são o mesmo que o uso forense exato em cada controlador de domínio. Eles são suficientes para identificar contas que precisam de revisão humana. Não são o único sinal em que você deve confiar antes de remover uma identidade de serviço sensível.

É por isso que revisões maduras separam pelo menos três casos:

  • contas de usuário que claramente deveriam ter sido desativadas após o offboarding
  • identidades de serviço ou de tarefa agendada que ainda podem ser usadas de forma não interativa
  • identidades privilegiadas de emergência ou compartilhadas que sobreviveram porque ninguém quis testar as dependências

O objetivo não é manter toda conta antiga porque um aplicativo pode quebrar. O objetivo é parar de tratar a propriedade pouco clara como motivo para preservar privilégio adormecido para sempre.

Uma distinção operacional útil é entre inatividade e irrelevância. Uma conta pode estar quieta porque foi abandonada, ou quieta porque só é acionada mensalmente por um backup, uma tarefa agendada ou um processo de recuperação raramente usado. A revisão precisa separar esses casos explicitamente.

Limitações de timestamp que importam

Para triagem de contas obsoletas, use múltiplos sinais. A Microsoft observa que PasswordLastSet é replicado e que lastLogonTimeStamp existe para ajudar a identificar contas potencialmente obsoletas. Isso torna esses atributos úteis para limpeza em todo o domínio. Não significa que eles provem que uma conta não tem dependência.

Uma revisão segura combina:

  • dados replicados de inatividade, como idade da senha ou lastLogonTimeStamp
  • dados de eventos do controlador de domínio para autenticação recente
  • análise de associação a grupos e direitos delegados
  • verificações de dependência de serviços, tarefas agendadas e aplicativos
  • atestado do proprietário para contas que devem permanecer ativadas

Quanto maior o privilégio, menos aceitável é confiar em um único timestamp. Um membro adormecido do Domain Admins e um usuário adormecido de baixo privilégio não representam o mesmo risco.

A cadeia de ataque

Etapa 1 - Enumerar contas obsoletas e de alto valor

$cutoff = (Get-Date).AddDays(-90)
Get-ADUser -Filter {Enabled -eq $true -and LastLogonDate -lt $cutoff} `
  -Properties LastLogonDate, PasswordLastSet, MemberOf |
  Select-Object SamAccountName, LastLogonDate, PasswordLastSet |
  Sort-Object LastLogonDate

$groups = @('Domain Admins','Enterprise Admins','Schema Admins','Backup Operators','Account Operators')
foreach ($group in $groups) {
  Get-ADGroupMember -Identity $group -Recursive |
    Get-ADUser -Properties LastLogonDate, PasswordLastSet |
    Select-Object @{N='Group';E={$group}}, SamAccountName, LastLogonDate, PasswordLastSet
}

A Microsoft também documenta Search-ADAccount -AccountInactive -UsersOnly como uma forma prática de encontrar contas de usuário inativas. Use-o como ferramenta de descoberta e depois adicione contexto de privilégio e dependência antes de agir.

Etapa 2 - Priorizar contas com senhas antigas e privilégios altos

Contas com senhas muito antigas, associação permanente a grupos e sem proprietário atual são as primeiras que um atacante tentará validar, pulverizar ou reutilizar.

Priorize contas que atendam a mais de uma condição:

  • dados de login obsoletos
  • PasswordLastSet antigo
  • associação a grupo privilegiado
  • associação via grupos aninhados
  • flags de conta como senha nunca expira
  • nenhum proprietário de negócio ou técnico nomeado

Etapa 3 - Transformar acesso adormecido em acesso privilegiado

Uma conta obsoleta que ainda resulta em Domain Admins, direitos administrativos delegados, privilégios de backup ou amplo acesso a servidores não precisa de um exploit inédito. O privilégio já existe.

Etapa 4 - Persistir por meio de identidades pouco visíveis

Contas adormecidas costumam estar ausentes dos fluxos de trabalho diários, então atividade incomum pode passar despercebida por mais tempo do que deveria. Isso é especialmente verdadeiro para contas administrativas compartilhadas e identidades de serviço que ninguém revisou recentemente.

Detecção

IDs de eventos do Windows

ID do eventoOrigemO que procurar
4624DC ou estação de trabalhoLogin bem-sucedido de uma conta sem atividade recente esperada
4768DCSolicitações de TGT para contas que deveriam estar adormecidas
4728 / 4732 / 4756DCAlterações em grupos privilegiados envolvendo identidades obsoletas ou pouco claras
4720DCCriação de nova conta que se assemelha a um caminho administrativo reciclado ou substituto

A Microsoft documenta o Audit Security Group Management como a subcategoria de auditoria que gera eventos para alterações de associação a grupos de segurança, incluindo eventos de associação a grupos globais, locais e universais. Essa distinção importa quando o caminho privilegiado usa grupos aninhados ou não globais.

Sinais comportamentais

  • primeiro uso bem-sucedido de uma conta após um longo período de inatividade
  • associação a grupo privilegiado combinada com idade de senha muito antiga
  • contas de serviço fazendo login interativo ou a partir de hosts inesperados
  • contas compartilhadas usadas em vários sistemas sem motivo operacional claro

Consulta de detecção SIEM (Elastic KQL)

event.code: '4624' AND
winlog.event_data.LogonType: '3' AND
winlog.event_data.TargetUserName: (* AND NOT '*$')

Essa consulta precisa de enriquecimento com idade da conta, contexto de privilégio e propriedade esperada. Inatividade sem contexto é apenas uma lista. Inatividade mais privilégio é o achado real.

Enriquecimento de detecção que torna o alerta útil

Um alerta de conta obsoleta deve trazer contexto suficiente para o respondente decidir se desativa, investiga ou escala:

  • estado atual de ativação/desativação
  • data da última definição de senha
  • contexto do último login interativo e de rede conhecido
  • grupos privilegiados diretos e aninhados
  • se a conta está marcada como sensível ou protegida
  • se a conta possui serviços, tarefas agendadas ou credenciais de aplicativo
  • se a conta tem atividade recente de Kerberos ou NTLM

Sem esse enriquecimento, as equipes normalmente criam uma planilha e adiam as decisões difíceis.

Remediação

Vitória rápida: desative primeiro as contas de usuário obviamente obsoletas e depois trabalhe nas identidades de serviço e compartilhadas com uma revisão baseada em proprietário, em vez de deixá-las ativas indefinidamente.

1. Desativar contas obsoletas

$cutoff = (Get-Date).AddDays(-90)
Get-ADUser -Filter {Enabled -eq $true -and LastLogonDate -lt $cutoff} `
  -SearchBase 'OU=Users,DC=corp,DC=local' `
  -Properties LastLogonDate | ForEach-Object {
    Disable-ADAccount -Identity $_
    Write-Host "Disabled: $($_.SamAccountName) - Last login: $($_.LastLogonDate)"
  }

Para contas de usuário que claramente não deveriam mais existir, desative primeiro, monitore o impacto e exclua depois do período de retenção aceito pela sua equipe de operações. Não exclua objetos privilegiados ou vinculados a serviços como primeira ação, a menos que a dependência já esteja comprovadamente ausente.

2. Reduzir associação a grupos privilegiados

$groups = @('Domain Admins','Enterprise Admins','Schema Admins')
$groups | ForEach-Object {
  Get-ADGroupMember -Identity $_ -Recursive |
    Select-Object @{N='Group';E={$_}}, SamAccountName, distinguishedName
} | Export-Csv privileged_members.csv -NoTypeInformation

Remova o privilégio permanente antes de discutir a exclusão da conta. Uma conta obsoleta sem Domain Admins ou direitos delegados equivalentes ainda é trabalho de limpeza, mas já não é a mesma exposição imediata de Tier-0.

3. Aplicar política mais rígida às identidades privilegiadas

New-ADFineGrainedPasswordPolicy -Name 'PrivilegedAccountsPSO' `
  -Precedence 10 `
  -MinPasswordLength 20 `
  -ComplexityEnabled $true `
  -PasswordHistoryCount 24 `
  -MaxPasswordAge (New-TimeSpan -Days 60) `
  -LockoutThreshold 3

Add-ADFineGrainedPasswordPolicySubject -Identity 'PrivilegedAccountsPSO' `
  -Subjects 'Domain Admins'

A Microsoft documenta as políticas de senha refinadas (fine-grained) como uma forma de aplicar configurações diferentes de senha e bloqueio a diferentes conjuntos de usuários, incluindo configurações mais rígidas para contas privilegiadas. Isso é útil quando contas privilegiadas ainda existem, mas não substitui a remoção de associações desnecessárias.

4. Corrigir o processo de ciclo de vida, não apenas as contas

As causas recorrentes costumam ser operacionais:

  • offboarding que desativa o acesso ao e-mail mas esquece os grupos do AD
  • contas de serviço sem proprietário após uma mudança de equipe
  • contas administrativas de emergência que nunca voltaram a ser revisadas
  • contas compartilhadas mantidas ativas porque ninguém quer testar a dependência

Uma remediação confiável fecha essas lacunas de processo enquanto a limpeza de contas acontece.

5. Colocar exceções em quarentena em vez de esquecê-las

Se uma conta de baixa atividade precisar permanecer ativada, documente-a como exceção com data de revisão e proprietário nomeado. A exceção deve incluir:

  • por que a conta precisa permanecer ativada
  • quais sistemas dependem dela
  • quais grupos ou direitos delegados ela possui
  • o que quebraria se ela fosse desativada
  • qual monitoramento comprova que ela é usada apenas como pretendido

Exceções sem data de expiração são a razão pela qual contas privilegiadas obsoletas retornam.

Validar antes de encerrar o achado

Uma limpeza de contas obsoletas não está concluída quando a planilha parece mais curta. Valide o resultado real do controle.

  • execute novamente a exportação de contas inativas e confirme que as mesmas identidades de alto risco não estão mais ativadas
  • confirme que a associação a grupo privilegiado foi removida, e não apenas deixada em um objeto desativado que poderia ser reativado sem alterações mais tarde
  • revise a atividade recente de 4624 e 4768 para identificar contas usadas novamente após a decisão de limpeza
  • documente o proprietário, a dependência e a próxima data de revisão de qualquer conta que precise permanecer ativada apesar da baixa atividade
  • verifique o escopo da política de senha refinada para contas privilegiadas que permanecem ativadas
  • revise os caminhos de grupos aninhados para garantir que o privilégio não foi preservado indiretamente

Para contas de serviço, a verificação final também deve confirmar que a dependência é real e ainda atual. Se ninguém conseguir provar por que a conta existe, isso é evidência para a desativação definitiva, não para outra exceção.

Como o EtcSec detecta isso

O EtcSec torna esse achado mais útil ao correlacionar inatividade, nível de privilégio, idade da senha e falta de cobertura de política. Isso importa porque uma conta adormecida de baixo valor e uma conta privilegiada adormecida não são o mesmo problema operacional.

Leituras relacionadas

Referências primárias

Explore as paginas de identidade que sustentam este tema