مجموعة أدوات اختبار الثغرات الأمنية عالية الأداء (D) DoS. ينفذ مختلف ناقلات الهجوم L4/7. يساعد النهج غير المتزامن في الشبكات على تقليل متطلبات وحدة المعالجة المركزية/ذاكرة الوصول العشوائي أثناء إجراء تفاعلات الشبكة المعقدة.
ملحوظة ؟ لا تحتوي مجموعة الأدوات على الإمكانيات اللازمة لاختبار الأداء المناسب للخوادم أو الشبكات المستهدفة. الهدف هو فهم مستوى الحماية، من خلال تنفيذ هجمات مصممة خصيصًا لإساءة استخدام المخاطر الشائعة وتجاوز تدابير الحماية المشتركة.
تحذير ❗ لا تختبر البنية التحتية (الخوادم، مواقع الويب، أجهزة الشبكة، إلخ) دون موافقة المالك. يتم ضبط الإعدادات الافتراضية للحزمة لتجنب التأثير الكبير غير المقصود عند إجراء الاختبارات.
مستوحاة من مشروع MHDDoS.
من باي بي آي:
$ pip install fiberfox
من المصادر:
$ git clone https://github.com/kachayev/fiberfox.git
$ cd fiberfox
$ python setup.py install
بناء صورة عامل الميناء:
$ git clone https://github.com/kachayev/fiberfox.git
$ cd fiberfox
$ docker build -t fiberfox .
مثال:
$ fiberfox
--targets tcp://127.0.0.1:8080 http://127.0.0.1:8081
--concurrency 512
--rpc 1024
--strategy STRESS
--duration-seconds 3600
--proxies-config ./proxies.txt
سمات:
--concurrency
(أو -c
) يحدد عدد coroutines غير المتزامنة المطلوب تشغيلها. لا تقوم Fiber بإنشاء سلسلة رسائل جديدة لنظام التشغيل، لذا يمكنك تشغيل الكثير منها بحمل بسيط. بالنسبة لنواقل هجوم TCP، يتوافق عدد الألياف تقريبًا مع الحد الأقصى لعدد اتصالات TCP المفتوحة. بالنسبة لهجمات UDP، فإن تشغيل عدد كبير جدًا من الألياف يؤدي عادةً إلى جعل الأداء أسوأ.SLOW
أو CONNECTIONS
)، فتأكد من إعداد ألياف أكثر مما لديك من أهداف.المزيد من الوثائق حول الأعلام:
$ python fiberfox --help
usage: fiberfox [-h] [--targets [TARGETS ...]] [--targets-config TARGETS_CONFIG] [-c CONCURRENCY] [-s {UDP,TCP,STRESS,BYPASS,CONNECTION,SLOW,CFBUAM,AVB,GET}] [--rpc RPC] [--packet-size PACKET_SIZE]
[-d DURATION_SECONDS] [--proxies [PROXIES ...]] [--proxies-config PROXIES_CONFIG] [--proxy-providers-config PROXY_PROVIDERS_CONFIG] [--log-level {DEBUG,INFO,ERROR,WARN}]
[--connection-timeout-seconds CONNECTION_TIMEOUT_SECONDS]
options:
-h, --help show this help message and exit
--targets [TARGETS ...]
List of targets, separated by spaces (if many)
--targets-config TARGETS_CONFIG
File with the list of targets (target per line). Both local and remote files are supported.
-c CONCURRENCY, --concurrency CONCURRENCY
Total number of fibers (for TCP attacks means max number of open connections)
-s {UDP,TCP,STRESS,BYPASS,CONNECTION,SLOW,CFBUAM,AVB,GET}, --strategy {UDP,TCP,STRESS,BYPASS,CONNECTION,SLOW,CFBUAM,AVB,GET}
Flood strategy to utilize
--rpc RPC Number of requests to be sent to each connection
--packet-size PACKET_SIZE
Packet size (in bytes)
-d DURATION_SECONDS, --duration-seconds DURATION_SECONDS
How long to keep sending packets, in seconds
--proxies [PROXIES ...]
List of proxy servers, separated by spaces (if many)
--proxies-config PROXIES_CONFIG
File with a list of proxy servers (newline-delimited). Both local and remote files are supported.
--proxy-providers-config PROXY_PROVIDERS_CONFIG
Configuration file with proxy providers (following MHDDoS configuration file format). Both local and remote files are supported.
--reflectors-config REFLECTORS_CONFIG
File with the list of reflector servers (IP per line). Only required for amplification attacks. Both local and remote files are supported.
--log-level {DEBUG,INFO,ERROR,WARN}
Log level (defaults to INFO)
--connection-timeout-seconds CONNECTION_TIMEOUT_SECONDS
Proxy connection timeout in seconds (default: 10s)
يتم تعريف ناقل الهجوم بواسطة خيار --strategy
عند تنفيذ البرنامج النصي.
ملاحظة: الحزمة قيد التطوير النشط، وسيتم إضافة المزيد من الأساليب قريبا.
تم تصميم هجمات L4 لاستهداف طبقات النقل، وبالتالي تُستخدم بشكل أساسي لزيادة التحميل على قدرات الشبكة. يتطلب الحد الأدنى من المعرفة بالهدف.
استراتيجية | طبقة | ينقل | تصميم | ملحوظات |
---|---|---|---|---|
UDP | L4 | UDP | الفيضان البسيط: يرسل حزم UDP التي تم إنشاؤها بشكل عشوائي إلى الهدف | يخنق الألياف تلقائيًا عند استقبال NO_BUFFER_AVAILABLE من جهاز الشبكة. لمنع حدوث ذلك، لا تقم بتكوين أكثر من 2 من الألياف لكل هدف عند اختبار هجوم فيضانات UDP. |
TCP | L4 | برنامج التعاون الفني | تدفق بسيط: يرسل RPC حزم TCP التي تم إنشاؤها عشوائيًا إلى اتصال TCP مفتوح. | يدعم التكوين لحجم الحزمة الواحدة وعدد الحزم التي سيتم إرسالها إلى كل اتصال مفتوح. |
CONNECTION | L4 | برنامج التعاون الفني | يفتح اتصالات TCP ويبقيها نشطة لأطول فترة ممكنة. | لكي يكون فعالا، يتطلب هذا النوع من الهجوم عددا أكبر من الألياف من المعتاد. لاحظ أن الخوادم الحديثة جيدة جدًا في التعامل مع الاتصالات المفتوحة غير النشطة. |
فئة خاصة من هجمات L4.
UDP هو بروتوكول بدون اتصال. ولا يتحقق من صحة عنوان IP المصدر ما لم تتم المعالجة الصريحة بواسطة طبقة التطبيق. وهذا يعني أنه يمكن للمهاجم بسهولة تزوير مخطط البيانات ليتضمن عنوان IP مصدرًا عشوائيًا. في كثير من الأحيان يتم تصميم بروتوكول التطبيق بطريقة تكون الحزمة التي يتم إنشاؤها استجابةً لها أكبر بكثير مما يخلق تأثير تضخيم (ومن هنا الاسم). ومن خلال إرسال مخطط البيانات هذا إلى العديد من الخوادم (العاكسات) المختلفة، يمكن للمهاجم إنشاء حركة مرور كبيرة إلى الجهاز المستهدف (الضحية).
تم تنفيذ هجمات التضخيم:
استراتيجية | بروتوكول | عامل التضخيم | وهن |
---|---|---|---|
RDP | بروتوكول سطح المكتب البعيد (RDP) | ||
CLDAP | بروتوكول الوصول الخفيف إلى الدليل (CLDAP) بدون اتصال | 56 و 70 | |
MEM | ميمكاشد | 10.000 إلى 50.000 | |
CHAR | بروتوكول مولد الأحرف (CHARGEN) | 358.8 | طلب إنشاء شار |
ARD | سطح المكتب البعيد من Apple (ARD) | ||
NTP | بروتوكول وقت الشبكة (NTP) | 556.9 | TA14-013A |
DNS | نظام اسم المجال (DNS) | 28 إلى 54 | TA13-088A |
تتطلب جميع هجمات التضخيم توفير قائمة بخوادم الانعكاس.
تم تصميم هجمات L7 لإساءة استخدام نقاط الضعف في بروتوكولات طبقة التطبيق أو تفاصيل التنفيذ المحددة للتطبيقات (أو نواة نظام التشغيل). بشكل عام أكثر قوة ولكن قد يتطلب معرفة كيفية عمل النظام المستهدف.
استراتيجية | طبقة | ينقل | تصميم | ملحوظات |
---|---|---|---|---|
GET | L7 | برنامج التعاون الفني | يرسل طلبات HTTP GET التي تم إنشاؤها بشكل عشوائي عبر اتصال TCP مفتوح | لا يتطلب رمز استجابة HTTP 200 OK (لأنه لا يستهلك الاستجابة على الإطلاق). على الرغم من أن الهجوم الذي يتم تنفيذه ضد موازن التحميل أو WAF قد لا يكون فعالاً (مقارنة بتدفق L4 TCP). |
STRESS | L7 | برنامج التعاون الفني | يرسل سلسلة من طلبات HTTP بنص كبير عبر اتصال TCP واحد مفتوح. | لتحقيق أقصى قدر من الأداء، تأكد من أن المضيف الهدف يسمح بالتدفق (إرسال طلب جديد ضمن اتصال مستمر دون قراءة الاستجابة أولاً). لا يتطلب رمز استجابة HTTP 200 OK (لأنه لا يستهلك الاستجابة على الإطلاق). على الرغم من أن الهجوم الذي يتم تنفيذه ضد موازن التحميل أو WAF قد لا يكون فعالاً (مقارنة بتدفق L4 TCP). |
BYPASS | L7 | برنامج التعاون الفني | يرسل طلبات الحصول على HTTP عبر اتصال TCP مفتوح، ويقرأ الاستجابة. | يتم إجراء القراءة المقسمة بواسطة بايتات recv من الاتصال، دون التحليل في استجابة HTTP. |
SLOW | L7 | برنامج التعاون الفني | على غرار STRESS، يصدر طلبات HTTP ويحاول الحفاظ على الاتصال المستخدم من خلال إعادة قراءة بايت واحد وإرسال حمولة إضافية مع تأخيرات زمنية بين عمليات الإرسال. | من الناحية المثالية، يجب إعداد التأخير الزمني بشكل صحيح لتجنب إعادة تعيين الاتصال بواسطة النظير بسبب انتهاء مهلة القراءة (يعتمد على إعداد النظير). |
CFBUAM | L7 | برنامج التعاون الفني | يرسل HTTP GET واحدًا، وبعد تأخير طويل يصدر المزيد من الطلبات عبر نفس اتصال TCP. | |
AVB | L7 | برنامج التعاون الفني | يصدر حزم HTTP GET في اتصال مفتوح مع تأخيرات طويلة بين عمليات الإرسال. لتجنب إعادة تعيين الاتصال من قبل النظير بسبب انتهاء مهلة القراءة، يتم تعيين الحد الأقصى للتأخير إلى ثانية واحدة. |
من خلال تكوين مجموعة من الخوادم الوكيلة، يمكن للمرء محاكاة الهجوم الموزع حتى عند تشغيل مجموعة الأدوات من جهاز واحد. عند توفر الوكلاء، يتصل fiberfox
بهم أولاً، وينشئ اتصالات بالهدف من تلك الأجهزة. ومن خلال القيام بذلك، يمكن للنظام تجاوز أبسط إجراءات حماية حظر IP. تدعم مجموعة الأدوات بروتوكولات HTTP/SOCKS4/SOCS5 ومصادقة المستخدم/كلمة المرور. كما أنه يدير ديناميكيًا مجموعة من الوكلاء المقدمين لتجنب استخدام الوكلاء غير المستجيبين أو الذين لا يستوفون متطلبات الهجوم.
هناك بعض الاعتبارات عند استخدام الوكلاء التي يجب عليك وضعها في الاعتبار:
يعتمد نجاح الهجوم الذي تم تنفيذه الآن جزئيًا على قدرة الخوادم الوكيلة. على سبيل المثال، عند استخدام الوكلاء العامين، قد يكون معدل الشبكة منخفضًا لأن الوكيل مكتظ. في هذه الحالة، فكر في استخدام بنية تحتية خاصة أو مجموعات مدفوعة من خوادم بروكسي مخصصة.
قد تخفف الخوادم الوكيلة نفسها من بعض نواقل الهجوم. على سبيل المثال، عند استخدام أسلوب "الاتصال البطيء"، يمكن تكوين الخادم الوكيل للتحكم في الاتصال أو إغلاقه. بطريقة ما "حماية" الهدف من خلال القيام بذلك. انتبه إلى كيفية تدخل إعداد الوكيل في آليات الهجوم (الشبكات والبروتوكولات وما إلى ذلك).
أحد أهداف مجموعة الأدوات هو توفير معلومات مراقبة شاملة لتوجيه عملية البحث عن الثغرات الأمنية.
تقوم الأداة بالإبلاغ عن عدد الإحصائيات لكل هدف: عدد الحزم وحركة المرور والمعدل. بالنسبة للهجمات المستندة إلى TCP (كل من L4 وL7)، فإنها تُبلغ أيضًا عن رسم بياني للحزم المرسلة خلال جلسة واحدة (الجلسة هنا تعني حركة المرور المرسلة ضمن اتصال واحد مفتوح). من الناحية المثالية، ينبغي أن يكون الرسم البياني منحرفا نحو الجانب الأيسر. وهذا يعني أن النظير يغلق الاتصال قبل إرسال حزم "الطلبات لكل اتصال". إذا كان بشكل أساسي على اليمين، فإن الهدف يقبل ما ينبغي اعتباره "حركة مرور البيانات المهملة".
كن حذرا مع التحليل. انخفاض معدل الشبكة، وارتفاع وتيرة محاولات الاتصال، وارتفاع معدل الأخطاء، والمزيد. قد تشير كل هذه الإشارات إلى حقيقة أن الهدف يظل قوياً في مواجهة الهجوم وأنه قد مات بالفعل. للحصول على فهم كامل لمستوى الحماية، يجب عليك استخدام معلومات المراقبة على الجانب المستهدف (على سبيل المثال، القدرة على العمل بشكل صحيح عند مواجهة التحدي).
لاحظ أن معدل الصادر يظهر تقريبًا. يتضمن قياس الوقت لإرسال كل حزمة تأخيرات الجدولة (للألياف) والاختيار/التجميع. في معظم الحالات هذه لا تذكر. على الرغم من توخي الحذر عند إجراء التحليل عند تشغيل ألياف تزيد عن 10 كيلو.
feature-*
فرع لبدء إجراء التغييرات. الإصدار بموجب ترخيص MIT. راجع الترخيص للحصول على الترخيص الكامل.
████
████▒▒██
████ ▒▒██
██▒▒ ▒▒▒▒▒▒██
██▒▒██ ██
████ ██▒▒██ ██
██▒▒▒▒██████ ██▒▒██ ▒▒ ████
██▒▒▒▒██ ████ ██████▒▒▒▒▒▒██ ▒▒▒▒██████████████
██▒▒ ████▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒████
██▒▒▒▒ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████
██ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ██▒▒▒▒▒▒▒▒▒▒████▒▒▒▒▒▒▒▒██
████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒████▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ██▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
████ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██ ▒▒██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ██▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██ ████▒▒▒▒▒▒▒▒▒▒ ██ ▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒██
██ ██ ████ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
██ ██▒▒██ ▒▒ ▒▒▒▒▒▒▒▒▒▒██
██████████████████████▒▒▒▒██ ▒▒▒▒▒▒██
██▒▒ ██▒▒▒▒▒▒▒▒██ ▒▒▒▒██
██▒▒▒▒ ██▒▒▒▒▒▒▒▒████ ▒▒▒▒██
██▒▒▒▒▒▒██▒▒▒▒▒▒██ ██ ██
██████▒▒▒▒▒▒██ ██ ████
██████ ██ ██████
██ ████
██████