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

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

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


Что такое RTM

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

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

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

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

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

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

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

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


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

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

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

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


.bit

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

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


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

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

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

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

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

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

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

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

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

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

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

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

jj3qhorwwvf9bip77fm431ro4xg.png
Структура _IP4_ARRAY на стеке

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

Из декомпилированного кода одного из экземпляров видно, что для разрешения доменного имени C&C используется специальный DNS-сервер 188.165[.]200.156. А в случае неудачи используется список из трех DNS-серверов: 91.217[.]137.37, 188.165[.]200.156, 217.12[.]210.54.


Tor

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

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

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

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

Биткойн

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

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

6wx3tf7-wsljmvslwhb5hhrmpde.png

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

nubtp6f35wmgwqdqcvrp52_qhn8.png

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

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

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

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

То есть, перечислив 0.00008483 BTC, а затем 0.00040030 BTC, злоумышленники скрыли для своей программы IP-адрес 94.156[.]35.33. Аналогичным образом из предыдущих двух транзакций RTM получает второй IP-адрес управляющего сервера.

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


Заключение

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

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

© Habrahabr.ru