ExecutionPolicy Bypass vs Unrestricted dans PowerShell

Migel Hewage Nimesha 30 janvier 2023
  1. Politiques d’exécution PowerShell
  2. Personnaliser la politique d’exécution
  3. Politique de Bypass de PowerShell
  4. Politique Unrestricted de PowerShell
ExecutionPolicy Bypass vs Unrestricted dans PowerShell

Cet article présente les politiques d’exécution dans PowerShell, Bypass et Unrestricted.

Politiques d’exécution PowerShell

PowerShell est l’un des langages de script les plus populaires parmi les administrateurs système, les tests de sécurité et les pirates. Windows est le système d’exploitation le plus populaire pour les ordinateurs.

Par conséquent, des millions d’utilisateurs l’utilisent. Par conséquent, PowerShell est utilisé pour automatiser les flux de travail, appeler l’API Windows et écrire des outils de test de pénétration.

En raison du grand nombre d’utilisateurs de Windows, Microsoft a pris des mesures pour ajouter des fonctionnalités de sécurité intégrées. Les politiques d’exécution sont introduites pour déterminer quel type de scripts PowerShell peut être exécuté sur le système.

Cela ne signifie pas que les utilisateurs ne sont pas autorisés à exécuter certains scripts PowerShell. Par conséquent, les politiques d’exécution empêchent les exécutions de script involontaires.

Le Bypass et le Unrestricted sont deux politiques d’exécution importantes. Ces deux politiques ont des comportements très identiques.

Personnaliser la politique d’exécution

Les utilisateurs de PowerShell peuvent facilement modifier la politique existante. L’applet de commande Set-ExecutionPolicy permet de personnaliser les politiques d’exécution de PowerShell.

Syntaxe:

Set-ExecutionPolicy
   [-ExecutionPolicy] <ExecutionPolicy>
   [[-Scope] <ExecutionPolicyScope>]
   [-Force]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Le paramètre -ExecutionPolicy spécifie la politique d’exécution de PowerShell, telle que Bypass et Unrestricted. De plus, le drapeau -Scope peut donner la portée de la stratégie comme Process, CurrentUser ou LocalMachine.

Politique de Bypass de PowerShell

La politique Bypass est utilisée pour ignorer toutes les vérifications de sécurité de Windows PowerShell. Le risque est que la stratégie Bypass permet d’exécuter n’importe quel script PowerShell sans avertissements ni invites.

Par conséquent, les utilisateurs doivent être prudents lorsqu’ils utilisent la politique Bypass. Habituellement, nous utilisons cette politique pour les applications qui incluent leur modèle de sécurité.

La politique d’exécution Bypass peut être établie comme indiqué ci-dessous.

Set-ExecutionPolicy -ExecutionPolicy Bypass

Production:

Politique de contournement PowerShell

Puisqu’il vous permet d’exécuter n’importe quel script PowerShell, PowerShell vous avertit car des scripts malveillants peuvent s’exécuter involontairement et nuire à vos données privées. Vous devez exécuter PowerShell avec des privilèges d’administrateur pour modifier les stratégies d’exécution.

Nous pouvons confirmer le changement de stratégie à l’aide de l’applet de commande Get-ExecutionPolicy.

Get-ExecutionPolicy -List

Production:

Liste de contournement de la politique d&rsquo;exécution

Le changement de stratégie a affecté la portée LocalMachine.

Politique Unrestricted de PowerShell

La politique Unrestricted est similaire à la politique Bypass. La principale différence est que la politique Unrestricted vous avertira et vous demandera les bonnes autorisations avant d’exécuter un script non signé.

Vous pouvez définir cette politique d’exécution à l’aide de l’applet de commande Set-ExecutionPolicy.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Production:

Politique sans restriction PowerShell

Nous pouvons confirmer le changement ci-dessus avec la cmdlet Get-ExecutionPolicy.

Production:

Liste non restreinte ExecutionPolicy

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.