
مختبر Docker بسيط وإعداد استغلال لـ CVE-2021-3156 - "Baron Samedit".
يوفر هذا المستودع بيئة تعليمية متكاملة لفهم واستغلال CVE-2021-3156، وهو تجاوز سعة المخزن المؤقت في الكومة (heap-based buffer overflow) في sudo يسمح لأي مستخدم غير مميز بالحصول على صلاحيات الجذر على الأنظمة الضعيفة (إصدارات sudo قبل 1.9.5p2).
هذه المواد مخصصة للتدريب والبحث الأمني المصرح به فقط.
الاستخدام غير المصرح به/غير الأخلاقي ضد أنظمة لا تملكها هو غير قانوني.
Dockerfile - ينشئ حاوية Ubuntu 20.04 مع sudo 1.8.31 (قابلة للاستغلال)exploit.c - الحمولة الرئيسية للاستغلال (معدلة لـ Ubuntu 20.04)shellcode.c - منشئ مكتبة مشتركة يقوم بتشغيل شل جذرMakefile - يجمّع الاستغلال والمكتبة الضارةgit clone https://github.com/Theleopard65/CVE-2021-3156-Baron-Samedit.git
cd CVE-2021-3156-Baron-Samedit
docker build -t cve-2021-3156-lab .
poc داخل الحاوية./home/exploit، والذي يحتوي بالفعل على ملفات المصدر.docker run -it --rm --name baron_samedit_lab cve-2021-3156-lab
cd /home/exploit
./exploit
في حالة النجاح، يجب أن ترى موجه شل جذر (#). يقوم الاستغلال بالكتابة فوق بنية service_user في كومة sudo ويجبرها على تحميل المكتبة الضارة libnss_x/x.so.2، التي يقوم منشئها بتنفيذ الشيلكود.
make clean && make
يؤدي هذا إلى إنشاء:
exploit - الملف الثنائي الرئيسي للاستغلالlibnss_x/x.so.2 - المكتبة المشتركة الضارةCVE-2021-3156 هو تجاوز سعة في الكومة في معالجة وسيطات سطر الأوامر في sudoedit. من خلال توفير مخزن مؤقت مصمم خصيصًا ومتغيرات بيئة، يمكن للمهاجم الكتابة فوق بنية service_user في الكومة. تحتوي هذه البنية على مؤشر دالة يمكن، عند اختطافه، توجيهه إلى مكتبة ضارة يتم تحميلها عبر آلية NSS (خدمة تحليل الأسماء). ثم يقوم منشئ المكتبة بتنفيذ كود عشوائي بصلاحيات الجذر.
يقوم هذا الاستغلال بما يلي:
buf) لتحفيز التجاوز.LC_MESSAGES و LC_TELEPHONE و LC_MEASUREMENT لتشكيل تخطيط الكومة.files service_user، واستبدال اسمها بمسار إلى مكتبتنا الضارة (libnss_x/x.so.2).shellcode.c) بتشغيل setuid(0) و setgid(0)، ويطلق شل جذر.لإزالة صورة Docker:
docker rmi cve-2021-3156-lab
هذا المشروع مقدم لأغراض تعليمية فقط. استخدمه على مسؤوليتك الخاصة.