
ऑनलाइन वेब अनुप्रयोगों के विरुद्ध डिक्शनरी/स्प्रे हमलों के लिए अत्यधिक कॉन्फ़िगरेबल स्क्रिप्ट।
क्लाइडा परियोजना ऑनलाइन वेब एप्लिकेशनों के विरुद्ध त्वरित क्रेडेंशियल-आधारित हमलों में सहायता के लिए बनाई गई है।
क्लाइडा सरल पासवर्ड स्प्रे से लेकर बड़े मल्टीथ्रेडेड डिक्शनरी हमलों तक का उपयोग समर्थित करता है।
क्लाइडा एक नया प्रोजेक्ट है, और मैं योगदान की तलाश में हूँ। किसी भी प्रकार की मदद की बहुत सराहना की जाती है।
क्लाइडा सरल, याद रखने में आसान उपयोग प्रदान करता है; फिर भी आपकी आवश्यकताओं के लिए कॉन्फ़िगरेबिलिटी प्रदान करता है:
1) Git रिपॉजिटरी को अपनी मशीन पर क्लोन करें, git clone https://github.com/Xeonrx/Klyda
2) Klyda निर्देशिका में जाएँ, cd Klyda
3) Pip के माध्यम से आवश्यक मॉड्यूल स्थापित करें, pip install requests beautifulsoup4 colorama numpy
4) उपयोग के लिए Klyda सहायता प्रॉम्प्ट प्रदर्शित करें, python3 klyda.py -h
Klyda मुख्य रूप से लिनक्स के लिए डिज़ाइन किया गया है, लेकिन पायथन चलाने में सक्षम किसी भी मशीन पर काम करना चाहिए।
Klyda को काम करने के लिए केवल चार सरल डिपेंडेंसी की आवश्यकता होती है: हमला करने का URL, उपयोगकर्ता नाम, पासवर्ड और फॉर्मडेटा।
आप --url टैग के माध्यम से URL को पार्स कर सकते हैं। यह कुछ इस तरह दिखना चाहिए, --url http://127.0.0.1
याद रखें कि ऐसे वेबपेज पर कभी हमला न करें जिसके लिए आपके पास उचित अनुमति न हो।
उपयोगकर्ता नाम इन डिक्शनरी हमलों के मुख्य लक्ष्य हैं। यह उपयोगकर्ता नामों की एक पूरी श्रृंखला, कुछ विशिष्ट, या शायद सिर्फ एक हो सकता है। स्क्रिप्ट का उपयोग करते समय यह सब आपका निर्णय है। आप उपयोगकर्ता नाम कुछ तरीकों से निर्दिष्ट कर सकते हैं...
1) उन्हें मैन्युअल रूप से निर्दिष्ट करें, -u Admin User123 Guest
2) उपयोग करने के लिए एक फ़ाइल दें, या संयोजित करने के लिए कुछ, -U users.txt extra.txt
3) फ़ाइल और मैन्युअल प्रविष्टि दोनों दें, -U users.txt -u Johnson924
पासवर्ड इन हमलों का कठिन हिस्सा हैं। आप उन्हें नहीं जानते, इसलिए डिक्शनरी और ब्रूट फोर्स हमले मौजूद हैं। उपयोगकर्ता नामों की तरह, आप एक पासवर्ड से लेकर जितने चाहें उतने दे सकते हैं। आप पासवर्ड कुछ तरीकों से निर्दिष्ट कर सकते हैं...
1) उन्हें मैन्युअल रूप से निर्दिष्ट करें, -p password 1234 letmein
2) उपयोग करने के लिए एक फ़ाइल दें, या संयोजित करने के लिए कुछ, -P passwords.txt extra.txt
3) फ़ाइल और मैन्युअल प्रविष्टि दोनों दें, -P passwords.txt -p redklyda24
फॉर्मडेटा वह है जिससे आप अनुरोध तैयार करते हैं, ताकि लक्ष्य वेबसाइट इसे ले सके और दी गई जानकारी को संसाधित कर सके। आमतौर पर आपको एक: उपयोगकर्ता नाम मान, एक पासवर्ड मान, और कभी-कभी एक अतिरिक्त मान निर्दिष्ट करने की आवश्यकता होती है। आप अपने लक्ष्य द्वारा उपयोग किए जाने वाले फॉर्मडेटा को अपने ब्राउज़र के इंस्पेक्ट एलिमेंट के नेटवर्क टैब की समीक्षा करके देख सकते हैं। Klyda के लिए, आप -d टैग का उपयोग करते हैं।
आपको प्लेसहोल्डर का उपयोग करने की आवश्यकता है ताकि Klyda को पता चले कि अपने अनुरोधों को अग्रेषित करते समय उपयोगकर्ता नाम और पासवर्ड कहाँ इंजेक्ट करना है। यह कुछ इस तरह दिख सकता है...
-d username:xuser password:xpass Login:Login
xuser उपयोगकर्ता नाम इंजेक्ट करने के लिए प्लेसहोल्डर है, और xpass पासवर्ड इंजेक्ट करने के लिए प्लेसहोल्डर है। सुनिश्चित करें कि आप इन्हें जानते हैं, अन्यथा Klyda काम नहीं कर पाएगा।
फॉर्मडेटा को (कुंजी):(मान) के रूप में स्वरूपित करें
Klyda को यह जानने के लिए कि उसने सफल हमला किया है या नहीं, आपको उसे डेटा देना होगा जिससे वह खोज सके। Klyda असफल लॉगिन प्रयासों से दी गई ब्लैकलिस्ट का उपयोग करता है, ताकि वह असफल और सफल अनुरोध के बीच अंतर बता सके। आप तीन प्रकार के डेटा को ब्लैकलिस्ट कर सकते हैं...
1) स्ट्रिंग्स, --bstr "Login failed"
2) स्थिति कोड, --bcde 404
3) सामग्री लंबाई, --blen 11
आप आवश्यकतानुसार प्रत्येक ब्लैकलिस्ट के लिए जितना चाहें उतना डेटा निर्दिष्ट कर सकते हैं। यदि प्रतिक्रिया में दिया गया कोई भी डेटा नहीं मिलता है, तो Klyda इसे "स्ट्राइक" देता है, यह कहते हुए कि यह एक सफल लॉगिन प्रयास था। अन्यथा यदि ब्लैकलिस्ट में डेटा मिलता है, तो Klyda इसे असफल लॉगिन प्रयास के रूप में चिह्नित करता है। चूँकि आप Klyda को मूल्यांकन के लिए डेटा देते हैं, झूठी सकारात्मकता स्पष्ट नहीं होती है।
यदि आप ब्लैकलिस्ट करने के लिए कोई डेटा नहीं देते हैं, तो प्रत्येक अनुरोध Klyda द्वारा स्ट्राइक के रूप में चिह्नित किया जाएगा!
डिफ़ॉल्ट रूप से, Klyda चलाने के लिए केवल एक थ्रेड का उपयोग करता है; लेकिन, आप -t टैग का उपयोग करके अधिक निर्दिष्ट कर सकते हैं। यह आपके काम को गति देने में सहायक हो सकता है।
हालाँकि, क्रेडेंशियल हमले नेटवर्क पर बहुत शोरगुल वाले हो सकते हैं; इसलिए, आसानी से पकड़े जाते हैं। लक्षित खाता केवल बहुत अधिक लॉगिन प्रयासों के कारण सरल लॉक प्राप्त कर सकता है। यह DoS हमला बनाता है, लेकिन आपको उपयोगकर्ता के क्रेडेंशियल प्राप्त करने से रोकता है, जो Klyda का लक्ष्य है।
इसलिए इन हमलों को थोड़ा कम शोरगुल वाला बनाने के लिए, आप --rate टैग का उपयोग कर सकते हैं। यह आपको अपने थ्रेड्स को प्रति मिनट एक निश्चित संख्या में अनुरोधों तक सीमित करने की अनुमति देता है।
यह इस तरह स्वरूपित होगा, --rate (अनुरोधों की संख्या) (मिनट)
उदाहरण के लिए, --rate 5 1 प्रति मिनट केवल 5 अनुरोध भेजेगा। याद रखें, यह प्रत्येक थ्रेड के लिए है। यदि आपके पास 2 थ्रेड हैं, तो यह प्रति मिनट 10 अनुरोध भेजेगा।
Klyda को Damn Vulnerable Web App (DVWA), या Mutillidae पर परीक्षण करें।
python3 klyda.py --url http://127.0.0.1/dvwa/login.php -u user guest admin -p 1234 password admin -d username:xuser password:xpass Login:Login --bstr "Login failed"
python3 klyda.py --url http://127.0.0.1/mutillidae/index.php?page=login.php -u root -P passwords.txt -d username:xuser password:xpass login-php-submit-button:Login --bstr "Authentication Error"
जैसा पहले बताया गया है, Klyda अभी भी विकास प्रक्रिया में है। भविष्य में, मैं और अधिक कार्यक्षमता जोड़ने और कोड को साफ-सुथरे रूप में सुधारने की योजना बना रहा हूँ।
मेरी सर्वोच्च प्राथमिकता प्रॉक्सी कार्यक्षमता जोड़ना है, और मैं वर्तमान में इस पर काम कर रहा हूँ।