Последние два месяца для пользователей Telegram оказались беспокойными. Виной тому массовые фишинговые атаки злоумышленников, цель которых — заполучить контроль над аккаунтами как можно большего числа пользователей мессенджера.
Кликнув по фишинговой ссылке, потенциальная жертва попадала на поддельный сайт, убедительно имитирующий оригинальный Telegram Web. Для просмотра обещанного контента пользователю нужно было авторизоваться на сайте. Предположение, что человек, уже использующий Telegram на своем устройстве, будет заходить в учетную запись в веб-версии, выглядит абсурдно, однако это работало.
Перехватив управление чужим аккаунтом, злоумышленники рассылали от имени жертвы фишинговые сообщения всем пользователям в ее контакт-листе. Сообщения, полученные от знакомых, обычно вызывают больше доверия, поэтому атаки срабатывали достаточно эффективно и количество потенциальных жертв увеличивалось лавинообразно.
Приманки фишеров
В качестве приманки фишеры создали немало веб-ресурсов с различным содержимым.
Пример фишингового сайта
Например, в результате рассылки по контакт-листу потенциальная жертва могла получить ссылку с просьбой проголосовать за взрослого или ребенка, участвующего в конкурсе.
Источник: https://twitter.com/mkbodanu4/status/1612948484679962626
Все эти уловки должны были привести жертву на один из фишинговых сайтов, построенных на веб-клиенте Telegram. Перенаправление сопровождалось передачей уникальных данных, возьмем для примера ссылку https://konkurs-golos[.]ltd/?hash=w85fvyprqn_0. В данном случае konkurs-golos[.]ltd — это адрес фишинговой веб-версии мессенджера, а уникальными данными являются хэш w85fvyprqn и цифра 0.
Веб-клиент для фишингового сайта был взят с GitHub 13 декабря 2022 года. Об этом свидетельствует JavaScript-файл с сервера злоумышленников:
Версия 1.6.2 (272) как раз датирована тринадцатым декабря.
Это полноценная версия Telegram Web с точки зрения как функциональности, так и интерфейса.
Разумеется, злоумышленники внесли некоторые изменения. Например, авторизация по QR-коду очень похожа на оригинальный web.telegram.org/k с той лишь разницей, что на картинке с кодом отсутствует пиктограмма Telegram.
Оригинальный QR-код Telegram Web
Однако самые существенные изменения коснулись функций, отвечающих за авторизацию, — были изменены код Telegram Web, файлы pageSignIn.ts, pageSignQR.ts, pageAuthCode.ts. Остановимся на них подробнее.
Модификации кода Telegram Web
Попав на фишинговую страницу, жертва видела знакомый интерфейс Telegram Web с QR-кодом или запросом на ввод номера, под которым располагался чекбокс «Оставаться в системе (Keep me signed in)». Вне зависимости от того, поставит ли жертва галочку, поведение фишингового Telegram Web не меняется: при помощи функции toggleStorages зловредный ресурс сформирует и сохранит данные сессии жертвы в локальном хранилище (localStorage), и каждый раз, когда жертва будет заходить на страницу, авторизация будет проходить автоматически.
Безусловное создание локального хранилища необходимо злоумышленникам для того, чтобы получить контроль над учетной записью жертвы. Если пользователь успешно авторизуется на сервере Telegram, злоумышленники получат сессионные ключи и затем смогут авторизоваться в мессенджере с любого устройства и в любой удобный им момент времени до тех пор, пока жертва или службы безопасности Telegram не обнаружат две активные сессии с разных IP-адресов.
Сама кража сессионных ключей происходит оригинальным способом: в тот момент, когда авторизация жертвы успешно состоялась, запускается пятисекундный таймер, по истечении которого сессионные ключи, хранящиеся в локальном хранилище, преобразуются в текст формата JSON и отправляются POST-запросом на поддомен dohphqnvcbxuhrtl.
Пример пересылаемых данных:
Однако тут есть еще один нюанс. Как показывает код на скриншоте выше, в том случае, если значение константы blocking равняется единице, жертва будет перенаправлена на еще один поддомен — recovery. Страница на этом домене может показаться похожей на страницу восстановления доступа к Telegram, однако есть существенные отличия. CAPTCHA в данном случае — статический рисунок, а одно из полей формы содержит запрос на данные банковской карты.
Значение константы blocking определяется в результате парсинга зловредного URL, о котором мы писали выше (пример: https://konkurs-golos[.]ltd/?hash=w85fvyprqn_0).
Если в конце URL содержится ноль, то перенаправления не происходит. Так фишеры могут регулировать цели, которые они хотят достичь в рамках одной кампании.
Статистика фишинговой кампании
По данным телеметрии «Лаборатории Касперского», пик атак в рамках этой фишинговой компании пришелся на декабрь 2022 года. Атаки были направлены преимущественно на российских пользователей Telegram, однако с этой угрозой столкнулись и пользователи в других странах. Специально созданные страницы встречались в том числе на арабском языке.
Страна | % атакованных пользователей |
Россия | 90,04 |
Узбекистан | 3,08 |
Беларусь | 3,08 |
Украина | 0,82 |
Германия | 0,54 |
Казахстан | 0,54 |
Латвия | 0,27 |
Франция | 0,18 |
Индонезия | 0,18 |
Таджикистан | 0,18 |
Эстония | 0,09 |
Испания | 0,09 |
Швеция | 0,09 |
Гонконг | 0,09 |
ОАЭ | 0,09 |
Армения | 0,09 |
Нидерланды | 0,09 |
Австралия | 0,09 |
Финляндия | 0,09 |
Саудовская Аравия | 0,09 |
Великобритания | 0,09 |
Бельгия | 0,09 |
Данные телеметрии за декабрь 2022 г.
На руку фишерам сыграло множество факторов. Во-первых, технически не очень сложно организовать подобные атаки: зарегистрировать домен, скачать последнюю версию Telegram Web, немного модифицировать ее и начать рассылку. Во-вторых, как канал дистрибуции любой мессенджер — отличный вариант, особенно если писать фишинговые сообщения от имени жертвы. Это дает ощутимое преимущество над обычной рассылкой, которую быстро заблокируют службы безопасности мессенджера.
Защититься от этой и подобных атак и сложно, и просто одновременно — в зависимости от бдительности пользователя. Иначе говоря, чтобы не попасться на удочку, не советуем сразу переходить по внезапно полученной ссылке, даже если ее прислал тот, кого вы хорошо знаете. Лучше связаться с отправителем по другому каналу, например позвонить и узнать, действительно ли сообщение пришло от него. Как вариант, можно задать личный вопрос, ответ на который может знать только отправитель. Хорошим дополнением к бдительности будет защитное решение, способное предотвращать переходы на фишинговые сайты, главное, чтобы его база фишинговых ссылок обновлялась оперативно.
Индикаторы компрометации (IoC)
Доменные имена
konkurs-golos[.]ltd
cyberusa[.]tech
cyberusa[.]ltd
vote-2023[.]ltd
vote-telegram[.]com
teleqram[.]net
golos-2023[.]online
Правило Yara
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
rule phishing_Telegram_post_query { meta: description = "Rule to detect Telegram phishing JavaScript file" author = "Kaspersky" copyright = "Kaspersky" distribution = "DISTRIBUTION IS FORBIDDEN. DO NOT UPLOAD TO ANY MULTISCANNER OR SHARE ON ANY THREAT INTEL PLATFORM" version = "1.0" last_modified = "2023-01-23" strings: $str1 = "https://dohphqnvcbxuhrtl" $str2 = "/sendData" $str3 = "https://recovery." $str4 = "domen" condition: all of ($str*) } |
Поддельная веб-версия Telegram на службе у фишеров
Дамир
Здравствуйте. Взломали мой аккаунт телеграмм! Я это понял так: у меня 2 аккаунта было между ними не было включено инкогнито.
Выселили с двух телефонов с аккаунто.
И я не припоминаю что бы ставил облачный пароль. Увы эмейл не привязывал