Não importa o que você faça, sem usar alguns utilitários de terceiros, sempre haverá uma maneira de os usuários recuperarem facilmente a senha de administrador usada se você estiver criando scripts com o PSEXEC dessa forma. Isso ocorre porque o PSEXEC precisa da senha a ser passada para ele como um parâmetro de comando em texto não criptografado, se você não estiver disponível para inseri-lo manualmente todas as vezes.
Alguns exemplos de cenários:
A senha é fornecida nos parâmetros do link:
É ridiculamente fácil ver a senha observando as propriedades do link.
A senha é fornecida por script em lote e você aponta o link para o script:
É fácil encontrar o script pelo atalho do link e encontrar a senha no script.
A senha é armazenada como uma string segura em um arquivo de texto, que é lido e passado para o PSEXEC por meio de um script do PowerShell, e você aponta o link para o script do PowerShell:
A senha ainda é visível nas propriedades do processo por meio do Gerenciador de tarefas.
(Ver- > Selecionar colunas- > Linha de comando)
Essa última opção acima é da primeira revisão de uma resposta por Adi Inbar para outra pergunta .
A revisão mais recente da mesma resposta tem uma solução melhor, que não é tão trivialmente explorável, mas qualquer um pode ainda obter a senha se eles sabem o que estão fazendo. Definitivamente não é algo que eu usaria para uma das minhas próprias contas ou sistemas, mas parece que pode oferecer uma proteção aceitável para seus padrões. A solução descarta o PSEXEC completamente e faz todo o trabalho no PowerShell. No entanto, acho que ainda precisa de algum trabalho antes que seja realmente funcional para uma implementação multiusuário. (Eu não sei exatamente como fazê-lo agora. Atualizaremos esta resposta se eu descobrir mais tarde). Uma vez implementada com sucesso, qualquer usuário com acesso ao script e seus arquivos de suporte ainda pode extrair e descriptografar a senha, mas é não apenas uma simples questão de lê-lo como texto puro.
Se você está aberto a usar softwares de terceiros, existem algumas ferramentas que permitem adicionar contas de usuários limitadas a um grupo do tipo "sudoers" e restringir a capacidade de privilégios elevados de apenas iniciar (diretamente) os aplicativos que você escolha.
Em qualquer caso, ainda há uma consideração importante a ter em mente: sempre que você permitir que um usuário inicie um aplicativo com privilégios elevados, estará permitindo que ele use privilégios elevados para qualquer aplicativo que seja capaz De fazer. Se isso inclui a navegação no sistema de arquivos (por exemplo: através de um diálogo Abrir ou Salvar), o usuário pode usar privilégios elevados em outros programas / funções que você não deseja que eles tenham acesso.
Exemplo: digamos que você me permita acessar seu sistema e ter minha conta configurada para que o único aplicativo que eu possa executar com privilégios elevados seja o Bloco de Notas. Do Notepad, eu ...
-
File->Open
- Defina o tipo de arquivo como "Todos os arquivos (. )".
- Navegue onde quiser no sistema de arquivos local e execute / abra todos os arquivos / programas que desejar como administrador.
- por exemplo: Navegue para
C:\Windows\System32\
, clique com o botão direito emlusrmgr.msc
, selecione "Abrir", use o MMC para adicionar-se ao grupo Administradores real . / li>
- por exemplo: Navegue para