
पावरशेल रनस्पेस पोस्ट एक्सप्लॉयटेशन टूलकिट
PowerShell Runspace पोस्ट एक्सप्लॉइटेशन टूलकिट
संस्करण: 2.6 लाइसेंस: BSD 3-Clause
p0wnedShell एक आक्रामक PowerShell होस्ट एप्लीकेशन है जो C# में लिखा गया है। यह powershell.exe पर निर्भर नहीं करता बल्कि PowerShell कमांड और फंक्शन्स को एक PowerShell रनस्पेस वातावरण (.NET) के भीतर चलाता है। इसमें बहुत सारे आक्रामक PowerShell मॉड्यूल और बाइनरी शामिल हैं जो पोस्ट एक्सप्लॉइटेशन की प्रक्रिया को आसान बनाते हैं। हमने एक "ऑल इन वन" पोस्ट एक्सप्लॉइटेशन टूल बनाने की कोशिश की जिसका उपयोग हम सभी मिटिगेशन सॉल्यूशंस (या कम से कम कुछ) को बायपास करने के लिए कर सकें, और इसमें सभी प्रासंगिक टूलिंग शामिल हो। आप इसका उपयोग Active Directory वातावरण में आधुनिक हमले करने और अपनी ब्लू टीम में जागरूकता पैदा करने के लिए कर सकते हैं ताकि वे सही रक्षा रणनीति बना सकें।
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 सत्र/शेल से काम नहीं करता.... अभी तक!
पैरेंट प्रोसेस आईडी बदलने का उपयोग सिस्टम विशेषाधिकारों के साथ p0wnedShell प्रक्रिया को स्पॉन करने के लिए भी किया जा सकता है,
उदाहरण के लिए lsass को पैरेंट प्रक्रिया के रूप में उपयोग करना।
इसके लिए आपको UAC एलिवेटेड एडमिनिस्ट्रेटर अनुमतियाँ आवश्यक हैं।
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] कृपया एक वैध पैरेंट प्रक्रिया का नाम दर्ज करें।
[+] उदाहरण के लिए: 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 (या नए .NET संस्करण फ़ोल्डर)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
x64 बाइनरी के रूप में चलाने और Applocker को बायपास करने के लिए:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (या नए .NET संस्करण फ़ोल्डर)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
रनस्पेस के अंदर PowerShell फंक्शन्स को Base64 एनकोड और संपीड़ित स्ट्रिंग्स से मेमोरी में लोड किया जाता है।
बाइनरी को ReflectivePEInjection का उपयोग करके मेमोरी में लोड किया जाता है (बाइट ऐरे Gzip का उपयोग करके संपीड़ित होते हैं और p0wnedShell में Base64 एनकोड स्ट्रिंग्स के रूप में सहेजे जाते हैं)।
p0wnedShell मुख्य रूप से harmj0y, Powersploit के लोग, Sean Metcalf, SubTee, Nikhil Mittal, Besimorhino, Benjamin Delpy, Breenmachine, FoxGlove Security, Kevin Robertson, FuzzySecurity, James Forshaw और मेरे द्वारा भूल गए किसी भी अन्य व्यक्ति के टूल्स और ज्ञान पर आधारित है। तो शाउट-आउट उन्हें और निश्चित रूप से रेडमंड में हमारे दोस्तों को जाता है जिन्होंने हमें एक बहुत शक्तिशाली हैकिंग भाषा तक पहुँच प्रदान की।
किसी समस्या की रिपोर्ट करने या सुविधा का अनुरोध करने के लिए, मुझसे संपर्क करने में संकोच न करें:
Cornelis at dePlaa.com या @Cn33lis