
धीमी और क्रमिक पासवर्ड स्प्रेइंग टूल, जिसे लंबे समय तक अंतराल पर स्प्रे करने के लिए डिज़ाइन किया गया है।
अरे, यो मैं spraycharles जैसा महसूस कर रहा हूँ - Chiddy Bang
धीमा और कम पासवर्ड स्प्रेइंग उपकरण, जो लंबे समय तक अंतराल पर स्प्रे करने के लिए डिज़ाइन किया गया है।
इसमें Office365, OWA, EWS, Okta, ADFS, Cisco SSL VPN, Citrix Netscaler, Sonciwall, NTLM over HTTP, और SMB के लिए स्प्रेइंग प्लगइन्स शामिल हैं।
संबद्ध ब्लॉग पोस्ट @sprocket_ed द्वारा, जो NTLM over HTTP, Exchange Web Services और Spraycharles को कवर करता है।
Spraycharles एक अपेक्षाकृत सरल पासवर्ड स्प्रेयर है, जिसे ऐसे समय में डिज़ाइन किया गया था जब पेनिट्रेशन टेस्ट के दौरान पासवर्ड स्प्रेइंग को एक गैर-मैन्युअल प्रक्रिया बनाने वाले कई सार्वजनिक रूप से उपलब्ध उपकरण नहीं थे। शायद Spraycharles की सबसे अच्छी विशेषता -a/--attempts और -i/--interval का उपयोग करके एक लंबी चलने वाली स्प्रे स्थापित करने की क्षमता है, और इसे कई दिनों तक चलने दें, जबकि समय-समय पर इसकी जाँच करें। यदि आपके पास कोई एकल सेवा या स्प्रे करने के लिए कुछ अद्वितीय है, तो नए मॉड्यूल को टेम्पलेट करना और स्प्रे शुरू करना भी बहुत आसान है।
Spraycharles को शुरू में आधुनिक प्रमाणीकरण/क्लाउड प्रदाताओं को ध्यान में रखकर डिज़ाइन नहीं किया गया था। यदि आप अधिक उन्नत सुविधाओं की तलाश में हैं, तो आप CredMaster या TeamFiltration जैसे उपकरणों की जाँच कर सकते हैं। Spraycharles को तेज़ होने के लिए डिज़ाइन नहीं किया गया था - यह एकल-थ्रेडेड है और अधिक मात्रा/समय दृष्टिकोण की ओर उन्मुख है।
Spraycharles को pip3 install spraycharles या इस रिपॉजिटरी को क्लोन करके और pip3 install . चलाकर इंस्टॉल किया जा सकता है।
[!टिप] यह आपके पथ में
spraycharles, और संक्षेप मेंsc, उपनामों को पंजीकृत करेगा। लॉग और आउटपुट फ़ाइलें~/.spraycharlesमें संग्रहीत की जाती हैं। CLI फ़्लैग के साथ एक वैकल्पिक आउटपुट स्थान निर्दिष्ट किया जा सकता है।
Spraycharles Docker कंटेनर बनाने के लिए निम्नलिखित कमांड निष्पादित करें:
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles/extras
docker build . -t spraycharles
Spraycharles Docker कंटेनर का उपयोग करने के लिए निम्नलिखित कमांड निष्पादित करें:
docker run -it -v ~/.spraycharles:/root/.spraycharles spraycharles -h
आपको उपयोगकर्ता नाम और पासवर्ड सूचियाँ जहाँ संग्रहीत की जा रही हैं, उसके आधार पर अतिरिक्त वॉल्यूम निर्दिष्ट करने की आवश्यकता हो सकती है।
Nix या NixOS उपयोगकर्ताओं के लिए एक पैकेज उपलब्ध है। ध्यान रखें कि नवीनतम रिलीज़ केवल unstable चैनल में मौजूद हो सकती हैं।
nix-env -iA nixos.spraycharles
spray उप-कमांड:
Usage: spraycharles spray [OPTIONS] COMMAND [ARGS]...
Low and slow password spraying
╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --debug Enable debug logging (overrides --quiet) │
│ --config TEXT Configuration file. │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ User/Pass Config ────────────────────────────────────────────────────────────────────╮
│ * --usernames -u TEXT Filepath of the usernames list [default: None] │
│ [required] │
│ * --passwords -p TEXT Single password to spray or filepath of the passwords │
│ list │
│ [default: None] │
│ [required] │
│ --equal -e Does 1 spray for each user where password = username │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Spray Target ────────────────────────────────────────────────────────────────────────╮
│ --host -H TEXT Host to password spray (ip or │
│ hostname). Can by anything when │
│ using Office365 module - only │
│ used for logfile name │
│ [default: None] │
│ * --module -m [ADFS|CiscoSSLVPN|Citrix|NTLM Module corresponding to target │
│ |Office365|Okta|OWA|SMB|Sonic host │
│ wall] [default: None] │
│ [required] │
│ --path TEXT NTLM authentication endpoint │
│ (i.e., rpc or ews) │
│ [default: None] │
│ --port -P INTEGER Port to connect to on the │
│ specified host │
│ [default: 443] │
│ --fireprox -f TEXT URL of desired fireprox │
│ interface │
│ [default: None] │
│ --domain -d TEXT HTTP - Prepend DOMAIN\ to │
│ usernames; SMB - Supply domain │
│ for smb connection │
│ [default: None] │
│ --no-ssl Use HTTP instead of HTTPS │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Output ──────────────────────────────────────────────────────────────────────────────╮
│ --output -o TEXT Name and path of result output file [default: None] │
│ --quiet Will not log each login attempt to the console │
│ --analyze Run the results analyzer after each spray interval (Early │
│ false positives are more likely) │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Spray Behavior ──────────────────────────────────────────────────────────────────────╮
│ --attempts -a INTEGER Number of logins submissions per interval (for each │
│ user) │
│ [default: None] │
│ --interval -i INTEGER Minutes inbetween login intervals [default: None] │
│ --timeout -t INTEGER Web request timeout threshold [default: 5] │
│ --jitter INTEGER Jitter time between requests in seconds │
│ [default: None] │
│ --jitter-min INTEGER Minimum time between requests in seconds │
│ [default: None] │
│ --pause Pause the spray between intervals if a new potentially │
│ successful login was found │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Notifications ───────────────────────────────────────────────────────────────────────╮
│ --notify -n [Slack|Teams|Discord] Enable notifications for Slack, Teams or │
│ Discord │
│ [default: None] │
│ --webhook -w TEXT Webhook used for specified notification │
│ module │
│ [default: None] │
╰───────────────────────────────────────────────────────────────────────────────────────╯
अक्सर उपयोग किए जाने वाले CLI फ़्लैग की मात्रा के कारण, एक विकल्प --config फ़्लैग का उपयोग करके yaml फ़ाइल से कमांड लाइन पैरामीटर भरना है। इसके अतिरिक्त, हर बार जब आप Spraycharles का उपयोग करते हैं, तो आपके CLI विकल्प वर्तमान निर्देशिका में एक yaml फ़ाइल (last-config.yaml) में लिखे जाएँगे, जिसे आसानी से संशोधित और पुन: उपयोग किया जा सकता है।
Spraycharles में संभावित सफल लॉगिन प्रयास के बाद Discord, Slack और Microsoft Teams को सूचनाएं जारी करने की क्षमता है। सूचना प्रदाताओं की इस सूची को utils/notify.py स्क्रिप्ट का उपयोग करके बढ़ाया जा सकता है। किसी भी संभावित सूचना एजेंट के लिए, आपको इसका नाम और एक वेबहुक URL निर्दिष्ट करना होगा।
आप अपने कमांड को छोटा रखने के लिए कॉन्फ़िगरेशन फ़ाइल का उपयोग करके इन्हें निर्दिष्ट कर सकते हैं:
notify: Slack
webhook: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
किसी भी प्रदाता को भेजी गई सूचनाओं में स्प्रेइंग जॉब से जुड़ा लक्ष्यित होस्टनाम शामिल होगा। यह विशेष रूप से उपयोगी है जब एक साथ कई लक्ष्यों पर स्प्रे किया जा रहा हो।
आपके पास स्प्रे चलने के दौरान प्रदान की गई उपयोगकर्ता नाम और पासवर्ड फ़ाइलों में बदलाव करने की क्षमता है। सूचियों में जोड़ या हटाने का प्रभाव अगली पासवर्ड रोटेशन पर होगा
[!नोट] यदि आप सूची में एक नया पासवर्ड सम्मिलित करते हैं, तो इसे स्प्रे करने के लिए वर्तमान में स्प्रे किए जा रहे पासवर्ड के बाद होना चाहिए (Spraycharles एक आंतरिक लूप काउंटर रखता है जिसका उपयोग अद्यतन सूची में संबंधित स्थान पर अगला पासवर्ड खींचने के लिए एक इंडेक्स के रूप में किया जाता है)
Spraycharles स्प्रेइंग प्रयासों में सहायता के लिए कुछ अतिरिक्त उपयोगिताओं के साथ पैक किया गया है। Spraycharles मॉड्यूल की पूरी सूची:
Usage: spraycharles [OPTIONS] COMMAND [ARGS]...
╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────╮
│ analyze Analyze Spraycharles output files for potential spray hits │
│ gen Generate custom password lists from JSON file │
│ modules List spraying modules │
│ parse Parse NTLM over HTTP and SMB endpoints to collect domain information │
│ spray Low and slow password spraying │
╰───────────────────────────────────────────────────────────────────────────────────────╯
Spraycharles का "gen" उप-कमांड extras/list_elements.json में प्रदान किए गए विनिर्देशों के आधार पर एक पासवर्ड सूची उत्पन्न करेगा
spraycharles gen extras/list_elements.json custom_passwords.txt
Spraycharles का parse उप-कमांड नीचे सूचीबद्ध कमांड के समान कमांड का उपयोग करके NTLM over HTTP और SMB दोनों सेवाओं से आंतरिक डोमेन निकालेगा।
spraycharles parse https://example.com/ews
spraycharles parse smb://host.domain.local
analyze उप-मॉड्यूल आपके आउटपुट JSON ऑब्जेक्ट्स को पढ़ सकता है और सांख्यिकीय रूप से प्रासंगिक प्रतिक्रिया लंबाई निर्धारित कर सकता है। पर्याप्त डेटा के साथ, इसे आपकी परिणाम फ़ाइल से सफल लॉगिन निकालने में सक्षम होना चाहिए। सफल लॉगिन निर्धारित करने का यह एकमात्र तरीका नहीं है, यह आपके लक्ष्य साइट पर निर्भर करता है, और मैं अभी भी डेटा को स्वयं जांचने की सलाह दूंगा ताकि कुछ भी छूट न जाए। SMB के लिए, यह केवल NTSTATUS कोड वाली प्रविष्टियाँ ढूंढेगा जो सफलता का संकेत देते हैं।
spraycharles analyze myresults.json
यह उपकरण पेनिट्रेशन परीक्षण के दौरान उपयोग के लिए डिज़ाइन किया गया है; पूर्व आपसी सहमति के बिना लक्ष्यों पर हमला करने के लिए इस उपकरण का उपयोग करना अवैध है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स कोई देयता नहीं लेते हैं और इस प्रोग्राम के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं हैं।
Spraycharles निर्भरता प्रबंधित करने के लिए Poetry का उपयोग करता है। स्रोत से इंस्टॉल करें और विकास के लिए सेटअप करें:
pip3 install poetry
git clone https://github.com/Tw1sm/spraycharles
cd spraycharles
poetry install
ntlm_challenger.py स्क्रिप्ट के लिए, जो utils फ़ोल्डर में शामिल है