- PVSM.RU - https://www.pvsm.ru -
Группировка киберпреступников RTM похищает деньги у банковских клиентов с 2015 г. Большинство ее жертв — российские компании. Вредоносное ПО, которое используют злоумышленники, в ИБ-сообществе так же принято называть RTM.
Об этой программе написано довольно много технических отчетов, которые подробно [1] описывают [2] общий механизм работы ВПО. В этой статье мы сосредоточимся на методах получения адресов управляющих (C&C) серверов RTM. В каждой итерации программы злоумышленники изобретательно подходят к этой задаче: они распространяют адрес через блоги, используют систему альтернативных DNS-серверов и сеть Tor. На днях же мы обнаружили, что RTM стала скрывать IP в транзакциях на биткойн-кошелек.
По своей сути, RTM — это банковский троян. Основная задача программы — позволить злоумышленникам манипулировать платежными поручениями компании-жертвы, чтобы незаметно перевести ее средства на счет киберпреступников.
Как правило, RTM доставляется на компьютер жертвы через почтовые рассылки, реже — через взломанные сайты (например, новостные издания) или фальшивые ресурсы для бухгалтеров. К письмам преступники прикрепляют запакованный исполняемый файл. В качестве средств упаковки злоумышленники используют как собственные разработки, так и самораспаковывающиеся архивы.

Примеры исполняемых файлов с расширением .exe, распространяемых группировкой RTM
Примеры файлов на рисунке расположены в порядке распространения. Большую часть времени исполняемые файлы RTM были запакованы кастомным пакером и маскировались под PDF-документ. В начале 2019 года стали появляться первые образцы, которые представляют собой самораспаковывающийся RAR-архив и маскируются под файл в формате DOCX. В настоящее время RTM распространяется в виде самораспаковывающегося CAB-архива.
[3]
Бинарное представление файла «Оплата 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/ [4]):
[5]
Содержимое RSS-ленты. В поле description расположены зашифрованные адреса управляющих серверов
[6]
Расшифрованные строки с первоначальным адресом управляющего сервера и адресом RSS-ленты
В марте 2016 года RTM стала использовать в качестве адресов управляющих серверов домены в зоне .bit. Они поддерживаются альтернативным DNS-регистратором Namecoin, основанным на технологии блокчейн. Система децентрализована, поэтому .bit-домены сложно заблокировать.
IP-адреса управляющих серверов на .bit RTM получала одним из двух способов:
[7]
Функция получения IP-адресов управляющих серверов
В функции получения IP-адресов управляющих серверов через API обозревателя блоков Namecoin происходит обработка содержимого, расположенного по адресу hxxps://namecoin.cyphrs[.]com/api/name_show/d/stat-counter-7 (на примере домена stat-counter-7[.]bit):
[8]
Функция получения IP-адресов управляющих серверов через API обозревателя блоков Namecoin
IP-адреса управляющего сервера получаются из тела ответа. Помимо запросов к hxxps://namecoin.cyphrs[.]com/api/name_show/d/ злоумышленники также использовали запросы к hxxps://namecha[.]in/name/d/, обрабатывая поле «Current value»:
[9]
Содержимое веб-страницы по URL-адресу hxxps://namecha[.]in/name/d/stat-counter-7
Если получить IP-адрес данным способом не удалось, злоумышленники резолвят доменное имя управляющего сервера функцией DnsQuery_A с помощью специальных DNS-серверов (взятых, например, отсюда [10]).
Использование функции DnsQuery_A в программном коде библиотеки core.dll выглядит так:
[11]
Функция получения IP-адресов управляющих серверов через разрешение доменного имени с помощью специальных DNS-серверов
Функция DnsQuery_A имеет следующий прототип:
[12]
Прототип функции DnsQuery_A, объявленной в заголовочном файле WinDNS.h
4-м аргументом в функцию DnsQuery_A передается адрес структуры _IP4_ARRAY на стеке. По нему содержится массив IP-адресов специальных DNS-серверов:
[13]
Структура _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.
15 февраля 2019 года мы впервые обнаружили образцы RTM, управляющий сервер которых расположен в сети Tor (hxxp://[.]onion/index[.]php).
[14]
Адрес управляющего сервера в сети Tor среди расшифрованных строк
[15]
Участок дизассемблированного кода, в котором происходит разбор URL-адреса управляющего сервера
Такие сэмплы рассылались до 9 апреля 2019 года, после чего RTM снова перешла на использование доменной зоны .bit.
10 июня 2019 года мы обнаружили образец RTM, получающий IP-адреса C&C-серверов из транзакций на определенный криптокошелек. Каждый IP-адрес скрывается в количестве перечисленных биткойнов за две транзакции.
Для получения IP-адресов C&C ВПО осуществляет запрос по адресу hxxps://chain[.]so/api/v2/get_tx_received/BTC/. В ответе содержится набор транзакций на счет криптокошелька . Пример изображен на скриншоте:
Рассмотрим участок кода, в котором происходит получение IP-адресов управляющего сервера:
В функции FindValue происходит поиск дробной части от суммы перевода. Поиск осуществляется с конца буфера и при каждом следующем вызове функции обрабатываются данные, начиная с текущего индекса. То есть при последовательных вызовах функции FindValue будут получены значения 8483, 40030, 14728 и так далее. Программа генерирует два IP-адреса: каждый адрес скрыт в двух идущих подряд переводах.
[18]
Дизассемблированный код получения 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 одной стороны, это облегчает жизнь злоумышленникам и может ввести в заблуждение аналитиков. С другой — позволяет специалистам предугадывать адреса управляющих серверов до осуществления вредоносных рассылок.
Автор: BiZone_team
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/321363
Ссылки в тексте:
[1] подробно: https://habr.com/ru/company/eset/blog/322364/
[2] описывают: https://habr.com/ru/company/group-ib/blog/432256/
[3] Image: https://habrastorage.org/webt/_j/74/zf/_j74zfs8mil30ygys31kqe6s2de.png
[4] https://f72bba81c921.livejournal.com/data/rss/: https://f72bba81c921.livejournal.com/data/rss/
[5] Image: https://habrastorage.org/webt/5u/m4/qo/5um4qobgrnukxcybwv8rw6qext0.png
[6] Image: https://habrastorage.org/webt/ct/j4/gf/ctj4gfv0ynnkkehxte5aoklhzbc.png
[7] Image: https://habrastorage.org/webt/ep/-s/dn/ep-sdnvmvh_kksp1y66mbzow6xm.png
[8] Image: https://habrastorage.org/webt/ru/4n/h6/ru4nh6y9tlovyvei-pkorkb1tgy.png
[9] Image: https://habrastorage.org/webt/mx/8v/z4/mx8vz48xfaxt7bcswxfenlwjyzg.png
[10] отсюда: https://www.opennic.org/
[11] Image: https://habrastorage.org/webt/wj/6-/ai/wj6-aiarsn-jcqpa8sxjwgosjlk.png
[12] Image: https://habrastorage.org/webt/iu/rr/9d/iurr9d6pt5cmdm0oz3vajjkfzzi.png
[13] Image: https://habrastorage.org/webt/jj/3q/ho/jj3qhorwwvf9bip77fm431ro4xg.png
[14] Image: https://habrastorage.org/webt/e1/gy/cf/e1gycfr_b8cqznqlntjdr9n6myi.png
[15] Image: https://habrastorage.org/webt/jz/-z/ku/jz-zkujibvahyxxex-uhh7yc_4s.png
[16] Image: https://habrastorage.org/webt/6w/x3/tf/6wx3tf7-wsljmvslwhb5hhrmpde.png
[17] Image: https://habrastorage.org/webt/nu/bt/p6/nubtp6f35wmgwqdqcvrp52_qhn8.png
[18] Image: https://habrastorage.org/webt/kx/qd/vb/kxqdvbttrzbvjaoljqjttn7dg1s.png
[19] Источник: https://habr.com/ru/post/456804/?utm_campaign=456804&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.