Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-3094 — Учебная лаборатория, воспроизводящая бэкдор в XZ Utils (CVE-2024-3094) с собственной парой ключей Ed448. Включает пропатченную liblzma, systemd-сервис и клиент эксплойта для авторизованных исследований в области безопасности. | Kitploit
Инструменты/GitHubGitHub/h3raklez/cve-2024-3094
Анализ уязвимостейЭксплуатацияАнализ вредоносных программКриптографияТестирование на ПроникновениеБезопасность Цепочки ПоставокОбучение и ОбразованиеЛаборатории и Практика
GitHubh3raklez/cve-2024-3094

CVE-2024-3094

Учебная лаборатория, воспроизводящая бэкдор в XZ Utils (CVE-2024-3094) с собственной парой ключей Ed448. Включает пропатченную liblzma, systemd-сервис и клиент эксплойта для авторизованных исследований в области безопасности.

115 месяцев назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2024-3094 — бэкдор XZ Utils

Только для образовательных целей и авторизованных исследований в области безопасности.

Описание уязвимости

CVE-2024-3094 — это бэкдор, внедрённый в версии 5.6.0 и 5.6.1 XZ Utils (liblzma), обнаруженный 29 марта 2024 года исследователем безопасности Андресом Фройндом. Ему присвоена оценка CVSS 10.0 (Critical).

Это атака на цепочку поставок, осуществлявшаяся на протяжении более двух лет злоумышленником, известным как «Jia Tan» (JiaT75), который завоевал доверие в проекте, пока не получил статус со-мейнтейнера, и внёс бэкдор непосредственно в дистрибутивные tarball-архивы.

Технический механизм

Бэкдор работает следующим образом:

  1. Вредоносный liblzma.so перехватывает функцию RSA_public_decrypt() в OpenSSH через механизм IFUNC в glibc, вмешиваясь в процесс аутентификации SSH.
  2. Когда клиент подключается, бэкдор анализирует определённое поле в переданном SSH-сертификате.
  3. Если это поле содержит полезную нагрузку, зашифрованную с помощью ChaCha20 и подписанную определённым закрытым ключом Ed448, бэкдор выполняет встроенную команду через system() с привилегиями sshd (root).
  4. Если подпись недействительна, sshd продолжает штатную работу без каких-либо аномалий.

Требования для эксплуатации

  • Система с glibc (поддержка IFUNC)
  • Установленные XZ Utils 5.6.0 или 5.6.1
  • sshd, запущенный из systemd (критическое требование — перехват через IFUNC не активируется, если sshd запущен вручную из командной строки)
  • Система x86-64

Изначально затронутые дистрибутивы

  • Fedora Linux 40 beta / Rawhide
  • Debian unstable, testing, experimental
  • Kali Linux
  • Arch Linux (образы с 2024-02-24 по 2024-03-28)

Лабораторная среда

Эта лабораторная среда воспроизводит механизм бэкдора с использованием собственных ключей Ed448 вместо ключей исходного злоумышленника (которые так и не были опубликованы).

Почему мы используем chroot

В реально затронутых системах chroot не использовался. Бэкдор действовал напрямую через системный sshd, который загружал вредоносный liblzma.so как любую другую разделяемую библиотеку — совершенно незаметно для системы и её администраторов.

В этой лабораторной среде мы используем chroot исключительно из практических соображений: нам нужно запустить sshd с конкретной версией liblzma.so, не заменяя библиотеки хост-системы. Это проектное решение для исследовательской среды, а не отражение того, как бэкдор работал в продакшене.

Компоненты

КомпонентОписание
env_fs/Минимальная файловая система Ubuntu 22.04, используемая как chroot
env_fs/usr/lib/x86_64-linux-gnu/liblzma.so.5liblzma 5.6.1, пропатченный собственным ключом Ed448
/etc/systemd/system/xzback.servicesystemd-сервис, запускающий уязвимый sshd на порту 2024
/xzbot/xzbotЭксплойт-клиент, скомпилированный из исходников

Целевой стек

  • Ubuntu 22.04.1 LTS AMD64
  • glibc 2.35
  • OpenSSH 8.9p1
  • systemd 249
  • liblzma 5.6.1 (пропатченный)

Модификации, внесённые для данного целевого окружения

Оригинальный бэкдор требует очень специфических условий, которые автоматически не выполняются в лабораторной среде. Потребовались следующие модификации:

1. Замена liblzma.so

liblzma.so.5 из исходного репозитория MagpieRYL использует неизвестный ключ Ed448, который не согласуется с включённым бинарником xzbot. Оригинальная и аутентичная liblzma.so.5.6.1 была загружена из снапшота Debian (sha256 проверен) и пропатчена с помощью patch.py из amlweems/xzbot с seed=0:

original sha256:  605861f833fc181c7cdcabd5577ddb8989bea332648a8f498b4eef89b8f85ad4
patched sha256:   ea7206ab4b0c3479ff1b478c8803adc9e7aeba243254a9f601b626ef8aa80e3d
patched offset:   0x24470

Оригинальный открытый ключ Ed448 злоумышленника был заменён на:

5b 3a fe 03 87 8a 49 b2 82 32 d4 f1 a4 42 ae bd
e1 09 f8 07 ac ef 7d fd 9a 7f 65 b9 62 fe 52 d6
54 73 12 ca ce cf f0 43 37 50 8f 9d 25 29 a8 f1
66 91 69 b2 1c 32 c4 80 00

2. Type=simple в systemd-сервисе

Исходный сервис использует Type=notify, что требует от sshd отправки уведомления о запуске в systemd. sshd внутри chroot не отправляет его, что приводит к тайм-аутам. Изменено на Type=simple.

3. Временные директории chroot

sshd требует /run/sshd для разделения привилегий. Этой директории нет в chroot, и она очищается при каждой перезагрузке, поскольку run/ является tmpfs. Решено с помощью ExecStartPre, который автоматически пересоздаёт её перед каждым запуском сервиса.


Использование

Эксплуатация с той же машины

./xzbot -addr 127.0.0.1:2024 -cmd 'echo pwned > /tmp/result'
cat /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result

Эксплуатация с другой машины

./xzbot -addr <TARGET_IP>:2024 -cmd 'echo pwned > /tmp/result'

Расположение файлов, создаваемых эксплойтом

Команда выполняется внутри chroot, поэтому любой файл, созданный в /tmp/ в контексте бэкдора, сохраняется по адресу:

/home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/

То есть, если команда — echo pwned > /tmp/result, файл будет находиться по адресу:

/home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result

Чтобы найти любой файл, созданный эксплойтом:

find /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/ -type f

Примечание о handshake failed: EOF

Сообщение ssh: handshake failed: EOF — это ожидаемое и корректное поведение. Бэкдор выполняет команду и закрывает соединение, не устанавливая SSH-сессию. Оно не указывает на ошибку.


Важно

Эта лабораторная среда использует собственную криптографическую пару ключей (seed=0). Пропатченный liblzma.so принимает только полезные нагрузки, подписанные соответствующим закрытым ключом — тем самым, который использует xzbot, скомпилированный в этом окружении. Любой другой клиент получит EOF без выполнения.


Ссылки

  • Первоначальное раскрытие Openwall
  • amlweems/xzbot
  • MagpieRYL/CVE-2024-3094-backdoor-env-container
  • Анализ Datadog Security Labs
  • Wikipedia — бэкдор XZ Utils

Отказ от ответственности

Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, незаконно. Автор не несёт ответственности за любое неправомерное использование.

Скачать инструмент