ExecutionPolicy Bypass vs Unrestricted en PowerShell

Migel Hewage Nimesha 30 enero 2023
  1. Políticas de ejecución de PowerShell
  2. Personalizar la política de ejecución
  3. Política PowerShell Bypass
  4. Política Unrestricted de PowerShell
ExecutionPolicy Bypass vs Unrestricted en PowerShell

Este artículo presenta las políticas de ejecución en PowerShell, Bypass y Unrestricted.

Políticas de ejecución de PowerShell

PowerShell es uno de los lenguajes de secuencias de comandos más populares entre los administradores de sistemas, las pruebas de seguridad y los piratas informáticos. Windows es el sistema operativo más popular para computadoras.

Por lo tanto, millones de usuarios lo están usando. Por lo tanto, PowerShell se usa para automatizar flujos de trabajo, llamar a la API de Windows y escribir herramientas de prueba de penetración.

Debido a muchos usuarios de Windows, Microsoft tomó medidas para agregar algunas funciones de seguridad integradas. Las políticas de ejecución se introducen para determinar qué tipo de scripts de PowerShell se pueden ejecutar en el sistema.

No significa que los usuarios no puedan ejecutar determinados scripts de PowerShell. Por lo tanto, las políticas de ejecución evitan ejecuciones de scripts no intencionales.

El Bypass y Unrestricted son dos políticas de ejecución importantes. Estas dos políticas obtuvieron comportamientos muy idénticos.

Personalizar la política de ejecución

Los usuarios de PowerShell pueden cambiar fácilmente la política existente. El cmdlet Set-ExecutionPolicy se utiliza para personalizar las políticas de ejecución de PowerShell.

Sintaxis:

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

El parámetro -ExecutionPolicy especifica la política de ejecución de PowerShell, como Bypass y Unrestricted. Además, el indicador -Scope puede dar el alcance de la política como Process, CurrentUser o LocalMachine.

Política PowerShell Bypass

La política Bypass se utiliza para omitir todas las comprobaciones de seguridad de Windows PowerShell. El riesgo es que la política Bypass le permite ejecutar cualquier script de PowerShell sin advertencias ni avisos.

Por lo tanto, los usuarios deben tener cuidado al utilizar la política Bypass. Usualmente, usamos esta política para aplicaciones que incluyen su modelo de seguridad.

La política de ejecución Bypass se puede establecer como se muestra a continuación.

Set-ExecutionPolicy -ExecutionPolicy Bypass

Producción:

Política de Bypass de PowerShell

Dado que le permite ejecutar cualquier secuencia de comandos de PowerShell, PowerShell le advierte que las secuencias de comandos maliciosas pueden ejecutarse sin querer y dañar sus datos privados. Debe ejecutar PowerShell con privilegios de administrador para cambiar las políticas de ejecución.

Podemos confirmar el cambio de política usando el cmdlet Get-ExecutionPolicy.

Get-ExecutionPolicy -List

Producción:

Lista ExecutionPolicy Bypass

El cambio de política afectó al alcance de LocalMachine.

Política Unrestricted de PowerShell

La política Unrestricted es similar a la de Bypass. La principal diferencia es que la política Unrestricted le avisará y le pedirá los permisos correctos antes de ejecutar un script sin firmar.

Puede establecer esta política de ejecución mediante el cmdlet Set-ExecutionPolicy.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Producción:

Política sin restricciones de PowerShell

Podemos confirmar el cambio anterior con el cmdlet Get-ExecutionPolicy.

Producción:

Lista Unrestricted 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.