
Spray365 makes spraying Microsoft accounts (Office 365 / Azure AD) easy through its customizable two-step password spraying approach. The built-in execution plan features options that attempt to bypass Azure Smart Lockout and insecure conditional access policies.

Spray365 एक पासवर्ड स्प्रेइंग टूल है जो Microsoft खातों (Office 365 / Azure AD) के लिए वैध क्रेडेंशियल की पहचान करता है। Spray365 पहले से उपलब्ध कई अन्य पासवर्ड स्प्रेइंग टूल्स से कैसे अलग है? Spray365 एक "निष्पादन योजना" से पासवर्ड स्प्रे करने में सक्षम बनाता है। जबकि एक पूर्व-निर्मित निष्पादन योजना होने से, जो स्प्रेइंग ऑपरेशन के बहुत पहले ही उसका वर्णन करती है, Spray365 द्वारा लाभ उठाए जाने वाले कई अन्य लाभ हैं, यह नेटवर्क त्रुटि या अन्य रुकावट के बाद पासवर्ड स्प्रे को फिर से शुरू करने (-R विकल्प) की भी अनुमति देता है। हालांकि Spray365 का उपयोग करके सीधे Spray365 निष्पादन योजना बनाना सबसे आसान है, अन्य उपकरण जो एक संगत JSON संरचना उत्पन्न करते हैं, अद्वितीय पासवर्ड स्प्रेइंग वर्कफ़्लो बनाना आसान बनाते हैं।
Spray365 कुछ ऐसे विकल्प प्रदान करता है जो क्रेडेंशियल स्प्रे करते समय उपयोगी होते हैं। रैंडम उपयोगकर्ता एजेंट का उपयोग असुरक्षित सशर्त पहुँच नीतियों का पता लगाने और उन्हें बायपास करने के लिए किया जा सकता है जो अनुमत उपकरणों के प्रकार को सीमित करने के लिए कॉन्फ़िगर की गई हैं। इसी प्रकार, --shuffle_auth_order तर्क क्रेडेंशियल को कम अनुमानित तरीके से स्प्रे करने का एक शानदार तरीका है। यह विकल्प बुद्धिमान खाता लॉकआउट (जैसे, Azure Smart Lockout) को बायपास करने के प्रयास में जोड़ा गया था। हालाँकि यह सही नहीं है, क्रेडेंशियल प्रयास करने के क्रम को यादृच्छिक बनाने के अन्य लाभ भी हैं, जैसे इन स्प्रेइंग ऑपरेशनों का पता लगाना और भी कठिन बनाना। Spray365 HTTP/HTTPS पर ट्रैफ़िक को प्रॉक्सी करने का भी समर्थन करता है, जो स्प्रेइंग ऑपरेशन के स्रोत में हेरफेर करने के लिए Burp Suite जैसे अन्य उपकरणों के साथ अच्छी तरह से एकीकृत होता है।



रिपॉजिटरी को क्लोन करें, आवश्यक Python पैकेज स्थापित करें, और Spray365 चलाएँ!
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py
क्रेडेंशियल स्प्रे करने के लिए एक निष्पादन योजना की आवश्यकता है, इसलिए हमें एक बनाने की आवश्यकता है! Spray365 "normal" मोड में generate कमांड चलाकर अपनी स्वयं की निष्पादन योजना बना सकता है: (spray365.py generate normal)। अधिक विवरण के लिए सहायता देखें (spray365.py generate -h / spray365.py generate normal -h)।
$ python3 spray365.py generate normal -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames> -pf <file_containing_passwords>
उदाहरण:
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords
Spray365 वैध क्रेडेंशियल स्प्रे करके मल्टीफ़ैक्टर प्रमाणीकरण (MFA) और सशर्त पहुँच नीति कॉन्फ़िगरेशन का ऑडिट भी कर सकता है। ऑडिट-शैली की निष्पादन योजनाएँ क्रेडेंशियल की दी गई जोड़ी के लिए User-Agent + AAD Client ID + AAD Endpoint ID के सभी संयोजनों का प्रयास करती हैं।
Spray365 "audit" मोड में generate कमांड चलाकर ऑडिट-शैली की निष्पादन योजना बना सकता है: (spray365.py generate audit)। अधिक विवरण के लिए सहायता देखें (spray365.py generate -h / spray365.py generate audit -h)। हालाँकि उपयोगकर्ताओं और पासवर्डों की एक सूची अलग-अलग प्रदान करना संभव है (-u और -pf), ये विकल्प पासवर्ड स्प्रेइंग (ऑडिट नहीं) के लिए निष्पादन योजनाओं के लिए बेहतर उपयुक्त हैं, जिससे संभवतः कई अमान्य लॉगिन प्रयास होंगे। इसके बजाय, --passwords_in_userfile के साथ -u / --user_file पर विचार करें, जो Spray365 को "user_file" से प्रत्येक पंक्ति को कोलन पर विभाजित करके पासवर्ड निकालने का निर्देश देगा, जहाँ कोलन से पहले का मान उपयोगकर्ता नाम के रूप में और कोलन के बाद का मान पासवर्ड के रूप में माना जाता है (जैसे, <username>:<password>, jsmith:Password01)।
$ python3 spray365.py generate audit -ep <execution_plan_filename> -d <domain_name> -u <file_containing_usernames_and_passwords> --passwords_in_userfile
उदाहरण:
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile
एक बार निष्पादन योजना बन जाने के बाद, इसका प्रसंस्करण करने के लिए Spray365 का उपयोग किया जा सकता है। "spray" (spray365.py spray) मोड में Spray365 चलाने से निर्दिष्ट निष्पादन योजना संसाधित होगी और उपयुक्त क्रेडेंशियल स्प्रे होंगे। सभी प्रकार की निष्पादन योजनाएँ (सामान्य और ऑडिट) इस मोड में संसाधित की जा सकती हैं। अधिक विवरण के लिए सहायता देखें (spray365.py spray -h)।
$ python3 spray365.py spray -ep <execution_plan_filename>
उदाहरण:
$ python3 spray365.py spray -ep ex-plan.s365
निष्पादन योजना से क्रेडेंशियल स्प्रे करने के बाद, Spray365 परिणामों के साथ एक JSON फ़ाइल आउटपुट करता है। इस फ़ाइल को JQ जैसे अन्य उपकरणों का उपयोग करके संसाधित किया जा सकता है ताकि स्प्रेइंग ऑपरेशन के बारे में जानकारी प्राप्त की जा सके। हालाँकि, Spray365 में एक "review" कमांड भी शामिल है जिसका उपयोग निम्न के बारे में जानने के लिए किया जा सकता है:
अधिक विवरण के लिए सहायता देखें (spray365.py review -h)।
$ python3 spray365.py review <spray_results_json_filename>
उदाहरण:
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json
Usage: spray365.py generate normal [OPTIONS]
एक सामान्य (सामान्य) निष्पादन योजना उत्पन्न करें
Options:
-ep, --execution_plan फ़ाइल पथ जहाँ निष्पादन योजना सहेजी जानी चाहिए [required]
-d, --domain प्रमाणीकरण के लिए Office 365 डोमेन [required]
--delay प्रमाणीकरण प्रयासों के बीच प्रतीक्षा करने के लिए सेकंड में विलंब [default: 30]
-mD, --min_loop_delay किसी दिए गए उपयोगकर्ता के लिए प्रमाणीकरण प्रयासों के बीच प्रतीक्षा करने का न्यूनतम समय। यह विकल्प एक स्प्रे पुनरावृत्ति में लगने वाले समय को ध्यान में रखता है, इसलिए हर बार प्रमाणीकरण-पूर्व विलंब नहीं हो सकता है [default: 0]
User options:
-u, --user_file स्प्रे करने के लिए उपयोगकर्ता नामों वाली फ़ाइल (डोमेन के बिना प्रति पंक्ति एक) [required]
Password options: [mutually_exclusive, required]
-p, --password स्प्रे करने के लिए पासवर्ड
-pf, --password_file स्प्रे करने के लिए पासवर्ड वाली फ़ाइल (प्रति पंक्ति एक)
--passwords_in_userfile user_file से पासवर्ड निकालें (कोलन द्वारा अलग किए गए)
Authentication options:
-cID, --aad_client प्रमाणीकरण के दौरान उपयोग किया जाने वाला क्लाइंट आईडी। यादृच्छिक चयन के लिए अनिर्दिष्ट छोड़ें, या अल्पविराम से अलग किया गया स्ट्रिंग प्रदान करें
-eID, --aad_endpoint प्रमाणीकरण के दौरान उपयोग किया जाने वाला एंडपॉइंट आईडी। यादृच्छिक चयन के लिए अनिर्दिष्ट छोड़ें, या अल्पविराम से अलग किया गया स्ट्रिंग प्रदान करें
User Agent options: [mutually_exclusive]
-cUA, --custom_user_agent प्रमाणीकरण अनुरोधों के लिए कस्टम यूज़र एजेंट सेट करें
-rUA, --random_user_agent प्रमाणीकरण अनुरोधों के लिए यूज़र एजेंट को यादृच्छिक करें [default: True]
Shuffle options: [all_or_none]
-S, --shuffle_auth_order प्रमाणीकरण प्रयासों के क्रम को फेरबदल करें ताकि प्रत्येक पुनरावृत्ति (User1:Pass1, User2:Pass1, User3:Pass1) को यादृच्छिक क्रम में और पासवर्डों की यादृच्छिक व्यवस्था के साथ स्प्रे किया जाए, जैसे (User4:Pass16, User13:Pass25, User19:Pass40)। ध्यान रखें कि यह विकल्प संभावना पैदा करता है कि किसी दिए गए उपयोगकर्ता के लिए लगातार प्रमाणीकरण प्रयासों के बीच का समय DELAY सेकंड अलग हो सकता है। किसी भी उपयोगकर्ता के लिए प्रमाणीकरण प्रयासों के बीच न्यूनतम विलंब लागू करने के लिए -mD/--min_loop_delay विकल्प का उपयोग करने पर विचार करें।
-SO, --shuffle_optimization_attempts [default: 10]
-h, --help यह संदेश दिखाएँ और बाहर निकलें।
Usage: spray365.py generate audit [OPTIONS]
MFA/सशर्त पहुँच नीतियों में खामियों की पहचान करने के लिए एक निष्पादन योजना उत्पन्न करें। यह ज्ञात क्रेडेंशियल के साथ सबसे अच्छा काम करता है।
Options:
-ep, --execution_plan फ़ाइल पथ जहाँ निष्पादन योजना सहेजी जानी चाहिए [required]
-d, --domain प्रमाणीकरण के लिए Office 365 डोमेन [required]
--delay प्रमाणीकरण प्रयासों के बीच प्रतीक्षा करने के लिए सेकंड में विलंब [default: 30]
-mD, --min_loop_delay किसी दिए गए उपयोगकर्ता के लिए प्रमाणीकरण प्रयासों के बीच प्रतीक्षा करने का न्यूनतम समय। यह विकल्प एक स्प्रे पुनरावृत्ति में लगने वाले समय को ध्यान में रखता है, इसलिए हर बार प्रमाणीकरण-पूर्व विलंब नहीं हो सकता है [default: 0]
User options:
-u, --user_file स्प्रे करने के लिए उपयोगकर्ता नामों वाली फ़ाइल (डोमेन के बिना प्रति पंक्ति एक) [required]
Password options: [mutually_exclusive, required]
-p, --password स्प्रे करने के लिए पासवर्ड
-pf, --password_file स्प्रे करने के लिए पासवर्ड वाली फ़ाइल (प्रति पंक्ति एक)
--passwords_in_userfile user_file से पासवर्ड निकालें (कोलन द्वारा अलग किए गए)
Shuffle options: [all_or_none]
-S, --shuffle_auth_order प्रमाणीकरण प्रयासों के क्रम को फेरबदल करें ताकि प्रत्येक पुनरावृत्ति (User1:Pass1, User2:Pass1, User3:Pass1) को यादृच्छिक क्रम में और पासवर्डों की यादृच्छिक व्यवस्था के साथ स्प्रे किया जाए, जैसे (User4:Pass16, User13:Pass25, User19:Pass40)। ध्यान रखें कि यह विकल्प संभावना पैदा करता है कि किसी दिए गए उपयोगकर्ता के लिए लगातार प्रमाणीकरण प्रयासों के बीच का समय DELAY सेकंड अलग हो सकता है। किसी भी उपयोगकर्ता के लिए प्रमाणीकरण प्रयासों के बीच न्यूनतम विलंब लागू करने के लिए -mD/--min_loop_delay विकल्प का उपयोग करने पर विचार करें।
-SO, --shuffle_optimization_attempts [default: 10]
-h, --help यह संदेश दिखाएँ और बाहर निकलें।
Usage: spray365.py spray [OPTIONS]
मौजूदा निष्पादन योजना का उपयोग करके उपयोगकर्ता खातों पर पासवर्ड स्प्रे करें
Options:
-ep, --execution_plan निष्पादन योजना का फ़ाइल पथ [required]
-l, --lockout स्प्रेइंग सत्र को समाप्त करने से पहले देखे जाने वाले खाता लॉकआउट की संख्या (0 के साथ अक्षम करें) [default: 5]
-R, --resume_index निष्पादन योजना में इस स्थान से पासवर्ड स्प्रे करना फिर से शुरू करें [x>=1]
-i, --ignore_success उपयोगकर्ताओं के लिए सफल प्रमाणीकरण प्रयासों को अनदेखा करें और क्रेडेंशियल स्प्रे करना जारी रखें। इस ध्वज को सेट करने से उपयोगकर्ताओं के लिए क्रेडेंशियल स्प्रे करना सक्षम हो जाएगा, भले ही Spray365 ने पहले ही वैध क्रेडेंशियल की पहचान कर ली हो।
Proxy options: [all_or_none]
-x, --proxy HTTP प्रॉक्सी URL (प्रारूप: http[s]://proxy.address:port)
-k, --insecure HTTPS प्रमाणपत्र सत्यापन अक्षम करें
-h, --help यह संदेश दिखाएँ और बाहर निकलें।
Usage: spray365.py review [OPTIONS] RESULTS
वैध खातों और अधिक की पहचान करने के लिए पासवर्ड स्प्रेइंग परिणामों से डेटा देखें
Options:
--show_invalid_creds
--show_invalid_users
-h, --help यह संदेश दिखाएँ और बाहर निकलें।
| लेखक | उपकरण / अन्य | लिंक |
|---|---|---|
| @__TexasRanger | msspray: Azure AD के विरुद्ध पासवर्ड स्प्रे हमले करें और Azure और Office 365 एंडपॉइंट पर MFA के कार्यान्वयन को मान्य करें | https://github.com/SecurityRiskAdvisors/msspray |
पूर्व आपसी सहमति के बिना लक्ष्यों पर हमला करने के लिए इस सॉफ़्टवेयर का उपयोग अवैध है। अंतिम उपयोगकर्ता की ज़िम्मेदारी है कि वह सभी लागू स्थानीय, राज्य और संघीय कानूनों के साथ-साथ किसी भी लागू स्वीकार्य उपयोग नीतियों का पालन करे। इस सॉफ़्टवेयर का उपयोग लेखक(ों) को दुरुपयोग या हुई क्षति के लिए किसी भी ज़िम्मेदारी से मुक्त करता है।