Как стать автором
Обновить

Zero Click уязвимость в Apple MacOS Mail

Время на прочтение 4 мин
Количество просмотров 3.4K
Автор оригинала: Mikko Kenttälä

Zip Zero-Click TL;DR

Я обнаружил Zero-Click уязвимость(не требующая от пользователя никаких дополнительных действий, например, нажатия, скачивания и т.п.) в Apple Mail, которая позволяла добавлять или изменять любой произвольный файл в среде местной песочницы. Эта уязвимость могла привести к различным неприятностям, включая несанкционированное раскрытие конфиденциальной информации третьим лицам. Злоумышленник мог изменить конфигурацию почты жертвы, например, переадресацию почты, что позволяет захватить другие учетные записи жертвы с помощью сброса пароля. Эта уязвимость могла быть использована для изменения настроек пользователя, чтобы он сам распространял вирус, общаясь с другими пользователями. Apple исправила эту уязвимость в июле 2020 года.

История

Однажды я изучал Apple Bug Bounty и начал думать, какие атаки могут быть запущены без действий пользователя. Первой идеей, очевидно, был Safari. Я немного поиграл с Safari, но не нашел интересных зацепок. Следующее, что у меня было на уме — это Mail или iMessage. Я сосредоточился на Mail, потому что подозревал, что устаревшие функции скрываются в старом коде. Я начал экспериментировать с почтой, отправляя тестовые сообщения и вложения, пытаясь найти аномалию по сравнению с обычной отправкой и получением электронной почты. Я отправлял эти сообщения и отслеживал системные вызовы, чтобы узнать, что происходит под капотом при получении электронной почты, и вот что я нашел.

Технический аспект

Описание

Mail имеет функцию, которая позволяет автоматически распаковывать вложения, которые были автоматически архивированы другим пользователем.

В допустимом варианте использования, если пользователь создает электронную почту и добавляет папку в качестве вложения, она автоматически сжимается с помощью .zip и настройки x-mac-auto-archive = yes и затем добавляется в заголовки MIME. Когда другой пользователь почты получает это электронное письмо, сжатые данные автоматически распаковываются.

Во время своего исследования я обнаружил, что части несжатых данных не очищаются из временного каталога, и этот каталог не является уникальным в среде Mail. Это можно использовать для получения несанкционированного доступа к записи в ~ /Library/Mail и в $TMPDIR, используя символические ссылки внутри этих заархивированных файлов.

Символические ссылки

Символическая ссылка - это специальный файл в файловой системе, в котором вместо пользовательских данных содержится путь к файлу, открываемому при обращении к данной ссылке.

Вот что происходит

Злоумышленник отправляет жертве эксплойт по электронной почте, который включает в себя два zip-файла в качестве вложений. Сразу же, когда пользователь получает электронное письмо, Apple Mail анализирует его и ищет любые вложения с заголовком x-mac-auto-archive = yes. Mail автоматически распаковывает эти файлы.

1 этап

Первый zip-архив включает символическую ссылку Mail, которая отсылает к «$ HOME / Library / Mail» и файл 1.txt. Zip распаковывается в «$TMPDIR/com.apple.mail/bom/». На основе заголовка «filename = 1.txt.zip» 1.txt копируется в почтовый каталог, и все работает так, как положено. Однако очистка выполняется неправильно, и символическая ссылка остается на месте.

2 этап

Второй прикрепленный zip-архив содержит изменения, которые вы хотите внести в «$ HOME/Library/Mail». Это предоставит произвольное разрешение на запись файла в Library/Mail.

В моем примере я написал новые правила для почты. При этом вы можете добавить их в приложение почты.

Mail/ZCZPoC

Mail/V7/MailData/RulesActiveState.plist

Mail/V7/MailData/SyncedRules.plist

Mail/ZCZPoC включает в себя просто текстовый файл, который будет записан в ~/Library/Mail.

Переписать список правил почты

Файлы могут быть перезаписаны, и именно это происходит с файлами RulesActiveState.plist и SyncedRules.plist.

Главное в RulesActiveState.plist — это активировать новое правило в SyncedRules.plist.

<dict>

<key>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</key>

<true/>

</dict>

SyncedRules.plist содержит правило, соответствующее «AnyMessage», и правило, при котором PoC приложение Mail воспроизводит звук Морзе при получении любого сообщения.

<key>Criteria</key>

<array>

<dict>

<key>CriterionUniqueId</key>

<string>0C8B9B35–2F89–418F-913F-A6F5E0C8F445</string>

<key>Header</key>

<string>AnyMessage</string>

</dict>

</array>

<key>SoundName</key>

<string>Morse</string>

Вместо воспроизведения звука Морзе это может быть, например, правило переадресации для утечки конфиденциальных данных электронной почты.

Возможные последствия

Этот произвольный доступ позволяет злоумышленнику манипулировать всеми файлами в $HOME/Library/Mail. Это могло привести к передаче конфиденциальных данных третьим лицам путем изменения конфигурации почты. Один из доступных вариантов конфигурации — это подпись пользователя, которая может быть использована для исправления уязвимости.

Также есть вероятность, что это могло привести к уязвимости удаленного выполнения кода (RCE), но я не зашел так далеко.

Хронология событий

2020–05–16: обнаружена проблема

2020–05–24: PoC готов и сообщается в Apple

2020-06-04: Выпуск Catalina 10.15.6 Beta 4 с исправлением

2020–07–15: macOS Mojave 10.14.6, macOS High Sierra 10.13.6, macOS Catalina 10.15.5 Обновление с исправлением выпущено

2020–11–12: выпущена CVE-2020–9922

2021–03–30: Bug Bounty еще не оценена

Спасибо коллегам-исследователям, которые поделились своими открытиями и знаниями, и спасибо Apple за быстрые исправления. Огромное спасибо моим коллегам, которые помогли мне с этой статьей!


Дата-центр ITSOFT — услуги размещения и аренды серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.

Теги:
Хабы:
+8
Комментарии 1
Комментарии Комментарии 1

Публикации

Истории

Работа

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн