Como evitar a execução remota de código de um servidor membro do domínio?

Como evitar a execução remota de código de um servidor membro do domínio?

Existe uma maneira, usando um firewall, configuração de Política de Grupo ou outro controle, de impedir que alguém conectado a um membro do domínio possa executar remotamente código em um controlador de domínio (ao qual, de outra forma, não teria acesso à rede), dado que eles poderiam ter roubado as credenciais de administrador de domínio de alguém? Ou o acesso à rede necessário para a adesão rotineira ao AD é para sempre e inseparavelmente igual ao acesso à rede necessário para execução remota com, digamos,PsExecou PowerShell?

Para delinear um exemplo:

  • O servidor Windows "member1" é um membro de domínio para um domínio AD simples
  • Os servidores Windows "dc1" e "dc2" são os controladores de domínio para este domínio simples
  • existe um firewall de hardware entre o membro1 e os DCs, e somente aquelesPortas TCP e UDPnecessários para associação ao domínio são permitidos entre member1 e os DCs.
  • O usuário “Jack” é um usuário do “membro1” e além do acesso descrito no item anterior, não possui acesso de rede aos DCs.
  • Jack é astuto e pode obter as credenciais do Administrador de Domínio "Jill" através de um ataque de Engenharia Social ou outro método.
  • Jack obtém essas credenciais, faz login em member1 e pode executar remotamente código em dc1 ou dc2, talvez usandoPsExecou o PowerShell até mesmo implementa seu próprio utilitário com .NET, porque o acesso à rede necessário para associação ao domínio inclui o acesso à rede necessário para realizar chamadas remotas como essas.

Quero interromper esse ataque garantindo que o membro1 possa executar apenas funções rotineiras do AD (autenticação, atualização da Política de Grupo, sincronização de horário, etc.) no domínio e impedir outras ações, como execução remota de processos nos DCs.

Responder1

Isso não é possível. Se você ingressar em um domínio, o domínio poderá registrar usuários no seu computador e aplicar GPOs a ele. Os GPOs podem fazer com que o software seja instalado a partir da rede e modificar entradas arbitrárias do registro.

Usar um RODC no enclave protegerá o domínio do seu enclave, mas não protegerá o enclave do seu domínio. Você pode usar isso ao contrário para aumentar a segurança e fazer com que todos os seus computadores gerenciados se comuniquem apenas com RODCs e permitir que apenas outros DCs acessem os DCs graváveis.

Se você tiver computadores confidenciais que deseja proteger contra comprometimento em seu domínio, considere criar um domínio separado (em uma floresta separada) para esses hosts e gerenciá-los separadamente; isso é muito comum quando são necessários enclaves seguros. Você também pode considerar não associá-los a um domínio, especialmente se houver poucos deles.

Olhando seus comentários, não tenho certeza de qual é o seu modelo de ameaça.

O que exatamente você fará dependerá muito do seu modelo de ameaça. No entanto, normalmente membros de domínio e usuários arbitrários não possuem execução de código em controladores de domínio. Se você está preocupado com explorações, aplicar patches é uma boa política e, em ambos os casos, usar um RODC pode ajudar a limitar o impacto, já que os RODCs não podem alterar nada no domínio.

Se você estiver preocupado com os usuários executando comandos remotamente ou fazendo login no controlador de domínio (o que não lhes daria nenhum direito para fazer coisas como implantar software no domínio sem que eles também usassem algum tipo de exploração de escalonamento de privilégios ou similar), você pode impedi-los de fazer login nos DCs por política de grupo.

As configurações para isso estão no GPO que se aplica aos DCs, em Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment... se é isso que você está tentando fazer.

Os usuários (e outras entidades de segurança) estão vinculados ao domínio ou à máquina, mas não a ambos. Você realmente não pode fazer coisas como negar direitos de administrador de domínio com base no computador de onde eles estão se conectando no AD. Porém, o que você pode fazer é restringir o acesso à rede a DCs que não sejam RODCs, e isso provavelmente deve ser suficiente (dependendo do seu modelo de ameaça) para evitar ações administrativas de estações de trabalho de usuários aleatórios. Se você quiser impedir que os usuários usem RODCs como pontos de articulação (é isso que você quer fazer?), suponho que você poderia negar todos os direitos de login a eles, mas isso tornaria a administração bastante difícil - em vez disso, recomendo permitir apenas as portas de replicação DS em um firewall entre o RODC e outros DCs.

As portas que você deve abrir são aquelas identificadas na documentação para implantação do RODC; consulte a seção "Portas de comunicação necessárias" emhttps://technet.microsoft.com/library/dd728028%28v=ws.10%29.aspx. Mas, infelizmente, o RPC deve ser permitido, e é assim que o psexec funciona. Isso só permitirá que você proíba o login por meio de coisas como RDP.

Para completar e evitar o uso de psexec com credenciais roubadas, você sempre pode proibir os administradores de domínio de fazer login em tarefas em lote por meio do GPO mencionado acima nos controladores de domínio graváveis. Isso reduzirá um pouco a capacidade de gerenciamento, mas é uma decisão que você pode tomar. Há um documento muito bom sobre esta e outras dicas para segurança de contas de administrador de domínio emhttps://technet.microsoft.com/en-us/library/dn487454.aspx. Usar o acesso delegado, em que contas administrativas recebem direitos administrativos específicos por meio de delegação, em vez de administração de domínio geral, também pode ser uma opção para você.

Responder2

O que você precisa acessar no controlador de domínio? Como você tem um firewall entre o membro1 e o controlador de domínio, você pode bloquear todo o acesso a dc1 e dc2 e, em seguida, colocar algo como um controlador de domínio somente leitura ou um front-end da Web na parte externa do firewall que o membro1 pode acessar.

Responder3

Você pode atacar esse problema de outra direção, simplesmente bloqueando a execução de todos os executáveis ​​(exe, bat, ps1, etc.) em seus DCs usando SRP ou AppLocker, exceto aqueles que você aprovar previamente. Dessa forma, mesmo que conseguissem acesso, seriam seriamente prejudicados.

Mas supondo que alguém tenha privilégios de administrador, ele pode fazer o que quiser no seu domínio na maioria dos computadores - o DC existe principalmente para autenticação...

E, como Todd disse, se você não pode confiar em Jill, é melhor remover aqui os direitos...

Responder4

Simplificando, um administrador de domínio pode fazer o que quiser (daí o administrador de domínio!). Não há como bloquear alguém que roubou credenciais de administrador de domínio. Ele pode substituir qualquer medida de segurança que você implementar.

informação relacionada