
أداة للشبكات والاستطلاع والأمن الهجومي لنظام لينكس.
Hawk هي أداة للشبكات واختبار الاختراق قمت بتطويرها لكي أتمكن من تنفيذ أنواع مختلفة من المهام باستخدام نفس الحزمة، بدلاً من التنقل بين أداة وأخرى.
حالياً، يمكن لهذا السكربت تنفيذ مجموعة متنوعة من المهام مثل ifconfig، ping، traceroute، فحوصات المنافذ (بما في ذلك SYN وTCP وUDP وACK والفحص الشامل)، اكتشاف الأجهزة (فحص الأجهزة النشطة على الشبكة المحلية)، كشف عنوان MAC (الحصول على عنوان MAC لعنوان IP لمضيف على الشبكة المحلية)، التقاط اللافتات (banner grabbing)، فحوصات DNS (مع معلومات تحديد الموقع الجغرافي)، WHOIS، تعداد النطاقات الفرعية، الاستطلاع بحثاً عن الثغرات، التقاط الحزم، انتحال MAC، انتحال IP، فيضان SYN، هجوم deauth وهجوم القوة العمياء (نسخة تجريبية).
لا تزال ميزات أخرى قيد التنفيذ. قد تتضمن التطبيقات المستقبلية كشف جدار حماية تطبيقات الويب (WAF)، تعداد DNS، تحليل حركة المرور، ماسح ثغرات XSS، تسميم ذاكرة التخزين المؤقت ARP، تسميم ذاكرة التخزين المؤقت DNS، فيضان MAC، ping of death، هجوم فصل الشبكة (وليس هجوم deauth)، استخبارات المصادر المفتوحة (OSINT)، انتحال البريد الإلكتروني، الاستغلالات (exploits)، بعض المهام الآلية وأخرى.

لاحظ أن هذا السكربت يعمل بشكل جيد على لينكس فقط حالياً. إذا جربته على ويندوز أو macOS، فقد يعمل لكن ستظهر أخطاء عديدة.
تم اختبار هذا السكربت على:
لتثبيت الحزم اللازمة حتى يعمل السكربت بدون أي مشاكل، ما عليك سوى تشغيل سكربت setup.sh بصلاحيات الجذر. حالياً، سكربت التثبيت هذا مدعوم فقط على التوزيعات المبنية على Debian وRed Hat وArch التي تمتلك مدير الحزم apt وdnf وpacman على التوالي (Ubuntu، Kali Linux، Parrot OS، Debian، Pop!_OS، Linux Mint، Deepin، Zorin OS، MX Linux، Elementary OS، Fedora، CentOS، Red Hat Enterprise Linux، Rocky Linux، AlmaLinux، Oracle Linux، ClearOS، Arch، Black Arch، Manjaro، إلخ). على معظم الأنظمة، لتثبيت Hawk ما عليك سوى تشغيل الأوامر التالية:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
بعدها، اتبع التعليمات ببساطة. يرجى تجاهل رسائل الخطأ التي تظهر أثناء التثبيت.
مع ذلك، إذا كنت تستخدم أي توزيعة لينكس أخرى بمدير حزم مختلف، يرجى تثبيت الحزم يدوياً باستخدام مدير الحزم الخاص بتوزيعتك. اعتماداً على التوزيعة المستخدمة، قد تكون بعض الحزم المطلوبة لتشغيل هذا السكربت مثبتة بالفعل على جهازك.
إذا كنت ترغب في معرفة الحزم اللازمة، انظر إلى ملف setup.sh.
بعد التثبيت، لتشغيل البرنامج، انتقل ببساطة إلى دليل المشروع وشغّل ملف hawk.py باستخدام بايثون. يُنصح بتشغيل السكربت كجذر (root) للحصول على أداء أفضل وتجنب أخطاء الأذونات. الأمر المستخدم هو التالي:
sudo python3 hawk.py
لإجراء الإعدادات، ما عليك سوى الانتقال إلى ملف الإعدادات في files/conf.py وتعديله.
إذا كنت تريد عرض إعدادات الشبكة TCP/IP الحالية لنظامك، اكتب الأمر التالي:
-ifconfig

لإرسال حزم ICMP إلى مضيف واحد أو أكثر للتحقق من الاتصال، اكتب ببساطة:
-ping <HOST(s) IP/FQDN>

لتشخيص مسارات التوجيه وقياس تأخيرات العبور، استخدم الأمر -traceroute:
-traceroute <HOST IP/FQDN>

يساعد فحص المنافذ في اكتشاف الثغرات الأمنية المحتملة من خلال تحديد المضيفين المتصلين بشبكتك والخدمات قيد التشغيل.
يتم دعم أنواع متعددة من الفحص، بما في ذلك TCP SYN (-scansyn) [المعروف أيضاً باسم الفحص الخفي (stealth scan)]، TCP Connect (-scantcp)، UDP (-scanudp)، TCP ACK (-scanack) والفحص الشامل (-scan).
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
إذا كنت ترغب في فحص نطاق عناوين IP و/أو نطاق منافذ، استخدم أحد الأوامر التالية:
-scan -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-scan -iprange <START IP> <END IP> -p <PORT(s)>
-scan -iprange <START IP> <END IP> -prange <START PORT> <END PORT>

بعد هذا الفحص، يمكن ملاحظة أن المنفذين 22 (SSH) و80 (HTTP) مفتوحان.
للبحث عن الأجهزة النشطة حالياً على شبكة معينة، اكتب الأمر التالي:
-scanlan
ثم اكتب الشبكة التي تريد فحصها.

للحصول على عنوان MAC لمضيف واحد أو أكثر نشطين على الشبكة المحلية (LAN)، استخدم الأمر:
-getmac -host <HOST(s) IP>

كشف الإصدار، أو التقاط اللافتات (banner grabbing)، هو أسلوب استطلاع يسترجع معلومات لافتة البرنامج. تحتوي هذه اللافتة عادةً على معلومات مهمة حول خدمة الشبكة، بما في ذلك على سبيل المثال لا الحصر، اسم البرنامج وإصداره. غالباً ما تكشف خوادم FTP وWeb وSSH وSMTP معلومات حيوية عن البرنامج الذي تشغّله في لافتاتها.
يبدأ هجوم اللافتات عادةً بفحص تعداد للعثور على المنافذ المفتوحة. بمجرد تحديد الخدمة التي تريد استهدافها، يمكنك إرسال حزم محددة وفحص حركة المرور بحثاً عن المعلومات المطلوبة.
لتنفيذ التقاط اللافتات، حسب احتياجاتك المحددة، اكتب أحد الأوامر التالية:
-grab -host <HOST(s) IP/FQDN> -p <PORT(s)>
-grab -iprange <START IP> <END IP> -prange <START PORT> <END PORT>
-grab -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-grab -iprange <START IP> <END IP> -p <PORT(s)>

هذه الميزة مشابهة للأمر المعروف nslookup المستخدم في أنظمة UNIX. إذا كنت تريد إجراء فحص DNS، اكتب التالي:
-ns <HOST(s) IP/FQDN>

إخلاء مسؤولية: لاحظ أن هذه الميزة تستخدم واجهة برمجة تطبيقات IPinfo. يُنصح بتغيير مفتاح API إلى المفتاح الخاص بك، حيث قد يكون المفتاح المقدم مستخدماً من قبل أشخاص آخرين. لتغيير مفاتيح API انتقل إلى ملف الإعدادات في files/conf.py.
WHOIS هو بروتوكول TCP يهدف إلى الاستعلام عن معلومات الاتصال وDNS. لطلب WHOIS لصفحة واحدة أو أكثر، اكتب فقط:
-whois <HOST(s) IP/PQDN>

تعداد النطاقات الفرعية هو عملية إيجاد نطاقات فرعية صالحة لنطاق واحد أو أكثر.
يمكن أن يكشف تعداد النطاقات الفرعية عن العديد من النطاقات/النطاقات الفرعية التي تقع ضمن نطاق تقييم أمني، مما يزيد بدوره من فرص العثور على الثغرات.
إذا كنت ترغب في البحث عن النطاقات الفرعية الشائعة لنطاق، اكتب ببساطة:
-sdenum <PQDN>
يستخدم هذا الأمر قائمة كلمات افتراضية للبحث عن النطاقات الفرعية. مع ذلك، إذا كنت تريد استخدام قائمة الكلمات الخاصة بك، اكتب:
-sdenum <PQDN> -wordlist <WORDLIST PATH>

اكتشاف الدلائل هو عملية إيجاد الدلائل داخل خادم ويب.
لتنفيذ هذه المهمة اكتب:
-dirbust <HOST IP/FQDN>
يستخدم هذا الأمر قائمة كلمات افتراضية للبحث عن النطاقات الفرعية. مع ذلك، إذا كنت تريد استخدام قائمة الكلمات الخاصة بك، اكتب:
-dirbust <HOST IP/FQDN> -wordlist <WORDLIST PATH>

لفحص مضيف واحد أو أكثر بحثاً عن الثغرات، استخدم الأمر التالي:
-vulnscan -host <HOST(s) IP/FQDN>

إخلاء مسؤولية: لاحظ أن هذه الميزة تستخدم واجهة برمجة تطبيقات Shodan. يُنصح بتغيير مفتاح API إلى المفتاح الخاص بك، حيث قد يكون المفتاح المقدم مستخدماً من قبل أشخاص آخرين. لتغيير مفاتيح API انتقل إلى ملف الإعدادات في files/conf.py.
لتنفيذ التقاط الحزم، اكتب:
-sniff

إخلاء مسؤولية: إذا كنت تريد التقاط جميع البيانات المارة عبر الشبكة، قم أولاً بتحويل بطاقة أو محول الشبكة اللاسلكية إلى وضع المراقبة (monitor mode).
انتحال MAC هو توليد إطارات بعنوان MAC مختلف عن عنوان بطاقة الشبكة (NIC) المرسِلة. لتغيير عنوان MAC لواجهة، نفّذ الأمر:
-macspoof -source <SOURCE MAC> -iface <INTERFACE>

كما ترى في لقطة الشاشة أدناه، تم تغيير عنوان MAC للواجهة بنجاح.

الهدف من انتحال IP هو تعديل عنوان IP المصدر الصحيح بحيث لا يتمكن النظام الذي يتم توجيه الحزمة إليه من تحديد المرسل بشكل صحيح.
لاحظ أن هذا الأمر يعمل فقط على الأجهزة التي تحتوي على ثغرات غير مصححة. لتنفيذ انتحال IP على منفذ محدد لمضيف، استخدم الأمر التالي:
-ipspoof -source <SOURCE IP> <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
إذا كنت تريد استخدام عنوان IP مصدر عشوائي، اكتب الأمر التالي:
-ipspoof -source r <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
يمكنك أيضاً استخدام منفذ مصدر عشوائي:
-ipspoof -source <SOURCE IP> r -target <TARGET IP/FQDN> <TARGET PORT>

إخلاء مسؤولية: يرجى استخدام هذا لأغراض الاختبار فقط واستهداف أجهزتك الخاصة.
فيضان SYN هو أسلوب هجوم DDoS يسبب عبئاً مباشراً على طبقة النقل (الطبقة 4) وعبئاً غير مباشر على طبقة التطبيق (الطبقة 7).
لمحاولة تنفيذ فيضان SYN، اكتب:
-synflood -source <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
إذا كنت تريد استخدام منفذ مصدر عشوائي، اكتب الأمر التالي:
-synflood -source r -target <TARGET IP/FQDN> <TARGET PORT>

إخلاء مسؤولية: يرجى استخدام هذا لأغراض الاختبار فقط واستهداف أجهزتك الخاصة.
هجوم deauth هو نوع من الهجمات اللاسلكية التي تستهدف الاتصال بين جهاز التوجيه (الراوتر) وجهاز أو أكثر متصل بذلك الراوتر، مما يجبر الجهاز المستهدف فعلياً على الانفصال عن نقطة الوصول.
لتنفيذ هذا الهجوم، استخدم الأمر التالي:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface <INTERFACE>
إذا كنت تخطط لمهاجمة جميع العملاء المتصلين ببوابة (gateway)، اكتب:
-deauth -target a -gateway <GATEWAY MAC> -iface <INTERFACE>
يمكنك أيضاً اختيار واجهتك اللاسلكية الافتراضية (المُعدّة في files/conf.py) لتنفيذ الهجوم:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface d

بعد تنفيذ الأمر الموضح في لقطة الشاشة أعلاه، تم فصل جميع الأجهزة المتصلة بنقطة الوصول تلك وتعذرت إعادة اتصالها أثناء تشغيل هذا السكربت.
إخلاء مسؤولية: لتنفيذ هذا الهجوم، تأكد من امتلاك بطاقة أو محول شبكة لاسلكية يدعم وضع المراقبة (monitor mode) وقم بتفعيله قبل محاولة هجوم deauth. يرجى استخدام هذا لأغراض الاختبار فقط واستهداف أجهزتك الخاصة.
هجوم القوة العمياء هو محاولة لاختراق كلمة مرور أو اسم مستخدم.
لتنفيذ هجوم القوة العمياء والعثور على بيانات اعتماد شائعة/ضعيفة، اكتب:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME>
إذا كنت ترغب في استخدام قائمة كلمات مخصصة، استخدم الأمر:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME> -wordlist <WORDLIST PATH>
في الوقت الحالي، يتم دعم خدمة SSH فقط.
إخلاء مسؤولية: لاحظ أن الخادم المستهدف قد يمتلك آليات دفاعية ضد هذا النوع من الهجمات وقد يحظر محاولات المهاجم لتخمين كلمة المرور. يرجى استخدام هذا لأغراض الاختبار فقط واستهداف أجهزتك الخاصة.
سيقوم هذا الأمر بأتمتة بعض تقنيات الاستطلاع المتاحة في هذا السكربت. للقيام بذلك، اكتب:
-autoscan <HOST(s) IP/FQDN>
معظم مستخدمي الشبكات اللاسلكية يستخدمون بطاقاتهم اللاسلكية فقط كمحطة (station) لنقطة وصول (AP). في وضع الإدارة (managed mode)، تعتمد البطاقة اللاسلكية وبرنامج التشغيل على نقطة وصول محلية في وضع الإدارة لتوفير الاتصال بالشبكة اللاسلكية.
تدعم بعض البطاقات اللاسلكية أيضاً وظيفة وضع المراقبة (monitor mode). عند تكوينها في وضع المراقبة، تتوقف البطاقة اللاسلكية عن إرسال البيانات وتلتقط القناة المكونة حالياً، وتبلغ نظام التشغيل المضيف بمحتويات أي حزم يتم رصدها.
لتحويل واجهة إلى وضع المراقبة، استخدم الأمر التالي:
-mode monitor -iface <INTERFACE>
يمكنك أيضاً ضبط واجهتك على الواجهة اللاسلكية الافتراضية (المُعدّة في files/conf.py):
-mode monitor -iface d

كما ترى في لقطة الشاشة أدناه، تم تغيير وضع الواجهة بنجاح.

مع ذلك، إذا كنت ترغب في إعادة واجهتك إلى وضع الإدارة، اكتب:
-mode managed -iface <INTERFACE>
يمكنك أيضاً ضبط واجهتك على الواجهة اللاسلكية الافتراضية (المُعدّة في files/conf.py):
-mode managed -iface d

كما ترى في لقطة الشاشة أدناه، تم تغيير وضع الواجهة بنجاح.

أنشئ issue أو pull request، أو أرسل لي بريداً إلكترونياً على [email protected].
هذا المستودع مرخّص بموجب رخصة MIT.