
إثبات مفهوم لـ bootkit وتطبيق إقلاع UEFI مستوحى من برنامج الفدية Petya، مكتوب بلغة Assembly و C و C++
أداة إثبات مفهوم (Proof-of-Concept) لـ bootkit وتطبيق إقلاع UEFI مستوحاة من برمجية الفدية Petya، مكتوبة بلغة Assembly و C و C++
إذا وجدت هذا المشروع مفيدًا أو غنيًا بالمعلومات، سأكون ممتنًا حقًا لوضع ⭐ على المستودع. دعمك سيكون حافزًا كبيرًا لي لمواصلة تحسين هذه الأداة.
OpenPetya هو مشروع تعليمي مصمم لدراسة كيفية عمل الـ bootkits وبرمجيات الفدية منخفضة المستوى داخليًا.
يركز المشروع على:
OpenPetya ليس المقصود منه إعادة تنفيذ دقيقة لـ Petya أو NotPetya. بدلاً من ذلك، هو إثبات مفهوم مبسط مصمم لأغراض التعلم والبحث.
من الجدير بالذكر أن OpenPetya لا يتضمن وظيفة القيادة والتحكم (C2). بالإضافة إلى ذلك، يخزن OpenPetya بيانات النسخ الاحتياطي لـ MFT كنص واضح داخل قطاعات مخفية بعد التشفير. هذا السلوك مصمم عمدًا لأغراض تعليمية لأن تلك الميزات بسيطة نسبيًا مقارنة بآليات الإقلاع الأساسية والتشفير المطبقة في هذا المشروع. ومع ذلك، يمكنك تعديل أو إزالة هذه الميزات إذا لزم الأمر.
ملاحظة: في الإصدار 2.0.0، اخترت عدم تنفيذه لـ UEFI خوفًا من إساءة استخدامه لإلحاق الضرر بأنظمة تشغيل Windows الحديثة.
على مدى الأشهر القليلة الماضية، كنت أدرس:
أثناء البحث عن Petya و NotPetya، أدركت أن العديد من الموارد عبر الإنترنت تشرح فقط سير العمل العام بإيجاز دون توضيح كيفية عمل عملية الإقلاع الأساسية فعليًا.
بالإضافة إلى ذلك، تعتمد العديد من المشاريع الحالية المتعلقة بـ Petya على ملفات bootloader مستخرجة أو مكونات أصلية معدلة بدلاً من تنفيذ المنطق من الصفر.
لذلك، قررت تطوير OpenPetya كمشروع عملي لفهم:
كما يخدم المشروع جزءًا من بحثي المستمر حول الـ bootkits والبرمجيات الخبيثة منخفضة المستوى ودواخل أنظمة التشغيل.
مقالات ذات صلة:
في الإصدار 2.0.0، أصبحت فضوليًا حول كيفية عمل الـ bootkits الحديثة (كما هو مغطى في الفصول الأخيرة من كتاب "Rootkits and Bootkits" لأليكس ماتروسوف ويوجين روديونوف وسيرجي براتوس). لذلك، قررت دراسة برمجة تطبيقات EFI من الصفر. ثم اكتشفت أنها أصعب بكثير مما توقعت (من ناحية التصحيح).
على أي حال، بعد كتابة بعض تطبيقات EFI البسيطة، نشرت OpenPetya v2.0.0!
MBR مخصص
يستخدم OpenPetya سجل إقلاع رئيسي (MBR) مخصصًا لتحميل حمولة المرحلة الثانية.
محمل إقلاع مخصص للمرحلة الثانية
يحتوي محمل إقلاع المرحلة الثانية على الوظائف الأساسية للمشروع، بما في ذلك:
الانتقال إلى الوضع المحمي
ينتقل محمل الإقلاع من الوضع الحقيقي 16-بت إلى الوضع المحمي 32-بت قبل تنفيذ المنطق عالي المستوى.
تشفير MFT
على غرار Petya الأصلية، يقوم OpenPetya بتشفير الأجزاء الحرجة من جدول الملفات الرئيسي (MFT) لنظام NTFS باستخدام Salsa20.
التحقق من كلمة المرور
يتحقق OpenPetya من كلمة المرور المدخلة قبل فك التشفير لمنع التلف غير القابل للإصلاح الناتج عن مفاتيح غير صالحة.
الاستعادة التلقائية
بمجرد إدخال كلمة المرور الصحيحة:
لا يتضمن OpenPetya v2.0.0 تشفير MFT في تطبيق EFI المخصص (petya.efi). يقدم لوحة تسجيل دخول بسيطة ويقوم بـ chainloading بمجرد صحة كلمة المرور.
اخترت عدم تنفيذ تشفير MFT في تطبيق EFI لأنه قد يُساء استخدامه لإلحاق الضرر بأنظمة تشغيل Windows الحديثة، بينما نفذته في v1.0.0 لأن الجهات الخبيثة أظهرته بالفعل في عام 2016.
OpenPetya.exeتطبيق التثبيت والتحكم في وضع المستخدم.
الوظائف:
mbr.binكود سجل الإقلاع الرئيسي (MBR) المخصص المسؤول عن:
stage2.binالحمولة الأساسية لـ OpenPetya.
المسؤوليات:
petya.efiالحمولة الأساسية لـ OpenPetya.
الوظائف:
يُلخص سير عمل OpenPetya (MBR + Bootloader) أدناه.
OpenPetya.exe واختيار كلمة مرور.NtRaiseHardError) التي يوفرها برنامج التثبيت.على عكس برمجية الفدية Petya الأصلية، لا يحاول OpenPetya خداع المستخدمين بشاشات CHKDSK مزيفة أو سلوك هندسة اجتماعية. المشروع مصمم purely للأغراض التعليمية والبحثية.
يُلخص سير عمل OpenPetya (UEFI) أدناه:
يمكنك بناء المشروع باستخدام الأوامر أدناه.
make # Build mbr.bin and stage2.bin
./build.sh # Build OpenPetya.exe
تحذير: يرجى تنفيذه في جهازك الافتراضي!
توضح الأوامر أدناه كيفية تثبيت MBR المخصص ومحمل إقلاع المرحلة الثانية (مطلوب صلاحيات إدارية):
BIOS القديم:
OpenPetya.exe --list
OpenPetya.exe --drive 0 --install mbr.bin stage2.bin
UEFI:
OpenPetya.exe --is-admin
OpenPetya.exe --firmware
OpenPetya.exe --uefi-secure
OpenPetya.exe --drive 0 --uefi-install petya.efi
OpenPetya.exe --drive 0 --uefi-restore
شروحات مفصلة حول:
NtRaiseHardError)موثقة في هذه المقالة.
تم تطوير هذا المشروع purely للأغراض التعليمية والبحثية.
الهدف من OpenPetya هو دراسة:
لا تستخدم هذا المشروع للأنشطة غير القانونية أو ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
المؤلف ليس مسؤولاً عن أي إساءة استخدام لهذا البرنامج.
شكرًا لاطلاعك على هذا المشروع. الملاحظات والاقتراحات مرحب بها.