✍️ Статья Взлом Apple. Как вайтхеты внедрились в сеть Apple и добрались до исходников iOS

The 146X Project Dublikat Web Studio Avram Lincoln AL Service Navigator Knyaz

BlackPope

Команда форума
Модератор DeepWeb ✔️
PR-Group DeepWeb 🔷
Регистрация
27.04.2020
Сообщения
230
Группа из пяти исследователей за три месяца напряженной работы сумела отыскать 55 уязвимостей в онлайн-сервисах корпорации Apple. Внимательно изучив опубликованную на их блоге информацию, мы решили подробно рассказать о трех наиболее интересных, на наш взгляд, находках хакеров.

ИБ-исследователи всегда уделяли немало внимания железу и операционным системам Apple, а вот громкие взломы облачных сервисов компании обычно сводились к краже чьих-то учетных данных. Но вот и этот бастион пал. Команда исследователей в виде двадцатилетнего Сэма Карри (Sam Curry), Бретта Бюрхауса (Brett Buerhaus), Бена Садегипура (Ben Sadeghipour), Сэмюэля Эрба (Samuel Erb) и Таннера Барнса (Tanner Barnes) опубликовала отчет об успешном обнаружении 55 дыр в веб-сервисах Apple. Продемонстрировав тем самым, насколько уязвимой может быть сетевая инфраструктура крупной компании, если ее безопасности не уделяется должного внимания.

Парни смогли выявить 11 критических уязвимостей, 29 — с высокой степенью потенциальной опасности, 13 — средней критичности и 2 — некритичных. Обнаруженные бреши позволяют злоумышленникам запустить червя, способного автоматически захватывать учетные записи iCloud, скомпрометировать ряд веб-приложений, предназначенных как для клиентов, так и для сотрудников Apple, а также получить доступ к святая святых — репозиторию, в котором хранятся исходные коды программ для iOS и macOS. Выявленные уязвимости также дают возможность перехватывать сеансы сотрудников компании, получив доступ к инструментам управления и прочей конфиденциальной информации.

На своем сайте Сэм Карри признается, что узнал обо всех аспектах программы Apple bug bounty случайно. Он прочитал в твиттере сообщение о том, что компания наградила призом в 100 тысяч долларов пользователя, нашедшего механизм обхода аутентификации учетной записи Apple. До этого Cэм думал, что корпорация платит только за обнаружение уязвимостей в железе и операционных системах.

sRPBLHaJ8yk.jpg

Тот самый твит, вдохновивший Сэма Карри начать исследования

Изучив условия программы, Сэм решил попытать счастья. А чтобы работа двигалась быстрее, он написал несколькими хакерам, с которыми работал раньше, и предложил им принять участие в пентестинге. Так появилась команда, которая в итоге добилась успеха.

Рекогносцировка

Для начала парни постарались собрать максимум информации обо всех доступных веб-сервисах Apple и их назначении. На специальной панели записывали сведения об IP-адресах, доменах, доступных портах, данных из HTTP-заголовков, ответов сервера и прочие полезные сведения.

McH6bmXIfCc.jpg

Первый этап успешного взлома — сбор информации

Масштабы «сетевой империи» Apple поистине поражали воображение. Выяснилось, что корпорации принадлежит огромный диапазон IP-адресов 17.0.0.0/8, который включает 25 тысяч веб-серверов, 10 тысяч из которых находятся в доменной зоне apple.com, еще 7 тысяч уникальных доменов и в довершение всего,их собственный TLD .apple. Исследователи решили более детально изучить адреса в диапазоне 17.0.0.0/8, а также домены .apple.com и .icloud.com, поскольку именно там и были сосредоточены самые интересные функции.

Определившись с предметом для дальнейшего изучения, хакеры запустили автоматическое сканирование в поисках известных уязвимостей. Это позволило им лучше понять, как работает система аутентификации пользователей на сайтах Apple, как серверы обращаются с файлами cookies, какие там запущены веб-приложения и какие инструменты применялись для их разработки. В частности, были обнаружены серверы VPN с уязвимостью CVE-2020-3452, позволяющей читать локальные файлы, и утечка токена доступа в сообщении об ошибке на неработающей странице.

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

Компрометация учетных записей преподавателей Apple

Первым сайтом, который взломала команда Сэма Карри, был закрытый форум Apple Distinguished Educators (ADE), предназначенный для преподавателей, которые используют в работе технологии Apple. В качестве движка этого сервиса применяется Jive, к которому в Купертино прикрутили собственный модуль авторизации, позволяющий юзерам логиниться в систему с использованием своего Apple ID. Если пользователь еще не зарегистрирован в ADE, ему предлагают оставить заявку, заполнив нехитрую регистрационную форму.

PDQ8kEGe1s4.jpg

Инвайт нужен не только на Лепру, но и на некоторые сайты Apple

При заполнении этой регистрационной формы пользователи вводят те же данные, которые обычно указывают при регистрации в Jive, но здесь программа пыталась сопоставить адрес email c учетной записью Apple ID. При этом регистрационная форма среди прочих данных передавала на сервер скрытое поле password со значением ###INvALID#%!3.

<div class="j-form-row">
<input id="password" type="hidden" value="###INvALID#%!3">
<div id="jive-pw-strength">


При каждой попытке регистрации пароль передавался один и тот же. В то же время в ADE можно авторизоваться только через Apple ID. Однако взломщики предположили, что существует какой-то способ войти в Jive с помощью имени одной из подтвержденных модераторами учетных записей и этого стандартного пароля из скрытого поля регистрационной формы. Вдумчивый гуглеж показал, что в Jive есть специальная функция cs_login, обеспечивающая вход в учетку стандартным методом — с логином и паролем юзера. Парни сформировали соответствующий HTTP-запрос для аутентификации в системе и получили от сервера сообщение о неправильном пароле, что, собственно, неудивительно, поскольку их учетки еще не прошли модерацию.

Чтобы найти действующие профили пользователей, Карри и компания воспользовались замечательным инструментом под названием Burp Suite. Спустя примерно две минуты перебора трехсимвольных имен пользователей в сочетании со стандартным паролем сервер вернул ответ об успешной авторизации.

Залогинившись в ADE, исследователи получили список администраторов форума, однако добыть доступ к панели администратора по стандартному адресу /admin/ у атакующих не вышло. После нескольких экспериментов исследователи выяснили, что админка открывается при добавлении к этому URL точки с запятой. Чтобы облегчить себе жизнь, хакеры прописали в Burp соответствующие правила для GET- и POST-запросов.

OBsZyrMaAog.jpg

Правила для доступа к админке Jive в Burp

Тут выяснилась еще одна подробность: далеко не все юзеры, записанные в ADE в качестве администраторов, имеют полный доступ к административной панели Jive. Только попробовав несколько админских учеток, хакеры нашли такую, которая открывала доступ ко всем возможностям управления форумом — к установке плагинов, шаблонов, управлению файлами и выполнению кода.

Ez42F4k3mjk.jpg

Взломав учетку суперадминистратора, хакеры получили доступ к управлению ADE

С такими правами злоумышленники могли бы:
  • выполнить произвольные команды на веб-сервере ade.apple.com;
  • получить доступ к внутренней службе LDAP для управления учетными записями пользователей;
  • получить доступ к части внутренней сети Apple.
Кража данных iCloud с использованием сетевого червя

Что такое iCloud, владельцам девайсов Apple объяснять не надо — в этой облачной инфраструктуре хранятся и фотографии, и данные приложений, и резервные копии с пользовательских устройств. Кроме того, iCloud предоставляет пользователям доступ к функции Find my iPhone и к электронной почте. Учетка iCloud, как и другие «яблочные» сервисы, привязана к Apple ID.

Почта на iCloud — это полноценный почтовый сервис, такой же, как Gmail, с одним отличием: в почтовых клиентах на айфонах и маках iCloud используется в качестве электронной почты по умолчанию. Почтовый сервер размещается на домене icloud.com, так же как и другие сервисы iCloud, что теоретически делает их уязвимыми для межсайтового скриптинга (cross-site scripting). Сэму Карри и команде осталось только отыскать подходящую брешь в системе безопасности iCloud.

Исследователи обратили внимание на одну особенность работы почтовых приложений от Apple: когда пользователь получает и открывает электронное письмо, оно преобразуется в большой двоичный объект JSON, который обрабатывается с использованием JavaScript, а затем демонстрируется юзеру. Это означает, что обработка сообщений, в том числе анализ и очистка содержимого, выполняется не на стороне сервера, а на стороне клиента, при этом все функции визуализации самого письма реализованы с помощью JavaScript.

Экспериментируя с различными приемами XSS, Сэм Карри обнаружил, что если в письме встречается два CSS-тега <style>, то почтовая программа во время обработки собирала их содержимое в один тег. Если при этом разместить кусок закрывающего тега </sty в первом теге <style>, а вторую часть — le> — во втором, почтовый клиент продолжает думать, что тег все еще открыт, хотя это не так. Сэм создал и отправил самому себе письмо со следующим кодом:

<style></sty</style>
<style>le><sсript>alert(1)</sсript></style>


Когда он открыл это сообщение, то увидел, что уловка сработала!

1l1AXjkcyrc.jpg

Пример работы межсайтового скриптинга в iCloud

Почтовый клиент обработал и собрал этот фрагмент кода следующим образом:

<style></style><sсript>alert(1)</sсript></style>

Поскольку почтовый сервер располагается в домене icloud.com, это означает, что у приложения есть возможность получать HTTP-ответы для соответствующих API-интерфейсов службы iCloud. На практике это позволяет украсть у пользователей iCloud личную информацию вроде фотографий, сохраненных документов или данных календаря, а потом разослать этот эксплоит по всем контактам жертвы. Используемый для этого принцип XSS Сэм Карри показал на следующей схеме.

B5NORPksCAs.jpg

Принцип действия XSS в iCloud

Не откладывая дела в долгий ящик, парни запилили Proof of Concept, который с использованием iCloud API получает URL хранящихся в iCloud фотографий пользователя, вставляет их в теги изображений. Поскольку в почтовых клиентах от Apple используется JavaScript, злоумышленник может направить самому себе письмо, содержащее ссылки на видео, фото, документы жертвы, и ее список контактов, а затем разослать по этим контактам письмо с эксплоитом. Технически несложно написать скрипт, который автоматизирует этот процесс, в результате чего механизм распространения сплоита будет напоминать принцип действия почтового червя. PoC реализации этой уязвимости можно посмотреть на следующем видео.

Чуть позже Сэм Карри нашел еще одну XSS-уязвимость в «яблочном» почтовике, а именно в механизме обработки гиперссылок. Нередко интересные особенности поведения программ проявляются, когда немаркированный URL преобразуется в гиперссылку. Еще одно характерное место для поиска XSS-уязвимостей — удаление из кода письма определенных тегов вроде <iframe> и <script>. При этом парсеры часто игнорируют служебные символы вроде пробелов, переводов строк, символов табуляции, что открывает определенный простор для творчества.

Карри решил поиграть с обоими этими приемами и с удивлением обнаружил, что следующая строка ломает правильное поведение парсера JavaScript в почтовых клиентах Apple:

https://www.domain.com/abc#<script></script>https://domain.com/abc

После отправки сообщения с такой строкой оно обрабатывается парсером и получает следующее представление:

<a href="https://www.domain.com/abc#<a href=" https:="" www.domain.com="" abc=""" rel="noopener noreferrer">https://www.domain.com/abc</a>

Использовать этот эффект в недобрых целях не так-то просто, однако внутри тега <script> можно попытаться использовать различные атрибуты вроде src, onmouseover, onclick. Но злоумышленнику все равно придется использовать какой-то URL, чтобы парсер его правильно обработал и превратил в гиперссылку. После долгих экспериментов с различными спецсимволами, одинарными и двойными кавычками Сэм пришел к следующему формату полезной нагрузки:

https://www.icloud.com/mail/#<script></script>https://www.icloud.com/onmouseover=location=/javascript:alert(document.domain)/.source;//

После обработки парсером строка преобразуется в следующий формат:

<a href="https://www.icloud.com/mail#<a href=" https:="" www.icloud.com="" onmouseover="location=/javascript:alert%28document.domain%29/.source;//"">https://www.icloud.com/onmouseover=location=/javascript:alert(document.domain)/.source;//</a>

Если открыть такое письмо в почтовом клиенте Apple, мы можем увидеть вот такой симпатичный алерт.

yy9IwWWKmSs.jpg

Ошибка в обработке URL в почтовых клиентах Apple

Исследователи предложили следующее объяснение этому явлению: при обработке исходного URL теги <script></script> удалялись парсером, и на их месте образовался пробел, который ломал функцию автоматического преобразования URL в гиперссылку, не закрывая при этом тег <a href. Идущий следом URL вновь включал механизм преобразования адресов в ссылки — он добавлял в гиперссылку недостающие параметры (включая onmouseover), закрывал тег </a> и завершал обработчик события onmouseover. Теоретически эта уязвимость позволяет злоумышленникам выполнять произвольный код JavaScript в почтовом клиенте жертвы.

Доступ к репозиторию с исходниками

Одним из самых любопытных багов, найденных командой Сэма Карри, была уязвимость Server-Side Request Forgery (SSRF). Во время тестирования почтовика iCloud парни обнаружили, что пользователь может открывать определенные вложения в сообщения с помощью функции Open in Pages. При обработке формы этой функции создается специальный HTTP-запрос, содержащий параметр URL, в котором хранится адрес вложенного в сообщение файла. Если попытаться заменить этот адрес любым произвольным значением, сервер вернет ошибку 400 Bad Request. При обработке запроса создается задание, в котором ответ на HTTP-запрос преобразуется в документ Apple Pages, а затем открывается в новой вкладке.

EflloYmBJjQ.jpg

Ответ на HTTP-запрос автоматически преобразуется в документ Apple Pages

При этом почтовик разрешает только URL-адреса из домена p37-mailws.icloud.com и не преобразовывает в документ Apple Pages страницы, если ответ сервера отличается от 200 OK. Во время преобразования выполняется несколько HTTP-запросов и формируется очередь заданий.

Nnicg9nlLy0.jpg

Во время преобразования выполняется несколько HTTP-запросов и формируется очередь заданий

Чтобы сломать этот механизм, достаточно добавить после разрешенного Apple адреса строку @ ourdomain.com, содержащую домен, на который будет перенаправляться запрос. В результате полученный HTML будет преобразован в документ Apple Pages и открыт в новой вкладке. Если запрашиваемый с сервера файл оказывался слишком большим, почтовая программа упаковывала его в Zip и любезно предлагала сохранить на диск.

Для автоматизации этого процесса Бретт Бюрхаус собрал специальный скрипт на Python. В результате исследователи получили доступ на чтение к внутреннему репозиторию Apple Maven, где хранятся исходники некоторых приложений Apple.

fmaZsg-WoBs.jpg

Хакеры получили доступ к репозиторию Apple Maven

Благодаря этой уязвимости злоумышленники могли:
  • получить доступ к исходникам iOS в репозитории Мaven;
  • получить доступ ко всему содержимому внутренней сети Apple;
  • полностью скомпрометировать сеанс жертвы с помощью уязвимости межсайтового скриптинга из-за общедоступных файлов cookie в HTTP-запросе.
Техническую схему этой атаки Сэм Карри представил на следующей диаграмме.

d7IgttfcmBg.jpg

Техническая схема атаки на получение доступа к репозиторию Apple Maven

Еще больше дыр

Другие критические уязвимости, обнаруженные командой Карри:
  • обход аутентификации с помощью неправильно настроенных разрешений обеспечивает атакующему доступ глобального администратора;
  • инъекции команд через некорректно очищенный аргумент имени файла;
  • удаленное выполнение произвольного кода через утечку секрета и оставленного открытым инструмента для администраторов;
  • утечка памяти, приводящая к компрометации учетных записей сотрудников и пользователей, а также открывающая доступ к различным внутренним приложениям;
  • SQL-инъекции Vertica через некорректную очистку ввода;
  • слепая XSS, позволяющая получить доступ к внутреннему порталу поддержки для отслеживания проблем клиентов и сотрудников;
  • выполнение PhantomJS на стороне сервера, позволяющее получить доступ к внутренним ресурсам и ключам AWS IAM.
Итоги

Большая часть обнаруженных командой Сэма Карри уязвимостей была закрыта компанией Apple в течение нескольких часов после баг-репорта, а самой команде корпорация выплатила 55 100 долларов США, то есть примерно 250 долларов за одну уязвимость на человека. Правда, после поднятой в прессе шумихи Apple перечислила команде Карри в общей сложности 288 500 долларов, и сумма вознаграждения, вероятно, еще вырастет после подтверждения всех выявленных багов.

Сам Карри считает, что разработанная Apple программа Bug Bounty — это правильный шаг в выстраивании диалога с хакерами и серьезное подспорье в борьбе за безопасность «яблочных» сервисов. Полный отчет об обнаруженных уязвимостях опубликован на сайте Samcurry.net.

Вместе с тем в сетевой инфраструктуре Apple имеется значительное число критичных сервисов, таких как iCloud, Apple store и платформа для разработчиков. Это очень сложные программные комплексы, состоящие из множества веб-приложений, в которых наверняка остаются невыявленные уязвимости. Так что пентестерам и «белым шляпам» еще есть где развернуться.
 

📌 Золотая реклама

AnonPaste

Верх