Содержание статьи
Корень проблемы
Сценарий простой. Представь, что ты открываешь встроенный в Telegram браузер и переходишь по ссылке на web.telegram.org. Почти мгновенно — без ввода пароля, без подтверждения входа, без оповещений — ты оказываешься авторизован. Вроде ничего необычного: ты ведь и так уже в Telegram! Но теперь представь, что злоумышленник вовремя перехватит этот токен. И использует его... скажем, в другом браузере. Или на другом устройстве.
Что получается: Telegram запускает сессию с широкими правами, не требуя клауд‑пароля, не уведомляя пользователя и не отслеживая, где эта сессия используется. Нет браузерной привязки. Нет логов. Нет никаких ограничений!
Реальный кейс: кража крипты
Я занимаюсь ИТ‑просвещением в рамках независимого некоммерческого проекта CakesCats, посвященного цифровой гигиене, безопасности и анализу современных угроз. К проекту обращаются люди с вопросами и кейсами.
Пострадавший в этом инциденте пришел ко мне в начале 2025 года через публичные каналы. Он пострадал от кражи криптовалюты на очень значительную сумму.
После базового аудита я был сильно впечатлен, что следов почти нет. Такое встречается крайне редко, если не сказать, что я с таким встретился впервые. Но я не собирался сдаваться и постепенно нашел 0-day в Telegram.
info
В процессе расследования я использовал Mobile Verification Toolkit (MVT). Большое спасибо его разработчикам и сообществу за отличный инструмент!
Вот цепочка событий, которую мне удалось восстановить:
- Пользователь зашел на сайт и авторизовался через Telegram Login Widget.
- Через несколько часов с криптокошельков исчезли все средства.
- Seed-фразы хранились в Telegram (что, конечно, очень плохая практика).
- Атакующий, воспользовавшись сессией, достал содержимое заметок, не входя явно в Telegram, и получил доступ к крипте.
- Не было уведомлений о необычных новых сессиях или подтверждений входа — Telegram или девайс человека «не заметил» кражу.
Технический контекст
Пострадавший использовал iPhone с iOS версии 18.3 и браузер Safari. Также было известно, что для авторизации в Telegram он использовал виджет из серии Telegram Widgets.
Я тщательно проверил все клиентские устройства в поисках следов и опросил пользователя — он не находил никаких «потерянных флешек» и не заметил ничего подозрительного. Ситуация оказалась максимально нетипичной: я не припомню случая, когда не осталось бы ни единого реального доказательства. Обычно все куда проще: чья‑то невнимательность, злой умысел кого‑то из близкого круга, вредоносное ПО. Но здесь — пустота.
Атака на macOS или iOS сама по себе требует серьезных усилий: это сложная операция, которая неизбежно оставляет отпечатки — нестандартные запросы, сбои в правах доступа, а то и всплеск крашей в логах в ключевой день, когда происходил пивотинг. Но и тут — ничего.
В тот момент в регионе, где находился клиент, проходила ИТ‑конференция, в том числе с участием телеком- и кибербезопасных структур. Владелец айфона остановился в гостинице, которая принимала участников, — поездка была спонтанной. Это может быть совпадением, но также и индикатором высокоорганизованной атаки уровня APT. В таких случаях высока вероятность, например, использования IMSI-catcher или подобного оборудования, а также непубличных эксплоитов.
Обнаружилась лишь одна интересная деталь: в базовых логах iPhone (baseband logs) отсутствовали записи за два дня, когда предположительно и была проведена атака. За два с половиной месяца — это единственное слепое пятно.
Опять же, рут iPhone — это нетривиальная задача, даже если это твой собственный телефон. А тут неизвестные провели такую атаку удаленно и забрали только содержимое заметок в Telegram! У клиента были еще и брокерские и банковские приложения, где тоже хранились деньги. И ничего из этого не тронуто.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»