Вопрос или проблема
Я хочу узнать о бэкдоре XZ Utils, следуя демонстрации эксплойта xzbot и настройке окружения. Я знаю, что версия 5.6.1 xz-utils должна содержать бэкдор, но мне не удается установить этот скомпрометированный пакет.
Начав с чистой установки Kali Linux 2024.4, в ней установлена liblzma 5.6.3, и sshd
, похоже, не зависит от libsystemd и liblzma. Видимо, ни стандартный, ни портативный OpenSSH не поддерживают systemd. Меня сбивают с толку все руководства, которые ожидают, что sshd
уже будет связан с liblzma, но у меня он этим не связан.
└─$ dpkg -l | grep liblzma5
ii liblzma5:amd64 5.6.3-1+b1 amd64 XZ-format compression library
└─$ ldconfig -p | grep liblzma
liblzma.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/liblzma.so.5
└─$ sshd -V
OpenSSH_9.9p1 Debian-3, OpenSSL 3.3.2 3 Sep 2024
└─$ ldd $(which sshd)
linux-vdso.so.1 (0x00007fc3de0b8000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fc3ddfde000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fc3dda00000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc3dd80a000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fc3dd768000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc3de0ba000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc3ddfbe000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fc3dd6a7000)
При понижении версии до пакета liblzma 5.6.1 и повторной проверке с помощью ldd
ничего, похоже, не изменилось.
└─$ wget https://snapshot.debian.org/archive/debian/20240328T025657Z/pool/main/x/xz-utils/liblzma5_5.6.1-1_amd64.deb
2024-12-24 00:45:29 (4.72 MB/s) - ‘liblzma5_5.6.1-1_amd64.deb’ saved [252188/252188]
└─$ sudo dpkg -i ./liblzma5_5.6.1-1_amd64.deb
dpkg: warning: downgrading liblzma5:amd64 from 5.6.3-1+b1 to 5.6.1-1
(Reading database ... 425071 files and directories currently installed.)
Preparing to unpack ./liblzma5_5.6.1-1_amd64.deb ...
Unpacking liblzma5:amd64 (5.6.1-1) over (5.6.3-1+b1) ...
Setting up liblzma5:amd64 (5.6.1-1) ...
Processing triggers for libc-bin (2.40-3) ...
└─$ dpkg -l | grep liblzma5
ii liblzma5:amd64 5.6.1-1 amd64 XZ-format compression library
└─$ sudo systemctl restart ssh
└─$ ldd $(which sshd)
linux-vdso.so.1 (0x00007f705e59b000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f705e4c1000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f705de00000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f705dc0a000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f705e41f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f705e59d000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f705e3ff000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f705db49000)
Затем я попробовал собрать OpenSSH 9.7p1, так как это версия до того, как бэкдор стал общедоступным, может быть это поможет. Потребовалась перезагрузка, прежде чем sshd -V
показал 9.7p1
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
tar -xvf openssh-9.7p1.tar.gz
cd openssh-9.7p1
sudo apt install libssl-dev
./configure
make
sudo make install
Но libsystemd и liblzma все еще не были связаны с sshd.
Я в замешательстве, как установить или собрать уязвимый пакет xz-utils. У меня были аналогичные проблемы, когда я пытался эти же шаги на Ubuntu 24.04.
.
Ответ или решение
Воспроизведение бекдора в XZ Utils на Kali Linux
Для воспроизведения бекдора в XZ Utils на Kali Linux, начнем с создания правильной среды для тестирования и экспериментов. Ниже представлены шаги, которые помогут вам в этой задаче.
F (Facts – Факты):
-
Версия уязвимого пакета: Вопрос рассматривает уязвимость в версии 5.6.1 библиотеки
liblzma
XZ Utils. Необходимо иметь доступ к этой конкретной версии для дальнейших манипуляций. -
Проблема с зависящими библиотеками: На стандартных установках Kali Linux
sshd
не зависит отlibsystemd
иliblzma
. -
Отсутствие динамической привязки: Несмотря на установку уязвимой версии,
sshd
не демонстрирует явной зависимости отliblzma
, даже после ручного понижения версии.
O (Objectives – Цели):
- Создать рабочую среду на Kali Linux с уязвимой версией пакета.
- Обеспечить привязку
sshd
иliblzma
для успешного воспроизведения бекдора.
R (Rationale – Обоснование):
Целью данного процесса является воссоздание условий, при которых бекдор сможет быть активирован, что позволит изучить его поведение и возможные уязвимости в безопасности системы для дальнейшей защиты.
E (Example – Пример):
-
Установка уязвимой версии
liblzma
: Уже выполнена загрузка и установка пакетаliblzma5_5.6.1-1_amd64.deb
. Убедитесь, что у вас корректная версия. -
Компиляция и установка OpenSSH: Поскольку стандартная сборка
sshd
не демонстрирует зависимости отliblzma
, вам может понадобиться пересобратьsshd
с поддержкой этой библиотеки.Загрузите исходный код
openssh-9.7p1
и выполните следующие команды:wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz tar -xvf openssh-9.7p1.tar.gz cd openssh-9.7p1 sudo apt install libssl-dev liblzma-dev ./configure --with-liblzma make sudo make install
Если
configure
не находитliblzma
, укажите путь вручную, используя--with-liblzma=DIR
. -
Проверка связей: Используйте команду
ldd
для проверки связейsshd
после установки:ldd $(which sshd) | grep liblzma
Убедитесь, что
liblzma
присутствует в списке.
S (Solution – Решение):
Для успешного воспроизведения бекдора, необходимо корректно скомпилировать sshd
с прямой зависимостью от liblzma
. Это может требовать консультации с документацией OpenSSH
и использованием флагов компиляции для явной интеграции нужных библиотек.
T (Tie-back – Связь):
Успешное воспроизведение бекдора в вашей тестовой среде позволит глубже исследовать уязвимости и укрепить систему против подобных угроз в будущем. Использование уязвимой версии в учебных целях повысит навыки в выявлении и устранении подобных проблем.
Следуя этим шагам, вы сможете воспроизвести бекдор в XZ Utils на Kali Linux и изучить его поведение для укрепления собственной безопасности.