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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
zyxel-p870hn-hardware-hacking — من لوحة دارة مطبوعة عارية إلى صلاحية الجذر: اختراق عتادي لجهاز ZyXEL P-870HN (BCM6368) عبر UART — CVE-2025-0890 + CVE-2024-40891، على عتادي الخاص. | Kitploit
أدوات/GitHubGitHub/danyw24/zyxel-p870hn-hardware-hacking
أمان الأنظمة المدمجةكسر كلمات المرورأمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاختراق الأجهزةالتعلم والتعليمتحليل البرامج الثابتة

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubdanyw24/zyxel-p870hn-hardware-hacking

zyxel-p870hn-hardware-hacking

من لوحة دارة مطبوعة عارية إلى صلاحية الجذر: اختراق عتادي لجهاز ZyXEL P-870HN (BCM6368) عبر UART — CVE-2025-0890 + CVE-2024-40891، على عتادي الخاص.

عرض المستودع
50منذ 2 أشهرلم تتم المراجعة بعد

من لوحة PCB عارية إلى صلاحيات الجذر: اختراق عتاد ZyXEL P-870HN عبر UART

صورتان من الهاتف للوحة راوتر بلا ملصقات → وحدة تحكم تسلسلية → تجاوز مصادقة → شل جذر — إعادة إنتاج السلسلة الحقيقية غير المُصححة حتى الآن CVE-2025-0890 (حساب supervisor مخفي) + CVE-2024-40891 (حقن أوامر CLI) على أجهزة أمتلكها.

بقلم damik0 · 2026-08-13 · دليل عملي خطوة بخطوة لاختراق الأجهزة

  📷 PCB photos ─▶ 🔬 chip recon ─▶ 🏷️  model ID ─▶ 📍 find UART (J2)
       └─▶ 🔌 serial console ─▶ 🚪 hidden account ─▶ ⛓️  break out of CLI
              └─▶ 🐚 root shell ─▶ 🔓 dump + crack every credential

خلاصة سريعة

كانت لدي لوحة راوتر عشوائية على مكتبي. بدون غلاف، بدون ملصق، وبدون أي فكرة عن ماهيتها. بدءًا من لا شيء سوى صورتين لها، قرأت كل شريحة على اللوحة PCB، وحددت الطراز الدقيق، وعثرت على موصل المنفذ التسلسلي (UART)، واتصلت به، ودخلت عبر حساب باب خلفي مصنعي، وخرجت من قائمة بائع مقفلة إلى شل لينكس بصلاحيات جذر، وسحبت كل كلمات المرور من الجهاز — تم كسرها في أقل من ثانية.

لا شيء من هذه الثغرات من اكتشافي. إنها مشاكل ZyXEL موثقة قال البائع إنه لن يصححها. ما يدور حوله هذا المستودع هو الكيفية، من البداية إلى النهاية، والمنطق في كل خطوة.


أولاً وقبل كل شيء: هذا جهاز خاص بي

  • الهدف هو لوحة راوتر أمتلكها.
  • كان الدخول عبر المنفذ التسلسلي الفعلي على PCB — لا هجوم عن بُعد، ولا شبكة طرف ثالث، ولا شيء معرّض للإنترنت.
  • ظلت معزولة تمامًا عن الشبكة على طاولة عملي طوال الوقت.
  • كان الهدف هو تنفيذ دورة اختراق الأجهزة كاملة من البداية إلى النهاية وتوثيقها بحيث تكون قابلة لإعادة الإنتاج.

ما الذي كنت أفتش فيه

استخرجت المعرّف من رقم اللوحة المطبوع بالشاشة الحريرية 45-402-000022 والباركود، مع مطابقة مرجعية مع TechInfoDepot وجدول أجهزة OpenWrt ومعرّف FCC I88P870HN51B:

الطرازZyXEL P-870HN-53b — بوابة VDSL2/ADSL2+ لاسلكية، صُنعت بواسطة MitraStar
العصر~2013 (رموز التاريخ تشير إلى الأسبوع 21 / 2013)؛ وحدة موزَّعة من مزود خدمة الإنترنت
المعالجBroadcom BCM6368UKPBG — MIPS ثنائي النواة (BMIPS4350)، ~400 ميجاهرتز
الذاكرة2× Winbond W9425G6JH-5 — 256 ميجابت DDR2 ×16 لكل منهما = 64 ميجابايت على ناقل 32-بت
الفلاشMacronix MX29LV640EBTI-70G — 8 ميجابايت NOR متوازي، TSOP-48
WiFiBroadcom BCM43222 (802.11n؛ سيليكون ثنائي النطاق، موصول بـ 2.4 جيجاهرتز فقط)
DSL AFEBroadcom BCM6302
البرنامج الثابتLinux 2.6.30 + BusyBox v1.00، محمّل الإقلاع Broadcom CFE (بُني 2012-06-11)

لماذا رقم اللوحة هو المفتاح الذي يفتح كل شيء: بوابات ODM مثل هذه هي تصاميم مرجعية. بمجرد أن يطابق رقم الجزء المطبوع بالشاشة الحريرية لوحة موثقة، فإنك ترث عمل شخص آخر — شريحة الفلاش الدقيقة، موقع UART وترتيب أطرافه، الحسابات الافتراضية. التحديد ليس مجرد إجراء شكلي؛ إنه ما يحوّل الاستطلاع الأعمى إلى هجوم موجّه.


كيف تم ذلك

الخطوة 0 — نقل الصور من هاتفي

أولاً، شيء صغير لتحسين تجربة الاستخدام: جمعت بسرعة مُحمِّل صور صغيرًا للشبكة المحلية (مكتبة Python القياسية، بدون أي تبعيات) حتى أتمكن من تصوير اللوحة بهاتفي وتصل الصور مباشرة إلى جهازي. نصف الجلسة الناجحة هو إزالة الاحتكاكات من هذا القبيل.

الخطوة 1 — قراءة اللوحة

فحصت كل شريحة من الصور عالية الدقة. أنواع العبوات تحكي القصة قبل أن تقرأ العلامات حتى: BGA في المنتصف هو العقل، وTSOP-48 دائمًا ما يكون فلاشًا متوازيًا تقريبًا، والعلبة الصغيرة بذيل كابل متحد المحور هي الراديو. كان المعالج مختبئًا تحت درع RF (موجود لأسباب تتعلق بالتداخل الكهرومغناطيسي EMI + كناشر للحرارة)، لذا فتحت العلبة لقراءة العلامة تحتها — Broadcom BCM6368.

خريطة اللوحة مع التعليقات

اللوحة، مرسومة: (1) معالج BCM6368، (2) ذاكرة DDR2 RAM، (3) WiFi BCM43222، (4) محول خط DSL، (5) مغناطيسيات الإيثرنت، (6) موصلات USB داخلية، (7)(8) علامات اللوحة، (9) موصل وحدة التحكم J2، (10) بصمة لحام JTAG غير محشوة.

الخطوة 2 — إطلاق اسم عليها

طابق رقم طباعة الشاشة الحريرية 45-402-000022 اللوحة الموثقة تمامًا، وكل شريحة — المعالج SoC والفلاش وWiFi وذاكرة الـ 64 ميجابايت — تطابقت قطعة بقطعة مع النسخة -53b. الآن لم أعد أعرف فقط ما هي؛ بل عرفت أين يقع UART الخاص بها وما الحساب الذي سيسمح لي بالدخول.

الخطوة 3 — البحث عن UART

بجوار المعالج SoC تمامًا كان هناك موصل بزاوية قائمة ذو 6 دبابيس مثبَّت، مطبوع عليه بالشاشة الحريرية J2، مع مثلث يشير إلى الدبوس 1. تم التأكيد بالرجوع إلى صفحة OpenWrt لهذا الطراز:

الدبوسالإشارة
1VCC 3.3Vاتركه غير موصول
2Tx→ RX المُحَوِّل
3Rx→ TX المُحَوِّل
4GND→ GND المُحَوِّل
5NC

115200 8N1، 3.3V TTL.

بطاقة توصيل J2

كيف تجد UART عندما لا يوجد wiki يخبرك بترتيب الأطراف — الجزء الذي يُظهر أن هذا ليس مجرد اتباع وصفة:

  • GND — استمرارية (صفير) مع مستوى الأرضي / الدرع، واللوحة بدون طاقة.
  • VCC — خط طاقة يستقر عند ~3.3 V ثابت بعد التشغيل.
  • TX — يستقر على المستوى العالي عند ~3.3 V (حالة mark في UART) وينخفض/يومض بشكل مرئي وواضح لحظة إقلاع الجهاز وبدء بث سجله. هذا الوميض هو وحدة التحكم وهي تتحدث.
  • RX — عادةً هو الهادئ: عائم أو مسحوب بشكل ضعيف، بدون أي نشاط إقلاع.

وإذا لم تكن تعرف معدل الباود؟ 115200 هو الإعداد الافتراضي في Broadcom CFE، لكن بدون معلومات مسبقة ستجرّب المعدلات الشائعة (9600 → 115200) حتى تتحول البيانات العشوائية إلى ASCII، أو تقيس أقصر فترة بت على راسم الإشارة وتحسب 1 / t.

الخطوة 4 — الحصول على وحدة تحكم

وصّلت محول USB-TTL (HW-597, PL2303) مع ضبط العبور (jumper) على 3.3V. هذا الأمر مهم: UART الخاص بـ BCM6368 هو 3.3 V TTL، وليس RS-232 (±12 فولت) — إذا وصّلت منفذًا تسلسليًا حقيقيًا أو محول 5V به فسوف تحرق الدبوس. الأرضي GND أولاً، ثم عبور RX/TX، مع ترك VCC عائمًا حتى لا يغذي أي شيء اللوحة بالطاقة بشكل عكسي. قبل تشغيل الطاقة تأكدت من GND وVCC بمقياس متعدد، ثم:

screen /dev/ttyUSB0 115200

شغّلته، وراقبت CFE وهو يسلم المهمة إلى النواة، وراقبت BusyBox init وهو يقلع، ووصلت إلى موجه تسجيل الدخول.

الخطوة 5 — الباب الأمامي كان مفتوحًا على مصراعيه · CVE-2025-0890

استسلم موجه تسجيل الدخول إلى حساب مصنعي مخفي لا توثقه ZyXEL أبدًا للمستخدم النهائي:

user:     supervisor
pass:     zyad1234

صلاحيات نظام كاملة. هذا هو جوهر CVE-2025-0890.

الخطوة 6 — كسر قفص البائع · CVE-2024-40891

ذلك التسجيل أوصلني إلى CLI بائع مقفلة بإحكام (consoled، موجه >): لا يوجد sh، ولا أي من أدوات Linux المعتادة — سجن ملفوف حول النظام الحقيقي. لكنها كانت تعرض أداة تشخيص ping، وكانت تلك الأداة تبني وسيطها مباشرةً في سلسلة أوامر شل مع صفر تنقية. لذا أطعمتها حرفًا واصلاً (metacharacter) لأوامر الشل:

> ping 127.0.0.1; sh

…وسقطت في شل BusyBox بصلاحيات جذر (#).

لماذا تكفي فاصلة منقوطة واحدة: معالج CLI يقوم بما يعادل system("ping " + userinput). الفاصلة المنقوطة ; تُنهي أمر ping وتبدأ أمرًا ثانيًا — sh — الذي يرث stdin/stdout الخاص بوحدة التحكم، فتحصل على شل تفاعلي. كان الحساب بالفعل uid 0؛ كان CLI هو الشيء الوحيد الذي يفصل بيني وبين شل حقيقي، والمدخلات غير المنقاة هدمت ذلك الجدار. ربط حقن CLI مُصادَق عليه بالحساب المخفي هو بالضبط النمط المتتبع باسم CVE-2024-40891.

الخطوة 7 — التقاط الغنيمة

بصلاحيات الجذر، نظرت إلى النظام والفلاش:

# cat /proc/version
Linux version 2.6.30 ... (Buildroot 2010.02) #1 Mon Jun 11 2012

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 004f5000 004f5000 "Physically mapped flash"     # 5,197,824 bytes = the whole firmware

ما يخبرك به /proc/mtd: الفلاش هو NOR متوازٍ مُعنون في الذاكرة — تراه وحدة المعالجة المركزية كنطاق عناوين مسطح (حتى حوالي 0xB8000000 في MIPS KSEG1)، مكشوفًا كقسم MTD واحد. هذه أخبار ممتازة لعملية التفريغ: قراءته تعود نظيفة، بدون أي من البايتات الاحتياطية/OOB وغرابة ECC التي تصارعها في NAND. /dev/mtdblock0 هو صورة البرنامج الثابت.

ثم كلمات المرور. لا يوجد /etc/shadow — التجزئات موجودة مباشرة في /etc/passwd، باستخدام تشفير DES crypt القديم:

تنزيل الأداة