Хабрахабр

Follow the money: как группировка RTM стала прятать адреса C&C-серверов в криптокошельке

Большинство ее жертв — российские компании. Группировка киберпреступников RTM похищает деньги у банковских клиентов с 2015 г. Вредоносное ПО, которое используют злоумышленники, в ИБ-сообществе так же принято называть RTM.

В этой статье мы сосредоточимся на методах получения адресов управляющих (C&C) серверов RTM. Об этой программе написано довольно много технических отчетов, которые подробно описывают общий механизм работы ВПО. На днях же мы обнаружили, что RTM стала скрывать IP в транзакциях на биткойн-кошелек. В каждой итерации программы злоумышленники изобретательно подходят к этой задаче: они распространяют адрес через блоги, используют систему альтернативных DNS-серверов и сеть Tor.

Что такое RTM

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

К письмам преступники прикрепляют запакованный исполняемый файл. Как правило, RTM доставляется на компьютер жертвы через почтовые рассылки, реже — через взломанные сайты (например, новостные издания) или фальшивые ресурсы для бухгалтеров. В качестве средств упаковки злоумышленники используют как собственные разработки, так и самораспаковывающиеся архивы.


Примеры исполняемых файлов с расширением .exe, распространяемых группировкой RTM

Большую часть времени исполняемые файлы RTM были запакованы кастомным пакером и маскировались под PDF-документ. Примеры файлов на рисунке расположены в порядке распространения. В настоящее время RTM распространяется в виде самораспаковывающегося CAB-архива. В начале 2019 года стали появляться первые образцы, которые представляют собой самораспаковывающийся RAR-архив и маскируются под файл в формате DOCX.

06.exe»
Бинарное представление файла «Оплата 11.

Как правило, внутреннее имя данной библиотеки — core.dll. После запуска исполняемый файл копирует запакованную DLL-библиотеку на диск и запускает ее с помощью утилиты rundll32.exe. Ее последующее функционирование происходит в адресном пространстве процесса rundll32.exe.

Именно core.dll осуществляет первичное взаимодействие с управляющим сервером RTM, через который программа получает от злоумышленников команды и дополнительные модули.

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

Способы нахождения управляющего сервера

Злоумышленники создавали в LiveJournal блог, содержащий адреса C&C в зашифрованном виде. В первых версиях RTM для обновления адресов управляющих серверов использовалась RSS-лента. Для получения новых адресов управляющих серверов отправлялся запрос по адресу hxxps://.livejournal[.]com/data/rss/ и обрабатывался ответ, имеющий следующий формат (на примере https://f72bba81c921.livejournal.com/data/rss/):

В поле description расположены зашифрованные адреса управляющих серверов
Содержимое RSS-ленты.


Расшифрованные строки с первоначальным адресом управляющего сервера и адресом RSS-ленты

.bit

Они поддерживаются альтернативным DNS-регистратором Namecoin, основанным на технологии блокчейн. В марте 2016 года RTM стала использовать в качестве адресов управляющих серверов домены в зоне .bit. Система децентрализована, поэтому .bit-домены сложно заблокировать.

IP-адреса управляющих серверов на .bit RTM получала одним из двух способов:

  • через API обозревателя блоков Namecoin;
  • через разрешение доменного имени с помощью специальных DNS-серверов.


Функция получения IP-адресов управляющих серверов

В функции получения IP-адресов управляющих серверов через API обозревателя блоков Namecoin происходит обработка содержимого, расположенного по адресу hxxps://namecoin.cyphrs[.]com/api/name_show/d/stat-counter-7 (на примере домена stat-counter-7[.]bit):


Функция получения IP-адресов управляющих серверов через API обозревателя блоков Namecoin

Помимо запросов к hxxps://namecoin.cyphrs[.]com/api/name_show/d/ злоумышленники также использовали запросы к hxxps://namecha[.]in/name/d/, обрабатывая поле «Current value»: IP-адреса управляющего сервера получаются из тела ответа.


Содержимое веб-страницы по URL-адресу hxxps://namecha[.]in/name/d/stat-counter-7

Если получить IP-адрес данным способом не удалось, злоумышленники резолвят доменное имя управляющего сервера функцией DnsQuery_A с помощью специальных DNS-серверов (взятых, например, отсюда).

Использование функции DnsQuery_A в программном коде библиотеки core.dll выглядит так:


Функция получения IP-адресов управляющих серверов через разрешение доменного имени с помощью специальных DNS-серверов

Функция DnsQuery_A имеет следующий прототип:


Прототип функции DnsQuery_A, объявленной в заголовочном файле WinDNS.h

По нему содержится массив IP-адресов специальных DNS-серверов: 4-м аргументом в функцию DnsQuery_A передается адрес структуры _IP4_ARRAY на стеке.


Структура _IP4_ARRAY на стеке

A. В случае успешного выполнения функции DnsQuery_A IP-адрес управляющего сервера можно получить, прочитав следующее значение: pDnsRecord –> Data. IpAddress.

165[.]200. Из декомпилированного кода одного из экземпляров видно, что для разрешения доменного имени C&C используется специальный DNS-сервер 188. А в случае неудачи используется список из трех DNS-серверов: 91. 156. 37, 188. 217[.]137. 156, 217. 165[.]200. 54. 12[.]210.

Tor

15 февраля 2019 года мы впервые обнаружили образцы RTM, управляющий сервер которых расположен в сети Tor (hxxp://[.]onion/index[.]php).


Адрес управляющего сервера в сети Tor среди расшифрованных строк


Участок дизассемблированного кода, в котором происходит разбор URL-адреса управляющего сервера

Такие сэмплы рассылались до 9 апреля 2019 года, после чего RTM снова перешла на использование доменной зоны .bit.

Биткойн

Каждый IP-адрес скрывается в количестве перечисленных биткойнов за две транзакции. 10 июня 2019 года мы обнаружили образец RTM, получающий IP-адреса C&C-серверов из транзакций на определенный криптокошелек.

В ответе содержится набор транзакций на счет криптокошелька . Для получения IP-адресов C&C ВПО осуществляет запрос по адресу hxxps://chain[.]so/api/v2/get_tx_received/BTC/. Пример изображен на скриншоте:

Рассмотрим участок кода, в котором происходит получение IP-адресов управляющего сервера:

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


Дизассемблированный код получения IP-адреса из сумм переводов на криптокошелек

Данный код делает следующее:

ip_address = str(value_1 & 0xff) + "." + str(value_1 >> 0x8) + "." + str(value_0 & 0xff) + "." + str(value_0 >> 0x8)

00008483 BTC, а затем 0. То есть, перечислив 0. 156[.]35. 00040030 BTC, злоумышленники скрыли для своей программы IP-адрес 94. Аналогичным образом из предыдущих двух транзакций RTM получает второй IP-адрес управляющего сервера. 33.

В таком виде вредоносное ПО RTM рассылается по сегодняшний день.

Заключение

Можно заметить, что при организации передачи адреса C&C-сервера RTM любит использовать подходы, позволяющие динамически менять IP без модификации исходного кода ВПО.

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

Теги
Показать больше

Похожие статьи

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

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

Кнопка «Наверх»
Закрыть