Содержание статьи
Демонстрация уязвимости
Для начала детально разберем, что происходит на видео, которое демонстрирует работу бага.
Вначале мы видим командную строку, где атакующий вводит параметры бота и отправки: токен бота, ID чата, путь до файла APK для загрузки и путь к картинке (preview). Также предлагается ввести сообщение и скрыть его как спойлер. Все ключи и ID на видео замазаны.
После ввода параметров атакующий видит подтверждение удачной отправки. Атакуемый же получает сообщение, которое выглядит как обычный видеофайл.
При нажатии на него появляется сообщение, что видеофайл не может быть воспроизведен и необходим дополнительный плеер. Если пользователь дает согласие, происходит инсталляция самого присланного файла при помощи стандартного инструмента для установки APK в Android.
Далее пользователь видит стандартные запросы, которые приложения делают при установке: предоставить права на доступ к контактам, микрофону и так далее. Сами запросы зависят от модели телефона, версии Android и того, что захочет заполучить разработчик.
Ну а в конце в видео показан «отстук» в панель управления трояном и возможность доступа к приватным данным и удаленного управления смартфоном. Также по видео мы можем косвенно подтвердить, что автор из Турции, так как в панели фигурирует эта страна, а IP рядом указан локальный.
One-tap exploit
Итак, перед нами one-tap exploit (или one-click exploit) — эксплоит одним кликом или тапом. Это тип уязвимости, который позволяет злоумышленнику получить контроль над устройством или аккаунтом жертвы, если та сделает всего одно нажатие. Эти эксплоиты менее опасны, чем, скажем, RCE, поскольку требуют хоть и минимального, но все же действия со стороны пользователя: обычно достаточно просто кликнуть на вредоносную ссылку. Хороший общеизвестный пример такой уязвимости — XSS.
Тем временем я крепко задумался, как же работает найденный баг и как его можно воспроизвести.
Как устроена уязвимость
Я пересмотрел видео и попытался собрать максимум информации. Может быть, важны какие‑то детали или вдруг попадутся рабочие куски кода? Внимательно наблюдаем за процессом подготовки: указывается картинка для видео, указывается сам файл, который должен быть установлен, ID бота и TGID жертвы.
Из всего перечисленного следует, что достаточно передать любой файл, — главное, чтобы клиент Telegram признал, что это видео. «Значит, проблема кроется в отправке файлов!» — решил я и погрузился в изучение API Telegram, а точнее — той части, где мы отправляем файлы. Особое внимание, конечно, уделяем видео.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»