What's up? или как десктопная версия излюбленноно всеми приложение позволяет заглянуть в вашу фаловую систему.
Еще одно приложение, по популярности, пожалуй, превосходящее героя предыдущего поста, также оказалось подвержено ряду уязвимостей (но об этом и так все догадывались, да?)
4 февраля исследователем безопасности Gal Weizman была опбликована статья об уязвимостях, обнаруженных им в десктопных и браузерной версии этого приложения. Точнее, по сути, уязвимость одна, но она прошла достаточно долгий путь раскрутки и вылилась в серьезный результат. По сути, в статье говорится, что злоумышленник может просматривать содержимое файловой системы жертвы, а также есть намек на то, что потенциально эта уязвимость может позволить также выполнить код на устройстве жертвы, однако PoC'а на этот счет в сети пока найти не удалось. Уязвимости уже присвоен статус высокого уровня критичности (CVE-2019-18426).
Далее - немного технических деталей.
Автор статьи рассказывает про пять этапов раскрутки уязвимости.
1. Сначала удалось поменить превью сообщения, на которое пользователь ответил. Приведенная в статье картинка весьма говорящая Суть заключалась в том, что сообщение-реплай содержит поле с метаданными __x_quotedMsg с полем body. Это поле заполняется автоматически при реплае, но оказалось, что эти метаданные можно подменить и в чате отобразится уже подмененная картина.
2. Затем выяснилось, что есть опасный функционал с отображением превью (баннера) веб-страницы при отправке ссылки на нее. Оказывается, тело этого превью тоже формируется на стороне отправляющего и метаданные тоже могут быть подменены. Отличная площадка для социнженерии. Вы показываете человеку картинку вполне знакомого ему сайта, а вот при клике он идет уже туда, куда нужно Вам.
3. XSS-ка в веб-версии. Персистентная. Правда, отрабатывающая не во всех браузерах: Chromium, как известно, не так давно позаботился о своих пользователях. Но более старые версии, а также другие браузеры все еще позволяют провернуть этот трюк. Уязвимость все там же, в функционале просмотра баннера ссылки.
4. Обход Content Security Policy. Google, надо сказать, вообще молодцы и дали разработчикам большое количество защитных механизмов. В том числе - CSP. И даже дали инструмент для того, чтобы проверять корректность их настроек. В данном случае из-за отсутствия директивы object-src автору статьи удалось создать объект с iframe'ом, в котором выполняется нагрузка.
5. И вот тут начинается магия. Далее речь идет о десктопных версиях WhatsApp для Windows и MacOS. Знали ли вы, что многие десктопные приложения используют Electron как платформу, позволяющую использовать веб-примочки при разработке десктопных приложений? А базируется он на Chromium. И если вы исследователь безопасности, рекомендую обратить на этот факт пристальное внимание ;-)
Итак, по сути, у нас есть JS и мы можем что-то делать. Но тут внимательный читатель должен был заметить противоречие -- ведь выше сказано, что Chromium уже позаботился о своих пользователях. Да, это так. Но Electron базируется на старой версии хромиума. _Очень_ _старой_ _версии_. В которой уже есть известные 1-day уязвимости. В том числе, RCE. В статье приведен пример с чтением файлов.
Вот такое получилось у Gal Weizman исследование. Как по мне, очень круто. Полный текст - здесь
Еще одно приложение, по популярности, пожалуй, превосходящее героя предыдущего поста, также оказалось подвержено ряду уязвимостей (но об этом и так все догадывались, да?)
4 февраля исследователем безопасности Gal Weizman была опбликована статья об уязвимостях, обнаруженных им в десктопных и браузерной версии этого приложения. Точнее, по сути, уязвимость одна, но она прошла достаточно долгий путь раскрутки и вылилась в серьезный результат. По сути, в статье говорится, что злоумышленник может просматривать содержимое файловой системы жертвы, а также есть намек на то, что потенциально эта уязвимость может позволить также выполнить код на устройстве жертвы, однако PoC'а на этот счет в сети пока найти не удалось. Уязвимости уже присвоен статус высокого уровня критичности (CVE-2019-18426).
Далее - немного технических деталей.
Автор статьи рассказывает про пять этапов раскрутки уязвимости.
1. Сначала удалось поменить превью сообщения, на которое пользователь ответил. Приведенная в статье картинка весьма говорящая Суть заключалась в том, что сообщение-реплай содержит поле с метаданными __x_quotedMsg с полем body. Это поле заполняется автоматически при реплае, но оказалось, что эти метаданные можно подменить и в чате отобразится уже подмененная картина.
2. Затем выяснилось, что есть опасный функционал с отображением превью (баннера) веб-страницы при отправке ссылки на нее. Оказывается, тело этого превью тоже формируется на стороне отправляющего и метаданные тоже могут быть подменены. Отличная площадка для социнженерии. Вы показываете человеку картинку вполне знакомого ему сайта, а вот при клике он идет уже туда, куда нужно Вам.
3. XSS-ка в веб-версии. Персистентная. Правда, отрабатывающая не во всех браузерах: Chromium, как известно, не так давно позаботился о своих пользователях. Но более старые версии, а также другие браузеры все еще позволяют провернуть этот трюк. Уязвимость все там же, в функционале просмотра баннера ссылки.
4. Обход Content Security Policy. Google, надо сказать, вообще молодцы и дали разработчикам большое количество защитных механизмов. В том числе - CSP. И даже дали инструмент для того, чтобы проверять корректность их настроек. В данном случае из-за отсутствия директивы object-src автору статьи удалось создать объект с iframe'ом, в котором выполняется нагрузка.
5. И вот тут начинается магия. Далее речь идет о десктопных версиях WhatsApp для Windows и MacOS. Знали ли вы, что многие десктопные приложения используют Electron как платформу, позволяющую использовать веб-примочки при разработке десктопных приложений? А базируется он на Chromium. И если вы исследователь безопасности, рекомендую обратить на этот факт пристальное внимание ;-)
Итак, по сути, у нас есть JS и мы можем что-то делать. Но тут внимательный читатель должен был заметить противоречие -- ведь выше сказано, что Chromium уже позаботился о своих пользователях. Да, это так. Но Electron базируется на старой версии хромиума. _Очень_ _старой_ _версии_. В которой уже есть известные 1-day уязвимости. В том числе, RCE. В статье приведен пример с чтением файлов.
Вот такое получилось у Gal Weizman исследование. Как по мне, очень круто. Полный текст - здесь