CVE-2021-3156 (Sudo Baron Samedit)
هذا المستودع عبارة عن استغلال لـ CVE-2021-3156 يستهدف Linux x64. للحصول على الشرح التفصيلي، يرجى زيارة https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31
الفضل يعود إلى Braon Samedit من Qualys للنشرة الأمنية الأصلية.
الملفات
استغلال على glibc مع tcache
- exploit_nss.py يقوم تلقائيًا باكتشاف جميع المتطلبات وعدد الإدخالات في /etc/nsswitch.conf
- exploit_nss_manual.py نسخة مبسطة من exploit_nss.py لفهم أفضل للاستغلال
- exploit_timestamp_race.c يقوم بالكتابة فوق def_timestamp واستغلال حالة سباق لتعديل /etc/passwd
استغلال على glibc بدون tcache
- exploit_defaults_mailer.py يقوم الاستغلال بالكتابة فوق struct defaults لتعديل مسار ملف mailer التنفيذي. يتطلب أن يكون sudo مُجمّعًا بدون disable-root-mailer مثل CentOS 6 و 7.
- exploit_userspec.py يقوم الاستغلال بالكتابة فوق struct userspec لتجاوز المصادقة وإضافة مستخدم جديد في /etc/passwd. يدعم فقط إصدارات sudo 1.8.9-1.8.23.
- exploit_cent7_userspec.py نسخة مبسطة من exploit_userspec.py للفهم لكنها تستهدف CentOS 7 فقط مع التكوين الافتراضي
- exploit_nss_d9.py الكتابة فوق struct service_user على Debian 9 لكنها تدعم فقط ملف /etc/nsswith.conf الافتراضي
- exploit_nss_u16.py الكتابة فوق struct service_user على Ubuntu 16.04 لكنها تدعم فقط ملف /etc/nsswith.conf الافتراضي
- exploit_nss_u14.py الكتابة فوق struct service_user على Ubuntu 14.04 لكنها تدعم فقط ملف /etc/nsswith.conf الافتراضي
أخرى
- asm/ مكتبة tinyelf وملف تنفيذي لتضمينها في استغلال بايثون
- gdb/ سكربتات تُستخدم لتصحيح أخطاء كومة sudo
اختيار الاستغلال
لتوزيعات Linux التي يدعم فيها glibc خاصية tcache وتكون مفعّلة (CentOS 8, Ubuntu >= 17.10, Debian 10):
- جرّب exploit_nss.py أولاً
- إذا كان الخطأ غير متعلق بـ glibc tcache، يمكنك تجربة exploit_timestamp_race.c بعد ذلك
لتوزيعات Linux التي لا يدعم فيها glibc خاصية tcache:
- إذا كان الهدف هو Debian 9 أو Ubuntu 16.04 أو Ubuntu 14.04، جرّب exploit_nss_xxx.py الخاص بالإصدار المحدد أولاً
- بعد ذلك، جرّب exploit_defaults_mailer.py. إذا كنت تعلم أن sudo على الهدف مُجمّع مع --disable-root-mailer، يمكنك تخطي هذا الاستغلال. يحاول الاستغلال التحقق من علم root mailer من ملف sudo الثنائي. لكن صلاحيات sudo على بعض توزيعات Linux تكون 4711 (-rws--x--x) مما يجعل التحقق مستحيلًا على النظام الهدف. (الأنظمة التشغيلية المعروفة أنها تعمل هي CentOS 6 و 7)
- أخيرًا، جرّب exploit_userspec.py