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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-20217 — Воспроизводит неаутентифицированную RCE-уязвимость ClamAV в ZendTo и повышение привилегий до root в авторизованной лабораторной среде, с закреплённым Docker-образом цели, проверкой по принципу fail-closed, привязанным к nonce выводом и очисткой. | Kitploit
Инструменты/GitHubGitHub/securifera/cve-2026-20217
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияВеб-безопасностьТестирование на ПроникновениеRed Teaming
GitHubsecurifera/cve-2026-20217

CVE-2026-20217

Воспроизводит неаутентифицированную RCE-уязвимость ClamAV в ZendTo и повышение привилегий до root в авторизованной лабораторной среде, с закреплённым Docker-образом цели, проверкой по принципу fail-closed, привязанным к nonce выводом и очисткой.

11261 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

ZendTo 6.15-8 / ClamAV: воспроизведение RCE с точным профилем и root-варианта

Этот каталог — автономный комплект воспроизведения для авторизованной лаборатории: цепочка выполнения кода от ZendTo к ClamAV без учётной записи и её отдельное продолжение Smarty/root-cron на профиле по умолчанию. В комплект входят:

  • полное замыкание зависимостей запускаемого PoC;
  • скрипты и происхождение (provenance) для построения целевой топологии Docker;
  • определение Docker Compose, соответствующее протестированному жизненному циклу systemd/socket;
  • fail-closed проверки образа, пакетов, бинарных файлов, конфигурации, CVD, DAC, cron, PHP, MAC и семантики файловой системы; и
  • вспомогательные средства для единственной проверки, доступной только в лаборатории, и для очистки.

Начальный PoC выполняет выбранную вызывающей стороной команду от имени штатной служебной учётной записи clamav. Опциональный вариант продолжает эту безучётную точку опоры до выбранной вызывающей стороной команды от имени root. Оба по умолчанию используют id, отклоняют буквальный путь /root/flag и возвращают привязанный к nonce вывод по HTTPS.

Уязвимые связи группы, каталога, Smarty и root-cron являются значениями по умолчанию Debian-пакета/установщика ZendTo. Тем не менее достижимость root обусловлена окружением: этот точный положительный стенд использует том /var/zendto на ext4, работоспособные PHP CLI FFI/POSIX/exec и неограниченный процесс clamd. Включение AppArmor/SELinux или несовместимой семантики файловой системы может заблокировать продолжение на другой в остальном штатной установке.

Используйте это только на прилагаемом одноразовом стенде или другой системе, которую вам явно разрешено тестировать.

Что зафиксировано (pinned)

Авторитетная точная цель — локальный, намеренно неверсионируемый артефакт по пути:

image/zendto-installer-systemd-debian12.tar.zst

Git игнорирует архивы образов Docker. Перед точным регрессионным тестированием разместите авторизованную локальную копию по этому пути; scripts/setup.sh требует её записанные SHA-256 и ID образа. В source-recipe/README.md описано, как был собран и сохранён образ, производный от установщика. Новая сборка из живых репозиториев пакетов полезна для тестирования топологии, но не считается побайтно идентичной зафиксированной цели.

Скрипт настройки и точка входа контейнера отвергают любое несоответствие следующему профилю:

КомпонентТочное протестированное значение
Docker image IDsha256:de6d2f06ca04943362a9bdec5026e808448953728f31bd926343a4ed2ca2ef7c
ZendTo6.15-8
ClamAV/libclamav package1.4.3+dfsg-1~deb12u2
libclamavlibclamav.so.12.0.3, SHA-256 55e3cd94…027c
libclamav Build IDe6427ab62146ee3001fe463d12e797e9d25bf81a
glibc2.36-9+deb12u14, SHA-256 6b4a4535…421
основная база данныхv63, SHA-256 0b2182d2…365
ежедневная база данныхv28082, SHA-256 cddbcccf…906
база данных байт-кодаv339, SHA-256 6d4aa01f…ffb
clamdMaxThreads 12, IdleTimeout 30, Restart=no
жизненный циклвключённый clamav-daemon.socket, systemd PID 1
веб-среда выполненияApache 2.4.68, PHP 8.2.32
профиль MACнеограниченный привилегированный Docker-стенд
root-мостштатный clamav в www-data; /var/zendto root:www-data 0775
root-потребительштатный root-cron очистки, ежечасно на 25-й минуте
кэш Smartyдетерминированный Smarty 4.5.4, скомпилированный zendto.conf
файловая система exchangeименованный том /var/zendto на ext4

Полные значения находятся в PROFILE.json.

Это строже, чем фиксация только версии пакета ClamAV. Конструкция аллокатора также зависит от glibc, трафика парсера, управляемого CVD, настроек рабочих процессов и точной целевой библиотеки. FreshClam отключён в сохранённом образе, и запуск завершается сбоем, если daily.cvd изменился или появился daily.cld.

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

Требования к хосту

  • x86-64 Linux with Docker Engine и Docker Compose v2
  • разрешение на запуск привилегированных контейнеров
  • cgroup v2 и /sys/fs/cgroup
  • zstd, Python 3 с venv, компилятор C, file и GNU readelf
  • достаточно памяти для нативных парсеров ClamAV без жёсткого лимита контейнера
  • не менее 1 ГиБ свободного места на диске для локального артефакта образа и работающей цели

Цель разделяет ядро хоста и реализацию ASLR. Поэтому поведение отображений, зависящее от ядра, остаётся переменной переносимости.

Одновременно с пространством имён cgroup хоста должен работать только один systemd-стенд. На исходной исследовательской машине остановите более старый стенд, не удаляя его:

docker stop zendto-installer-systemd-native

Позже его можно восстановить командой docker start zendto-installer-systemd-native.

Запуск точной цели

Из этого каталога:

./scripts/verify-bundle.sh
./scripts/setup.sh

Скрипт настройки:

  1. проверяет неизменяемый манифест исходных файлов и SHA-256 локального образа;
  2. загружает и перетегирует точный образ без обращения к реестру;
  3. создаёт .venv с зафиксированными Python-зависимостями PoC;
  4. пересобирает небольшой локальный помощник PESpin под libc оператора;
  5. проверяет локальный артефакт libclamav и все целевые окна гаджетов;
  6. проверяет модель Compose;
  7. создаёт новый именованный том /var/zendto и запускает systemd; и
  8. проверяет версии пакетов, хеши цели, CVD, Apache, clamd и активацию сокета; и
  9. подтверждает предварительные условия root-варианта по умолчанию, включая одноразовую операцию renameat2(RENAME_EXCHANGE), выполняемую от имени clamav.

Конечные точки по умолчанию доступны только через loopback:

http://127.0.0.1:18084/
https://127.0.0.1:18447/

Сертификат самоподписанный. PoC намеренно использует verify=False для каждого HTTP-запроса. Перед настройкой можно выбрать другие loopback-порты:

export ZENDTO_HTTP_PORT=19084
export ZENDTO_HTTPS_PORT=19447
./scripts/setup.sh

Используйте те же переменные окружения для последующих команд Compose/вспомогательных средств.

Проверяйте цель в любое время:

./scripts/verify-target.sh
docker compose ps

Граница CAPTCHA/электронной почты в этом стенде

Чистая базовая линия установщика содержит:

allowExternalUploads = TRUE
confirmExternalEmails = TRUE
captcha = google

Его значения CAPTCHA и почты — это заполнители установщика, поэтому нетронутый архив не может реально доставить публичное проверочное письмо. Нативное регрессионное тестирование представляло лишь этот завершённый шаг приложения эквивалентной строкой AuthData внешнего отправителя. Целевой код, пакеты, сканер, права и путь эксплуатации не были изменены.

Создайте эту единственную лабораторную строку и файл токена с режимом 0600 командой:

./scripts/mint-lab-auth.py [email protected]

Значение токена скрыто и хранится по пути:

.lab/upload-auth-token.txt

Этот локальный помощник не является утверждением, что развёртывание с отключённой внешней загрузкой можно эксплуатировать удалённо. Если публичная форма внешнего отправителя отключена, PoC корректно останавливается до ClamAV, даже если предоставлен файл токена.

При обычном авторизованном развёртывании опустите --external-auth-token-file: вручную откройте страницу проверки, решите CAPTCHA, получите сгенерированное целью сообщение на почтовый ящик, контролируемый атакующим, и вставьте его URL/токен в скрытый запрос.

1. Только удалённое перечисление

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