
نص برمجي عالي التكوين لهجمات القاموس/الرذاذ ضد تطبيقات الويب عبر الإنترنت.
تم إنشاء مشروع Klyda للمساعدة في شن هجمات سريعة قائمة على بيانات الاعتماد ضد تطبيقات الويب عبر الإنترنت.
يدعم Klyda الاستخدام بدءًا من عمليات رش كلمات المرور البسيطة، وصولاً إلى هجمات القاموس متعددة الخيوط واسعة النطاق.
Klyda هو مشروع جديد، وأنا أبحث عن أي مساهمات. أي مساعدة ستكون موضع تقدير كبير.
يقدم Klyda استخدامًا بسيطًا وسهل التذكر؛ ومع ذلك، فإنه لا يزال يوفر إمكانية التهيئة وفقًا لاحتياجاتك:
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 بشكل أساسي لنظام Linux، ولكن يجب أن يعمل على أي جهاز قادر على تشغيل Python.
ما يحتاجه Klyda ليعمل هو أربعة تبعيات بسيطة فقط: عنوان URL للهجوم، اسم المستخدم (أو أسماء المستخدمين)، كلمة المرور (أو كلمات المرور)، وبيانات النموذج (FormData).
يمكنك تمرير عنوان 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
بيانات النموذج (FormData) هي كيفية تشكيل الطلب، بحيث يمكن لموقع الويب الهدف استقباله ومعالجة المعلومات المقدمة. عادةً ما تحتاج إلى تحديد: قيمة اسم المستخدم، وقيمة كلمة المرور، وأحيانًا قيمة إضافية. يمكنك رؤية بيانات النموذج التي يستخدمها هدفك من خلال مراجعة علامة التبويب "الشبكة" (Network) في أدوات المطور (Inspect Element) في متصفحك. بالنسبة لـ Klyda، تستخدم الوسم -d.
تحتاج إلى استخدام العناصر النائبة (placeholders) ليعرف Klyda أين يقوم بحقن اسم المستخدم وكلمة المرور عند إرسال طلباته. قد يبدو شيئًا كهذا...
-d username:xuser password:xpass Login:Login
xuser هو العنصر النائب لحقن أسماء المستخدمين، و xpass هو العنصر النائب لحقن كلمات المرور. تأكد من معرفة هذه العناصر، وإلا لن يتمكن Klyda من العمل.
قم بتنسيق بيانات النموذج كـ (مفتاح):(قيمة)
لكي يعرف Klyda ما إذا كان قد حقق ضربة ناجحة أم لا، تحتاج إلى إعطائه بيانات ليتقصاها. يستخدم Klyda القوائم السوداء المقدمة من محاولات تسجيل الدخول الفاشلة، بحيث يمكنه التمييز بين الطلب الفاشل والطلب الناجح. يمكنك إدراج ثلاثة أنواع مختلفة من البيانات في القائمة السوداء...
1) النصوص (Strings)، --bstr "فشل تسجيل الدخول"
2) رموز الحالة (Status Codes)، --bcde 404
3) طول المحتوى (Content Length)، --blen 11
يمكنك تحديد أي قدر من البيانات لكل قائمة سوداء حسب الحاجة. إذا لم يتم العثور على أي من البيانات المقدمة في الاستجابة، يمنحها Klyda "ضربة"، قائلاً إنها كانت محاولة تسجيل دخول ناجحة. وإلا، إذا تم العثور على بيانات في القوائم السوداء، فإن Klyda يضع علامة عليها كمحاولة تسجيل دخول غير ناجحة. نظرًا لأنك تقدم البيانات ليقيمها Klyda، فإن النتائج الإيجابية الخاطئة (false positives) غير ظاهرة.
إذا لم تقدم أي بيانات للقائمة السوداء، فسيتم وضع علامة على كل طلب كضربة من Klyda!
افتراضيًا، يستخدم Klyda خيطًا واحدًا فقط للتشغيل؛ ولكن يمكنك تحديد المزيد، باستخدام الوسم -t. يمكن أن يكون هذا مفيدًا لتسريع عملك.
ومع ذلك، يمكن أن تكون هجمات بيانات الاعتماد عالية الصوت جدًا على الشبكة؛ وبالتالي، يتم اكتشافها بسهولة. يمكن للحساب المستهدف ببساطة أن يتلقى قفلاً بسيطًا بسبب عدد كبير جدًا من محاولات تسجيل الدخول. هذا يخلق هجوم رفض الخدمة (DoS)، ولكنه يمنعك من الحصول على بيانات اعتماد المستخدم، وهو هدف Klyda.
لذلك، لجعل هذه الهجمات أقل صوتًا قليلاً، يمكنك استخدام الوسم --rate. يتيح لك هذا تحديد عدد خيوطك بعدد معين من الطلبات في الدقيقة.
سيتم تنسيقه على النحو التالي، --rate (عدد الطلبات) (الدقائق)
على سبيل المثال، --rate 5 1 سيرسل فقط 5 طلبات لكل دقيقة. تذكر، هذا لكل خيط. إذا كان لديك خيطان، فسيؤدي ذلك إلى إرسال 10 طلبات في الدقيقة.
اختبر Klyda على تطبيق الويب الضعيف عمدًا (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 "فشل تسجيل الدخول"
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 "خطأ في المصادقة"
كما ذكرنا سابقًا، لا يزال Klyda قيد التطوير. في المستقبل، أخطط لإضافة المزيد من الوظائف وإعادة تنسيق الكود للحصول على مظهر أنظف.
أولويتي القصوى هي إضافة وظيفة البروكسي (Proxy)، وأنا أعمل عليها حاليًا.