Во время рутинного поиска угроз мы обнаружили множество скачиваний вредоносного установщика браузера Tor, которые ранее не исследовали и не объединяли в кластер. По данным нашей телеметрии, все жертвы, скачавшие вредоносное ПО, находились в Китае. Так как браузер Tor запрещен в Китае, пользователи из этой страны часто используют сторонние веб-сайты для загрузки установочных файлов. В нашем случае ссылка на вредоносный установочный пакет Tor была опубликована на популярном китайскоязычном канале YouTube, посвященном анонимности в интернете. У этого канала более 180 000 подписчиков, а количество просмотров видео с вредоносной ссылкой превышает 64 000. Ролик был опубликован в январе 2022 года, а первые жертвы кампании начали отображаться в телеметрии в марте 2022 года.
Вредоносная версия Tor обеспечивает меньшую приватность, чем оригинальная. В отличие от легитимного, зараженный браузер сохраняет историю посещения веб-сайтов и данные, вводимые в формы. Но еще важнее то, что одна из библиотек в пакете заражена шпионским ПО, которое собирает персональные данные пользователей и отправляет их на командный сервер. Кроме того, шпионская программа предоставляет злоумышленникам контроль над зараженным компьютером, позволяя выполнять shell-команды.
Мы решили назвать эту кампанию OnionPoison в честь технологии луковой маршрутизации (onion routing), которая используется в браузере Tor.
Скриншот видео со ссылкой на установщик вредоносного браузера Tor в описании
Первичное заражение
Вероятно, жертвы кампании OnionPoison нашли видео с вредоносной ссылкой через поиск в YouTube. Оно появляется в первой строке поисковой выдачи по запросу «Tor浏览器» («браузер Tor» на китайском языке). Описание этого видео содержит две ссылки: одна для перехода на официальный сайт Tor, а другая — для скачивания вредоносного установочного пакета, размещенного в китайском облачном файлообменнике. Так как оригинальный Tor запрещен в Китае, пользователям, просмотревшим видео, приходится переходить в облачный сервис, чтобы скачать браузер.
Страница загрузки вредоносного установщика браузера Tor
Вредоносный установщик
MD5 | 9AABCABABD5B677813589F7154302EE0 |
SHA1 | 7E8B9D2BD32B3AEA0E298B509D3357D4155AF9BC |
SHA256 | 877FE96CDFA6F742E538396B9A4EDB76DD269984BFB41CAD5D545E72CE28FFDE |
Время компоновки | 25.09.2019, 21:56:47 |
Тип файла | PE32+ executable (GUI) x86-64, for MS Windows |
Компилятор | Visual Studio 2003 — 7.10 SDK |
Размер файла | 74 МБ |
Имя файла | torbrowser-install-win64-11.0.3_zh-cn.exe |
Пользовательский интерфейс вредоносного установщика Tor идентичен оригинальному. Однако вредоносный двойник не имеет цифровой подписи, и некоторые файлы в нем отличаются от тех, что входят в оригинальный установщик:
Имя файла | Комментарий |
freebl3.dll | Файл freebl3.dll присутствует и в оригинальном установочном пакете браузера Tor, но во вредоносном ПО его содержимое полностью отличается от оригинального. |
freebl.dll | Файл с таким именем можно найти только во вредоносной версии. Это копия файла freebl3.dll из оригинального установочного пакета. |
firefox.exe | Исполняемый файл в зараженном установочном пакете отличается от оригинального только одним байтом: зараженный файл содержит строку https://aus1.torproject.org/torbrowser/update—3/%CHANNEL%/%BUILD, а в оригинальном ему соответствует строка https://aus1.torproject.org/torbrowser/update_3/%CHANNEL%/%BUILD. Замена нижнего подчеркивания на дефис — способ избежать обновления установленного вредоносного Tor. Это нужно, по всей видимости, чтобы не допустить перезаписи модифицированной библиотеки freebl3.dll. |
Интересно также то, что вредоносный браузер Tor обеспечивает меньше приватности, чем оригинальный. Изменив конфигурационный файл Tor \defaults\preferences\000-tor-browser.js, хранящийся в каталоге browser\omni.ja, злоумышленники настроили его:
- сохранять историю браузера;
- поддерживать кэширование страниц;
- автоматически заполнять формы и запоминать данные для входа;
- сохранять дополнительные данные сеансов для веб-сайтов.
Фрагменты модифицированного (слева) и оригинального (справа) файла 000-tor-browser.js
Библиотека freebl3.dll
MD5 | 87E33DF76D70103A660783C02AAC44AC |
SHA1 | 04C5A6543E61328B235339358D2E48C0002F0E46 |
SHA256 | 3BA945FD2C123FEC74EFDEA042DDAB4EB697677C600F83C87E07F895FB1B55E2 |
Время компоновки | 21.12.2021, 9:44:08 |
Тип файла | PE32+ executable (DLL) (GUI) x86-64, for MS Windows |
Компилятор | Visual Studio 2010 — 10.10 SP1 |
Размер файла | 114 КБ |
Имя файла | freebl3.dll |
Запущенный браузер Tor (как оригинальный, так и зараженный) подгружает библиотеку freebl3.dll в адресное пространство процесса firefox.exe. В зараженном браузере она заменена на вредоносную. Чтобы обеспечить правильную работу Tor, эта вредоносная библиотека перенаправляет все свои экспортируемые функции библиотеке freebl.dll (копия оригинальной библиотеки freebl3.dll).
Перенаправление экспортируемых функций вредоносной библиотеки freebl3.dll
После запуска вредоносная библиотека создает мьютекс Global\TBrowser, который не дает двум экземплярам зловреда запускаться одновременно. Затем она псевдослучайным образом выбирает один из приведенных ниже URL-адресов командных серверов и отправляет на него POST-запрос:
- https://torbrowser.io/metrics/geoip
- https://tor-browser.io/metrics/geoip
POST-запрос на командный сервер содержит следующие заголовки:
Имя заголовка | Данные заголовка |
Date | Текущие дата и время в формате GMT (например, Mon, 10 Aug 2022 11:21:55 GMT) |
User-Agent | Значение User-Agent по умолчанию, полученное с помощью API-функции ObtainUserAgentString. |
Host | Адрес командного сервера |
Authorization | Содержит подпись HMAC-SHA1 данных запроса. Например, в заголовке Authorization: SIGN QbqCdtmBBk3uH2Zj:gNe34o6RkQ/Hn82bRPSk7q1DO8w= значение QbqCdtmBBk3uH2Zj — идентификатор ключа HMAC, а gNe34o6RkQ/Hn82bRPSk7q1DO8w= — хеш HMAC-SHA1, закодированный по методу Base64. Хеш формируется из строки, содержащей следующие данные:
|
В ответе на POST-запрос командный сервер возвращает блок данных с зашифрованной полезной нагрузкой второго этапа. Полезная нагрузка расшифровывается с помощью двух XOR-ключей: первый выводится из длины полезной нагрузки, а второй задан сразу — D65CB35A-58CB-4456-A7B7-E1B218770A9E. Далее вредоносная DLL-библиотека распаковывает расшифрованный блок данных с помощью функции RtlDecompressBuffer и получает еще один DLL-файл. Затем зловред рефлексивно загружает этот DLL-файл и вызывает функцию точки входа.
Получение DLL-файла с командного сервера
Во время исследования мы попытались связаться с командным сервером и получить DLL-файл второго этапа. Однако сервер не выдал файл в ответ на наш первый POST-запрос. Путем проб и ошибок мы выяснили, что командный сервер проверяет IP-адрес зараженного компьютера и отправляет полезную нагрузку только жертвам, находящимся в Китае. Отправив POST-запрос с компьютера с китайским IP-адресом, мы успешно загрузили DLL второго этапа. Поэтому мы можем утверждать, что кампания OnionPoison направлена на пользователей из Китая. Следует также отметить, что проверка IP-адреса затрудняет получение полезной нагрузки второго этапа с помощью автоматизированных песочниц для анализа вредоносного ПО.
DLL второго этапа
MD5 | 34C43C9B23B40D9D70B4530DE781F88A |
SHA1 | 3EBF1E989791E3743CEAC1C7B397242DD717AEA9 |
SHA256 | E5CC91FBE01005EF058B1C1D727CFBFB584B012390106BB9C941BC9B1AA96FF7 |
Время компоновки | 16.02.2022, 9:56:56 |
Тип файла | PE32+ executable (DLL) (GUI) x86-64, for MS Windows |
Компилятор | Visual Studio 2010 — 10.10 SP1 |
Размер файла | 788 КБ |
Имя файла | cloud.dll |
После загрузки DLL-библиотека второго этапа собирает следующую информацию о системе:
- GUID дискового тома операционной системы;
- GUID компьютера;
- имя компьютера;
- региональные настройки компьютера;
- имя текущего пользователя;
- MAC-адреса сетевых карт.
После первого запуска на зараженной машине DLL генерирует псевдослучайный GUID жертвы и сохраняет его в параметре SoftGuid раздела реестра HKCU\SOFTWARE\Mozilla\Firefox.
После сбора информации о системе DLL начинает отправлять сигнальные сообщения командному серверу каждые две минуты. Тело каждого сигнального сообщения содержит JSON-объект с собранной информацией. Сигнальные сообщения отправляются в виде POST-запросов по адресу https://torbrowser.io/metrics/heartbeat либо https://tor-browser.io/metrics/heartbeat. Тело запроса DLL зашифровывает с помощью псевдослучайного ключа по алгоритму AES-128 (ECB), который затем зашифровывает с помощью открытого ключа RSA, указанного в конфигурации.
В ответ на сигнальные сообщения командный сервер может запросить следующую дополнительную информацию:
- установленное программное обеспечение;
- запущенные процессы;
- история браузера Tor;
- история браузеров Google Chrome и Edge;
- идентификаторы учетных записей WeChat и QQ, принадлежащих жертве;
- SSID и MAC-адреса сетей Wi-Fi, к которым подключены жертвы.
Собранная дополнительная информация отправляется на командный сервер вместе со следующим сигнальным сообщением.
Помимо этого, командный сервер может запросить выполнение произвольной shell-команды на зараженном компьютере. Для этого DLL создает новый процесс cmd.exe, передавая в него команду как аргумент. Вывод процесса интерпретатора командной строки перенаправляется в канал, который позже используется для получения результатов выполнения команды. Результаты выполненной shell-команды зашифровываются (с использованием комбинации симметричного и асимметричного шифров) и отправляются в POST-запросе на командный сервер по одному из URL-адресов: https://torbrowser.io/metrics/geoip либо https://tor-browser.io/metrics/geoip.
Любопытно отметить, что веб-сайты командных серверов визуально идентичны веб-сайту настоящего браузера Tor. Ссылки на скачивание браузера ведут на легитимный сайт Tor.
Скриншот страницы torbrowser[.]io
Жертвы
Согласно нашей телеметрии, все обнаруженные цели OnionPoison находятся на территории Китая. Этого следовало ожидать — выше мы уже говорили, что командный сервер проверяет, находится ли внешний IP-адрес компьютера жертвы в Китае.
Выводы
В этой кампании злоумышленники предлагают жертвам доступ к средствам анонимизации в качестве приманки. Размещенная на популярном YouTube-канале ссылка на загрузчик вредоносной версии браузера Tor вызывала доверие у жертв. Интересно, что, в отличие от большинства стилеров, модули OnionPoison не занимаются автоматическим сбором паролей, cookie-файлов или данных кошельков пользователей. Вместо этого они похищают данные, которые позволяют узнать многое о личности жертвы: историю браузера, идентификаторы учетных записей в социальных сетях и данные сетей Wi-Fi. Злоумышленники могут искать в собранной истории браузеров признаки незаконной деятельности, связываться с жертвами через социальные сети и угрожать сообщить властям. В прошлом мы уже наблюдали, как правоохранительные органы, например ФБР США, использовали уязвимости нулевого дня, чтобы раскрывать личности пользователей Tor, посещающих в теневом интернете веб-сайты, связанные с педофилией. Еще один похожий случай был связан с распространением вредоносной программы OnionDuke через инъекции в незашифрованные HTTP-соединения на выходных узлах TOR.
Какие бы мотивы ни стояли за атаками, лучший способ избежать заражения имплантами OnionPoison — загружать программное обеспечение только с официальных веб-сайтов. Если использовать такие веб-сайты невозможно, то следует проверять цифровые подписи установочных пакетов, загруженных из сторонних источников. Легитимный установщик должен иметь действительную подпись, а название компании в сертификате должно совпадать с названием разработчика программы.
OnionPoison: зараженный установщик Tor распространяется через популярный канал YouTube