
Некоторые лаборатории изучают уязвимость бэкдора xz (CVE-2024-3094)
Безопасные, практические лаборатории для понимания бэкдора в цепочке поставок xz-utils — созданные для защитников, студентов и синих команд.
[!WARNING] Этот проект работает с реальным, существующим в дикой природе вредоносным ПО (бэкдор xz 5.6.0 / 5.6.1). Он предоставлен строго для оборонительного обучения и авторизованных исследований. Всё выполняется в одноразовом изолированном гостевом окружении без доступа в интернет. Не запускайте эти артефакты на важной для вас машине, в сети, которую вы не контролируете, или против любой системы, которую вы не авторизованы тестировать. См. SECURITY.md.
| Лаборатория | Что делает | Выполняет полезную нагрузку? |
|---|---|---|
| Лаб 1 — Осмотр | Запустите одноразовую песочницу, получите вредоносный tarball в офлайн-режиме и увидьте маскировку: diff build-to-host.m4 между git и tarball, полезные нагрузки в тестовых фикстурах, магический маркер. | Нет — только статический анализ |
| Лаб 2 — Детонация | Постройте изолированную сеть из трёх ВМ (analyst / compromised / normal, без Docker). С аналитической машины (jumpbox) SSH к обоим хостам для сравнения задержек и pcap-файлов, затем активируйте бэкдорный sshd на compromised с помощью собственного ключа Ed448 (через xzbot) для получения RCE с правами root до аутентификации — в то время как normal остаётся неуязвимым. | Да — изолированные ВМ, офлайн, ваш ключ |
Двухлетняя кампания социальной инженерии передала вредоносному мейнтейнеру полномочия по выпуску версий xz-utils. Полезная нагрузка поставлялась только в релизном tarball (не в git), скрытая в тестовых фикстурах и активировалась во время сборки на системах x86-64 с glibc. Во время выполнения она использовала хук glibc IFUNC на RSA_public_decrypt (достижимый через sshd → libsystemd → liblzma), чтобы предоставить владельцу ключа RCE до аутентификации — команду, скрытую в RSA-модуле SSH-сертификата, зашифрованную ChaCha20 и подписанную Ed448. Это не C2 и не магический вход. Обнаружено Андресом Фройндом 29 марта 2024 года из-за замедления SSH на ~500 мс, до того как оно попало в стабильные дистрибутивы.
make setup # установка/предварительные проверки (Multipass или Docker, tcpdump и т.д.)
make lab1 # песочница для осмотра
make lab2 # построить изолированную сеть из 3 ВМ для детонации, затем: multipass shell analyst
make clean # удалить всё, очистить ВМ / pcap-файлы / сгенерированные ключи
Предварительные требования и пошаговые руководства по каждой лаборатории находятся в docs/.
sshd в Лаб 2 привязывается только к loopback / внутреннему мосту, и лаборатория отказывается запускаться, если гость может выйти в интернет.MIT.