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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
deco-filepush-disclosure — الإفصاح عن ثغرة قراءة/كتابة ملفات بصلاحيات الجذر في قناة التصحيح الخاصة بـ TP-Link Deco XE75 Pro V3 (أكواد tmpsvr ‏0xC456/0xF0)، مع تحليل CVSS وإعادة تفكيك المعالج. | Kitploit
أدوات/GitHubGitHub/cplusplus17/deco-filepush-disclosure
أمان الأنظمة المدمجةتصعيد الامتيازاتأمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمان الأجهزة وإنترنت الأشياءالأوراق والأبحاثتحليل البرامج الثابتة

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubcplusplus17/deco-filepush-disclosure

deco-filepush-disclosure

الإفصاح عن ثغرة قراءة/كتابة ملفات بصلاحيات الجذر في قناة التصحيح الخاصة بـ TP-Link Deco XE75 Pro V3 (أكواد tmpsvr ‏0xC456/0xF0)، مع تحليل CVSS وإعادة تفكيك المعالج.

عرض المستودع
21منذ يوم واحدلم تتم المراجعة بعد

Deco XE75 Pro V3 — قناة تصحيح مصادَق عليها من المالك: كتابة ملفات عشوائية بصلاحيات الجذر

مشروع VLAN المرافق: نسخة ألفا تجريبية بمُعرّف VLAN ثابت 30 لبرنامج XE75 Pro V3 والملف التعريفي المطابقين تمامًا. يتطلب ملفات أصلية يوفّرها المشغّل، ولا يتضمن مثبّتًا عامًا أو صورة قابلة للتفليش. لا تزال شبكة VLAN الضيف 591 دون حل؛ ولم يكتمل بعد قبول الإقلاع البارد النهائي للوحدات الثلاث، ولا اختبار واجهة المستخدم وعزل العملاء. راجع الحالة الحالية.

إفصاح بحثي، TP-Link Deco XE75 Pro V3، البرنامج الثابت 1.5.0 Build 20260603 Rel.15804. أُعِدّ لـ [email protected] وللنشر العام إلى جانب تنفيذنا لشبكة VLAN الخاصة بإنترنت الأشياء وفق 802.1Q (deco-iot-vlan).

الملخص

تصل قناة SSH للتصحيح المصادَق عليها من مالك Deco (Dropbear على TCP 20001، إعادة توجيه direct-tcpip فقط، مصادقة بكلمة مرور) إلى خدمة داخلية tmpsvr على 127.0.0.1:20002. أحد معالجات Lua الخاصة بها، inner_file_push (رمز العملية 0xC456)، يفتح params.file بوضع "w" ويكتب params.content حرفيًا بصلاحيات الجذر، دون قائمة مسارات مسموح بها، ودون حد للحجم، ودون إسقاط للصلاحيات. ويوفّر رمز عملية شقيق (0xF0) قراءةً مطابقة للملفات بصلاحيات الجذر. ومجتمعان معًا: قراءة + كتابة مصادَق عليهما لكامل نظام ملفات الجذر، وهو على جهاز التوجيه يعني الجهاز بأكمله.

SSH :20001  (username = SHA1(owner_email), password = TP-Link account password)
  -> direct-tcpip -> 127.0.0.1:20002 (TMPv2)
     -> 0xC456 inner_file_push : io.open(file,"w"); write(content); close()   [root]
     -> 0x00F0 root file read  : byte-exact file read                          [root]

التأثير (تم التحقق منه مباشرةً، غير مُدمِّر)

  • /etc/config هو ramfs قابل للكتابة أثناء التشغيل → غيّر مفتاحًا، وسيحترمه الراوتر.
  • يتم تقديم /www عبر HTTPS بواسطة uhttpd → الملفات المدفوعة تصبح قابلة للوصول فورًا.
  • /tp_data/user_data هو فلاش ubifs دائم → يبقى بعد إعادة التشغيل.
  • يمكن استبدال ذاكرة التخزين المؤقت لمسارات LuCI بـ Lua من المهاجم، تُستثار عبر GET /cgi-bin/luci → تنفيذ Lua بصلاحيات root → io.popen → تنفيذ ثنائي عشوائي بصلاحيات root.

تم تنفيذ الخطوات الأربع جميعها ثم التراجع عنها على الوحدة الرئيسية المملوكة للمالك نفسه.

لماذا يُعدّ هذا جديدًا — ولماذا لا يزال tmpsvr دون إصلاح بعد عامين من CCS'24 / Black Hat '24

وثّق فريق UCR SecLab علنًا قناة التصحيح :20001 -> 127.0.0.1:20002 (tmpsvr) قبل عامين في CCS 2024 — "Untangling the Knot: Breaking Access Control in Home Wireless Mesh Networks" (وBlack Hat USA 2024 — "Fallen Tower of Babel"). كانت نقطة دخولهم على طرازات Deco الأقدم (X55، FW 1.2.2) هي تحليل مفاتيح RSA المضيفة ذات 512 بت وإساءة استخدام معالجات tmpsvr غير المُتحقَّق منها.

الفروق الملحوظة والمعالجات المتبقية على هذا الإصدار الثابت من البرنامج الثابت تحديدًا:

  • رفعوا حجم مفتاح ssh-rsa المضيف من 512 بت إلى 2048 بت (مفتاح مشترك واحد ملحوظ عبر وحدات الشبكة المتداخلة الثلاث، SHA256:9feb3ac4...932a36، بالإضافة إلى ecdsa-sha2-nistp521 لكل وحدة)، مما أغلق مسار تحليل 512 بت من محاضرة 2024.
  • المعالجات التالية بمستوى root موجودة في البرنامج الثابت 1.5.0:
    1. مصادقة كلمة المرور على :20001 (svr_auth_uci) لا تزال نشطة باستخدام SHA1(owner_email) + كلمة مرور TP-Link ID المشتركة.
    2. الرمز التشغيلي 0xC456 (inner_file_push) لا يزال يفتح أي مسار يقدمه المستدعي في وضع "w" بصلاحيات root دون أي تحقق من المسار.
    3. الرمز التشغيلي 0x00F0 لا يزال يقرأ أي ملف على نظام الملفات بصلاحيات root.
    4. حتى الرمز التشغيلي 0xC505 (tty2tcp/start) — معالج حقن الأوامر /bin/sh -c غير المُقتبَس بعينه الذي أُبرز في ورقة 2024 — لا يزال موجودًا في البرنامج الثابت ليونيو 2026 (1.5.0) دون إصلاح بالكامل.

المتأثر (كما لوحظ)

  • المنتج: TP-Link Deco XE75 Pro V3 (شبكة متداخلة من 3 وحدات؛ وحدة رئيسية واحدة + وحدتان تابعتان)
  • البرنامج الثابت: 1.5.0 Build 20260603 Rel.15804
  • السطح: TCP 20001 (SSH التصحيح) قابل للوصول من LAN؛ المعالج موجود في مساحة المستخدم المستخرجة للإصدار 1.5.0 (وحدة luci/controller/admin/mobile_app/iot_device، inner_file_push).

الخطورة (CVSS v3.1 + v4.0)

لم يُثبَت سوى قابلية الوصول من LAN. بالنسبة للملف الملحوظ الخاص بـ LAN فقط نستخدم متغيرات AV:A: v3.1 6.8 / v4.0 8.5. درجات AV:N أدناه مشروطة بوجود مسار شبكي مُثبَت؛ قابلية الوصول عبر السحابة غير مُتحقَّق منها.

هذا تصعيد بعد المصادقة، بصلاحيات المالك إلى root — وليس RCE دون مصادقة — الدرجات الخاصة بالملف الملحوظ أدناه هي 6.8 (v3.1) و8.5 (v4.0). المبررات الكاملة والتضخيمات المرفوضة موجودة في docs/cvss-analysis.md.

CVSS v3.1 — تقييم LAN فقط 6.8 (متوسط)؛ المتغير البعيد المشروط 7.2 (مرتفع):

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 7.2 (High)
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 6.8 (Medium)   # if LAN-only

استدعاءات حاسمة: PR:H (المالك / حساب TP-Link-ID هو المسؤول الإداري للجهاز) و**S:U** (المعالج يعمل بالفعل بصلاحيات الجذر — لا يتم تجاوز أي حد للصلاحيات). سجّلت مسودة سابقة 9.9 عبر PR:L + S:C؛ وكلاهما مرفوض.

CVSS v4.0 — تقييم LAN-only بقيمة 8.5 (High)؛ المتغير البعيد الشرطي بقيمة 8.6 (High):

CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N   = 8.6 (High)
CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N   = 8.5 (High)       # if LAN-only
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L   = 9.3 (Critical)   # with Subsequent-System LAN/mesh impact

المخاطر الواقعية — تحوّل كلمة مرور TP-Link-ID المسروقة/المُعاد استخدامها إلى صلاحية root دائمة عبر الشبكة المتداخلة بأكملها إضافةً إلى MITM لحركة مرور العملاء — تنتمي إلى السرد (ومقاييس v4.0 SC:H/SI:H/SA:L الخاصة بـ Subsequent-System)، وليس إلى متجه أساسي v3.1 منتفخ.

إثبات المفهوم

poc/deco_filepush_poc.py — مكتفٍ ذاتيًا (stdlib + paramiko). بيانات الاعتماد عبر متغيرات البيئة DECO_EMAIL / DECO_PASSWORD فقط. تتطلب الأوضاع الحية DECO_HOSTKEY، مُتحقَّقًا منها بشكل مستقل: base64 خام، أو سطر مفتاح عام، أو سطر مفتاح واحد من ssh-keyscan (التعليقات مدعومة). الفحص وحده لا يصادق على الجهاز. يتحقق فحص HTTPS من البايتات المُقدَّمة لكنه لا يتحقق من شهادته. يلزم وضع واحد بالضبط؛ التحقق الفاشل يخرج بقيمة غير صفرية.

python3 poc/deco_filepush_poc.py --selftest        # offline framing sanity
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --run           # write marker + readback + HTTPS check
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --cleanup <nonce>   # overwrite marker with empty content

يكتب PoC علامة خاملة واحدة إلى /www/log_export (ramfs؛ وتُمسح أيضًا عند إعادة التشغيل)، ثم يتطلب قراءة استرجاعية مطابقة بايتًا ببايت عبر opcode القراءة الجذرية الخاص بالجهاز وتقديم HTTPS دون تعديل قبل الإبلاغ عن النجاح.

ملخص إعادة الإنتاج (مباشر، 2026-10-17)

  1. ssh-keyscan -p 20001 <deco> → تثبيت مفتاح المضيف (RSA بـ 2048 بت مشترك عبر الشبكة المتداخلة + nistp521 لكل وحدة).
  2. SSH باستخدام SHA1(owner_email) / كلمة مرور حساب TP-Link، وطلب direct-tcpip إلى 127.0.0.1:20002.
  3. اقتران TMPv2 (01010100 → 01010200 → 01010200)، ثم طلب رمز opcode 1.
  4. Opcode 0xC456، {"params":{"file":"/www/log_export/deco-write-<nonce>.html", "content":"..."}} → {"error_code":0,...}.
  5. Opcode 0xF0، {"params":{"file":"..."}} → قراءة استرجاعية مطابقة بايتًا ببايت.
  6. GET https://<deco>/log_export/deco-write-<nonce>.html → 200، بايتات مطابقة.

النطاق / الصدق

  • أجهزة المالك الخاصة، وبيانات اعتماد المالك الخاصة.
  • غير مدمّر: علامة واحدة، واستعادة مطابقة بايتًا ببايت، وتراجع مُتحقَّق منه.
  • تم إثباته على الوحدة الرئيسية؛ المعالج نفسه موجود في مساحة المستخدم 1.5.0 المستخرجة لكامل الشبكة المتداخلة.
  • مسار tty2tcp (0xc505) مؤكَّد الوجود + غير مُتحقَّق منه (ساكن) لكنه غير مُتحقَّق منه مباشرةً كحقن منفصل؛ مُدرَج لاكتمال الصورة.

لماذا الإصدار العام (منع النفايات الإلكترونية والحق في أمن الشبكات)

تنزيل الأداة