
نص استغلال لـ CVE-2021-27211
Stegcrack هو برنامج مفتوح المصدر لاستغلال ثغرة أمنية في Steghide (تحديدًا CVE-2021-27211).
يكتشف Stegcrack ما إذا كان ملف معين يحتوي على بيانات مخفية باستخدام Steghide، ويمكنه أحيانًا استخراج البيانات المخفية بالكامل، كل ذلك بدون كلمة مرور.
استنساخ هذا المستودع
git clone https://github.com/b4shfire/stegcrack
الانتقال إلى دليل المصدر
cd stegcrack/src
تجميع البرنامج
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
الخروج من دليل المصدر
cd ..
./stegcrack <filepath> <number of threads> (default: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
لإخفاء البيانات داخل ملف الغلاف، يقوم Steghide أولاً بتحويل كلمة المرور المقدمة إلى بذرة 32 بت.
يتم إنشاء البذرة على النحو التالي:
ثم يتم استخدام هذه البذرة لتوليد سلسلة من المواقع في الملف حيث سيتم إخفاء البيانات.
العيب في هذه الطريقة هو أنه بغض النظر عن مدى تعقيد كلمة المرور، يجب أن تولد إحدى البذور الممكنة 2^32. وهذا يعني أنه يمكن تجاوز كلمة المرور تمامًا عن طريق القوة الغاشمة لمتغير البذرة.
بمجرد إنشاء البذرة، يقوم Steghide أولاً بتضمين البيانات الوصفية (بايتات سحرية، إصدار Steghide، حجم البيانات...) في ملف الغلاف.
يمكن استخدام هذه البيانات الوصفية لتحديد ما إذا كانت كل بذرة قد استخدمت لإخفاء البيانات أم لا. على سبيل المثال، أول 3 بايتات مضمنة هي دائمًا 0x73 0x68 0x8d (تقريبًا السلسلة ascii "shm" - سحر StegHide). إذا لم تولد بذرة معينة هذه البايتات، فيمكن تجاهلها لأنها بالتأكيد لم تستخدم لإخفاء البيانات. يستمر هذا حتى يتم تجاهل جميع البذور، أو يتم العثور على بذرة صالحة. تشير البذرة الصالحة إلى بيانات مخفية.
افتراضيًا، يقوم Steghide بتشفير البيانات باستخدام كلمة المرور الكاملة قبل التضمين. وهذا يعني أنه في معظم الحالات، سيتمكن Stegcrack فقط من استخراج هذه البيانات المشفرة. ومع ذلك، إذا تم تعطيل التشفير أثناء التضمين، يمكن لـ Stegcrack استخراج البيانات المخفية بالكامل كنص عادي.