Discussion sur la cybersécurité avec Jeffrey Hicks: PowerShell est-il un bon outil de piratage?

Dans cet épisode de Cybersecurity Talk, j’ai Jeffrey Hicks. C’est un professionnel absolu en PowerShell. Il a plus de 25 ans d’expérience dans le domaine des infrastructures. Il est également MVP au sein de la spécialisation PowerShell. Vous pouvez le retrouver sur Twitter @JeffHicks et sur son blog : jdhitsolutions.com

PowerShell – bon outil de piratage?

Paula:

Je suis le testeur de pénétration par moi-même, et j’ai remarqué que PowerShell est devenu un outil populaire pour tout le monde, comme les administrateurs et aussi d’autres personnes d’autres spécialisations. J’utilise PowerShell pour le piratage. Mais pensez-vous que PowerShell pourrait être un bon outil de piratage? Quel est ton sentiment à ce sujet?

Jeffrey:

Tu sais, ça revient tout le temps. C’est arrivé quand PowerShell est sorti pour la première fois parce que nous venions de l’époque de VBScript, et Melissa, ILOVEYOU et toutes ces choses laides et tout le monde a dit: « Oh non, Microsoft va nous le faire à nouveau. »Eh bien, oui et non. PowerShell est un outil de gestion formidable. C’est pour les professionnels de l’informatique. Ils peuvent faire énormément de travail avec très peu de travail.

Naturellement, si vous êtes un pirate informatique ou un mauvais acteur, et que vous voulez faire beaucoup de mauvaises choses très rapidement, bien sûr, PowerShell est un excellent outil à utiliser principalement parce que non seulement vous avez toutes les listes de commandes intégrées, mais vous avez un accès direct au travail du train de démonstration. Si vous avez une formation de développeur, vous pouvez faire énormément de choses à condition d’y avoir d’abord accès.

Une fois que vous avez accès, si vous possédez déjà la box, le fait que vous utilisiez PowerShell n’est vraiment pas pertinent, vous êtes déjà dans un mauvais doo-doo. Mais, bien sûr, si je suis un méchant et que je veux faire beaucoup de choses rapidement, y compris nettoyer mes traces, PowerShell est un outil parfait pour cela.

Paula:

En particulier, nous avons tellement de modules supplémentaires différents que vous pouvez obtenir et qui peuvent être téléchargés gratuitement et qui pourraient vous aider avec plus d’activités de piratage.

Jeffrey:

Bien sûr.

Paula:

Il y a des Mimikatz également écrits en PowerShell. Vous êtes capable de voler des informations d’identification, simplement en utilisant le PowerShell. Ce que je pense personnellement, c’est cool, dans le cas de piratage que PowerShell, ce n’est pas quelque chose qui est reconnu par l’antivirus, non?

Jeffrey:

Juste parce que c’est un moteur de gestion que PowerShell lui-même doit héberger dans une application. Vous pouvez faire tourner un moteur PowerShell juste à partir d’une invite cmd ou même je pense en mémoire, donc les antivirus ne peuvent pas nécessairement le détecter. Ce n’est pas comme si les gens allaient exécuter des scripts parce que c’est quelque chose que l’antivirus pourrait peut-être détecter. Mais non, l’antivirus ne peut pas faire ça.

Nous avons de nouvelles choses dans la version 5.1 de PowerShell, où Microsoft a vraiment cliqué sur la journalisation, de sorte que vous ne pourrez pas nécessairement savoir immédiatement « Ops, j’ai été compromis », mais vous pourrez revenir en arrière après coup et fouiller tous les journaux et identifier: qu’ont-ils fait, qui l’a fait, à quelles machines ont-ils accédé, comment sont-ils entrés? Au moins d’un point de vue médico-légal et de récupération, vous avez maintenant beaucoup plus d’informations que nous ne l’avons jamais fait dans la version précédente de PowerShell.

Paula:

Et c’est tellement accessible, non?

Jeffrey:

C’est très accessible.

Devons-nous avoir peur de PowerShell?

Paula:

Oui, je me demande parce qu’en général du point de vue de PowerShell, cela pourrait aussi être l’outil dont les gens ont peur. Les administrateurs ont peur que PowerShell puisse être utilisé dans l’entreprise pour empêcher le piratage, car ils ne le verront jamais.

Avez-vous des conseils pour ces personnes?

Jeffrey:

Vous savez, PowerShell a par défaut des protections de sécurité intégrées. Ce ne sont pas des limites de sécurité d’accès. Ils sont comme le couvercle du bouton de lancement nucléaire. Vous devez soulever le couvercle, mais vous devez d’abord avoir accès pour atteindre le couvercle pour le soulever. Il y a des choses comme l’exécution de script. Par défaut, vous ne pouvez pas exécuter de script PowerShell. De plus, si quelqu’un recevait un script malveillant dans un e-mail et double-cliquez dessus, nous n’exécuterons pas de script PowerShell.

Vous pouvez certainement changer cela en tant qu’administrateur. Si vous ne savez pas ce que vous faites et que vous êtes totalement incompétent et que vous devriez être renvoyé et que quelque chose se passe mal, ou si quelqu’un copie le contenu de ce script, ouvre l’invite PowerShell, le colle. S’ils disposent des autorisations et des outils nécessaires, PowerShell se fera un plaisir de le faire. C’est une solution facile. Vous ne donnez pas à vos utilisateurs, y compris aux administrateurs, qu’ils ne fonctionnent pas avec des informations d’identification élevées. Ainsi, leurs sessions PowerShell s’ouvrent presque toujours en tant qu’administrateur inférieur. Même si le code involontaire a été exécuté, ils n’ont pas les autorisations nécessaires pour le faire. C’est un excellent moyen de limiter.Il suffit de regarder le bon sens.

Regardons Juste assez d’administration

Paula:

Ça a l’air bien. Il y a aussi Juste Assez d’administration. Qu’en penses-tu ?

Jeffrey:

Juste assez d’administration est un outil de communication à distance – un ensemble d’outils en fait – conçu pour les administrateurs afin de fournir un environnement de communication à distance plus sécurisé. Je veux dire, PowerShell, la façon dont ça brille vraiment dans l’entreprise, c’est que je peux gérer 1 000 serveurs en même temps. Je veux trouver des journaux d’événements de requête, je dois vérifier le journal des événements système à la recherche, dire peut-être ce qui se trouve sur le serveur redémarré, ou une autre indication que j’ai été compromis. La télécommande PowerShell le rend vraiment facile.

Cependant, par défaut, vous devez être un administrateur et vous avez accès à tout. Mais, avec JEA, vous pouvez créer ce qu’on appelle un point de terminaison contraint ou délégué. Je peux toujours me connecter à un serveur, mais je peux alors dire: « Seules ces personnes peuvent se connecter à ce point de terminaison et lorsqu’elles se connectent, elles ne peuvent exécuter que ces commandes. »

Paula:

Ce qui est assez cool.

Jeffrey:

Encore plus loin, je peux dire : « Tu sais quoi ? Ils peuvent exécuter ces commandes, mais ils ne peuvent utiliser que ces paramètres et si ces paramètres, ils ne peuvent être que ces ensembles de valeurs. »Vous pouvez vraiment restreindre ce qu’ils peuvent faire. Nous pouvons aller encore plus loin en l’associant à la boîte à outils Juste assez d’administration. Il y a deux outils JEA que je deviens toujours confus, où vous pouvez, en substance, pousser un point de terminaison et demander à quelqu’un de dire: « Vous avez une demi-heure pour aller faire votre truc, puis ce point de terminaison a disparu, et vous n’avez plus accès ».

PowerShell et télécommande

Microsoft reconnaît qu’il y a certainement beaucoup de vulnérabilités. Les gens peuvent certainement profiter de PowerShell et de la télécommande, et nous faisons des choses pour rendre cela plus difficile. L’éducation en est une grande partie. Une autre chose avec la télécommande, depuis que nous l’avons mentionné, est que beaucoup de professionnels de l’informatique pensent qu’une fois qu’ils activent la télécommande PowerShell, ils ont terminé.

Mais ce n’est pas le cas. PowerShell remoting, allumer cela, que vous devez avoir maintenant parce qu’il n’y a aucun moyen de gérer les choses dans Windows. Ce n’est vraiment que la première étape. Les gens oublient: « Oh, eh bien, je pourrais configurer des règles de pare-feu ou utiliser IPSec. Il y a toutes sortes d’outils de réseautage que nous avons. Ils oublient totalement: « Oh, c’est PowerShell, j’ai fini. » Aucun. Ce n’est vraiment que la première étape.

Vous n’avez pas besoin d’avoir tous vos serveurs accessibles depuis toutes les adresses IP de votre environnement. Pas vrai?

Paula:

C’est un bon point.

Jeffrey:

Je veux juste mes administrateurs de domaine, je sais quels sont leurs bureaux. Ils sont les seuls à y avoir accès, donc je peux faire des choses en réseau.

Paula:

Tu peux couper ça.

Jeffrey:

Je ne peux pas couper ça, alors c’est quelque chose que je pense que beaucoup de professionnels de l’informatique oublient. Ils voient juste PowerShell. Ils sont excités. Ils vont: « Oh, la télécommande est activée, je peux accéder à toutes ces boîtes, je suis prêt à partir. Si vous voulez vraiment être en sécurité, vous avez plus de travail que vous voulez faire.

Comment PowerShell pourrait-il améliorer la sécurité de l’infrastructure ?

Paula:

Oui, absolument. Ce que nous voyons également de notre côté, c’est que, par exemple, il y a des entreprises qui veulent implémenter des solutions de prévention de l’exécution de code, et par défaut, même dans Outlook ou dans Windows, vous avez la possibilité d’activer les règles par défaut, comme ils les appellent. Les règles par défaut permettent d’exécuter tout ce qui se trouve dans le dossier Windows et tout ce qui se trouve dans le dossier program files.

Ils ont oublié que cela pouvait également être un outil dangereux s’il était entre les mains de l’utilisateur et que celui-ci ne savait pas quoi faire. C’est toujours un utilisateur, mais nous pouvons aussi, par exemple, crypter les données avec PowerShell et demander une rançon. Juste une idée à laquelle nous pensions aussi.

D’accord, alors qu’en pensez-vous, comment PowerShell pourrait améliorer la sécurité de l’infrastructure et comment en faire un bon outil de sécurisation pour nos serveurs afin de réussir à gagner la bataille contre les pirates ?

Jeffrey:

D’accord, donc deux choses qui me viennent à l’esprit. Tout d’abord, PowerShell version 5.1 est maintenant disponible, y compris le niveau inférieur jusqu’à 2008 R2, qui, espérons-le, est le niveau minimum que les gens exécutent sur leurs serveurs. C’est quelque chose que j’encouragerais les gens à déployer.

Vérifiez le README, de sorte que vous ne fonctionnez pas sur un serveur, cela peut avoir des limitations spéciales, mais cette mise en garde mise à part, car avec la 5.1, vous obtiendrez toutes les dernières fonctionnalités de sécurité comme la journalisation et tout cela. Donc, tout d’abord, assurez-vous d’exécuter la version la plus récente de PowerShell. Une autre caractéristique qui, à mon avis, pourrait vraiment entrer dans la catégorie de la sécurité est DSC: Configuration d’État Souhaitée.

Paula:

C’est une excellente fonctionnalité.

Jeffrey:

Parce qu’avec DSC, je peux créer une configuration pour dire: « Je veux que ce serveur ressemble à ceci. »Je veux avoir ces serveurs, ces clés de registre, ces fonctionnalités, peu importe. Je peux soit configurer le serveur pour le tirer d’un serveur central, soit le pousser vers celui-ci. Mais, ce qui est clé ici, c’est que je peux configurer ce serveur et dire: « Hé, vérifiez toutes les 15 minutes et si quelque chose n’est pas conforme, hors de la configuration, réinitialisez-le. »

Paula:

C’est génial.

Jeffrey:

DSC est vraiment un cadre. On m’a dit qu’il y avait une partie du département de la Défense aux États-Unis et qu’ils utilisaient le DSC. Ils ont construit certains de leurs propres outils, et ils ont un mécanisme parce qu’ils veulent vérifier plus rapidement que toutes les 15 minutes, que s’ils détectent que le serveur n’est pas conforme, ils supposent qu’il a été violé, et ils le tuent.

Ils ont des procédures automatisées pour faire apparaître un nouveau serveur car ils savent déjà à quoi il est censé ressembler. Tout est automatisé, c’est comme ça. Ils peuvent tuer le serveur ou le mettre hors ligne, afin qu’ils puissent l’analyser plus tard et dire : « D’accord, que s’est-il passé ? Était-ce un vrai problème ou certains stagiaires ont-ils fait quelque chose qu’ils n’étaient pas censés faire? »Mais, utiliser DSC serait un excellent moyen de s’assurer que le serveur est toujours configuré comme je le souhaite.

Paula:

Ce qui m’amène en fait à une conclusion intéressante que le DSC, par exemple, pourrait faire partie du Plan d’intervention en cas d’incident. Par exemple, lorsque nous avons un problème, nous sommes piratés, comme vous l’avez dit, l’un des serveurs est affecté. On l’essuie. Nous avons tout le confort à l’intérieur que nous avons la solution que cela fonctionne assez bien pour refaire les choses, et nous sommes de retour au fonctionnement.

Jeffrey:

Tout ce que vous entendrez de Microsoft, c’est de Jeffrey Snover, c’est que les professionnels de l’informatique doivent commencer à traiter leurs serveurs comme du bétail, pas comme des animaux de compagnie.

Paula:

C’est une bonne comparaison.

L’époque où nous construisions les serveurs à partir de zéro…

Philippe:

Pendant la plus longue période, et j’y suis depuis plus de 25 ans, nous construirions un serveur. Il vous faudrait une semaine pour construire un serveur. Vous devez commander du matériel, vous devez tout mettre, charger manuellement les disquettes pour tout obtenir. Cela prendrait beaucoup de temps. Vous fabriqueriez ce serveur avec amour. Si quelque chose ne va pas, « Oh, je vais te réparer, bébé. Tout ira bien. »

Nous ne pouvons plus faire ça. Pour l’instant, d’une part, les serveurs sont dans le cloud. Ils ne sont pas dans le couloir et tout ça. Maintenant, nous décidons, et nous ne lui donnons pas de beaux noms fantaisistes. C’est juste un chiffre. Si le serveur est compromis ou échoue d’une certaine manière, je ne prends pas le temps d’essayer de le réparer. Je fais juste du hamburger et j’allume une nouvelle machine et j’envoie la configuration et je sais que je suis prêt à partir. Absolument.

Un conseil de Jeffrey Hicks pour ceux qui veulent devenir des professionnels de l’informatique

Paula:

C’est très cool. Voici la question difficile. La question est: Si nous avons quelqu’un qui est au tout début de sa carrière, et qu’il vous regarde et qu’il se dit: « Oh, je veux être comme lui, je veux connaître tous les trucs de PowerShell et être un vrai geek », que conseilleriez-vous à une telle personne?

Jeffrey:

Certes, il y a beaucoup de livres et d’autres choses. J’ai en fait une page sur mon blog pour les ressources PowerShell essentielles car je reçois cela tout le temps. « Quels livres suis-je censé regarder? Quelles vidéos ? » et tout ça. Évidemment, j’en ai écrit et créé beaucoup. La grande chose à propos de l’apprentissage de PowerShell est que c’est une langue. C’est comme si je devais essayer d’apprendre le polonais, j’aurais besoin de l’utiliser tous les jours pour le maîtriser.

PowerShell est de la même manière. Vous devez trouver des moyens de l’utiliser tous les jours. C’est le plat à emporter numéro un là-bas.

Paula:

Alors, quelqu’un devrait simplement passer son temps et être là tous les jours, étudier, apprendre à lire les livres, etc.?

Jeffrey:

Même si vous ne faites rien de plus que de lire les rubriques d’aide sur une commande une fois par jour.

Paula:

D’accord. Ça pourrait faire l’affaire. Oui, comme apprendre un mot dans une langue étrangère

Jeffrey:

Exactement. Apprendre quelque chose de nouveau. Mais vous devez l’utiliser.

Les conseils pour les plus avancés…

Paula:

Bien sûr, et qu’en est-il des gars avancés. Vous avez un administrateur et l’infrastructure et il aime savoir, bien sûr, tout ce qu’il gère, ou elle gère et fondamentalement, ce gars veut en savoir plus dans PowerShell, être meilleur, parler couramment. Quel genre de conseil donneriez-vous à cette personne?

Jeffrey:

Je vais leur donner en fait deux petits conseils. La première est de faire demi-tour et de partager vos connaissances avec la personne plus jeune, non seulement parce que c’est la bonne chose à faire, mais aussi dans le fait d’essayer de formuler vos pensées. « D’accord, comment vais-je communiquer ou partager ce que je sais? »Vous réalisez peut-être: « Oh, peut-être que je ne le sais pas aussi bien que je le devrais. J’ai besoin d’y retourner et de me rafraîchir. »Vous apprenez un peu plus en essayant d’enseigner à quelqu’un, vous n’avez pas d’autre choix que de vraiment l’apprendre vous-même.

Ce serait le numéro un. La seconde est que vous devez simplement faire passer cette idée de l’utiliser tous les jours au niveau supérieur. Vous devez être la personne qui crée les configurations DSC et les outils PowerShell que vous utilisez pour surveiller les serveurs afin de fournir l’analyse légale si vous avez été compromis.

Vous devrez apprendre de nouvelles choses comme le framework .NET. Vous aurez besoin d’apprendre certains des avancés. Vous devez commencer à réfléchir. Allez à certaines des conférences secrètes des hackers et apprenez les mauvaises manières et trouvez des moyens: « Ok, comment puis-je faire cela dans PowerShell? » Essayez d’être plus proactif.

Paula:

Il y a comme un petit dicton que si vous avez l’impression de savoir quelque chose, vous pouvez le tester parfaitement en l’expliquant à votre grand-père. Ensuite, les technologies les plus récentes, mon grand-père va se dire : « De quoi tu parles? »Mais peut-être est-ce la même chose avec le PowerShell? Il faut pouvoir l’expliquer aux plus jeunes.

Jeffrey:

C’est vrai, si vous ne pouvez pas l’expliquer à quelqu’un ou l’enseigner à quelqu’un, alors vous ne le savez pas assez bien.

Paula:

Exactement, exactement.

Quand vous rêvez dans Powershell…

Jeffrey:

J’utilise PowerShell depuis qu’il est en version bêta. J’ai coécrit l’un des premiers livres. Je me couche et je rêve : « Que puis-je faire dans PowerShell. »

Paula:

Vous rêvez en PowerShell ?

Jeffrey:

Je rêve en fait dans PowerShell.

Paula:

Sérieusement ? C’est tellement drôle. Puis-je vous demander, comment ça se passe?

Jeffrey:

Je vais rêver de quelque chose, d’un script sur lequel je travaille. Ou un projet sur lequel je veux travailler le lendemain. Je me dis : « Oh, oh, c’est comme ça que je vais contourner ce problème. » Oui, alors, oui je le fais. Lorsque vous apprenez une langue étrangère, si vous commencez à rêver dans cette langue, alors vous l’avez appris.

Paula:

Eh bien, je rêve en anglais, par exemple, parce que je travaille tout le temps en anglais. Quand je vais me coucher, je me dis: « D’accord », je commence en anglais, puis je me rends compte: « Eh bien, hé, attends, je suis polonais, alors peut-être devrais-je penser dans ma langue maternelle. » Mais ça ne marche pas comme ça, hein ?

Jeffrey:

C’est une indication que vous avez vraiment.

Paula:

Tu es au fond de ça.

Jeffrey:

Vous l’avez absorbé et vous savez ce que c’est. Oui, je confesse à tout le monde que je rêve dans PowerShell.

 Jeffrey Hicks

Apprenez PowerShell en un mois de déjeuners

Paula:

C’est bien. Ok, alors merci Jeff pour les belles idées. Je pense que nous pouvons résumer un peu notre interview. Nous parlions que:

  • PowerShell pourrait être un outil de piratage, mais c’est plus pour l’administrateur.
  • Il pourrait également être utilisé pour les méchants si nous avons la possibilité de l’utiliser à un certain stade de piratage.
  • Juste assez d’administration est également une très bonne solution pour limiter la fonctionnalité du PowerShell dans la main de quelqu’un.
  • C’est un peu difficile de configurer la Configuration d’État souhaitée, car il y a tellement de pièces mobiles différentes, et ce n’est qu’un cadre.

Philippe:

Ce n’est pas seulement une clé en main, je peux faire une configuration, j’ai terminé. Il y a beaucoup de pièces en mouvement et vous devez décider comment cela va s’adapter à votre environnement. Oui, le DSC est un élément clé ici.

Paula:

C’est un élément clé et pour pouvoir parler couramment PowerShell, vous devez passer au moins une heure par jour peut-être si nous pouvions le résumer de cette façon, vous concentrer sur les différents types de fonctions PowerShell et ainsi de suite, ou au moins connaître une longueur de CMD par jour.

Jeffrey:

L’un des livres les plus populaires de PowerShell est celui que j’ai coécrit avec Don Jones: « Apprenez Windows PowerShell en un mois de déjeuners ».

il vous promet de lire un chapitre pendant votre pause déjeuner parce qu’ils sont assez courts. Vous lisez un chapitre, faites un exercice, et au cours d’un mois, vous devriez alors connaître suffisamment de PowerShell pour au moins être compétent. Vous ne le saurez pas à 100%, mais vous en saurez assez pour commencer.

Paula:

Merci beaucoup, j’espère que vous l’aimez et assurez-vous que si vous avez des questions à Jeff ou à propos de cette interview ou à moi-même, assurez-vous de les poster dans la section commentaires ci-dessous.

Vous avez aimé cette interview ? Voyez à quel point VOUS en savez vraiment sur la cybersécurité ! Testez-vous contre Paula Januszkiewicz.

>>> Répondez À Son Quiz De Sécurité Windows HARDCORE<<<

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.