Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
draytek-arsenal — مجموعة أدوات الهندسة العكسية والمراقبة لجدران حماية Draytek | Kitploit
أدوات/GitHubGitHub/infobyte/draytek-arsenal
أمان الأنظمة المدمجةتحليل الثغرات الأمنيةالهندسة العكسيةاختبار الاختراقأمن الأجهزةأمان الأجهزة وإنترنت الأشياءتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubinfobyte/draytek-arsenal

draytek-arsenal

مجموعة أدوات الهندسة العكسية والمراقبة لجدران حماية Draytek

عرض المستودع
538منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Draytek Arsenal: مجموعة أدوات المراقبة والتحصين لأجهزة Draytek الطرفية.

المهاجمون المتقدمون يختارون بشكل متزايد الأجهزة الطرفية (edge devices) كأهداف. ومع ذلك، فإن هذه الأجهزة يُتحكم فيها ببرمجيات مغلقة المصدر تُعرف باسم البرامج الثابتة (firmware)، والتي غالبًا ما تُوزَّع بصيغة مملوكة. وهذا يشكّل صعوبة إضافية للمدافعين والباحثين، الذين يجب أن يفهموا كيفية استخراج البرامج الثابتة لتقييم أمانها.

هذا ليس مجرد سيناريو افتراضي، كما اكتشفنا مؤخرًا عندما تعرّض أحد العملاء للاختراق. ومع وجود أجهزة Draytek على حافة بنيتهم التحتية، كان السؤال الطبيعي: هل يمكن أن تكون هذه نقطة دخول المهاجمين؟ أكثر من 500k جهاز Draytek مكشوف على الإنترنت. ومع ذلك، لا توجد أداة تعمل لاستخراج برامجها الثابتة ومساعدة الباحثين والمدافعين العاملين مع هذه الأجهزة.

أثناء تقييمنا، قمنا بهندسة عكسية لصيغة البرامج الثابتة الخاصة بـ Draytek، والتي تحتوي على مُحمِّل إقلاع (bootloader)، ونواة RTOS مضغوطة، ونظامي ملفات. من خلال تحقيقنا، طوّرنا أدوات لاستخراج هذه المكونات، مما كشف عن قدرة نظام التشغيل اللحظي على تحميل وحدات الكود ديناميكيًا. تُحمَّل هذه الوحدات من أحد أنظمة الملفات في صورة البرنامج الثابت أثناء الإقلاع، ولكن يمكن أيضًا تحميلها أثناء تشغيل النظام وتخزينها في نظام ملفات منفصل في ذاكرة الفلاش. يمكن للمهاجم استغلال هذه الميزة لتحقيق الثبات (persistence) عبر تحميل وحدة تظل نشطة حتى بعد إعادة التشغيل أو ترقية البرنامج الثابت، ولا يملك المستخدم النهائي وسيلة لكشف هذا النوع من الهجمات. وبالتالي، طوّرنا وحدتنا الخاصة للتحقق من سلامة الوحدات المُحمَّلة في الذاكرة، للتخفيف من هذا التهديد المحتمل.

في سعينا نحو إنترنت أكثر أمانًا، نُتيح هذه المجموعة من الأدوات للمجتمع، مما يتيح المراقبة والتحصين والشفافية وأبحاث الثغرات على أجهزة Draytek الطرفية.

العرض التقديمي

طُوّرت هذه الأداة كجزء من مشروع بحثي عُرض في DEFCON HHV وLa Villa Hacker. يمكنك العثور على الشرائح ومقاطع فيديو الإثبات (PoC) هنا.

ملاحظة

طوّرنا هذا في البداية كأداة داخلية. لقد كانت مجرد مجموعة من السكربتات، لكنها أظهرت إمكانات كبيرة، مما دفعنا إلى جعلها مفتوحة المصدر. منذ ذلك الحين، عملنا على دمج هذه السكربتات في حزمة Python التي ستجدها في هذا المستودع وجعلها متوافقة مع موديلات أخرى من الأجهزة.

البدء

المتطلبات:

  • Python3
  • Docker (اختياري)

التثبيت

(اختياري) إنشاء وتفعيل بيئة Python الافتراضية:

root@kitploit:~
$ python3 -m virtualenv .venv
$ source .venv/bin.activate

تثبيت draytek_arsenal:

root@kitploit:~
$ cd draytek_arsenal
$ python3 -m pip install -r requirements.txt
$ python3 -m pip install .

اختبار التثبيت:

root@kitploit:~
$ python3 -m draytek_arsenal

التثبيت كمطوّر

سيتأثر هذا التثبيت بالتغييرات المحلية في الكود

root@kitploit:~
$ python3 -m pip install -e .

أدوات Mips

بعض الأوامر مثل mips_compile وmips_merge تحتاج إلى صورة Docker مكملة لكي تعمل.
إذا لم يتم تنزيلها، تظهر رسالة الخطأ التالية:

root@kitploit:~
[x] Image 'draytek-arsenal' not found. Please build or download the image.

يمكنك تنزيل الصورة باستخدام الأمر التالي:

root@kitploit:~
$ docker pull ghcr.io/infobyte/draytek-arsenal:main

أو بناؤها باستخدام:

root@kitploit:~
$ docker build -t draytek-arsenal ./mips-tools

الاستخدام

draytek-arsenal هو مجموعة من السكربتات مجمّعة في حزمة Python. لذا، لاستخدامه يجب عليك اختيار أمر:

root@kitploit:~
usage: draytek-arsenal [-h] [command] args..

بعض الأوامر هي:

parse_firmware

تحليل وعرض معلومات البرنامج الثابت الخاص بجهاز Draytek.

root@kitploit:~
usage: parse_firmware [-h] firmware

positional arguments:
  firmware    Path to the firmware

options:
  -h, --help  show this help message and exit

استخراج أجهزة الشركات الصغيرة

أمر يُستخدم لاستخراج وفك ضغط أجهزة Draytek التي تعمل بنظام RTOS.

root@kitploit:~
usage: extract_rtos [-h] [--rtos RTOS] [--fs FS] [--dlm DLM] [--dlm-key1 DLM_KEY1]
                  [--dlm-key2 DLM_KEY2]
                  firmware

positional arguments:
  firmware              Path to the firmware

options:
  -h, --help            show this help message and exit
  --rtos RTOS, -r RTOS  File path where to extract and decompress the RTOS
  --fs FS, -f FS        Directory path where to extract and decompress the File
                        System
  --dlm DLM, -d DLM     Directory path where to extract and decompress the DLMs
  --dlm-key1 DLM_KEY1   First key used to decrypt DLMs
  --dlm-key2 DLM_KEY2   First key used to decrypt DLMs

استخراج أنظمة Linux

أمر يُستخدم لاستخراج وفك ضغط أجهزة Draytek التي تعمل بنظام Linux.

root@kitploit:~
usage: extract_linux [-h] [--fs FS] --key KEY firmware

positional arguments:
  firmware        Path to the firmware

options:
  -h, --help      show this help message and exit
  --fs FS, -f FS  Directory path where to extract and decompress the File System
  --key KEY       Key used to decrypt

dlm_hash

احصل على التجزئة (hash) الخاصة بوحدة DLM.

root@kitploit:~
usage: dlm_hash [-h] [-c] dlm

positional arguments:
  dlm         Path to the dlm

options:
  -h, --help  show this help message and exit
  -c          Print as .c code

find_loading_addr

ابحث عن العنوان الذي يُحمَّل عنده نظام RTOS باستخدام تعليمة القفزة الأولى.

root@kitploit:~
usage: find_loading_addr [-h] rtos

positional arguments:
  rtos        Path to the rtos

options:
  -h, --help  show this help message and exit

find_endianness

يتحقق مما إذا كان الـ RTOS بترتيب البايتات الصغير (little endian) أم الكبير (big endian).

root@kitploit:~
usage: find_endianness [-h] rtos

positional arguments:
  rtos        Path to the rtos

options:
  -h, --help  show this help message and exit

mips_compile

قم بترجمة ملف ثنائي MIPS قابل لإعادة التوطين (يُستخدم لوحدات DLM).

root@kitploit:~
usage: mips_compile [-h] output [input ...]

positional arguments:
  output      Output file
  input       Output file

options:
  -h, --help  show this help message and exit

mips_merge

قم بدمج ملفين ELF MIPS قابلين لإعادة التوطين.

root@kitploit:~
usage: mips_merge [-h] first_input second_input output

positional arguments:
  first_input   First input file
  second_input  Second input file
  output        Output file

options:
  -h, --help    show this help message and exit
تنزيل الأداة