Исследование

Троянец-банкер 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’ == ‘xb0x3fx99x53xa3x92xc1x3ax70x76xf8xc9xaaxcex2cxafx5ex7dxb5x2cxc0x18x61x55x56x61x54x86x49x68xf5xa8»). В последних 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

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

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

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике