
من اللحام إلى الشل: استغلال كامل للعتاد لموجه Linksys WRT54GL (CVE-2022-43973)
رحلة بحث في أمن الأنظمة المضمنة من 10 مراحل — من اكتشاف منفذ JTAG إلى تنفيذ الأوامر عن بُعد على جهاز توجيه استهلاكي يعمل بمعمارية MIPS.
| المؤلف | Umberto Della Monica |
| الدور | طالب ماجستير في الأمن السيبراني — باحث في أمن الأنظمة المضمنة |
| التاريخ | مايو 2026 |
| المستودع | Linksys-WRT54GL-Exploitation |
إخلاء مسؤولية: تم إجراء هذا البحث لأغراض تعليمية وبحثية فقط على أجهزة أمتلكها شخصيًا. لم يتم الوصول إلى أي أنظمة غير مصرح بها. يجب إعادة إنتاج جميع التقنيات الموصوفة هنا فقط على أجهزة تمتلكها أو لديك إذن كتابي صريح لاختبارها. لا يتحمل المؤلف أي مسؤولية عن أي إساءة استخدام للمعلومات المقدمة. التزم دائمًا بالقوانين واللوائح وممارسات الإفصاح المسؤول المعمول بها.
يُعد Linksys WRT54GL أحد أشهر أجهزة التوجيه الاستهلاكية التي تم إنتاجها على الإطلاق. جعله دعمه للبرامج الثابتة مفتوحة المصدر مفضلاً لدى المتحمسين والباحثين على حد سواء. على الرغم من عمره، لا يزال قيد الاستخدام النشط في جميع أنحاء العالم، مما يجعله هدفًا ذا صلة لأبحاث أمن الأنظمة المضمنة.
| المواصفة | القيمة |
|---|---|
| مجموعة الشرائح | Broadcom BCM5352 |
| تردد وحدة المعالجة المركزية | 200 ميجاهرتز |
| المعمارية | MIPS 32 بت (Endian صغير) |
| ذاكرة الفلاش | 4 ميجابايت NOR (مخطط للذاكرة عند 0xbfc00000) |
| ذاكرة الوصول العشوائي | 16 ميجابايت |
| الشبكة اللاسلكية | IEEE 802.11b/g، 54 ميجابت/ثانية |
| الشبكة السلكية | 4x LAN + 1x WAN، جدار حماية NAT مع SPI |
| نظام التشغيل | مبني على Linux (BusyBox) |
| مُحمل الإقلاع | CFE (بيئة البرامج الثابتة المشتركة) |
الخطوة الأولى في أي تقييم لأمن الأجهزة هي الفحص المادي. بعد فتح غلاف الجهاز، حددت واجهتي تصحيح أخطاء على لوحة الدوائر المطبوعة:
نظرًا لأن رأس JTAG كان غير معبأ، قمت بلحام رأس أطراف مؤقت للوصول إلى واجهة التصحيح. باستخدام مقياس متعدد، حددت خطوط الأرض (GND) والطاقة (Vcc) وأكدت أن الهدف يعمل بمستويات منطق 3.3 فولت — وهو أمر بالغ الأهمية لتجنب تلف مجموعة الشرائح.
لتعيين إشارات JTAG، استخدمت JTAGulator من Grand Idea Studio — وهي أداة أجهزة مصممة لتحديد واجهات التصحيح تلقائيًا عن طريق فحص جميع مجموعات الأطراف الممكنة.
نجح JTAGulator في تحديد توزيع أطراف JTAG التالي:
board: wrt54gl_v1.1
device: Linksys WRT54GL v1.1
pins:
TCK: PA3
TMS: PA4
TDI: PA1
TDO: PA2
TRST: NC
SRST: PB0
notes: "Header JP3 — تم التحقق من منطق 3.3V."
بعد تحديد أطراف JTAG، قمت بتوصيل Attify Badge — وهي أداة تقييم أمن الأجهزة مفتوحة المصدر (مرخصة بموجب GNU GPL v3.0) تحتوي على شريحة FTDI FT2232H — برأس JTAG الخاص بجهاز التوجيه.
قمت بتشغيل OpenOCD (مصحح الأخطاء على الرقاقة مفتوح المصدر) مع تهيئة مخصصة مُعدة خصيصًا لهدف BCM5352، نظرًا لأن التهيئات الرسمية لم تكن متوافقة مع هذا الإصدار المحدد من الأجهزة.
تحدد تهيئة OpenOCD المخصصة تخطيط أقسام الفلاش لجهاز التوجيه:
| القسم | الوصف | عنوان البداية | الحجم |
|---|---|---|---|
| CFE | مُحمل الإقلاع | 0xbfc00000 | 256 كيلوبايت |
| البرامج الثابتة | النواة + نظام الملفات الجذر | 0xbfc40000 | ~3.7 ميجابايت |
| NVRAM | التهيئة | 0xbfff0000 | 64 كيلوبايت |
بعد إيقاف وحدة المعالجة المركزية، قمت بإجراء تفريغ كامل بحجم 4 ميجابايت لفلاش NOR المُخطط للذاكرة:
> target halt
> dump_image ./dumps/wrt54gl.bin 0xbfc00000 0x00400000
باستخدام binwalk، قمت بتحليل تفريغ البرامج الثابتة لتحديد أنظمة الملفات المضمنة والقطاعات المضغوطة وصورة النواة:
binwalk ./dumps/wrt54gl.bin
binwalk -E ./dumps/wrt54gl.bin # تحليل الإنتروبيا
sha256sum ./dumps/wrt54gl.bin # التحقق من التكامل
كشف التحليل عن نظام ملفات جذر SquashFS يحتوي على بيئة Linux قياسية تعتمد على BusyBox. قمت باستخراجه باستخدام binwalk -e وunsquashfs للفحص الأعمق.
لإنشاء بيئة اختبار آمنة، قمت بإعداد محاكاة للبرامج الثابتة باستخدام FirmAE — وهو إطار عمل محاكاة آلي للبرامج الثابتة يدعم معماريات MIPS. سمح لي ذلك بإعادة إنتاج خدمات جهاز التوجيه (HTTP، telnet) في بيئة افتراضية واختبار الاستغلال دون خطر على الجهاز المادي.