Профиль: Аноним (вход | регистрация)
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Инъекция через  RCPT TO: в postfix из комплекта Zimbra."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Обнаружение и предотвращение атак / Linux)
Изначальное сообщение [ Отслеживать ]

"Инъекция через  RCPT TO: в postfix из комплекта Zimbra."  +/
Сообщение от eteveto (ok), 13-Авг-26, 21:32 
Кратко - вот повтор действий взлома

$telnet xxx.ru 25
Trying 999.99.999.999...
Connected to xxx.ru.
Escape character is '^]'.
220 xxx.ru ESMTP Postfix
HELO probe.test
250 xxx.ru
MAIL FROM: test@probe.test
250 2.1.0 Ok
RCPT TO: <"x: Service status change: localhost $(echo atas > mailboxd/webapps/zimbra/public/atas.txt) changed from stopped to running"@probe.test>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
atas
.
250 2.0.0 Ok: queued as 8691A9D04072
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Это итог.

$ls -l /opt/zimbra/mailboxd/webapps/zimbra/public/atas.txt
-rw-r----- 1 zimbra zimbra 5 Aug 13 20:51 /opt/zimbra/mailboxd/webapps/zimbra/public/atas.txt

Грубо говоря, от пользователя, под которым постфикс, выполняется всё, что в $(). А это много...

Дополнительно не проверял много, но при нескольких других вариантах строки с инъекцией код не исполняется. Вот почему-то именно такой вариант срабатывает.

Возможно вариант обсуждался. Если кто помнит - подскажите ссылку на ветку. Поиском по строчке "$()" я буду искать долго...

Нужен (срочный) совет, что можно на ходу подправить в конфиге постфикса, чтобы эту дырку закрыть. Версия постфикса - 3.6.1. Заранее благодарю.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Инъекция через  RCPT TO: в postfix из комплекта Zimbra."  +/
Сообщение от нах. (?), 14-Авг-26, 09:25 
> Кратко - вот повтор действий взлома

разумеется ты создал issue на сайте проекта, создал же, га?!

> RCPT TO: <"x: Service status change: localhost $(echo atas > mailboxd/webapps/zimbra/public/atas.txt)

кросивое.

> -rw-r----- 1 zimbra zimbra 5 Aug 13 20:51 /opt/zimbra/mailboxd/webapps/zimbra/public/atas.txt

                ^^^^

> Грубо говоря, от пользователя, под которым постфикс, выполняется всё, что в $().

ты совсем не умеешь читать, да?

> Возможно вариант обсуждался. Если кто помнит - подскажите ссылку на ветку. Поиском

google: zimbra vulnerabilites (latest)

> Нужен (срочный) совет, что можно на ходу подправить в конфиге постфикса, чтобы

ничего. В нем разьве что посмотреть, как именно он передает почту адресованную локальным клиентам в зимбру. И идти ковырять то чему он ее передает. Или просто выбросить - broken by design.

strict_rfc821_envelopes = yes
может конечно быть временной затычкой, но это даже не смешно - она ж так же и внутренние адреса парсит.

Ответить | Правка | Наверх | Cообщить модератору

2. "Инъекция через  RCPT TO: в postfix из комплекта Zimbra."  +/
Сообщение от eteveto (ok), 14-Авг-26, 10:49 
Отвечаю в обратном порядке. И всё ещё надеюсь на полезный совет.

"в Zimbra этот параметр обычно задаётся в конфигурационном файле Postfix (например, master.cf.in) через опцию -o strict_rfc821_envelopes=yes" (с) из интернетов

Типа, как тут - https://github.com/thangnguyennang/zimbra-postscreen/blob/ma...

Проверил это сразу, как начал копать про настройки постфикса.

$grep strict_rfc821_envelopes /opt/zimbra/common/conf/*
/opt/zimbra/common/conf/main.cf.default:strict_rfc821_envelopes = no
/opt/zimbra/common/conf/master.cf:    -o strict_rfc821_envelopes=yes
/opt/zimbra/common/conf/master.cf.in:    -o strict_rfc821_envelopes=yes
grep: /opt/zimbra/common/conf/postfix-files.d: Is a directory

То есть, этот параметр включён (не выключался с момента установки). И это проблему не решает. Толи постфикс не исполняет rfc821 даже если параметр включен, толи сам rfc821 такое позволяет.

По поводу "google: zimbra vulnerabilites (latest)" - да, посмотрю. Но проблема не обёртке Зимбры, а в постфиксе. И ещё - у меня Гугл под всякими запретами, то ли РКН, то ли самого Гугл, то ли всё вместе... включая местные ограничения для субъекта федерации в зоне боевых действий. Оно то есть, то его нет. Поэтому буду искать Яндексом.

По поводу " -rw-r----- 1 zimbra zimbra" - да, постфикс в обёртке Зимбры выполняется от пользователя zimbra. Или что там ещё я не смог прочитать? Размер созданного файла 5 байт. Ровно столько, сколько выдало в поток "echo atas" - 4 буквы и 0A (лайнфид).

По поводу "ты создал issue на сайте проекта...?". На сайте которого из проектов, Зимбры или постфикса? Конечно не создал. Где создавать - это ещё надо разбираться. А там ещё непонятно что будет с доступом. Например, https://support.zimbra.com/ у меня порезан. Проверено через нескольких провайдеров... моего субъекта федерации с особенностями.

Ответить | Правка | Наверх | Cообщить модератору

3. "-"  +/
Сообщение от Admin (??), 14-Авг-26, 16:52 
Инъекция происходит через процесс swatch, входящий в состав службы Zimbra SNMP. Этот процесс следит за логом зимбры и парсит его, передавая результаты другим процессам. И при этом ничего не экранирует в найденных строках.

Я просто отключил его командой zmprov ms $(zmhostname) -zimbraServiceEnabled snmp

Ответить | Правка | Наверх | Cообщить модератору

4. "-"  +/
Сообщение от Admin (??), 14-Авг-26, 17:04 
> Инъекция происходит через процесс swatch, входящий в состав службы Zimbra SNMP. Этот
> процесс следит за логом зимбры и парсит его, передавая результаты другим
> процессам. И при этом ничего не экранирует в найденных строках.
> Я просто отключил его командой zmprov ms $(zmhostname) -zimbraServiceEnabled snmp

И в настройках постфикса ничего крутить не надо, дело не в нем.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру