• XSS.stack #1 – первый литературный журнал от юзеров форума

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

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
5332962bf94e4ba30be841e8ed2b54f6.png

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 автоматически распаковывает эти файлы.
fba3747797ba4bf7e20d06b9e752d187.png

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 еще не оценена


Автор оригинала: Mikko Kenttälä
Перевод Stedihabr
 
Пожалуйста, обратите внимание, что пользователь заблокирован
2020–05–16: обнаружена проблема ------> 2021–03–30: Bug Bounty еще не оценена
Вот поэтому люди и идут в блэки. Киллотонны опыта + мегатонны энтузиазма и человеко-часов. А профит где?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
У чела уже подтвержденноая CVE, "на руках" за его авторством и ему ждать приходится до сих пор. Уже год ждет своих 50-100к (не помню сколько там яблоки платят за зеро-клик). Он давно бы в сто раз больше заработал реализуя себя на темной стороне. А там не факт что деньги выплатят ему вообще.
 
У чела уже подтвержденноая CVE, "на руках" за его авторством и ему ждать приходится до сих пор. Уже год ждет своих 50-100к (не помню сколько там яблоки платят за зеро-клик). Он давно бы в сто раз больше заработал реализуя себя на темной стороне. А там не факт что деньги выплатят ему вообще.
они не выплачивают сразу не потому,что жадные,а потому что это долго организовывать
 
Пожалуйста, обратите внимание, что пользователь заблокирован
они не выплачивают сразу не потому,что жадные,а потому что это долго организовывать
Бро они не то что, сразу не выплачивают - это не то слово. Ладно бы 3 месяца ждать нужно было. Ну или пол года как ты написал. В кейсе выше чувак ждет уже год - за ту инфу - на которой мог бы заработать миллионы - просто продав на черном рынке и получив выплату сразу. Они должны баг-хантерам как земля-колхозу. Глянь на ценники зеродиума там фул-чейн зеро клик под iOS уже дешевле аналогичного под андройд стоит. опытные спецы тратят на аудит их софта кучу своего времени и то как они к хантерам времянами относятся - просто свинство. Для корпа с миллиардными оборотами 100к-200к выплата - копейки и как решить этот вопрос быстрее - тоже можно было бы придумать, как от налогов уходить или антимонопольное законодательство нарушать, они схемы быстро кляпают, а когда нужно хантеру заплатить так они видетели организовывают все формальности.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх