Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-27216 — نهج المبتدئين في اختراق البرامج الثابتة | Kitploit
أدوات/GitHubGitHub/hoangrealer/cve-2023-27216
أمان الأنظمة المدمجةأمان إنترنت الأشياءتحليل الثغرات الأمنيةالهندسة العكسيةمصممي الأخطاءاختراق الأجهزةالتعلم والتعليمتحليل البرامج الثابتةاستغلال الملفات الثنائية
GitHubhoangrealer/cve-2023-27216

CVE-2023-27216

نهج المبتدئين في اختراق البرامج الثابتة

335منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-27216 - جهاز التوجيه DLink

هذه الوثيقة هي تجربتي الشخصية - كمبتدئ في مجال هندسة عكس البرامج الثابتة واستغلال الثغرات. Firmwhere??

النطاق

للغرض التوضيحي، سنقوم بتحليل وإعادة إنتاج CVE-2023-27216.

  • رقم CVE: CVE-2023-27216
  • وصف الثغرة: مشكلة تم العثور عليها في D-Link DSL-3782 الإصدار v.1.03 تسمح للمستخدمين المصادق عليهم عن بعد بتنفيذ تعليمات برمجية عشوائية - كجذر (root) عبر صفحة إعدادات الشبكة.
  • طراز الجهاز: D-Link DSL-3782
  • إصدار البرنامج الثابت: DSL-3782_A1_EU_1.01
  • الموقع الرسمي للشركة المصنعة: http://www.dlink.com.cn/
  • رابط البرنامج الثابت: https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

المهام

لاستغلال أي برامج ثابتة، هناك الخطوات التالية:

  • الحصول على البرامج الثابتة. هناك طريقتان: استخراجها مباشرة من الجهاز (كاميرا، راوتر، طابعة، إلخ) أو يمكنك الحصول عليها من موقع الشركة المصنعة. سيتم مناقشة هذا في مستند آخر.
  • تحليل البرنامج الثابت والعثور على أي ثغرات أمنية
  • محاكاة البرنامج الثابت.
  • بناء gdbserver بشكل ثابت (statically) لغرض التصحيح.

تحليل البرنامج الثابت

عادةً ما يحتوي ملف البرنامج الثابت الثنائي (binary firmware) على أداة تحميل الإقلاع (uBoot)، ملف Kernel، رأس Kernel لأداة تحميل الإقلاع (uImage)، نظام ملفات مضغوط (بصيغة SquashFS عادةً)، جدول CRC/MD5 (للتحقق من سلامة الملف)، وملفات متنوعة أخرى.

ابحث عن طريقة لتحليل البرنامج الثابت أولاً، قم ببعض البحث، حصلت على بعض الموارد:

  • استخدام Binwalk لتحليل واستخراج البرنامج الثابت
  • كيفية المحاكاة: https://boschko.ca/qemu-emulating-firmware/ Binwalk check signature

استخراج الملفات الهامة

استخراج البرنامج الثابت باستخدام binwalk: binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin Binwalk extract

حصلت على المجلد squashfs-root المستخرج وبعض الملفات الغريبة. Extracted files

مكافأة: إذا لم تر المجلد squashfs-root، يمكنك استخدام unsquashfs على أي ملف ".squashfs" تراه. إنها مثل ملفات zip 😅.

تحليل كيفية عمل البرنامج الثابت

تحقق من بنية (architecture) البرنامج الثابت وترتيب البايتات (endianness). يمكن التحقق من ذلك بفحص بعض الملفات الثنائية المستخرجة من البرنامج الثابت. تحقق من البنية والبرنامج الثابت: file <binary> Firmware Architecture

هنا يمكننا التأكيد بشكل شبه مؤكد أن البرنامج الثابت يعمل على بنية MIPS 32-bit MSB. سبب "شبه مؤكد" هو أن بعض البرامج الثابتة قد تعمل على بنية مختلفة مع MIPS Compatible مثل Lexra.

تحقق من المجلد squashfs-root ووجدت بعض الملفات المثيرة للاهتمام:

  • usr/etc/init.d/rcS => هذا هو السكريبت الذي يتم تشغيله عند إقلاع البرنامج الثابت
  • usr/etc/passwd => هذا هو الملف الذي يحتوي على معلومات المستخدم
  • userfs/romfile.cfg => توجد بيانات اعتماد admin:admin

تحقق من ملف rcS ووجدت بعض الأكواد المثيرة للاهتمام:

echo "admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh" > /usr/etc/passwd
  • يُستخدم هذا الكود لكتابة معلومات المستخدم إلى ملف passwd
  • تشغيل خادم ويب يُسمى boa server. Boa هو خادم ويب قديم، يُستخدم بشكل أساسي في الأجهزة المضمنة مثل أجهزة التوجيه في العقد الأول من القرن الحادي والعشرين. ومع ذلك، فقد توقف تطوير خادم Boa في عام 2005! على الرغم من أن خادم Boa قد مات منذ حوالي 20 عامًا، إلا أنه لا يزال يعيش حتى اليوم بفضل موردينا. Boa boot

محاكاة كاملة لنظام البرنامج الثابت

أوصي باستخدام نظام تشغيل قائم على Debian لعملية المحاكاة مثل Ubuntu أو Kali. هناك نظام تشغيل آخر يركز على اختراق البرامج الثابتة يُسمى AttifyOS. في هذه الوثيقة، استخدمت Kali Linux. ابدأ بعملية المحاكاة، هناك أداتان:

  • QEMU => لا تعيد اختراع العجلة 🙏 🛐
  • FAT- Firmware-analysis-toolkit => إنها تعمل، يمكنك قراءة الكود المصدري لمعرفة ما تفعله.

Stick with it

دعنا نستعرض كيفية استخدام FAT لمحاكاة برنامج ثابت بالكامل. أولاً، نستنسخ المستودع من github إلى جهاز Kali الخاص بك. ونتبع عملية الإعداد. تحتاج أيضًا إلى تعديل ملف fat.config، وإلا فلن يعمل.

git clone https://github.com/attify/firmware-analysis-toolkit.git

cd firmware-analysis-toolkit

./setup.sh

vi fat.config # قم بالتعديل ليشمل كلمة مرور sudo الخاصة بك.

ثم نقوم بنسخ ملف البرنامج الثابت الثنائي (الذي قمنا بتنزيله من الشركة المصنعة) إلى مجلد FAT على جهاز Kali الخاص بنا وتشغيله.

./fat.py DSL-3782_A1_EU_1.01_07282016.bin

ملاحظة: أثناء عملية إعداد FAT قد نواجه أخطاء. قد يظهر خطأ بعدم وجود libmagic. Fat run fail

ببساطة قم بتشغيل

pip unistall python-magic
pip install python-magic

سيؤدي هذا إلى إصلاح المشكلة، ثم نقوم بتشغيل أمر البناء مرة أخرى. يجب أن يعمل بشكل ممتاز الآن.

Fat run nice

اضغط Enter للتشغيل. يجب أن تعمل عملية المحاكاة بشكل جيد حيث يمكنك التصفح إلى http://192.168.1.1 (على جهاز Kali) للتحقق من أنها تعمل أم لا.

Router main page

يمكنك أيضًا تسجيل الدخول إلى وحدة التحكم إذا كان لديك بيانات الاعتماد. هنا admin:admin.

Console login

إذا قررت إيقاف تشغيل البرنامج الثابت المُحاكى، فقط اضغط Ctrl+A X. عندما تحتاج إلى تشغيله مرة أخرى، لا تقم بتشغيل fat.py مرة أخرى لأن البرنامج الثابت قد تم بناؤه بالفعل في صورة. تحتاج فقط إلى تشغيل السكريبت الذي تم إنشاؤه بالفعل.

cd firmadyne/scratch/<Image-ID>
./run.sh

Rerun the image

مصحح الأخطاء

بناء gdbserver لغرض التصحيح. هناك عدة طرق لبناء gdbserver. يمكنك أيضًا تنزيل خادم مبني بشكل ثابت (statically). يوجد مستودع يخزن بعض الخوادم المبنية بشكل ثابت. ومع ذلك، أفضل بناء gdbserver بنفسي لأن تلك الموجودة في مستودع github قديمة جدًا وقد تواجه بعض مشكلات التوافق.

ارجع إلى منشور المدونة هذا للمراجع https://sheran.sg/blog/cross-compile-gdb-for-mips/. تم تحميل المدونة في 30 يوليو 2024، قبل هذا المشروع مباشرة، لذا فهي تعمل بشكل مثالي. ملاحظة: تم بناء المدونة لـ MIPS x32 LSB لكننا نحتاج MIPS x32 MSB. نحتاج إلى تغيير mipsel-linux-gnu إلى mips-linux-gnu.

خطوات البناء

نحتاج إلى تثبيت سلسلة أدوات (tool chain) لـ MIPS. لحسن الحظ، حزمة Debian تحتوي عليها بالفعل.

**apt update && apt upgrade -y
apt install -y build-essential m4 gcc-mips-linux-gnu g++-mips-linux-gnu**
تنزيل الأداة