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

2

Existe uma maneira, usando um firewall, configuração de Diretiva de Grupo ou outro controle, para impedir que alguém conectado a um membro de domínio possa executar código remotamente em um controlador de domínio (ao qual eles não têm acesso de rede)? , uma vez que eles poderiam ter roubado as credenciais de administrador de domínio de alguém? Ou é o acesso de rede necessário para a associação rotineira do AD para sempre e inseparavelmente o mesmo que o acesso de rede necessário para a execução remota com "http://support.microsoft.com/windows/windows > PsExec ou PowerShell?

Para descrever um exemplo:

  • O servidor Windows "member1" é um membro do domínio de um domínio AD simples
  • Os servidores Windows "dc1" e "dc2" são os controladores de domínio desse domínio simples
  • há um firewall de hardware entre o member1 e os DCs e apenas as portas TCP e UDP são necessários para que a associação ao domínio seja permitida entre o membro1 e os DCs.
  • O usuário "Jack" é um usuário em "member1" e, além do acesso descrito no marcador anterior, não tem acesso de rede aos DCs.
  • Jack é esperto e pode obter as credenciais do administrador de domínio "Jill" por meio de um ataque de engenharia social ou outro método.
  • Jack obtém essas credenciais, efetua logon no membro1 e pode executar remotamente o código em dc1 ou dc2, usando talvez PsExec O ou o PowerShell apenas implementa seu próprio utilitário com o .NET, porque o acesso à rede necessário para a participação no domínio inclui o acesso à rede necessário para realizar chamadas remotas como essas.

Desejo interromper esse ataque, garantindo que o member1 possa executar apenas funções do AD de rotina (autenticação, atualização da Diretiva de Grupo, sincronização de horário, etc.) no domínio e impedir outras ações, como a execução remota de processos nos DCs. / p>     

por user1266898 16.06.2015 / 19:39

5 respostas

3

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

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

Se você tiver computadores confidenciais que deseja proteger de um 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 enclaves seguros são necessários. Você também pode considerar não juntá-los a um domínio, especialmente se houver muito poucos deles.

Analisando seus comentários, não sei ao certo qual é seu modelo de ameaça.

O que exatamente você faz dependerá muito do seu modelo de ameaça. No entanto, normalmente membros do domínio e usuários arbitrários não têm execução de código em controladores de domínio. Se você estiver preocupado com as falhas, o patching é uma boa política e, em ambos os casos, o uso de 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 o fato de os usuários executarem comandos remotamente ou fazerem login no controlador de domínio (o que não lhes daria direitos para fazer coisas como implantar software no domínio sem que eles também usem algum tipo de exploração de escalonamento de privilégios ou semelhante), pode impedir que eles façam login nos DCs pela 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.

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

As portas que você deve abrir são aquelas identificadas na documentação da implantação do RODC; consulte a seção "Portas de comunicação necessárias" no link . Mas, infelizmente, o RPC deve ser permitido, e é assim que o psexec funciona. Isso só permitirá que você proíba o login por itens como o RDP.

Para completar e evitar que o psexec seja usado com credenciais roubadas, você sempre pode banir os administradores de domínio do logon de trabalho em lote através do GPO mencionado acima nos controladores de domínio graváveis. Isso reduzirá levemente a capacidade de gerenciamento, mas é uma decisão que você pode tomar. Há um documento muito bom sobre essa e outras dicas para a segurança da conta de administrador de domínio no link . Usar o acesso delegado, no qual as contas administrativas recebem direitos administrativos específicos por meio da delegação, em vez do administrador geral do domínio, também pode ser uma opção para você.

    
por 29.06.2015 / 21:47
4

O que você precisa acessar a partir do controlador de domínio? Como você tem um firewall entre o membro 1 e o controlador de domínio, é possível 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 do lado de fora do firewall.

    
por 22.06.2015 / 17:56
2

Você pode atacar este problema de outra forma, simplesmente bloqueando todos os executáveis (exe, bat, ps1, etc.) de executar em seus controladores de domínio usando o SRP ou o AppLocker, exceto aqueles que você aprova antecipadamente. Dessa forma, mesmo que eles tenham acesso, eles seriam seriamente prejudicados.

Mas, supondo que alguém tenha privilégios de administrador, eles podem fazer o que quiserem no seu domínio na maioria dos computadores - o DC está lá principalmente para autenticação ...

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

    
por 01.07.2015 / 14:35
1

Você pode desabilitar o Powershell e você pode parar o psexec, agora o problema é que mesmo se você fizer isso, isso complica o gerenciamento para você e não impede que um usuário receba credenciais de "Administrador do Domínio". Você poderia interromper a função RDP para que ela só possa ser acessada de certos PCs em sua rede, mas ainda assim não é à prova de erros, apenas mais difícil para alguém obter acesso.

    
por 29.06.2015 / 21:32
1

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

    
por 02.07.2015 / 14:28