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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2019-17147 — هندسة عكسية شاملة واستغلال لـ CVE-2019-17147، وهو تجاوز سعة المخزن المؤقت للمكدس في أجهزة التوجيه TP-Link TL-WR841N. يتضمن تحليل البرامج الثابتة، تصحيح الأخطاء على مستوى العتاد، واستغلال حقن شيلكود مرحلي لـ RCE دون مصادقة. | Kitploit
أدوات/GitHubGitHub/imnot-ye/cve-2019-17147
أمان الأنظمة المدمجةأمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةشيل كوداختراق الأجهزةأمن الأجهزةالأوراق والأبحاثالتعلم والتعليمتحليل البرامج الثابتةاستغلال الملفات الثنائية
4منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2019-17147

هندسة عكسية شاملة واستغلال لـ CVE-2019-17147، وهو تجاوز سعة المخزن المؤقت للمكدس في أجهزة التوجيه TP-Link TL-WR841N. يتضمن تحليل البرامج الثابتة، تصحيح الأخطاء على مستوى العتاد، واستغلال حقن شيلكود مرحلي لـ RCE دون مصادقة.

عرض المستودع

CVE-2019-17147: استغلال ثغرة TP-Link TL-WR841N

Banner

نظرة عامة

يُوثّق هذا المستودع عملية الهندسة العكسية الشاملة واستغلال ثغرة CVE-2019-17147، وهي ثغرة حرجة من نوع تنفيذ التعليمات البرمجية عن بعد (RCE) في راوتر TP-Link TL-WR841N (معمارية MIPSEL). توجد الثغرة في خادم الويب httpd، حيث يؤدي التحقق غير الصحيح من المدخلات إلى تجاوز سعة المخزن المؤقت (Stack Buffer Overflow) عبر دالة مخصصة cstr_strncpy، مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية دون مصادقة.

الثغرةCVE-2019-17147
CVSS v3.18.8 (عالية)
المتجهAV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
النوعتجاوز سعة المخزن المؤقت على المكدس
المكون/usr/bin/httpd

البنية التحتية والأدوات

تم إنشاء بيئة التحليل باستخدام المكونات التالية:

  • الأجهزة: راوتر TP-Link TL-WR841N.
  • أدوات الأجهزة: مبرمج CH341A (لتفريغ ذاكرة SPI)، محول USB-TTL (لوحدة تحكم UART)، مشبك SOIC8.
  • أدوات برمجية: flashrom (تفريغ الذاكرة)، binwalk (استخراج البرامج الثابتة)، IDA Pro (التحليل الثابت)، GDB-Multiarch (التصحيح عن بعد)، QEMU (محاكاة MIPSEL).
  • إصدار البرنامج الثابت: TL-WR841N(US)_V14_180319.

التحليل الفني

1. التحليل الثابت

تم تحديد الثغرة في الملف الثنائي /usr/bin/httpd. كشف التحليل الثابت عبر IDA Pro عن دالة نسخ سلسلة مخصصة، cstr_strncpy، تُستخدم أثناء تحليل رأس HTTP (تحديداً رأس Host).

IDA Graph

تستقبل الدالة cstr_strncpy معامل copy_len المشتق من طول السلسلة المصدر بدلاً من حجم المخزن المؤقت الوجهة. وهذا يسمح بتجاوز سعة المخزن المؤقت التقليدي عند تقديم رأس طويل للغاية. علاوة على ذلك، تتأثر الدالة http_parser_argStrToList، التي تتعامل مع هيكل قائمة مرتبطة، بهذا التجاوز، مما يمنح السيطرة على مؤشرات next و prev.

2. التحليل الديناميكي

أكد التصحيح أثناء التشغيل باستخدام gdbserver حدوث التعطل والسيطرة على تدفق التنفيذ. كشف تحليل خريطة الذاكرة (vmmap) عن افتقار حاسم للتصلب:

  • الكومة (Heap): أذونات RWX (قراءة، كتابة، تنفيذ).
  • ASLR: محدود/غير فعال لهذا الثنائي.
  • NX: معطل.

VMMap

يسمح هذا التكوين بالتنفيذ المباشر للـ Shellcode الموضوع على الكومة، متجاوزاً الحاجة إلى سلاسل ROP المعقدة.

استراتيجية الاستغلال

تستخدم سلسلة الاستغلال بدائية Write-What-Where المستمدة من مؤشرات القائمة المرتبطة التالفة لتحقيق تنفيذ التعليمات البرمجية عن بعد.

  1. حقن الكومة (Heap Spraying): يتم حقن الـ Shellcode في الكومة. ونظراً لاستمرارية الكومة عبر الطلبات، يمكن القيام بذلك على مراحل.
  2. الحقن المرحلي: لتجاوز قيود البايت الصفري في strcpy، يتم إرسال الحمولة عبر طلبات متعددة:
    • المرحلة 1: كتابة عنوان الـ Shellcode إلى منطقة مرحلية.
    • المرحلة 2: كتابة عنوان GOT المستهدف إلى المنطقة المرحلية.
  3. الكتابة فوق GOT: يتم استبدال إدخال الدالة atol في جدول الإزاحة العام (GOT) بعنوان الـ Shellcode.
  4. تشغيل التنفيذ: يجبر الاستغلال على استدعاء atol (عبر رأس Content-Length)، معيداً توجيه التنفيذ إلى الـ Shellcode المحقون.

Exploit Diagram

التحقق من الاستغلال

يعمل النص البرمجي النهائي بلغة Python على أتمتة الهجوم بنجاح، مما يؤدي إلى فتح شل الجذر على المنفذ 31337.

Root Shell

التخفيف

تنبع الثغرة من الممارسات غير الآمنة في إدارة المخازن المؤقتة.

  • إصلاح الكود المصدري: استبدال استخدام cstr_strncpy ببدائل آمنة تفرض حدود المخزن المؤقت الوجهة بدقة (مثل strncpy مع فحص صريح للحدود بناءً على sizeof(dest)).
  • تعزيز الثنائي: تمكين NX (No-Execute) لمنع تنفيذ التعليمات البرمجية على المكدس والكومة. تمكين ASLR الكامل و PIE (الملف التنفيذي المستقل عن الموضع) لعشوائية تخطيط الذاكرة.

التوثيق الكامل

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

  • 🇮🇹 الدليل الكامل (إيطالي)
  • 🇬🇧 الدليل الكامل (إنجليزي)

المؤلفون

  • Angelo Zullo
  • Simone Vitto
  • Vincenzo Cantatore

إخلاء مسؤولية

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


بناءً على البحث والتحليل الأصليين.

تنزيل الأداة