
هذه بيئة حاويات تشغّل مثيل الباب الخلفي sshd الخاص بـ CVE-2024-3094، وتعمل مع مشروع https://github.com/amlweems/xzbot. إنها ليست Docker، بل منفّذة عبر chroot فقط.
هذه بيئة تُشغّل نسخةً من باب خلفي لـ sshd الخاص بـ CVE-2024-3094، وتعمل مع هذا الاستغلال: https://github.com/amlweems/xzbot.
إنها ليست حاوية Docker. لقد حاولت إنشاء بيئة هذه الثغرة باستخدام Docker لكنني فشلت:
أشك في أن الأمر مرتبط بـ systemd، لأن جميع الطرق التي جربتها داخل Docker لتشغيل SSHD كانت تنطلق من سطر الأوامر، وليس من systemd.
كمتابعة، أجريت تجربة: على جهاز VM حيث تم استغلال sshd (التابع لـ systemd) بنجاح باستخدام xzbot، قمت بتشغيل /sbin/sshd -D -e -p 2024 مباشرةً مع استبدال liblzma.so، وفشل استغلال xzbot، مما يشير إلى أنه قد يكون مرتبطًا بشدة بـ systemd.
تخلّيت عن Docker لأن تشغيل sshd من systemd داخل Docker معقدٌ بعض الشيء.
أخيرًا، استخرجت نظام الملفات المُصغّر من جهاز VM الخاص بي، وحوّلته إلى حاوية صغيرة قائمة على chroot، ويمكن تشغيلها بسهولة في نطاق المضيف (host namespace) مع systemd.
وهي تعمل في بيئة VM الخاصة بي وفي بيئة أخرى أيضًا، مما يجعل استغلال xzbot ناجحًا.
لم أكتشف المبدأ بعد، لكن على أي حال نظّمت البيئة في هذا المشروع لأغراض البحث.
./compose.sh في الدليل الجذر لهذا المشروع.
./remove.sh في الدليل الجذر لهذا المشروع.
./xzbot -addr 127.0.0.1:2024 -cmd 'whoami > /hello'، ويمكنك رؤية ملف باسم hello داخل env_fs إذا نجح الاستغلال.
يوفّر https://github.com/amlweems/xzbot أداة رائعة، وقد قامت بتعديل ملف liblzma.so بمفتاحها العام الخاص، مما يجعل الوصول ممكنًا. راجع مشروع xzbot للحصول على التفاصيل.
يحتوي نظام الملفات المصغّر لدينا على ملف liblzma.so المُعدَّل الافتراضي الخاص بـ xzbot. كما تم تجميع ثنائي تنفيذي xzbot بشكل ثابت هنا. يمكنك فقط استخدام ./xzbot -addr 127.0.0.1:2024 -cmd 'whoami > /hello' للاختبار.
سيتم نشر ملف خدمة systemd باسم xzback.service ديناميكيًا إلى /etc/systemd/system/ على جهازك المضيف.
ستبدأ خدمة xzback.service باستخدام chroot إلى نظام الملفات المصغّر لدينا، دون أي تأثير إضافي على نظام ملفات المضيف.