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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2019-17147_Practice_Material — يحتوي هذا المستودع على أقسام فلاش مفرّغة بإصدار برنامج ثابت معرّض للثغرة CVE-2019-17147، بالإضافة إلى بعض الملفات الثنائية المفيدة لتخفيض الإصدار وتصحيح أخطاء جهاز التوجيه WR841N الخاص بك. | Kitploit
أدوات/GitHubGitHub/drmnsamoliu/cve-2019-17147_practice_material
أمان الأنظمة المدمجةتحليل الثغرات الأمنيةالاستغلالمصممي الأخطاءاختراق الأجهزةتحليل الملفات الثنائيةالتعلم والتعليمتحليل البرامج الثابتةمختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubdrmnsamoliu/cve-2019-17147_practice_material

CVE-2019-17147_Practice_Material

يحتوي هذا المستودع على أقسام فلاش مفرّغة بإصدار برنامج ثابت معرّض للثغرة CVE-2019-17147، بالإضافة إلى بعض الملفات الثنائية المفيدة لتخفيض الإصدار وتصحيح أخطاء جهاز التوجيه WR841N الخاص بك.

عرض المستودع
414منذ 4 سنواتلم تتم المراجعة بعد

CVE-2019-17147_Practice_Material

يحتوي هذا المستودع على أقسام فلاش مفرّغة بإصدار برنامج ثابت ضعيف بالنسبة لـ CVE-2019-17147، وبعض الملفات الثنائية المفيدة لخفض إصدار جهاز التوجيه WR841N(V14) وتصحيح أخطائه.

إجراء تعديلات على العتاد مثل الكتابة فوق أقسام شريحة الفلاش ينطوي على مخاطر. قيّم المخاطر وقرر بنفسك ما إذا كنت تريد القيام بذلك أم لا.

لماذا؟

أظهر المنشور من ZDI: https://www.zerodayinitiative.com/blog/2019/12/2/mindshare-hardware-reversing-with-the-tp-link-tl-wr841n-router-part-2 ثغرة مثيرة للاهتمام للغاية أرغب بشدة في تجربتها وتعلم شيء منها.
لسوء الحظ، تمت إزالة إصدار البرنامج الثابت (US) 0.9.1 4.16 v007c.0 Build 180613 Rel.42415n من الموقع الأمريكي ولم يعد ممكنًا تنزيله.
ومع ذلك، لدي بعض أجهزة WR841N تعمل بإصدار البرنامج الثابت (TW) 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n، وهو أقدم من الإصدار الذي استغله ZDI وما تزال الثغرة نفسها موجودة.

أظن أن كثيرين آخرين سيهتمون بإعادة إنتاج هذا الاستغلال لكنهم يواجهون المشكلة نفسها، إذ لا يمكنهم العثور على جهاز WR841N يعمل بإصدار ضعيف من البرنامج الثابت.
إذا كنت تستخدم عتادًا بإصدار TW أو EU أو JP، فلا يزال من الممكن تنزيل إصدار برنامج ثابت أقدم من 180613 (أي أنه مبني في 2018/06/13) وخفض إصدار الراوتر الخاص بك فقط عن طريق «ترقيته» بالبرنامج الثابت القديم من الموقع الرسمي.

على الرغم من أن خفض إصدار البرنامج الثابت ممكن، فإن WR841N يتحقق فعليًا ولن يقبل برنامجًا ثابتًا مخصصًا لعتاد يُباع في بلدان مختلفة. لذا، بالنسبة للأشخاص الذين يعيشون في البلدان التي لا توفر فيها TP-Link إصدارًا ضعيفًا من البرنامج الثابت على موقعها (على سبيل المثال، الولايات المتحدة)، سيحتاجون إلى تجاوز الفحص في خادم http وكتابة البرنامج الثابت الضعيف مباشرة في شريحة الفلاش بجهازهم. هذا هو الغرض الرئيسي من هذا المستودع.

لقد قمت أيضًا بتجميع (cross compile) نسخة ثابتة من busybox وgdbserver تعمل على WR841N لمن يرغب في محاولة تصحيح الأخطاء وإعادة إنشاء الاستغلال.

النسخ الاحتياطي لأقسام الفلاش

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

أفترض أنك معتاد بالفعل على استخدام وحدة التحكم التسلسلية (serial console)، لذا سأتخطى الجزء الخاص بالعتاد.

  1. قم بإعداد خادم tftp على الجهاز الذي تختاره.

  2. في وحدة تحكم WR841N:
    (استبدل عنوان IP بعنوان خادم tftp الخاص بك)

root@kitploit:~
~ # cat /dev/mtd0 > /var/WR841N_backup_mtd0_boot.bin
~ # tftp -p -r /var/WR841N_backup_mtd0_boot.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd0_boot.bin
~ #
~ # cat /dev/mtd1 > /var/WR841N_backup_mtd1_kernel.bin
~ # tftp -p -r /var/WR841N_backup_mtd1_kernel.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd1_kernel.bin
~ #
~ # cat /dev/mtd2 > /var/WR841N_backup_mtd2_rootfs.bin
~ # tftp -p -r /var/WR841N_backup_mtd2_rootfs.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd2_rootfs.bin=
  1. افحص ملفات .bin باستخدام binwalk للتأكد من أنك نجحت في عمل نسخة احتياطية لأقسام الفلاش.


كيفية الكتابة فوق قسم الفلاش باستخدام الأقسام الضعيفة

أقسام الفلاش في WR841N كما يلي:

root@kitploit:~
dev:    size   erasesize  name
mtd0: 00010000 00010000 "boot"
mtd1: 000f0000 00010000 "kernel"
mtd2: 002e0000 00010000 "rootfs"
mtd3: 00010000 00010000 "config"
mtd4: 00010000 00010000 "radio"

القسم الرئيسي الذي تحتاج إلى الكتابة فوقه هو rootfs (mtd2)، لكن من أجل الاستقرار سنقوم أيضًا بالكتابة فوق boot وkernel.
لم أقدم قسمي config وradio لأنهما لا يؤثران على الثغرة، وبالتأكيد لا تريد العبث بإعدادات الترددات اللاسلكية (RF) لتجنب مشكلات قانونية محتملة.


  1. انقل flashcp إلى WR841N باستخدام tftp.

في شل WR841:

root@kitploit:~
~ # cd /var
/var # tftp -g -r flashcp 192.168.0.100
/var # chmod +x flashcp

(استبدل عنوان IP بجهازك الذي يشغّل خادم tftp، بالطبع.)


  1. انقل TW_wr841N_mtd0_boot_180516.bin إلى WR841N واكتب فوق القسم باستخدام flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd0_boot_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd0_boot_180516.bin /dev/mtd0
/var # rm TW_wr841N_mtd0_boot_180516.bin

ملاحظة: ترتيب نقل الأقسام والكتابة فوقها لا يهم، لكن تأكد من القيام بذلك **واحدًا تلو الآخر** وعدم نقل جميع ملفات .bin إلى WR841N دفعة واحدة.
احذف ملف .bin الذي قمت بوميضه بالفعل قبل نقل الملف التالي. يتمتع الراوتر بذاكرة محدودة جدًا وسيتعطل إذا نقلت الكثير من الملفات إلى ramfs!

  1. انقل TW_wr841N_mtd1_kernel_180516.bin إلى WR841N واكتب فوق القسم باستخدام flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd1_kernel_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd1_kernel_180516.bin /dev/mtd1
/var # rm TW_wr841N_mtd1_kernel_180516.bin

  1. انقل TW_wr841N_mtd2_rootfs_180516.bin إلى WR841N واكتب فوق القسم باستخدام flashcp (هذا هو أكبر قسم، لذا سيستغرق flashcp بعض الوقت حتى ينتهي):
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd2_rootfs_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd2_rootfs_180516.bin /dev/mtd2
/var # rm TW_wr841N_mtd2_rootfs_180516.bin

  1. أعد تشغيل الراوتر وسترى أن صفحة الإدارة عبر الويب أصبحت باللغة الصينية التقليدية بالكامل، وأن إصدار البرنامج الثابت هو 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n.



FW

ملاحظات

  1. لن يعمل PoC المقدم من ZDI مباشرة على إصدار البرنامج الثابت المقدم هنا، فإزاحات الذاكرة مختلفة. يجب أن تحاول تعديل PoC الخاص بـ ZDI أو إنشاء استغلال خاص بك :)

  2. جميع الملفات الثنائية قمت بتجميعها بنفسي باستخدام buildroot-2021.02.6.

  3. لغة البرنامج الثابت لا ينبغي أن تؤثر كثيرًا، لأن معظم أعمال تصحيح الأخطاء وتطوير الاستغلال تتم في وحدة التحكم. ومع ذلك، يمكنني محاولة بناء أقسام قابلة للوميض من إصدار EU أو JP الضعيف إذا احتاجها أحدهم فعلًا وقدم طلبًا.

  4. وغني عن القول، إن إجراء تعديلات على العتاد مثل الكتابة فوق أقسام شريحة الفلاش ينطوي على مخاطر. قيّم المخاطر وقرر بنفسك ما إذا كنت تريد القيام بذلك أم لا.
تنزيل الأداة