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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
meltdown — عروض توضيحية لإثبات المفهوم ومكتبة libkdump توضح هجوم Meltdown المعماري الدقيق، مما يؤدي إلى تسريب ذاكرة النواة والذاكرة الفيزيائية على معالجات Intel المعرضة للخطر. | Kitploit
أدوات/GitHubGitHub/isec-tugraz/meltdown
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالتسريب البياناتالتشفيرأمن الأجهزةالأوراق والأبحاثاستغلال الملفات الثنائيةArchived
GitHubisec-tugraz/meltdown

meltdown

عروض توضيحية لإثبات المفهوم ومكتبة libkdump توضح هجوم Meltdown المعماري الدقيق، مما يؤدي إلى تسريب ذاكرة النواة والذاكرة الفيزيائية على معالجات Intel المعرضة للخطر.

4.2k52019منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودعالموقع الإلكتروني

إثبات مفهوم Meltdown

يحتوي هذا المستودع على عدة تطبيقات توضح خلل Meltdown. للحصول على معلومات تقنية حول الخلل، راجع الورقة البحثية:

  • Meltdown من تأليف Lipp وSchwarz وGruss وPrescher وHaas وMangard وKocher وGenkin وYarom وHamburg

تم بناء التطبيقات في هذا المستودع باستخدام libkdump، وهي مكتبة طورناها من أجل الورقة البحثية. تبسّط هذه المكتبة استغلال الخلل من خلال التكيّف تلقائيًا مع خصائص معينة للبيئة.

مقاطع الفيديو

يحتوي هذا المستودع على عدة مقاطع فيديو توضح Meltdown

  • الفيديو رقم 1 يوضح كيف يمكن استخدام Meltdown للتجسس في الوقت الفعلي على إدخال كلمة مرور.
  • الفيديو رقم 2 يوضح كيف يسرّب Meltdown محتوى الذاكرة الفيزيائية.
  • الفيديو رقم 3 يوضح كيف يعيد Meltdown بناء صورة من الذاكرة.
  • الفيديو رقم 4 يوضح كيف يعيد Meltdown بناء صورة من الذاكرة مشفرة بصيغة ملف FLIF.
  • الفيديو رقم 5 يوضح كيف يسرّب Meltdown الذاكرة غير المخزّنة مؤقتًا.

العروض التوضيحية

يحتوي هذا المستودع على خمسة عروض توضيحية لاستعراض حالات استخدام مختلفة. تم اختبار جميع العروض التوضيحية على Ubuntu 16.04 مع معالج Intel Core i7-6700K، لكن يجب أن تعمل على أي نظام Linux مع أي معالج Intel حديث منذ عام 2010.

للحصول على أفضل النتائج، نوصي بمعالج سريع يدعم Intel TSX (مثل أي Intel Core i7-5xxx أو i7-6xxx أو i7-7xxx). علاوة على ذلك، يجب تثبيت كل عرض توضيحي على نواة معالج واحدة، على سبيل المثال باستخدام taskset.

تبعية البناء للعروض التوضيحية

كشرط مسبق، تحتاج إلى تثبيت glibc-static على جهازك.

للأنظمة القائمة على RPM:

sudo yum install -y glibc-static

العرض التوضيحي رقم 1: اختبار أولي (test)

هذا هو العرض التوضيحي الأكثر أساسية. يستخدم Meltdown لقراءة عناوين يمكن الوصول إليها من مساحة العنوان الخاصة به، دون كسر أي آليات عزل.

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

البناء والتشغيل

make
taskset 0x1 ./test

إذا رأيت مخرجات مشابهة لهذه

Expect: Welcome to the wonderful world of microarchitectural attacks
   Got: Welcome to the wonderful world of microarchitectural attacks

فإن العرض التوضيحي الأساسي يعمل.

العرض التوضيحي رقم 2: كسر KASLR (kaslr)

بدءًا من نواة Linux 4.12، يكون KASLR (عشوائية تخطيط مساحة عنوان النواة) نشطًا افتراضيًا. وهذا يعني أن موقع النواة (وأيضًا الخريطة الفيزيائية المباشرة التي تعيّن كامل الذاكرة الفيزيائية) يتغير مع كل إعادة تشغيل.

يستخدم هذا العرض التوضيحي Meltdown لتسريب العشوائية (السرية) للخريطة الفيزيائية المباشرة. يتطلب هذا العرض التوضيحي صلاحيات الجذر لتسريع العملية. تصف الورقة البحثية نسخة لا تتطلب صلاحيات الجذر.

البناء والتشغيل

make
sudo taskset 0x1 ./kaslr

بعد بضع ثوانٍ، يجب أن ترى شيئًا مشابهًا لهذا

[+] Direct physical map offset: 0xffff880000000000

العرض التوضيحي رقم 3: اختبار الموثوقية (reliability)

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

البناء والتشغيل

قم ببناء وتشغيل reliability. إذا كان KASLR مفعّلًا، فإن المعامل الأول هو إزاحة الخريطة الفيزيائية المباشرة. وإلا، لا يتطلب البرنامج أي معامل.

make
sudo taskset 0x1 ./reliability 0xffff880000000000

بعد بضع ثوانٍ، يجب أن تحصل على مخرجات مشابهة لهذه:

[-] Success rate: 99.93% (read 1354 values)

العرض التوضيحي رقم 4: قراءة الذاكرة الفيزيائية (physical_reader)

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

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

البناء والتشغيل

بالنسبة للعرض التوضيحي، شغّل أولًا secret (كجذر) للحصول على العنوان الفيزيائي لسلسلة قابلة للقراءة البشرية:

make
sudo ./secret

يجب أن يُخرج شيئًا مثل هذا:

[+] Secret: If you can read this, this is really bad
[+] Physical address of secret: 0x390fff400
[+] Exit with Ctrl+C if you are done reading the secret

أثناء تشغيل برنامج secret، ابدأ physical_reader. المعامل الأول هو العنوان الفيزيائي الذي طبعه secret. إذا لم يكن KASLR معطّلًا لديك، فالمعامل الثاني هو إزاحة الخريطة الفيزيائية المباشرة.

taskset 0x1 ./physical_reader 0x390fff400 0xffff880000000000

بعد بضع ثوانٍ، يجب أن تحصل على مخرجات مشابهة لهذه:

[+] Physical address       : 0x390fff400
[+] Physical offset        : 0xffff880000000000
[+] Reading virtual address: 0xffff880390fff400

If you can read this, this is really bad

العرض التوضيحي رقم 5: تفريغ الذاكرة (memdump)

يقوم هذا العرض التوضيحي بتفريغ محتوى الذاكرة. مثل العرضين رقم 3 ورقم 4، يستخدم الخريطة الفيزيائية المباشرة، لتفريغ محتويات الذاكرة الفيزيائية بصيغة مشابهة لـ hexdump.

مرة أخرى، نظرًا لأن الذاكرة الفيزيائية تحتوي على الكثير من المحتوى غير القابل للقراءة البشرية، نوفر أداة اختبار لملء كميات كبيرة من الذاكرة الفيزيائية بسلاسل قابلة للقراءة البشرية.

البناء والتشغيل

بالنسبة للعرض التوضيحي، شغّل أولًا memory_filler لملء الذاكرة بسلاسل قابلة للقراءة البشرية. المعامل الأول هو مقدار الذاكرة (بالجيجابايت) المراد ملؤها.

make
./memory_filler 9

ثم، شغّل أداة memdump لتفريغ محتويات الذاكرة. إذا كنت قد شغّلت memory_filler من قبل، فيجب أن ترى بعض أجزاء السلاسل. إذا كان لديك Firefox أو Chrome مع عدة علامات تبويب مفتوحة، فقد ترى أيضًا أجزاء من المواقع المفتوحة أو التي أُغلقت مؤخرًا.

المعامل الأول هو العنوان الفيزيائي الذي يجب أن يبدأ عنده التفريغ (اتركه فارغًا للبدء من الجيجابايت الأول). المعامل الثاني هو عدد البايتات التي تريد قراءتها، لقراءتها كلها أعطِ -1. إذا لم يكن KASLR معطّلًا لديك، فالمعامل الثالث هو إزاحة الخريطة الفيزيائية المباشرة.

taskset 0x1 ./memdump 0x240000000 -1 0xffff880000000000 # start at 9 GB

يجب أن تحصل على hexdump لأجزاء من الذاكرة (قد يحتوي حتى على أسرار مثل كلمات المرور، انظر المثال في الورقة البحثية)، على سبيل المثال:

تنزيل الأداة