Фальшивый аттач. Атаки на почтовые серверы Roundcube с использованием уязвимости CVE-2024-37383

63936e2b8ffc714e3ba33cec4aea834d.png

Roundcube Webmail — клиент для электронной почты с открытым исходным кодом, написанный на PHP. Обширный функционал, а также возможность удобного доступа к почтовым аккаунтам из браузера без необходимости установки полноценных почтовых клиентов обусловили его популярность в том числе среди коммерческих и государственных организаций многих стран.

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

Пример одной из подобных атак мы хотим привести в этой статье.

О письме

В сентябре 2024 года специалистами TI-департамента экспертного центра безопасности Positive Technologies (PT ESC) было обнаружено письмо, направленное на электронную почту одного из государственных органов страны СНГ. Временные метки говорят о том, что оно было отправлено еще в июне 2024 года. Внешне письмо представляло собой сообщение без текста и содержало вложенный документ.

1fa0252f06d26c8348f518db60b90f9e.png

При этом почтовый клиент не отображал наличие вложения. В теле письма есть характерные теги, содержащие конструкцию eval(atob(...)), декодирующие и выполняющие код на JavaScript:

7b3660ed6fdcbb3457a579187b978f75.png

Характерное имя атрибута (attributeName="href "), содержащее дополнительный пробел, говорит о том, что это письмо представляет собой попытку эксплуатации уязвимости CVE-2024–37383 в почтовом клиенте Roundcube Webmail.

Об уязвимости

Уязвимость CVE-2024–37383 была обнаружена в веб-клиенте для работы с электронной почтой Roundсube Webmail. Она относится к типу хранимых XSS (stored XSS), позволяя выполнить JavaScript-код атакующего в контексте страницы пользователя. Для этого достаточно открыть вредоносное письмо клиентом Roundcube версии 1.5.6 и ниже либо версии от 1.6 до 1.6.6. Уязвимость обнаружили исследователи CrowdStrike, а разработчики Roundcube устранили ее 19 мая 2024 года.

Ошибка заключается в коде, выполняющем обработку SVG-элементов в разметке тела письма. Перед тем как отобразить письмо, Roundcube производит его препроцессинг — обрабатывает содержимое определенных тегов и их атрибутов (например, экранирует специальные символы). Среди прочего на этой стадии из итогового тела письма исключаются элементы SVG, которые имеют атрибуты , со ссылкой на элемент:

53f4d967cec9c033bd12ac592b3c04bd.png

Их содержимое заменяется на пустые элементы SVG:

c588bf0d32d45603db011acafe84d8b1.png

Функция, осуществляющая препроцессинг HTML-элементов в теле письма, выглядит следующим образом:

808f07f645d51a0da1346e9d3f29c40a.png

Для того чтобы теги , , , исключались из итоговой страницы при условии, в них дополнительно должен содержаться атрибут href:

33632b56b7c2144e742708f59fbc4615.png

Наличие этого атрибута проверяется вызовом функции attribute_value($node, 'attributename', 'href'), код которой выглядит следующим образом:

051aad9c4664e6efc159501864862f3b.png

При сравнении не учитывается, что имя атрибута тега, полученное при парсинге документа, может содержать пробелы. Таким образом, при добавлении к имени атрибута href лишнего пробела, конструкция вида

af80d99880461d6b257ec6475a902602.png

не будет отфильтрована и попадет в итоговый документ. Перед этим она будет приведена к виду {имя атрибута} = {значение атрибута}:

caa35a4f711eedde4ebad20404409919.png

Если подставить в качестве значения href JavaScript-код, получаем возможность его выполнения в контексте страницы Roundcube при открытии вредоносного письма клиентом Roundcube. PoC, опубликованный для уязвимости, выглядит следующим образом:

bab8d528b9ca1d3d59d4678c6b40b602.png

О полезной нагрузке

Код, который выполняется в функции eval, сохраняет пустой документ Road map.docx (закодирован в скрипте в Base64). Помимо этого, предпринимается попытка получить сообщения из почтового сервера с помощью плагина ManageSieve. Выдержка из запроса приведена ниже:

bc374ce0149882286da9f66cfecd237f.png

Дополнительно в HTML-страницу, отображаемую пользователю, добавляется форма авторизации с полями rcmloginuser и rcmloginpwd — логином и паролем пользователя для клиента Roundcube. Расчет здесь, предположительно, делается на возможность автозаполнения указанных полей либо на то, что пользователь самостоятельно введет указанные данные из-за необходимости якобы повторной авторизации.

Полученные таким образом логин и пароль отправляются на сервер libcdn.org:

d1326aeef120243efd36335493cb1019.png

Сам домен libcdn.org был зарегистрирован 6 июня 2024 года и резолвится на инфраструктуру Cloudflare.

Выводы

Уязвимости Roundcube Webmail неоднократно становились инструментом в руках злоумышленников. Последней из таких атак была кампания, относящаяся к кластеру активности группировки Winter Vivern, которая через уязвимость XSS в Roudcube атаковала государственные организации ряда европейских стран. При этом, исходя из имеющихся сведений, выявленную активность не удалось связать напрямую с известными акторами.

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

Всё вышеизложенное в очередной раз подчеркивает необходимость своевременного обновления ПО, используемого для взаимодействия с внешней недоверенной средой.

Сетевые индикаторы и Матрица MITRE

Сетевые индикаторы

Индикатор

Назначение

libcdn.org

Отправка реквизитов доступа к учетной записи почтового сервера

rcm.codes

Отправка содержимого почтового ящика

Матрица MITRE

ID

Имя

Описание

Execution

T059.007

JavaScript

Злоумышленники используют JavaScript-код для выполнения полезной нагрузки в контексте сессии почтового клиента в браузере жертвы

Collection

T1114.003

Remote email collection

Злоумышленники собирают содержимое почтового ящика жертвы с помощью плагина ManageSieve

T1056.004

Web portal capture

Злоумышленники вставляют поля ввода логина и пароля в веб-страницу письма и отправляют введенные данные на удаленный сервер

© Habrahabr.ru