¿Cuáles son algunas formas de eludir las políticas de ejecución de PowerShell?
De forma predeterminada, PowerShell deshabilita la ejecución de scripts de PowerShell en sistemas Windows. Esto puede obstaculizar a los evaluadores de penetración, administradores de sistemas y desarrolladores…. Aquí, cubriré 15 formas de eludir las políticas de ejecución de PowerShell sin requerir derechos de administrador de sistemas.
Estoy seguro de que hay muchas técnicas que me faltan (o simplemente no conozco). (o simplemente no lo sé), pero espero que esta publicación pueda brindarle a alguien que lo necesita un buen comienzo.
**¿Qué es una política de ejecución de PowerShell? **
Las políticas de ejecución de PowerShell determinan qué tipos de scripts de PowerShell se pueden ejecutar en un sistema. De forma predeterminada, la política está "restringida" (limitada). Sin embargo, esta configuración nunca fue considerada un control de seguridad. En cambio, impide que los administradores tomen medidas. Por eso tenemos tantas formas de evitarlo. Incluyendo algunos métodos proporcionados por Microsoft. Más información sobre cómo aplicar la configuración de políticas (configuraciones predeterminadas para los controles de seguridad) en PowerShell. Recomiendo leer el blog de Carlos Pérez. Proporciona una buena visión general.
**Por qué omitir las políticas de ejecución**
La razón que más escucho es que la gente quiere automatizar, pero así es como funciona PowerShell en manos de administradores, evaluadores de penetración y piratas informáticos Algunas otras razones por las que es tan popular:
Cómo ver la política de ejecución
Antes de poder utilizar todas las funciones perfectas de PowerShell, un atacante puede eludir la política de ejecución "restringida" y puede utilizar comandos de PowerShell para hacer esto. Puede utilizar el comando de PowerShell "executionpolicy" para ver la configuración actual. Si lo está viendo por primera vez, es posible que la configuración esté configurada en "Restringido", como se muestra a continuación.
También vale la pena señalar que las políticas de ejecución se pueden configurar en diferentes niveles del sistema. Para verlos, utilice la lista de comandos a continuación. Para obtener más información, puede hacer clic aquí para ver la "Set-ExecutionPolicy" de Microsoft.
Cuando intento ejecutar en un sistema con la política de ejecución predeterminada, aparece el siguiente error:
Omitir la política de ejecución de PowerShell
1. Pegue el script directamente en la política de ejecución interactiva de PowerShell. Pegue en la consola interactiva de PowerShell
Copie y pegue su script de PowerShell en la consola interactiva como se muestra a continuación. Sin embargo, tenga en cuenta que estará limitado por sus permisos de usuario actuales. Este es un ejemplo básico de cómo ejecutar un script de forma rápida y sencilla en una consola interactiva. Además, esta técnica no cambia la configuración y no requiere escritura en el disco.
6 .Usar EncodeCommand
Esto es muy similar a usar el comando "Comando", pero proporciona una cadena codificada Unicode/Base64 para todos los scripts. Cifrar su secuencia de comandos de esta manera le ayuda a evitar cualquier error que pueda encontrar al ejecutar la secuencia de comandos mediante el comando "Comando". Esta técnica no provoca cambios en el archivo de configuración y no requiere escritura en el disco. El siguiente ejemplo es de Posh-SecMod.
Ejemplo 1: Comando completo
7. Usando el comando Invoke-Command
Encontré esto interesante en el método del blog de obscuresec . Este es un método típico que se realiza a través de una consola interactiva de PowerShell.
Pero lo bueno es que cuando la comunicación remota de PowerShell está activada, puedo usarlo para ejecutar comandos en el sistema remoto. Esta técnica no genera cambios de configuración ni solicitudes de escritura en el disco.
8. Utilice el comando Invoke-Expression
Este es otro método típico realizado a través de una consola interactiva de PowerShell. Esta técnica no genera cambios de configuración ni solicitudes de escritura en el disco. A continuación, enumero algunas formas comunes de eludir las políticas de ejecución mediante Invoke-Expression.
Ejemplo 1: Obtener el comando completo usando Get-Content
9.
Cuando ejecutas un comando desde un archivo de script , esta es una buena manera de eludir las políticas de aplicación de la ley. Cuando se utiliza este indicador, "no se bloquean operaciones ni se emiten advertencias ni mensajes". Esta técnica no genera cambios de configuración ni solicitudes de escritura en el disco.
12. Deshabilite ExecutionPolicy intercambiando AuthorizationManager
Esto es de hecho lo que obtuve de http://www.nivot. org Una idea que vi. Las siguientes funciones se pueden ejecutar a través de PowerShell interactivo. Después de llamar a esta función, "AuthorizationManager" se reemplazará por nulo. El resultado final es que el resto de la sesión esencialmente no está restringido por la política de ejecución. Sin embargo, el cambio se aplicará durante la duración de la sesión.
Resumen
Creo que el tema aquí es que la estrategia de ejecución utilizada no es necesariamente Desarrollador, Administrador o. Microsoft nunca pretendió que esto fuera un control de seguridad. Por eso hay tantas opciones para evitarlo. Microsoft ha hecho un buen trabajo al ofrecer algunas opciones nativas y la comunidad de seguridad ha aportado algunos consejos muy interesantes. Gracias a todos los que contribuyeron a través de blogs y demostraciones.