
PowerShell Runspace مجموعة أدوات استغلال ما بعد الاختراق
أداة ما بعد الاستغلال لـ PowerShell Runspace
الإصدار: 2.6 الترخيص: BSD 3-Clause
p0wnedShell هو تطبيق مضيف PowerShell هجومي مكتوب بلغة C# لا يعتمد على powershell.exe بل يقوم بتشغيل أوامر ووظائف PowerShell ضمن بيئة Runspace لـ PowerShell (.NET). يتضمن العديد من وحدات PowerShell الهجومية والملفات الثنائية لتسهيل عملية ما بعد الاستغلال. ما حاولنا فعله هو بناء أداة ما بعد استغلال 'كل شيء في واحد' يمكننا استخدامها لتجاوز جميع حلول التخفيف (أو على الأقل بعضها)، وتضمين جميع الأدوات ذات الصلة. يمكنك استخدامها لتنفيذ هجمات حديثة ضمن بيئات Active Directory ورفع الوعي لدى فريق الدفاع (Blue team) لديك حتى يتمكنوا من بناء استراتيجيات دفاعية صحيحة.
لتجميع p0wnedShell، تحتاج إلى فتح هذا المشروع في Microsoft Visual Studio وبنائه للنظام الأساسي x64/x86. يمكنك تغيير خيارات AutoMasq التالية قبل التجميع:
public static bool AutoMasq = true;
public static string masqBinary = @"C:\Windows\Notepad.exe";
عند تعيين AutoMasq إلى false، تقوم بتشغيل الملف التنفيذي بشكل طبيعي. مع تمكين AutoMasq، يمكنك إعادة تسمية الملف التنفيذي p0wnedShell ليكون مطابقًا للعملية التي ستقوم بانتحالها (masqBinary)، بحيث يبدو كتلك العملية (على سبيل المثال notepad.exe).
باستخدام وسيطة سطر الأوامر الاختيارية "-parent"، يمكنك بدء p0wnedShell باستخدام معرف عملية أصلية أخرى. عند الجمع بين خيار PEB Masq ومعرف عملية أصلية مختلفة (على سبيل المثال svchost)، يمكنك إعطاء p0wnedShell مظهر خدمة شرعية ;)
ملاحظة: تشغيل p0wnedShell باستخدام معرف عملية أصلية أخرى لا يعمل من جلسة Meterpreter/shell... حتى الآن!
Changing the Parent Process ID can also be used to spawn a p0wnedShell process with system privileges,
for example using lsass as the the parent process.
For this you need to have UAC elevated administrator permissions.
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] Please enter a valid Parent Process name.
[+] For Example: C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass
لتشغيله كملف ثنائي x86 وتجاوز Applocker (يعود الفضل في هذا التجاويز الرائع إلى Casey Smith المعروف بـ subTee):
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (Or newer .NET version folder)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
لتشغيله كملف ثنائي x64 وتجاوز Applocker:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (Or newer .NET version folder)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
يتم تحميل دوال PowerShell داخل بيئة Runspace في الذاكرة من سلاسل مضغوطة ومشفرة بـ Base64.
يتم تحميل الملفات الثنائية في الذاكرة باستخدام ReflectivePEInjection (يتم ضغط مصفوفات البايت باستخدام Gzip وحفظها داخل p0wnedShell كـ سلاسل مشفرة بـ Base64).
يعتمد p0wnedShell بشكل كبير على أدوات ومعرفة أشخاص مثل harmj0y، وفريق PowerSploit، وSean Metcalf، وSubTee، وNikhil Mittal، وBesimorhino، وBenjamin Delpy، وBreenmachine، وFoxGlove Security، وKevin Robertson، وFuzzySecurity، وJames Forshaw، وأي شخص آخر نسيت. لذا فالشكر موصول لهم وبالطبع لأصدقائنا في Redmond لمنحنا إمكانية الوصول إلى لغة اختراق قوية جداً.
للإبلاغ عن مشكلة أو طلب ميزة، لا تتردد في التواصل معي على:
Cornelis at dePlaa.com أو @Cn33lis