Cybersecurity Talk with Jeffrey Hicks: o PowerShell é uma boa ferramenta de hacking?

neste episódio de Cybersecurity Talk, eu tenho Jeffrey Hicks. Ele é um profissional absoluto no PowerShell. Ele tem mais de 25 anos de experiência trabalhando na área de infraestrutura. Ele também é um MVP dentro da especialização PowerShell. Você pode encontrá-lo no Twitter @JeffHicks e em seu blog: jdhitsolutions.com

PowerShell – boa ferramenta de hacking?

Paula:

eu sou o testador de penetração sozinho, e notei que o PowerShell se tornou uma ferramenta popular para todos, como administradores e também algumas outras pessoas de outras especializações. Estou usando o PowerShell para hackear. Mas, você acha que o PowerShell poderia ser uma boa ferramenta de hacking? Qual é o seu sentimento sobre isso?

Jeffrey:

isto surge o tempo todo. Surgiu quando o PowerShell saiu pela primeira vez porque era, acabamos de vir dos dias do VBScript, e Melissa, ILOVEYOU e todas essas coisas feias e todos disseram: “Oh não, a Microsoft vai fazer isso conosco novamente.”Bem, sim e não. PowerShell é uma ótima ferramenta de gerenciamento. É para profissionais de TI. Eles podem fazer uma enorme quantidade de trabalho com muito pouco trabalho.

Naturalmente, se você é um hacker ou um mau ator, e você deseja obter um monte de coisas ruins realmente feito rapidamente, com certeza PowerShell é uma ótima ferramenta para o uso, principalmente porque não só você tem todas as built-in listas de comandos, mas você tem acesso directo para a demonstração de trem de trabalho. Se você tem um fundo de desenvolvedor, há uma enorme quantidade de coisas que você pode fazer desde que você primeiro tenha acesso.

depois de ter acesso, se você já possui a caixa, o fato de estar usando o PowerShell é realmente irrelevante, você já está em mau doo-doo. Mas, claro, se eu sou um cara mau, e eu quero fazer muito rapidamente, incluindo a limpeza das minhas faixas, PowerShell é uma ferramenta perfeita para isso.

Paula:

especialmente, temos tantos módulos adicionais diferentes que você pode obter que são gratuitos para serem baixados que podem ajudá-lo com mais atividades de hacking.

Jeffrey:

Claro.

Paula:

existem alguns Mimikatz também escritos em PowerShell. Você é capaz de roubar credenciais, apenas usando o PowerShell. O que eu pessoalmente acho legal, dentro do caso de hacking que PowerShell, não é algo que é reconhecido pelo antivírus, certo?

Jeffrey:

certo porque é um mecanismo de gerenciamento que o próprio PowerShell precisa ser hospedado em um aplicativo. Você pode girar um motor PowerShell apenas a partir de um prompt cmd ou mesmo eu acho que na memória, então material anti-vírus não pode necessariamente detectar isso. Não é como se as pessoas estivessem executando scripts porque isso é algo que talvez o Antivírus possa detectar. Mas, não, o Antivírus não pode fazer isso.Temos coisas novas no PowerShell versão 5.1, onde a Microsoft realmente acelerou o registro, então você pode não ser necessariamente capaz de saber imediatamente: “Ops, eu fui comprometido”, mas você poderá voltar atrás após o fato e vasculhar todos os logs e identificar: o que eles fizeram, quem fez, quais máquinas eles acessaram, como eles entraram? Pelo menos do ponto de vista forense e de recuperação, você tem muito mais informações Agora do que nunca na versão anterior do PowerShell.

Paula:

E, é tão acessível, certo?

Jeffrey:

É muito acessível.

precisamos ter medo do PowerShell?

Paula:

sim, estou me perguntando porque, em geral, da perspectiva do PowerShell, essa também pode ser a ferramenta da qual as pessoas têm medo. Os administradores temem que o PowerShell possa ser usado na empresa para evitar hackers, pois nunca verão isso.

você tem algum conselho para essas pessoas?

Jeffrey:

você sabe, o PowerShell por padrão possui Protetores de segurança integrados. Eles não têm acesso aos limites de segurança. São como a tampa do botão de lançamento nuclear. Você tem que levantar a tampa, mas primeiro você tem que ter acesso para chegar à tampa para levantá-la. Existem coisas como execução de script. Por padrão, você não pode executar um script do PowerShell. Além disso, se alguém estivesse recebendo um script malicioso no e-mail e clicar duas vezes nele, não teremos um script PowerShell executado.

você certamente pode mudar isso como administrador. Se você não sabe o que está fazendo e é totalmente incompetente e deve ser demitido e ter algo ruim, ou se alguém copia o conteúdo desse script, abre o prompt do PowerShell, cola-o. Se eles tiverem as permissões e as ferramentas necessárias, o PowerShell terá o prazer de fazer isso. É uma solução fácil. Você não dá aos seus usuários, incluindo administradores, eles não estão sendo executados com credenciais elevadas. Então, suas sessões do PowerShell praticamente sempre abrem como administrador inferior. Mesmo que o código de alguma forma não intencional tenha sido executado, eles não têm as permissões necessárias para fazer isso. Essa é uma ótima maneira de limitar.Basta olhar para o bom senso.

vamos dar uma olhada apenas Administração suficiente

Paula:

parece-me bem. Também há Administração suficiente. O que você acha desse?

Jeffrey:

Just Enough Administration é uma ferramenta de remoting — tool set na verdade-que é projetada para que os administradores forneçam um ambiente de remoting mais seguro. Quero dizer, PowerShell, a maneira como ele realmente brilha na empresa é que posso gerenciar 1.000 servidores de uma só vez. Quero encontrar logs de eventos de consulta, preciso verificar o log de eventos do sistema procurando, digamos talvez o que está no servidor reiniciado ou alguma outra indicação de que fui comprometido. PowerShell remoting torna muito fácil.

no entanto, por padrão, você tem que ser um administrador, e você tem acesso a tudo. Mas, com o JEA, você pode criar o que é chamado de endpoint restrito ou Delegado. Ainda posso me conectar a um servidor, mas posso dizer: “somente essas pessoas podem se conectar a esse endpoint e, quando se conectam, só podem executar esses comandos.”

Paula:

o que é muito legal.

Jeffrey:

ainda mais, posso dizer: “Sabe de uma coisa? Eles podem executar esses comandos, mas eles só podem usar esses parâmetros e, se esses parâmetros, eles só podem ser esses conjuntos de valores.”Você pode realmente restringir o que eles podem fazer. Podemos levar isso ainda mais longe ao vinculá-lo ao kit de ferramentas de administração apenas o suficiente. Existem duas ferramentas JEA que sempre fico confuso, onde você pode, em essência, empurrar um ponto final e fazer alguém dizer: “Você tem meia hora para fazer sua coisa, então esse ponto final se foi e você não tem mais acesso”.

PowerShell e remoting

a Microsoft reconhece que certamente há muitas vulnerabilidades. As pessoas certamente podem aproveitar o PowerShell e o remoting, e estamos fazendo coisas para tornar isso mais difícil. A educação é uma grande parte disso. Outra coisa com o remoting, já que mencionamos isso, é que muitos profissionais de TI pensam que, uma vez que ativam o PowerShell remoting, eles estão prontos.

mas não é. PowerShell remoting, ligando isso, que você tem que ter isso agora porque não há como gerenciar as coisas no Windows. É realmente apenas o primeiro passo. As pessoas esquecem: “Oh, bem, eu poderia configurar regras de firewall ou usar IPsec. Existem todos os tipos de ferramentas de rede que temos. Eles esquecem totalmente: “Oh, é PowerShell, acabei.” Nao. Isso é apenas o primeiro passo.

você não precisa ter todos os seus servidores acessíveis a partir de todos os endereços IP do seu ambiente. Certo?

Paula:

esse é um bom ponto.

Jeffrey:

eu só quero meus administradores de domínio, eu sei quais são seus desktops. Só eles têm acesso, para que eu possa fazer coisas em rede.

Paula:

você pode aparar isso.

Jeffrey:

eu não posso cortar isso, então isso é algo que eu acho que muitos profissionais esquecem. Eles apenas vêem o PowerShell. Eles ficam excitados. Eles vão: “Oh, o remoting está ligado, eu posso acessar todas essas caixas, estou pronto para ir. Se você realmente quer estar seguro, você tem mais trabalho que você quer fazer.

como o PowerShell poderia melhorar a segurança da infraestrutura?

Paula:

Sim, sim, absolutamente. O que vemos também do nosso lado, que, por exemplo, existem empresas que querem implementar o código de prevenção de execução de soluções, e por padrão, mesmo no Outlook ou no Windows, você tem a possibilidade de ativar as regras padrão, como eles chamam. As regras padrão permitiram executar tudo o que está na pasta do Windows e tudo o que está na pasta Arquivos de programas.

eles esqueceram que também poderia ser uma ferramenta perigosa se estivesse nas mãos do Usuário e o Usuário não soubesse o que fazer. Ainda é um usuário, mas também podemos, por exemplo, criptografar os dados com o PowerShell e pedir um resgate. Apenas uma ideia em que também estávamos pensando.

Ok, então o que você acha, como o PowerShell poderia melhorar a segurança da infraestrutura e como torná-la uma boa ferramenta de segurança para nossos servidores, a fim de ter sucesso para vencer a batalha contra hackers?

Jeffrey:

está bem, então algumas coisas que me vêm à mente. Primeiro, PowerShell versão 5.1 agora está disponível, incluindo down-level down para 2008 R2, que espero que seja o nível mínimo que as pessoas estão executando em seus servidores. Isso é algo que eu encorajaria as pessoas a implantar.

verifique o README, para que você não esteja executando em um servidor, que pode ter algumas limitações especiais, mas essa ressalva à parte, porque com o 5.1 você obterá todos os recursos de segurança mais recentes, como o registro e tudo isso. Portanto, primeiro, verifique se você está executando a versão mais atual do PowerShell. Outra característica que eu acho que poderia realmente cair na categoria de segurança é DSC: Configuração De Estado Desejada.

Paula:

é um ótimo recurso.

Jeffrey:

porque com o DSC, posso criar uma configuração para dizer: “quero que este servidor seja assim.”Eu quero ter esses servidores, essas chaves de registro, esses recursos, tanto faz. Posso configurar o servidor para puxá-lo de um servidor central ou empurrá-lo para ele. Mas, o que é fundamental aqui é que eu posso configurar esse servidor e dizer: “Ei, verifique a cada 15 minutos e se algo está fora de Conformidade, fora da configuração, redefina-o.”

Paula:

isso é ótimo.

Jeffrey:

DSC é realmente uma estrutura. Disseram-me que há alguma parte do Departamento de defesa nos EUA e eles usam o DSC. Eles construíram algumas de suas próprias ferramentas, e eles têm um mecanismo porque eles querem verificar mais rápido do que a cada 15 minutos, que se eles detectam que o servidor está fora de conformidade, eles assumem que foi violado, e eles matá-lo.

eles têm procedimentos automatizados para abrir um novo servidor Porque já sabem como deve ser. É tudo automatizado, é assim. Eles podem matar o servidor ou deixá-lo offline, para que possam analisá-lo mais tarde e dizer: “Ok, o que aconteceu? Isso foi um problema real ou alguns estagiários fizeram algo que não deveriam fazer?”Mas, usar o DSC seria uma ótima maneira de garantir que o servidor esteja sempre configurado da maneira que eu quero que seja.

Paula:

o que realmente me leva a uma conclusão interessante de que o DSC, por exemplo, poderia fazer parte do plano de resposta a incidentes. Por exemplo, quando temos um problema, estamos sendo hackeados, como você disse, um dos servidores é afetado. Nós apenas limpamos. Temos todo o conforto por dentro que temos a solução de que está funcionando muito bem para fazer as coisas de novo, e estamos de volta à operação.

Jeffrey:

o ponto principal que você ouvirá da Microsoft, isso é de Jeffrey Snover, é que os profissionais de TI precisam começar a tratar seus servidores como gado, não como animais de estimação.

Paula:

é uma boa comparação.

os tempos em que estávamos construindo os servidores do zero…

Jeffrey:

há mais tempo, e estou nele há mais de 25 anos, construiríamos um servidor. Levaria uma semana para construir um servidor. Você tem que encomendar hardware, você tem que colocar tudo, carregar manualmente os disquetes para obter tudo. Levaria muito tempo. Você amorosamente hand-craft esse servidor. Se algo der errado, “Oh, eu vou consertar você, baby. Vais ficar bem.”

não podemos mais fazer isso. Por enquanto, por um lado, os servidores estão na nuvem. Eles não estão no corredor e tudo isso. Agora nós apenas decidimos, e não damos nomes lindos e extravagantes. É só um número. Se o servidor estiver comprometido ou falhar de alguma forma, não dedico tempo para tentar corrigi-lo. Eu apenas faço hambúrguer e acendo uma nova máquina e envio a configuração e sei que estou pronto para ir. Absolutamente.

Um conselho de Jeffrey Hicks para aqueles que querem se tornar profissionais de TI

Paula:

isso é muito legal. Aí vem a questão desafiadora. A questão é: Se nós temos alguém que está no início de sua carreira, e eles olham para você e eles são como, “Oh, eu quero ser como ele, eu quero saber todos os PowerShell coisas e ser um verdadeiro geek,” o que você aconselharia para essa pessoa?

Jeffrey:

Certamente, há muitos livros e outras coisas. Na verdade, tenho uma página no meu blog Para recursos essenciais do PowerShell porque recebo essa pergunta o tempo todo. “Em que livros devo olhar? Que vídeos?”e tudo isso. Obviamente, eu escrevi e criei muito disso. A grande coisa sobre aprender PowerShell é que é uma linguagem. É como se eu tentasse aprender polonês, eu precisaria usá-lo todos os dias para me tornar fluente nele.

PowerShell é da mesma maneira. Você tem que encontrar maneiras de usá-lo todos os dias. Esse é o takeaway número um lá.

Paula:

então, alguém deve apenas gastar seu tempo e estar lá todos os dias, estudar, aprender a ler os livros, et cetera?

Jeffrey:

mesmo se você não fizer nada mais do que ler os tópicos de Ajuda em algum comando uma vez por dia.

Paula:

Está Bem. Isso pode fazer. Sim, como aprender uma palavra em uma língua estrangeira

Jeffrey:

exactamente. Aprendendo algo novo. Mas você tem que usá-lo.

o conselho para os mais avançados…

Paula:

claro, e quanto aos caras avançados. Você tem um administrador e a infraestrutura e ele é como saber, é claro, todas as coisas que ele gerencia, ou ela gerencia e basicamente esse cara quer saber mais no PowerShell, ser melhor, ser fluente. Que tipo de conselho você daria a essa pessoa?

Jeffrey:

Vou dar-lhes, na verdade, dois pequenos conselhos. Uma é, virar e compartilhar seu conhecimento com a pessoa mais jovem, não só porque essa é a coisa certa a fazer, mas também no fato de tentar formular seus pensamentos. “Ok, como vou me comunicar ou compartilhar o que sei?”Você pode perceber:” Oh, talvez eu não saiba isso tão bem quanto deveria. Preciso de voltar e retocar.”Você aprende um pouco mais ao tentar ensinar alguém, você não tem escolha a não ser realmente aprender você mesmo.

isso seria o número um. A segunda é que você só precisa levar essa ideia de usá-la todos os dias para o próximo nível. Você precisa ser a pessoa que está criando as configurações DSC e as ferramentas do PowerShell que você está usando para monitorar servidores para fornecer a análise forense se você foi comprometido.

você precisará aprender coisas novas como o.NET framework. Você precisará aprender alguns dos avançados. Você precisa começar a pensar. Vá a algumas das conferências secretas de hackers e aprenda as maneiras ruins e encontre maneiras: “Ok, Como posso fazer isso no PowerShell?”Tente ser mais proativo.

Paula:

há um pequeno ditado que diz que se você sentir que sabe algo, você pode testá-lo perfeitamente explicando isso ao seu avô. Então, as tecnologias mais recentes, meu avô vai ser como, ” o que você está falando?”Mas talvez seja o mesmo assim com o PowerShell? Você tem que ser capaz de explicar isso para os mais jovens.

Jeffrey:

certo, Se você não pode explicar para alguém ou ensinar alguém, então você não sabe bem o suficiente.

Paula:

exatamente, exatamente.

quando você sonha no Powershell…

Jeffrey:

eu tenho usado o PowerShell desde que estava em beta. Eu Co-escrevi um dos primeiros livros. Eu vou para a cama e sonho: “o que posso fazer no PowerShell.”

Paula:

você sonha em PowerShell?

Jeffrey:

eu realmente sonho no PowerShell.

Paula:

A Sério? Isto é tão engraçado. Posso perguntar-te como é?

Jeffrey:

vou sonhar com algo, algum script em que estou trabalhando. Ou algum projeto que eu quero trabalhar no dia seguinte. Eu sou como, ” oh, oh, É assim que eu vou contornar esse problema.”Sim, então, sim, eu faço. Quando você está aprendendo uma língua estrangeira, Se você começar a sonhar nessa língua, então você aprendeu isso.

Paula:

Bem, eu sonho em inglês, por exemplo, porque eu trabalho em inglês o tempo todo. Quando vou para a cama, penso: “Ok”, estou começando em inglês, então percebo: “bem, Ei, espere, eu sou polonês, então talvez eu deva pensar na minha língua nativa.”Mas, isso não funciona assim, sim?

Jeffrey:

isso é uma indicação de que você realmente tem.

Paula:

você está no fundo disso.

Jeffrey:

você o absorveu e sabe o que é. Sim, estou confessando a todos que sonho no PowerShell.

Jeffrey Hicks

aprenda PowerShell em um mês de almoços

Paula:

isso é bom. Ok, então obrigado Jeff pelos bons insights. Acho que podemos resumir um pouco nossa entrevista. Estávamos falando que:

  • PowerShell pode ser uma ferramenta de hacking, mas é mais para admin.
  • também pode ser usado para os bandidos se tivermos a possibilidade de usá-lo em um determinado estágio de hacking.
  • apenas Administração suficiente também é uma solução muito agradável para limitar a funcionalidade do PowerShell na mão de alguém.
  • é um pequeno desafio configurar a configuração de Estado desejada, porque existem tantas partes móveis diferentes e é apenas uma estrutura.

Jeffrey:

não é apenas um turnkey, eu posso fazer uma configuração, estou feito. Há muitas peças em movimento e você tem que decidir como vai se encaixar no seu ambiente. Sim, o DSC é uma parte fundamental aqui.

Paula:

É uma peça chave e, a fim de ser capaz de ser fluente em PowerShell, você tem que gastar pelo menos uma hora por dia, talvez, se pudéssemos resumir desta forma, o foco sobre os diferentes tipos de funções do PowerShell e assim por diante, ou pelo menos saber um CMD comprimento por dia.

Jeffrey:

um dos livros mais populares do PowerShell é um que eu Co-escrevi com Don Jones:”Aprenda o Windows PowerShell em um mês de almoços”.Ele promete que você leu um capítulo durante a sua pausa para o almoço porque eles são curtos o suficiente. Você lê um capítulo, faz um exercício e, ao longo de um mês, deve conhecer o PowerShell suficiente para pelo menos ser proficiente. Você não saberá 100%, mas saberá o suficiente para começar.

Paula:

muito Obrigado, espero que vcs gostem e certifique-se de que se você estiver indo para ter algumas perguntas para Jeff ou sobre esta entrevista, ou para mim mesmo, certifique-se de que você vai postá-las na seção de comentários abaixo.

gostou desta entrevista? Veja o quanto você realmente sabe sobre segurança cibernética! Teste-se contra Paula Januszkiewicz.

>>>Faça seu teste de segurança HARDCORE do Windows<<<

Deixe uma resposta

O seu endereço de email não será publicado.