
एक प्रॉक्सी-जागरूक C2 फ्रेमवर्क जो रेड टीमर्स को पोस्ट-एक्सप्लॉयटेशन और लेटरल मूवमेंट में सहायता करने के लिए उपयोग किया जाता है।

PoshC2 एक प्रॉक्सी-जागरूक C2 फ्रेमवर्क है जिसका उपयोग पेनिट्रेशन टेस्टर्स द्वारा रेड टीमिंग, पोस्ट-एक्सप्लॉइटेशन और लेटरल मूवमेंट में सहायता के लिए किया जाता है।
PoshC2 मुख्य रूप से Python3 में लिखा गया है और एक मॉड्यूलर प्रारूप का अनुसरण करता है ताकि उपयोगकर्ता अपने स्वयं के मॉड्यूल और टूल जोड़ सकें, जिससे एक विस्तार योग्य और लचीला C2 फ्रेमवर्क बन सके। बॉक्स से बाहर, PoshC2 PowerShell/C# और Python2/Python3 इम्प्लांट के साथ आता है, जिसमें PowerShell v2 और v4, C++ और C# स्रोत कोड में पेलोड, विभिन्न प्रकार के एक्जीक्यूटेबल, DLL और रॉ शेलकोड के साथ-साथ Python2/Python3 पेलोड शामिल हैं। ये विंडोज, *nix और OSX सहित विभिन्न उपकरणों और ऑपरेटिंग सिस्टम पर C2 कार्यक्षमता को सक्षम बनाते हैं।
PoshC2 की अन्य उल्लेखनीय विशेषताओं में शामिल हैं:
हम PoshC2 दस्तावेज़ीकरण https://poshc2.readthedocs.io/en/latest/ पर बनाए रखते हैं।
हमें #Slack पर खोजें - poshc2.slack.com (निमंत्रण का अनुरोध करने के लिए [email protected] पर ईमेल भेजें)
आप PoshC2 को सीधे स्थापित कर सकते हैं या Docker इमेज का उपयोग कर सकते हैं, दोनों के लिए निर्देश नीचे दिए गए हैं।
PoshC2 स्थापित करने के लिए एक स्थापना स्क्रिप्ट प्रदान की गई है:
*** PoshC2 स्थापना स्क्रिप्ट ***
उपयोग:
./Install.sh -b <git ब्रांच> -p <PoshC2 को क्लोन करने के लिए निर्देशिका>
डिफ़ॉल्ट /opt/PoshC2 पर मास्टर ब्रांच है
स्थापना स्क्रिप्ट apt अपडेट और स्थापनाएँ करती है, इसलिए उन्नत विशेषाधिकार आवश्यक हैं।
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash
वैकल्पिक रूप से, रिपॉजिटरी को क्लोन किया जा सकता है और स्थापना स्क्रिप्ट को मैन्युअल रूप से चलाया जा सकता है।
sudo ./Install.sh
आप Install.sh स्क्रिप्ट को -p तर्क के रूप में पास करके PoshC2 स्थापना निर्देशिका मैन्युअल रूप से सेट कर सकते हैं। डिफ़ॉल्ट /opt/PoshC2 है:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2
हम master ब्रांच को स्थिर रखना चाहते हैं ताकि उपयोगकर्ता आवश्यकता पड़ने पर उस पर भरोसा कर सकें, और इस कारण से बदलाव अक्सर फीचर-पूर्ण हो सकते हैं लेकिन master पर अभी तक मौजूद नहीं होते क्योंकि उनका पूरी तरह से परीक्षण नहीं किया गया है और अभी तक स्वीकृत नहीं किए गए हैं।
यदि आप PoshC2 में आगामी सुविधाओं को देखना चाहते हैं, तो आप dev ब्रांच, या dev से अलग होने वाली किसी भी व्यक्तिगत फीचर ब्रांच की जांच कर सकते हैं।
चूंकि dev में विलय करने से पहले सुविधाओं का परीक्षण किया जाता है, इसलिए यह ब्रांच अभी भी काफी स्थिर होनी चाहिए और ऑपरेटर अपने अभियान के लिए इस ब्रांच या किसी विशेष फीचर ब्रांच का उपयोग करने का विकल्प चुन सकते हैं।
हालाँकि, यह स्थिरता के बदले नई सुविधाओं का व्यापार करता है, इसलिए इसे अपने विवेक से करें।
dev या किसी फीचर ब्रांच का उपयोग करने के लिए, Install.sh स्क्रिप्ट में -b तर्क के रूप में ब्रांच का नाम पास करें:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev
ध्यान दें कि URL में ब्रांच का नाम भी शामिल है (यहाँ master के बजाय dev)।
आप Docker का उपयोग करके भी PoshC2 चला सकते हैं, यह अधिक स्थिर संचालन की अनुमति देता है और PoshC2 को अन्य ऑपरेटिंग सिस्टम पर आसानी से चलाने में सक्षम बनाता है।
Docker स्थापना PoshC2 को क्लोन नहीं करती क्योंकि Docker Hub पर PoshC2 इमेज का उपयोग किया जाता है, इसलिए केवल कुछ निर्भरताओं और स्क्रिप्ट की न्यूनतम स्थापना की जाती है।
शुरू करने के लिए, होस्ट पर Docker स्थापित करें और फिर अपने OS के लिए आवश्यक होने पर PoshC2 प्रोजेक्ट निर्देशिका को Docker में साझा निर्देशिका के रूप में जोड़ें। डिफ़ॉल्ट रूप से यह *nix पर /var/poshc2 और Mac पर /private/var/poshc2 है।
स्थापना स्क्रिप्ट:
*** Docker के लिए PoshC2 स्थापना स्क्रिप्ट ***
उपयोग:
./Install-for-Docker.sh -b <git ब्रांच>
डिफ़ॉल्ट मास्टर ब्रांच है
स्थापना स्क्रिप्ट स्क्रिप्ट स्थापनाएँ करती है, इसलिए उन्नत विशेषाधिकार आवश्यक हैं।
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash
Docker के साथ dev या फीचर ब्रांच का उपयोग करने के लिए, उपयुक्त ब्रांच पर Install-for-Docker.sh को कर्ल करें और ब्रांच नाम को तर्क के रूप में पास करें:
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME
Windows पर, PoshC2.psm1 PowerShell मॉड्यूल आयात करें।
Import-Module -DisableNameChecking C:\PoshC2\resources\scripts\PoshC2.psm1
posh-project -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" -Arg1 "-n" -Arg2 "newproject"
posh-config -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh-server -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" username
एक नया प्रोजेक्ट बनाएँ:
posh-project -n <project-name>
इस स्क्रिप्ट का उपयोग करके प्रोजेक्ट पर स्विच किया जा सकता है या सूचीबद्ध किया जा सकता है:
[*] उपयोग: posh-project -n <new-project-name>
[*] उपयोग: posh-project -s <project-to-switch-to>
[*] उपयोग: posh-project -l (प्रोजेक्ट सूचीबद्ध करता है)
[*] उपयोग: posh-project -d <project-to-delete>
[*] उपयोग: posh-project -c (वर्तमान प्रोजेक्ट दिखाता है)
अपने प्रोजेक्ट के लिए कॉन्फ़िगरेशन संपादित करें:
posh-config
PoshC2 सर्वर लॉन्च करें:
posh-server
वैकल्पिक रूप से इसे एक सेवा के रूप में शुरू करें:
posh-service
अलग से, इम्प्लांट के साथ इंटरैक्ट करने के लिए ImplantHandler चलाएँ:
posh -u <username>
PoshC2 पर पूर्ण दस्तावेज़ीकरण के लिए https://poshc2.readthedocs.io/en/latest/ देखें।
यदि आप Docker का उपयोग कर रहे हैं, तो आप posh-server और posh के लिए -t विकल्प के साथ Docker इमेज टैग निर्दिष्ट कर सकते हैं।
उदा.
posh-server -t latest
यह अनुशंसित नहीं है कि किसी अभियान के दौरान PoshC2 को अपडेट किया जाए। आने वाले बदलाव किसी मौजूदा प्रोजेक्ट के साथ असंगत हो सकते हैं और अस्थिर व्यवहार का कारण बन सकते हैं।
जब PoshC2 के git क्लोन किए गए संस्करण का उपयोग कर रहे हों, तो आप निम्नलिखित कमांड का उपयोग करके अपनी PoshC2 स्थापना को अपडेट कर सकते हैं:
*** PoshC2 अपडेट स्क्रिप्ट ***
उपयोग:
posh-update -b <git ब्रांच>
डिफ़ॉल्ट मास्टर ब्रांच है
आप उपयुक्त टैग का संदर्भ देकर PoshC2 के पुराने संस्करण का उपयोग कर सकते हैं। ध्यान दें कि यह केवल तभी काम करता है जब आपने रिपॉजिटरी को क्लोन किया हो। आप निम्नलिखित जारी करके रिपॉजिटरी के टैग सूचीबद्ध कर सकते हैं:
git tag --list
यदि आपके पास PoshC2 का स्थानीय क्लोन है, तो आप ऑफ़लाइन रहते हुए उपयोग में आने वाले संस्करण को बदल सकते हैं, बस उस संस्करण को चेक आउट करके जिसे आप उपयोग करना चाहते हैं:
git reset --hard <tag name>
उदाहरण के लिए:
git reset --hard v4.8
हालाँकि, ध्यान दें कि यह फ़ाइलों में किए गए किसी भी स्थानीय परिवर्तन को अधिलेखित कर देगा, जैसे कि कॉन्फ़िगरेशन फ़ाइलों में परिवर्तन, और आपको उस संस्करण के लिए स्थापना स्क्रिप्ट को फिर से चलाना पड़ सकता है या पर्यावरण को उचित रूप से पुनः सेट करना पड़ सकता है।
इस सॉफ़्टवेयर का उपयोग केवल अधिकृत परीक्षण गतिविधि के लिए किया जाना चाहिए, न कि दुर्भावनापूर्ण उपयोग के लिए।
इस सॉफ़्टवेयर को डाउनलोड करके आप उपयोग की शर्तों और लाइसेंसिंग समझौते को स्वीकार कर रहे हैं।