Троянец-банкер Arnold: TwoBee или не TwoBee

В начале 2017 года нами была обнаружена финансовая кампания TwoBee. Внимание ее организаторов было обращено, в первую очередь, на малый и средний бизнес, использующий обмен файлами между учетной системой и ДБО для обработки платежей. Характерной особенностью TwoBee была подмена реквизитов получателя денежного перевода в файле 1c_to_kl.txt, создаваемом бухгалтерской системой. В результате деньги уходили преступникам. Однако это была не первая подобная кампания и, как показала практика, не последняя.

Buhtrap и Fibbit

Подмена реквизитов активно использовалась Buhtrap, также как и в троянце Fibbit. Несмотря на то, что Buhtrap получил широкую известность в 2014 году, первые версии Fibbit были замечены тремя годами ранее. А в июне 2016 нам удалось найти один из модулей троянца (он назывался taz, tazsb или tazjp), который действовал по схеме, похожей на TwoBee. В августе 2016 мы получили последний конфигурационный файл для одного из его модулей:

{
    “filters”: {
        “Получатель”:”УФК|ИФНС|казначейства|Федерального”
    },
    “corps”: [
        {
            “minSum”:  250000,
            “replacement”: {
                “ПолучательБИК”      : “041117601”,
                “ПолучательРасчСчет” : “40702810604000002148”,
                “ПолучательСчет”     : “40702810604000002148”,
                “ПолучательИНН”      : “2901277227”,
                “ПолучательКПП”      : “290101001”
            }
        }
    ]}

Те же и RTM

В 2015 году параллельно с Fibbit использовался троянец Trojan-Banker.Win32.RTM. Один из его модулей — 1c_2_kl, — также использующийся для слежения за файлом 1c_to_kl.txt, привлек наше внимание: он отправлял сформированную “платежку” на сервер, но при этом ничего с ней не делал. Предположительно, на тот момент модуль находился в разработке. В 2017 он получил полноценное обновление (1c_2_kl_r), которое сами авторы, судя по всему, называют Arnold. Продукты “Лаборатории Касперского” детектируют его как Trojan-Banker.Win32.Ronald.

Путь к PDB-файлу проекта оставленный компилятором

Arnold и его “друзья”

Хотя Arnold должен был просто заменить модуль подмены “платежек”, в итоге из него получился самостоятельно функционирующий бот, состоящий из загрузчика и нескольких небольших библиотек. Загрузчик инжектируется в процесс explorer.exe, с помощью алгоритма AES и ключа 01234567890123456789012345678901 расшифровывает библиотеки, после чего вызывает в них экспортируемую функцию init.

Библиотеки Arnold:

  • installPlugin.dll

    Не несет полезной нагрузки, выводит сообщение “Install!” с помощью API функции OutputDebugStringA.

  • hwid.dll

    Предоставляет API для получения уникального идентификатора (Hardware ID) инфицированной машины. HWID вычисляется на основе используемого процессора, версии операционной системы и имени компьютера.

  • jsonParser.dll

    Предоставляет API для работы с json-файлами.

  • processLinker.dll

    Предоставляет API для инжектирования в заранее заданные процессы, такие как chrome.exe, firefox.exe, javaw.exe, jp2launcher.exe, cbmain.ex, iexplore.exe, _cbank.exe, clbank.exe.

  • simpleNetwork.dll

    Предоставляет API для общения с командным центром. В отличии от банкера TwoBee, активно использовавшего протокол UDP для общения с C&C, Arnold работает по HTTP. Как только бот устанавливает соединение с командным центром он запрашивает конфигурационный файл – набор правил по которым будет происходить замена в “платежке”. Ответ сервера зашифрован алгоритмом AES, но ключ, в отличии от загрузчика, не зашит, а вычисляется как sha256 от имени сервера (sha256(‘arnoldfreeteacher.com’ == ‘\xb0\x3f\x99\x53\xa3\x92\xc1\x3a\x70\x76\xf8\xc9\xaa\xce\x2c\xaf\x5e\x7d\xb5\x2c\xc0\x18\x61\x55\x56\x61\x54\x86\x49\x68\xf5\xa8”). В последних 4 байтах расшифрованного ответа хранится размер данных без учета выравнивания.

  • Пример получения зашифрованного конфигурационного файла от командного центра

    Расшифрованный конфигурационный файл напоминает то, что мы уже видели в Fibbit:

    [{
        “minSum”: 10000,
        “maxSum”: 100000,
        “fields”: {
            “ПолучательИНН”         : “0277913917”,
            “ПолучательСчет”        : “40702810806000018613”,
            “ПолучательРасчСчет”    : “40702810806000018613”,
            “ПолучательБИК”         : “048073601”,
            “ПолучательКПП”         : “027701001”,
            “ПолучательКорсчет”     : “30101810300000000601”
        }
      },
      {
        “minSum”: 100001,
        “maxSum”: 300000,
        “fields”: {
            “ПолучательИНН”         : “6658495579”,
            “ПолучательСчет”        : “40702810738410000202”,
            “ПолучательРасчСчет”    : “40702810738410000202”,
            “ПолучательБИК”         : “046015207”,
            “ПолучательКПП”         : “665801001”,
            “ПолучательКорсчет”     : “30101810100000000964”
        }
    },
      {
        “minSum”: 300001,
        “maxSum”: 2000000,
        “fields”: {
            “ПолучательИНН”         : “9723027498”,
            “ПолучательСчет”        : “40702810026220000702”,
            “ПолучательРасчСчет”    : “40702810026220000702”,
            “ПолучательБИК”         : “046015207”,
            “ПолучательКПП”         : “772301001”,
            “ПолучательКорсчет”     : “30101810500000000207”
        }
    }] 

  • replacement.dll

    Основная библиотека бота, именно она отвечает за работу с файлом 1c_to_kl.txt и вносит в него изменения. Если TwoBee просто искал на компьютере файлы с определенным именем, то Arnold получает путь к нужному файлу в результате перехвата API функций CreateFileA и CreateFileW в процессах, перечисленных в processLinker.dll. Причем для Arnold имя файла не имеет значения, главное — наличие подстроки “.txt” в полном пути к файлу. Если содержимое открытого файла удовлетворяет необходимым условиям, троянец создаст его копию в директории %TEMP%, заменит реквизиты и “вернет” обратно.

  • Фрагмент содержимого библиотеки replacement.dll со строками и адресом командного центра

  • CommandCenter.dll

    Недавно появившаяся в боте DLL. Предположительно, должна запрашивать и обрабатывать команды от C&C, но на текущий момент каких-либо команд обнаружить не удалось – ответ от сервера приходит “пустой” (четыре нулевых байта, которые бот просто игнорирует).

Заключение

Несмотря на то, что Arnold использует те же методы, что и TwoBee, новый бот имеет больше общего с уже известным Fibbit. Мы полагаем, что оба зловреда находятся в руках одной киберпреступной группы. В ближайшее время мы ожидаем увидеть активное развитие Arnold, в том числе и заимствование троянцем части функций модульного троянца. Fibbit. В качестве временного решения для защиты от текущей версии зловреда пользователи учетных систем могут использовать имя файла экспорта платежных поручений, в имени или расширении которого отсутствует сочетание “.txt”.

MD5

Arnold (Trojan-Banker.Win32.Ronald) 190a92d1c2d24814a3e031f7e3ee6222
28aeaa7ec1e940f744f5640f7ab99c74
3cdf8d64cedf07b881771fc8d8b3cde9
464cc483281cc88de0f7864e731fbbb6
537e7cba4c5071479762dea97f0554a8
7dfc2d47c7da823afd67173776b1558c
8040d081399d3017da7984a08466d9bd
9c94a08b34438a63bf03779be4df3067
aabea04995971696be19701915bfb392
b0dbccfb2e1e7e99553ff26f10cf0968
b9691e245bfcdccac2b8253f5ed0fc59
ba8b452531f6e3fa67ce0af9bba87fa6
c16d429fc384f8f1e610c0f6ce31f9b6
cb3004999e1dfa48a20b5e80ae824311
d7e963d3c8041c1a0e6e12d23c8a1d14
de140d16e7788774d72894041522fcbb
e796689efa9cab2b72935d21d1b9a960
e7ac1c6a79d942d2dc35b41e2e09d20d
fe812123cfaf96a491cd26a8f3253c38
Fibbit (Trojan-Banker.Win32.Fibbit) 2e0b35dadce64de84bec6986c289699c
33ef6eab370fc4a532b90b68b940aaf3
430c14131d5ad55a65f7b005d1403650
77b734042e37676913f4487450d64fd9
ccdba9a06d5a40f3898cc9d2cd5686ec
dcd1c9135c712f7b28f7f033024afa9d
1c_2_kl (RTM / Trojan-Banker.Win32.RTM) 463f2edf5affff6a13a8ddc7484e8f21
5991d0a14adfa785ba749d1ce63e8887
6c4a1fe06265c1b05393d7f4ed068612
7b3eb2a36b15af19fbc7eadc092d758c
d941b3cee65ab68dbb3c1c60147abd23
Fibbit taz module (Trojan-Banker.Win32.Fibbit) 04a79a975e890f5a76672e84e664edce
201d3c5b8c4c0577e1d8193e9d31c7bd
91b1ad6d1df4f3dc8f3c7f9e04482f7f
f334797ef5837de37f8f10d1ce813483
RTM (Trojan-Banker.Win32.RTM) 024c48fb090fcd4ead0ed0e84b6d9143
35771476e041e22b0e66b4ef54eb6265
37bdae04d9501059f6c72c3254e7e4b4
38b6d4bfda7d29bafe74dc3e055e402c
89fb6c0375b8bf812db03fd8ba7c8471
909e3397d45419566e4ac5a423c1ea4a
9e960489db69804b93b469779f0d79e1
a50a2a08c274ad9266694732c338b674
b812d98fd768becab9bed36cc180bdc9
e1ec6ea02073624c0d4a37f881a30420
eeedc097632dcec0a5d814142db82535
TwoBee (Trojan-Banker.Win32.TwoBee) 02f34887b6e446f4a20a89f0bb2a17c4
0e85bd9a4691dd30736935ae3e85e82e
271969eecca1fa5357932a119a3c7c47
43f94d0f1f061fe0814ed752049389b1
60c72b92689609b195b0957bf1ed28ab
645645595da5b4d2aeb63cfa44345131
64feb792c6045d9a4fdb74fa5cba114e
eedb09ecd669d1363d98a2bea324619c
fb1ce7463549995b54f5aa7c7e299cec

 

С&С

hxxp://arnoldfreeteacher.com/data.php
hxxp://xjdhdhsoiuugvzebet.pw/data.php
hxxp://ofcwamcnqclanricwcgl.pw/data.php
hxxp://wemihqipfgtckeilix.pw/data.php
hxxp://moothhits.top/data.php
hxxp://zsulyiyrfzmwmhe.pw/data.php

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

Leave a Reply

Your email address will not be published. Required fields are marked *