Como os adversários alcançam persistência usando AdminSDHolder e SDProp
Jun 16, 2023
Uma vez que um adversário tenha comprometido credenciais privilegiadas, por exemplo, ao explorar um caminho de ataque, eles querem garantir que não percam seu ponto de apoio no domínio. Ou seja, mesmo que as contas que eles comprometeram sejam desativadas ou tenham suas senhas redefinidas, eles querem ser capazes de recuperar facilmente os direitos de Administrador do Domínio.
Uma maneira de alcançar essa persistência é explorar recursos do Active Directory que são destinados a manter contas privilegiadas protegidas: AdminSDHolder e SDProp. Este artigo explica como essa tática funciona e como se defender contra ela.
O que são AdminSDHolder e SDProp?
AdminSDHolder é um contêiner que existe em todos os domínios de Active Directory com um propósito especial: A lista de controle de acesso (ACL) do objeto AdminSDHolder é usada como um modelo para copiar permissões para todos os grupos protegidos no Active Directory e seus membros. (Grupos protegidos são aqueles grupos integrados que foram identificados como necessitando de segurança extra, incluindo Administradores de Domínio, Administradores, Administradores Empresariais e Administradores de Esquema.)
O processo SDProp aplica a ACL do objeto AdminSDHolder a todos os grupos protegidos e seus usuários membros a cada 60 minutos por padrão. Como a ACL para AdminSDHolder é projetada para ser muito restritiva, esse processo normalmente ajuda a reforçar a segurança.
No entanto, se um atacante modificar a ACL do AdminSDHolder, então essas permissões de acesso modificadas serão automaticamente aplicadas a todos os objetos protegidos. Por exemplo, um adversário pode adicionar uma conta de usuário que controla à ACL do AdminSDHolder e conceder-lhe permissões de controle total:
Mesmo que um administrador perceba uma permissão inadequada em um objeto protegido específico e a remova, o processo SDProp simplesmente reaplicará a ACL modificada dentro de uma hora. Como resultado, essa estratégia ajuda os atacantes a ganharem acesso a informações sensíveis.
Avaliando Seu Risco usando AdminCount
AdminCount é um atributo dos objetos do Active Directory. Um valor de AdminCount de 1 indica que o objeto é (ou foi) membro de pelo menos um grupo protegido. Assim, ao observar todos os objetos com um valor de AdminCount de 1, você terá uma ideia de quão abrangente um ataque contra AdminSDHolder poderia ser para o seu ambiente.
Esta análise pode ser feita facilmente com PowerShell e uma operação de filtro LDAP:
$ldapFilter = “(adminCount=l)”
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = “Subtree”
$results = $search.FindAll()
foreach ($result in $results)
{
SuserEntry = $result.GetDirectoryEntry()
Write-host “Object Name = “ $userEntry.name
Write-host “Obect Class = “ $userEntry.objectClass
foreach($AdminCount in $userEntry.adminCount)
{
Write-host “AdminCount =” $AdminCount
Write-host “”
}
}
Um ponto a ser observado é que mesmo se um usuário for removido de um grupo privilegiado, o valor de AdminCount permanece 1; no entanto, eles não são mais considerados um objeto protegido pelo Active Directory, então a ACL do AdminSDHolder não será aplicada a eles. No entanto, é provável que eles ainda tenham uma versão das permissões do AdminSDHolder definidas, pois a herança de suas permissões ainda estará desativada como um resquício de quando eram protegidos pelas permissões do AdminSDHolder. Portanto, ainda é útil olhar para esses objetos e, na maioria dos casos, ativar a herança de permissões.
Protegendo Contra o Abuso de AdminSDHolder
Apenas usuários com direitos administrativos podem modificar o ACL do AdminSDHolder, portanto, a melhor maneira de se proteger contra essa tática de persistência é prevenir o comprometimento das credenciais administrativas.
Além disso, caso uma conta administrativa seja comprometida, é importante monitorar o objeto AdminSDHolder e receber alertas sobre quaisquer alterações. As alterações nunca devem acontecer, portanto, qualquer alerta vale a pena investigar imediatamente e reverter.
Também é importante relatar regularmente sobre objetos com um valor AdminCount de 1. Se algum desses objetos não deveria ter direitos administrativos, coloque-o no local correto e garanta que está herdando permissões.
Como a Netwrix pode ajudar
A Netwrix Active Directory Security Solution pode apoiar os esforços da sua organização para se defender contra ataques que abusam do AdminSDHolder e SDProp. Em particular, você pode:
- Proteja contas privilegiadas de comprometimento para que não possam ser usadas para modificar AdminSDHolder.
- Detecte prontamente comportamentos suspeitos que indiquem comprometimento de identidade.
- Monitore o objeto AdminSDHolder e receba alertas sobre quaisquer alterações nele.
- Identifique e remova permissões excessivas para limitar os danos causados por credenciais comprometidas.
- Mantenha-se informado sobre quaisquer alterações feitas no seu ambiente de Active Directory através de alertas em tempo real e relatórios detalhados.
Perguntas Frequentes
O que é AdminSDHolder?
AdminSDHolder é um objeto contêiner que é criado em cada domínio do Active Directory. Sua ACL é automaticamente aplicada a todos os grupos protegidos no domínio e aos seus membros.
Onde está localizado o AdminSDHolder?
O contêiner AdminSDHolder está localizado no contêiner System (CN=System). Você pode vê-lo ativando “Recursos Avançados” em Active Directory Users and Computers (ADUC) console de gerenciamento.
O que é AdminCount?
AdminCount é um atributo de objetos AD. Um valor de AdminCount de 1 indica que o objeto é (ou foi) membro de pelo menos um grupo protegido.
Compartilhar em
Saiba Mais
Sobre o autor
Jeff Warren
Diretor de Produto
Jeff Warren supervisiona o portfólio de produtos da Netwrix, trazendo mais de uma década de experiência em gestão e desenvolvimento de produtos focados em segurança. Antes de se juntar à Netwrix, Jeff liderou a organização de produtos na Stealthbits Technologies, onde utilizou sua experiência como engenheiro de software para desenvolver soluções de segurança inovadoras em escala empresarial. Com uma abordagem prática e um talento para resolver desafios de segurança complexos, Jeff está focado em construir soluções práticas que funcionam. Ele possui um BS em Sistemas de Informação pela Universidade de Delaware.
Saiba mais sobre este assunto
Como adicionar e remover grupos AD e objetos nos grupos com PowerShell
Atributos do Active Directory: Último Logon
Confianças no Active Directory
Ataques de ransomware ao Active Directory
Como criar, excluir, renomear, desativar e ingressar computadores no AD usando PowerShell