Как изобретательно и беспроводным способом внедрить вредоносное ПО на чей-то ПК с Windows, находящийся поблизости, с помощью функции Google Quick Share

Важные новости

Как изобретательно и беспроводным способом внедрить вредоносное ПО на чей-то ПК с Windows с помощью Google Quick Share

DEF CON Десять уже исправленных ошибок в Google Quick Share для Windows могли быть использованы для беспроводной записи новых файлов на ПК жертв без их одобрения и в конечном итоге для удаленного выполнения кода на компьютерах этих жертв путем объединения в цепочку нескольких других уязвимостей.

Руководитель исследовательской группы по безопасности SafeBreach Ор Яир и старший исследователь по безопасности Шмуэль Коэн продемонстрировали атаку удаленного выполнения кода (RCE), получившую название QuickShell, и сегодня на DEF CON обсудили работу, проделанную в рамках этого проекта: а именно, проверку протокола связи Quick Share, фаззинг и затем ручной поиск уязвимостей, а в конечном итоге создание полной цепочки RCE.

Поделившись своими выводами с Google, веб-гигант в июне выпустил два CVE, которые покрывают 10 уязвимостей Quick Share, обнаруженных SafeBeach. Это CVE-2024-38271, ошибка отказа в обслуживании, получившая оценку 5,9 из 10 по шкале CVSS, и CVE-2024-38272, ошибка обхода авторизации с оценкой 7,1 по шкале CVSS.

Google устранила все уязвимости, и SafeBreach подтвердила, что цепочку RCE больше невозможно реализовать. Google не захотела комментировать.

В рамках решения проблемы RCE в Windows — которая довольно сложна и нетривиальна для эксплуатации, но очень интересно посмотреть, как она будет реализована — Google исправила ошибку, которая позволяла злоумышленникам принудительно отправлять файлы на близлежащие устройства Windows и Android через Quick Share.

Внутри кода

Quick Share, аналогичный AirDrop от Apple, — это одноранговый инструмент для обмена файлами, позволяющий людям отправлять и получать файлы между близлежащими устройствами. Он использует различные протоколы связи, включая Bluetooth, Wi-Fi, Wi-Fi Direct, Web Real-Time Communication (WebRTC) и Near-Field Communication (NFC). Кроме того, он использует API Nearby Connections от Google для обнаружения и обмена данными с близлежащими устройствами.

Quick Share сегодня является результатом слияния предыдущей программы Google Nearby Share, аналогичной AirDrop, с Quick Share от Samsung в январе этого года.

Приложение доступно не только для Android, но и для Windows, поэтому вы можете использовать его для передавать файлы между мобильными устройствами и ПК. Имейте в виду, что для двух устройств, будь то телефоны или компьютеры, для обмена файлами через Quick Share, обе стороны должны дать согласие на передачу: отправляющий пользователь должен предложить файл, а получатель должен принять его через пользовательский интерфейс.

«Это довольно сложный проект для Windows», — рассказал Коэн из SafeBreach The Register.. «Это включает в себя различные методы связи, и все это становится очень сложным. И как исследователю безопасности вам всегда нравится смотреть на сложные программы или проекты, потому что сложность означает, что там, вероятно, будут ошибки».

< h3 class="crosshead">Fuzz'n'logic

Изучив различные протоколы, задействованные в процессе обмена файлами, дуэт решил создать инструмент фаззинга для проверки Quick Share для Windows. Хотя это и привело к некоторым воспроизводимым сбоям, это не дало им ожидаемой полезной эксплуатируемой ошибки. Например, можно было неоднократно вызывать сбой Quick Share в Windows, поделившись файлом с именем, содержащим недопустимые символы UTF-8, что само по себе могло быть хорошим способом кого-то разыграть.

«Это действительно позволило нам вывести из строя Quick Share, — сказал Яир о фаззинге, — и один из них заставил Quick Share бесконечно открывать один файл в папке «Загрузки». Таким образом, мы можем назвать файл в папке загрузок жертвы, и это будет открывать, закрывать, открывать, закрывать, неоднократно, один и тот же файл, навсегда.»

Далее исследователи перешли к поиску логических уязвимостей в коде. Код протокола связи Quick Share «крайне общий, полный абстрактных и базовых классов, а также класса-обработчика для каждого типа пакета», — эти два примечания в рецензии должны быть опубликованы одновременно с их сегодняшней презентацией DEF CON.

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

Чтобы отправить файл, инициатору сначала нужно отправить вводный пакет и дождаться пакета подтверждения от ответчика. После этого этот инициатор отправит пакет PayloadTransfer, содержащий свой файл.

Однако код был структурирован таким образом, что он непреднамеренно позволял паре просто отправить пакет PayloadTransfer непосредственно в приложение для выполнения передачи, полностью пропуская этапы введения и принятия пакета и обходя необходимость какого-либо принятия со стороны ответчика. Программное обеспечение — как версии Windows, так и Android, отметим, — просто автоматически брало файл и сохраняло его. Злоумышленники могли использовать это для передачи данных, даже крайне незаконного контента, на устройство цели.

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

Видео на YouTube

Команда SafeBreach также смогла использовать Quick Share, чтобы заставить целевое устройство подключиться к сети Wi-Fi по их выбору примерно на 30 секунд, после чего Quick Share вернул машину в исходную сеть Wi-Fi. Этот механизм предусмотрен для того, чтобы, если возможно, приложение могло обновить соединение между двумя устройствами для ускорения передачи файлов. Он позволяет Quick Share использовать Wi-Fi для этой передачи, а не более медленный беспроводной протокол.

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

Затем они обнаружили атаку обхода пути, которая — по иронии судьбы — была возможна для кода Quick Share, отвечающего за удаление строк обхода пути. Но хотя это позволило исследователю создать файл вне папки загрузок, код требовал, чтобы имя файла начиналось с «Загрузки», и файл всегда должен был находиться в папке пользователя. Так что RCE по-прежнему не было.

К настоящему времени у них было 10 уязвимостей, которые, по словам пары, могли делать следующее:

  • Создавать файлы в папке «Загрузки» жертвы.
  • Создать файлы в папке пользователя жертвы, поскольку она является родительской для папки Downloads. Однако файл должен начинаться с префикса «Downloads».
  • Заставить целевое устройство подключиться к другой сети Wi-Fi, но только примерно на 30 секунд.
  • Вывести из строя Quick Share несколькими способами.
  • Заставить Quick Share перейти в бесконечный цикл, постоянно открывая файл по выбору злоумышленника из папки Downloads.

Сила творческого мышления

«Самая сложная часть была на самом деле совсем не технической. Это было просто чистое творчество», — сказал Яир. «Мы пытались думать: как мы можем превратить эти уязвимости во что-то большее? И мы придумали этот поток».

Этот поток, связывающий пять меньших ошибок для достижения RCE, сначала включал продление атаки захвата Wi-Fi за пределы 30 секунд и сохранение ПК жертвы в контролируемой злоумышленником сети. Они добились этого, заставив компьютер жертвы присоединиться к вредоносной сети, а затем немедленно вызвав сбой приложения с помощью одной из более ранних уязвимостей отказа в обслуживании и воспользовавшись тем фактом, что Quick Share создает запланированную задачу Windows, которая каждые 15 минут проверяет, запущено ли приложение. Если оно не запущено, задача перезапускает Quick Share.

Итак, используйте Quick Share, чтобы заставить цель присоединиться к плохой сети, обрушьте ее Quick Share, чтобы она не перебросила пользователя обратно в предыдущую сеть, подождите, пока запланированная задача снова запустит Quick Share, и теперь у злоумышленника есть жертва на постоянном контролируемом злоумышленником Wi-Fi-подключении. Теперь этот негодяй, находясь в этой позиции, имеет время перехватить интернет-трафик жертвы и вмешаться в него.

Далее для этого умного, но, по общему признанию, сложного RCE, злоумышленнику нужно дождаться, пока жертва загрузит (скажем) установщик приложения из Интернета через мошенническую сеть. Даже если эта программа установки загружается с использованием соединения HTTPS, сетевой перехватчик может определить программу, которую хочет пользователь, по имени хоста удаленного сервера загрузки. Во время незашифрованного установления связи в начале соединения полное имя хоста сервера, например code.visualstudio.com, становится видимым для шпиона.

Чтобы угадать, какую программу загружают, дуэт смотрел не только на имя хоста, но и на размер загрузки. Если вы знаете, например, что установочный файл .exe размером 123 МБ доступен (скажем) на сайте Amazingeditor.example.com и вы, как перехватчик Wi-Fi, видите, что ваша жертва загружает около 123 мегабайт с этого сервера с помощью своего браузера, вы можете поспорить, что они скачивают этот установщик. Пара объяснила:

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

И наконец, в нужный момент злоумышленник обманывает Quick Share жертвы, заставляя перезаписать исполняемый файл, который загружается и сохраняется браузером в папке загрузок пользователя, заменяя легитимный .exe вредоносным, принудительно отправляя файл с точно таким же именем. Помогает то, что Quick Share и, скажем, Chrome используют одну и ту же папку для загрузок.

«Это не позволит никому удалить этот файл или изменить его», — сказал Коэн. «Так что, если [браузер жертвы] попытается перезаписать наш файл оригиналом, скажем, установщиком Spotify, он не сможет перезаписать наш файл, но сообщит жертве, что все в порядке, Spotify загружается, и вы можете нажать здесь, чтобы запустить его».

Конечно, жертва на самом деле не будет запускать Spotify, когда откроет программу, а скорее какой-то вредоносный код по выбору злоумышленника, и тогда игра окончена.

Сложно, но выполнимо, и в любом случае, уже исправлено. В целом команда заявила, что обнаружила и попросила Google исправить следующее:

  1. Удаленная несанкционированная запись файлов в Quick Share для Windows
  2. Удаленная несанкционированная запись файлов в Quick Share для Android
  3. Удаленное принудительное подключение к Wi-Fi в Quick Share для Windows
  4. Удаленный обход каталогов в Quick Share для Windows
  5. Удаленная атака DoS в Quick Share для Windows — бесконечный цикл
  6. Удаленная атака DoS в Quick Share для Windows — сбой подтверждения
  7. Удаленная атака DoS в Quick Share для Windows — сбой подтверждения
  8. Удаленная атака DoS в Quick Share для Windows — необработанное исключение
  9. Удаленная атака DoS в Quick Share для Windows — необработанное исключение
  10. Удаленная атака DoS в Quick Share для Windows — необработанное исключение

SafeBreach заявляет, что тесно сотрудничала с производителем Chrome для устранения уязвимостей, и добавил, что Googlers были сотрудничающими и восприимчивыми к их ответственному раскрытию. Мы предполагаем, что Infosec biz в какой-то момент опубликует свой отчет об этом исследовании здесь, где он размещает свои другие рекомендации. ®

Новости сегодня

Последние новости