
Kit de post-exploitation PowerShell Runspace
PowerShell Runspace Post Exploitation Toolkit
Version : 2.6 Licence : BSD 3-Clause
p0wnedShell est une application hôte PowerShell offensive écrite en C# qui ne dépend pas de powershell.exe mais exécute des commandes et fonctions PowerShell dans un environnement runspace PowerShell (.NET). Il contient de nombreux modules PowerShell offensifs et binaires inclus pour faciliter le processus de Post-Exploitation. Nous avons essayé de construire un outil de Post-Exploitation « tout-en-un » que nous pourrions utiliser pour contourner toutes les solutions de mitigation (ou du moins certaines), et qui intègre tous les outils pertinents. Vous pouvez l'utiliser pour effectuer des attaques modernes dans des environnements Active Directory et sensibiliser votre équipe Bleue afin qu'elle puisse élaborer les bonnes stratégies de défense.
Pour compiler p0wnedShell, vous devez ouvrir ce projet dans Microsoft Visual Studio et le construire pour la plateforme x64/x86. Vous pouvez modifier les options AutoMasq suivantes avant la compilation :
public static bool AutoMasq = true;
public static string masqBinary = @"C:\Windows\Notepad.exe";
Avec AutoMasq désactivé (false), exécutez simplement l'exécutable qui fonctionne normalement. Avec AutoMasq activé, vous pouvez renommer l'exécutable p0wnedShell sous le nom du processus que vous allez masquer (masqBinary), afin qu'il ait l'apparence de ce processus (par exemple notepad.exe).
En utilisant l'argument facultatif "-parent" en ligne de commande, vous pouvez démarrer p0wnedShell avec un autre ID de processus parent. En combinant l'option de masquage PEB et un ID de processus parent différent (par exemple svchost), vous pouvez donner à p0wnedShell l'apparence d'un service légitime ;)
Remarque : Exécuter p0wnedShell avec un autre ID de processus parent ne fonctionne pas encore à partir d'une session Meterpreter / shell...
Changer l'ID du processus parent peut également être utilisé pour générer un processus p0wnedShell avec des privilèges système,
par exemple en utilisant lsass comme processus parent.
Pour cela, vous devez disposer des autorisations administrateur élevées par UAC.
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] Veuillez entrer un nom de processus parent valide.
[+] Par exemple : C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass
Pour exécuter en tant que binaire x86 et contourner AppLocker (crédits pour cette excellente astuce à Casey Smith alias subTee) :
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (Ou dossier de version .NET plus récente)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
Pour exécuter en tant que binaire x64 et contourner AppLocker :
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (Ou dossier de version .NET plus récente)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
Les fonctions PowerShell dans le Runspace sont chargées en mémoire à partir de chaînes encodées en Base64 et compressées.
Les binaires sont chargés en mémoire via ReflectivePEInjection (les tableaux d'octets sont compressés avec Gzip et sauvegardés dans p0wnedShell sous forme de chaînes encodées en Base64).
p0wnedshell est fortement basé sur des outils et des connaissances de personnes comme harmj0y, les gars de Powersploit, Sean Metcalf, SubTee, Nikhil Mittal, Besimorhino, Benjamin Delpy, Breenmachine, FoxGlove Security, Kevin Robertson, FuzzySecurity, James Forshaw et tous ceux que j'ai oubliés. Donc un grand merci à eux et bien sûr à nos amis de Redmond pour nous avoir donné accès à un langage de piratage très puissant.
Pour signaler un problème ou demander une fonctionnalité, n'hésitez pas à me contacter à :
Cornelis at dePlaa.com ou @Cn33lis