Компания ESET сотрудничает с партнерами Microsoft, Lumen’s Black Lotus Labs, NTT Ltd. и др. в попытке пресечь работу ботнета Trickbot. Компания ESET внесла свой вклад в проект, предоставив технический анализ, статистическую информацию, а также известные доменные имена и IP-адреса командных серверов.
С конца 2016 года Trickbot заразил более миллиона вычислительных устройств по всему миру, и с самого начала мы отслеживаем его действия. Только в 2020 году наша автоматическая платформа проанализировала более 125 000 вредоносных образцов, загрузила и расшифровала более 40 000 файлов конфигурации, используемых различными модулями Trickbot, что дало нам отличное представление о разных командных серверах, используемых этим ботнетом.
Trickbot, ботнет с длинной историей
Trickbot доставляет неудобства пользователям Интернета уже на протяжении долгого времени. Первое обнаружение Trickbot было создано компанией ESET в конце 2016 года. В течение этих лет сообщения о взломах Trickbot поступают регулярно, что делает его одним из крупнейших и самых долгоживущих ботнетов. Как сообщалось в нашем Отчете об угрозах за первый квартал 2020 года, Trickbot является одним из наиболее распространенных семейств банковских вредоносных программ. Как видно на рис. 1, данные телеметрии ESET показывают, что эта вредоносная программа представляет угрозу для пользователей Интернета во всем мире.
Рис. 1. Обнаружение Trickbot во всем мире с октября 2019 года по октябрь 2020 года
На протяжении всего своего существования вредоносная программа Trickbot распространяется самыми разными способами. В последнее время мы часто наблюдаем цепочку установки Trickbot на системы, уже взломанные Emotet, еще одним крупным ботнетом. В прошлом вредоносная программа Trickbot использовалось операторами в основном в качестве банковского трояна, похищающего учетные данные с онлайн-банковских счетов и пытающегося выполнять мошеннические денежные переводы.
Модульная архитектура Trickbot позволяет ему выполнять широкий спектр вредоносных действий с использованием различных плагинов. Он умеет похищать все виды учетных данных с взломанного компьютера а, в последнее время, наблюдается в основном в роли механизма доставки для более разрушительных атак, таких как программы-вымогатели.
Один из старейших плагинов, разработанных для платформы, позволяет Trickbot использовать веб-инъекции – метод, позволяющий вредоносной программе динамически изменять то, что видит пользователь взломанной системы при посещении определенных веб-сайтов. Для работы этот плагин использует файлы конфигурации, загружаемые главным модулем. Они содержат информацию о том, какие веб-сайты следует изменить и каким образом. На рис. 2 показан отрывок из одного такого дешифрованного файла конфигурации, содержащего атакованные URL-адреса и URL-адреса вредоносных командных серверов, с которыми должен связаться бот после того, как жертва зайдет на атакованные URL-адреса.
Рис. 2. Отрывок из расшифрованного файла конфигурации dinj (отредактировано)
В ходе нашего мониторинга кампаний Trickbot мы собрали десятки тысяч различных файлов конфигурации, что позволило нам узнать, какие веб-сайты атаковывали операторы Trickbot. На рис. 3 показано, сколько веб-сайтов было извлечено из файлов конфигурации в 2020 году.
Рис. 3. Количество веб-сайтов, атакованных в 2020 году
Эти атакованные URL-адреса в основном принадлежат финансовым учреждениям. Начиная с марта количество целей, обнаруженных в этих файлах конфигурации, резко падает. Это совпадает с моментом, когда операторы Trickbot исключили модуль webinject из списка плагинов по умолчанию, автоматически загружаемых главным модулем – именно поэтому у нас нет данных за март; нам пришлось скорректировать наши процессы, чтобы обеспечить видимость атакованных URL-адресов. Это сокращение числа целей, вероятно, связано с тем, что банда Trickbot в этот период начала сосредотачивать свое внимание на другом средстве монетизации – программах-вымогателях.
В этих случаях взлом Trickbot сначала используется для разведки и бокового перемещения по сети организации, а затем для установки программы-вымогателя Ryuk на как можно большем количестве систем. Судя по собранным нами данным, операторы Trickbot перешли от попыток похитить деньги с банковских счетов к взлому всей организации с помощью Trickbot. Затем они используют его для выполнения программы Ryuk и требуют выкуп за разблокировку пораженных систем.
Мы также наблюдали новые проекты разработки вредоносных программ, предположительно исходящие от операторов Trickbot, что также может объяснить внезапную утрату у них интереса к использованию Trickbot в качестве банковского трояна. Одним из этих проектов является так называемый проект Anchor, платформа, в основном ориентированная не на вредоносные программы, а на шпионаж. Вероятно, они также участвуют в разработке вредоносной программы Bazar – загрузчика и бэкдора, – используемой для развертывания вредоносных программ, таких как программы-вымогатели, и для похищения конфиденциальных данных из взломанных систем.
Глубокое погружение Trickbot
Что делает Trickbot настолько универсальным, так это то, что его функциональные возможности можно значительно расширить с помощью плагинов. За время нашего отслеживания мы смогли собрать и проанализировать 28 различных плагинов. Некоторые из них предназначены для сбора паролей от браузеров, почтовых клиентов и различных приложений, в то время как другие могут изменять сетевой трафик или самораспространяться. Плагины Trickbot реализованы как стандартные библиотеки DLL Windows, обычно использующие, как минимум, эти четыре конкретных вида экспорта: Start, Control, Release и FreeBuffer.
Любопытно, что некоторые из них имеют Rich headers, а некоторые нет. Rich headers – это недокументированная структура данных, добавляемая ко всем двоичным файлам, созданным программой Microsoft Visual Studio 97 SP3 или более поздней версией. Они содержат информацию о среде разработки, в которой был собран исполняемый файл. Тот факт, что Rich headers не всегда присутствуют в подключаемых модулях и что, когда они присутствуют, они показывают разные среды разработки, заставляет нас думать, что эти подключаемые модули были написаны разными разработчиками.
Мы не наблюдали большого разнообразия образцов разных плагинов после их разработки и использования на практике. Больше всего изменились те из них, которые содержат статический файл конфигурации, встроенный в двоичный файл. Эти статические файлы конфигурации содержат, помимо прочего, информацию о командном сервере, поэтому стоит ожидать, что со временем они будут меняться. На рис. 4 показано, какое количество вариантов мы видели для каждого из собранных нами модулей с помощью нашей платформы ботнет-трекера. Большинство вариантов новых модулей идут парами: около половины собранных модулей были 32-битными версиями, а другая половина – 64-битными версиями. В Приложении можно найти краткое описание каждого из этих модулей.
Рис. 4. Количество вариантов для каждого плагина Trickbot
Файлы конфигурации для всех
Хотя потенциально в установке Trickbot может быть много разных загруженных файлов конфигурации, главный модуль содержит зашифрованную жестко закодированную конфигурацию. Он содержит список командных серверов, а также список подключаемых модулей по умолчанию, которые следует загрузить.
Как упоминалось ранее, для правильной работы некоторые плагины также полагаются на файлы конфигурации. Для загрузки файлов конфигурации с командных серверов эти плагины полагаются на главный модуль. Плагины достигают этого, передавая небольшую структуру конфигурации модуля, хранящуюся в секции наложения двоичного файла плагина, которая позволяет главному модулю знать, что он должен загрузить.
Возможность собрать эти файлы конфигурации позволила нам отобразить сетевую инфраструктуру Trickbot. Главный модуль использует свой список жестко запрограммированных командных серверов и подключается к одному из них, чтобы загрузить второй список командных серверов, так называемый список psrv. Главный модуль связывается с этим вторым уровнем командных серверов для загрузки подключаемых модулей по умолчанию, указанных в жестко заданном файле конфигурации. Другие модули можно загрузить позднее, получив команду от операторов Trickbot. Некоторые из подключаемых модулей, например подключаемый модуль injectDll, имеют собственные командные серверы, которые содержат файлы конфигурации. Наконец, для плагинов есть и выделенные командные серверы. Наиболее распространенными из них являются так называемые серверы dpost, используемые для извлечения похищенных данных, таких как учетные данные, но, как подробно описано в Приложении, существуют и другие. Наличие всех этих разных уровней усложняют борьбу с Trickbot. На рис. 5 проиллюстрирован этот начальный процесс коммуникации.
Рис. 5. Процесс сетевой коммуникации Trickbot
Мы отслеживаем эти различные командные серверы с начала 2017 года. В борьбе с Trickbot эти знания, конечно же, оказались крайне важны, поскольку мы смогли внести свой вклад в отображение сетевой инфраструктуры, используемой злоумышленниками.
При сканировании этого ботнета нам удалось добыть еще один интересный артефакт – это уникальный идентификатор, присутствующий в каждом образце Trickbot, так называемый gtag. Это строка, присутствующая в начальном жестко закодированном файле конфигурации, определяет различные кампании Trickbot или способ взлома. Например, считается, что кампании mor являются взломами Trickbot с использованием Emotet. На цель кампании также могут иногда указывать идентификаторы gtag. Хорошим примером является uk03-1, атакующий преимущественно финансовые учреждения Великобритании.
На рис. 6 представлена хронология всех идентификаторов gtag, извлеченных нами из файлов конфигурации Trickbot с сентября 2019 года по сентябрь 2020 года. Глядя на группу mor, мы можем увидеть резкую остановку кампаний Emotet в апреле 2020 года. Также есть группы, которые используются конкретными модулями. Группы tot, jim и lib являются одними из наиболее часто встречающимися идентификаторами gtag и связаны с модулями mshare, nworm/mworm и tab, соответственно, согласно недавнему сообщению в блог-посте Unit42. Поскольку все они используются для бокового перемещения, поэтому нет ничего удивительного в том, что в их хронологии мы видим в основном непрерывную линию.
Рис. 6. Хронология группы идентификаторов gtag
Заключительные замечания
Пытаться предотвратить такую изворотливую угрозу, как Trickbot, очень трудно и сложно. Он обладает различными резервными механизмами, и его взаимосвязь с другими очень активными киберпреступниками, работающими в подполье, делает всю эту операцию чрезвычайно сложной. Мы продолжим отслеживать эту угрозу и оценивать влияние, которое такие действия могут оказать на этот разросшийся ботнет в долгосрочной перспективе.
Особая благодарность Якубу Томанеку, Йозефу Дуку, Золтану Руснаку и Филипу Мазану
Названия ESET обнаружения
Win32/TrickBot
Win64/TrickBot
Методология MITRE ATT&CK
Примечание: Эта таблица составлена с использованием версии 7 инфраструктуры MITRE.
Тактика | Идентификатор | Название | Тактика |
---|---|---|---|
Получение первоначального доступа | T1566.001 | Фишинг: целевые фишинговые вложения | Trickbot использовал электронное письмо с таблицей Excel, содержащей вредоносный макрос, для развертывания вредоносной программы. |
Выполнение | T1059.003 | Интерпретатор команд и сценариев: Windows Command Shell | Trickbot использовал cmd.exe /c для загрузки и развертывания вредоносной программы на компьютере пользователя. |
T1059.005 | Интерпретатор команд и сценариев: Visual Basic | Trickbot использовал макросы в документах Excel для загрузки и развертывания вредоносной программы на компьютере пользователя. | |
T1106 | Native API | Trickbot uses the WinTrickbot использует Windows API CreateProcessW для управления потоком выполнения. | |
T1204.002 | Выполнение пользователем: вредоносные файлы | Trickbot пытался заставить пользователей запустить вредоносное вложение Excel для доставки данных. | |
T1059.007 | Интерпретатор команд и сценариев: JavaScript/Jscript | Группа Trickbot использовала обфусцированный JavaScript для загрузки загрузчика Trickbot. | |
T1559.001 | Межпроцессное взаимодействие: компонентная объектная модель | Trickbot использовал COM для настройки запланированной задачи с целью закрепления. | |
Закрепление | T1547.001 | Выполнение автозапуска при загрузке или входе в систему: ключи запуска реестра / папка запуска | Trickbot устанавливает закрепление в папке автозагрузки. |
T1053.005 | Планирование задач/работ: запланированная задача | Trickbot создает в системе запланированную задачу, обеспечивающую закрепление. | |
Повышение привилегий | T1055.012 | Инъекция кода в процесс: Process Hollowing | Trickbot инъецирует код в процесс svchost.exe. |
Обход защиты | T1140 | Деобфускация/дешифровка файлов или информации | Trickbot расшифровывает свои данные конфигурации и модули. |
T1562.001 | Нарушение защиты: отключение или изменение инструментов | Trickbot может отключить Windows Defender. | |
T1112 | Модификация реестра | Trickbot может изменять записи реестра. | |
T1027 | Обфускация файлов или информации | Trickbot использует неописательные имена, чтобы скрыть функциональность, и использует алгоритм шифрования AES-CBC (256 бит) для своих файлов загрузчика и конфигурации. | |
T1027.002 | Упаковка программ | Trickbot использует специальный упаковщик, чтобы скрыть свою функциональность. | |
T1553 | Подрыв доверительного контроля | Trickbot использует подписанные загрузчики с похищенными действующими сертификатами. | |
Получение учетных данных | T1555.003 | Получение учетных данных из хранилищ паролей: получение учетных данных из веб-браузеров | Trickbot может получать пароли, хранящиеся в веб-браузерах, таких как Chrome, Firefox, Internet Explorer и Microsoft Edge. |
T1056.004 | Захват ввода: зацепление учетных данных API | Trickbot может захватывать учетные данные RDP, используя API CredEnumerateA. | |
T1552.001 | Получение учетных незащищенных данных: получение учетных данных из файлов | Trickbot может получать пароли, хранящиеся в нескольких приложениях, таких как Outlook, Filezilla и WinSCP. Кроме того, он ищет суффикс .vnc.lnk для похищения учетных данных VNC. | |
T1552.002 | Получение учетных незащищенных данных: получение учетных данных из реестра | Trickbot может получить учетные данные PuTTY из ключа реестра Software\SimonTatham\Putty\Sessions. | |
T1110 | Метод грубой силы или полного перебора | Trickbot использует атаку методом грубой силы или полного перебора против RDP с помощью модуля rdpscanDll. | |
Обнаружение | T1087.001 | Обнаружение учетных записей: локальная учетная запись | Trickbot собирает пользователей системы. |
T1087.003 | Обнаружение учетных записей: учетная запись электронной почты | Trickbot собирает адреса электронной почты из Outlook. | |
T1082 | Обнаружение информации о системе | Trickbot собирает данные о версии ОС, типе процессора и объеме оперативной памяти, доступной на машине жертвы. | |
T1083 | Обнаружение файлов и каталогов | Trickbot ищет в системе все нижеперечисленные расширения файлов: .avi, .mov, .mkv, .mpeg, .mpeg4, .mp4, .mp3, .wav, .ogg, .jpeg, .jpg, .png, .bmp. , .gif, .tiff, .ico, .xlsx и .zip. Он также может получать историю просмотров, файлы cookie и информацию о плагинах. | |
T1016 | Обнаружение параметров конфигурации сети | Trickbot получает IP-адрес и другую важную сетевую информацию с машины жертвы. | |
T1007 | Обнаружение системных сервисов | Trickbot собирает список установленных программ и служб на компьютере системы. | |
T1135 | Обнаружение общих сетевых ресурсов | Модуль Trickbot shareDll/mshareDll обнаруживает сетевые ресурсы через API WNetOpenEnumA. | |
T1057 | Обнаружение процессов | Trickbot использует модуль networkDll для обнаружения списка процессов. | |
Поперечное движение | T1210 | Эксплойты удаленных сервисов | Trickbot использует эксплойты EthernalBlue и EthernalRomance для бокового перемещения в модулях wormwinDll, wormDll, mwormDll, nwormDll, tabDll. |
Сбор данных | T1005 | Data from Local System | Trickbot collects local files and information from the victim’s local machine. |
T1185 | Человек в браузере | Trickbot использует веб-инъекции и перенаправление браузера, чтобы обманом заставить жертв предоставить свои учетные данные для входа на фальшивую или измененную веб-страницу. | |
Командование и управление | T1071.001 | Протокол прикладного уровня: веб-протоколы | Trickbot использует HTTPS для связи со своими командными серверами, для получения обновлений вредоносных программ, модулей, которые выполняют большую часть логики вредоносных программ, и различных файлов конфигурации. |
T1573.001 | Зашифрованный канал: симметричная криптография | Trickbot использует специальный шифровальщик, использующий Microsoft CryptoAPI, для шифрования трафика управления. | |
T1105 | Перенос инструмента Ingress | Trickbot загружает несколько дополнительных файлов и сохраняет их на машине жертвы. | |
T1571 | Нестандартный порт | Некоторые образцы Trickbot для управления использовали HTTP через порты 447 и 8082. | |
T1219 | Программное обеспечение удаленного доступа | Trickbot использует модуль vncDll для удаленного управления машиной жертвы. | |
Эксфильтрация или утечка данных | T1041 | Эксфильтрация через канал управления (C2) | Trickbot извлекает данные по каналу управления, используя запросы HTTP POST. |
Приложение
Модули поперечного перемещения
- shareDll, mshareDll, tshareDll
- Модули, используемые для распространения загрузчика Trickbot на подключенные сетевые ресурсы жертвы.
- wormwinDll, wormDll, mwormDll, nwormDll
- Модули, используемые для распространения внутри локальной сети зараженных машин через SMB. Использует эксплойт EternalBlue.
- tabDll
- Модуль, используемый для распространения в сети с помощью эксплойта EternalRomance.
Инфостилеры
- pwgrab
- Модуль стилера паролей.
- systeminfo
- Модуль, используемый для сбора информации о машине жертвы.
- domainDll
- Модуль, используемый для похищения учетных данных и других данных из контроллера домена через LDAP.
- networkDll
- Модуль, используемый для сбора системной информации и топологии сети.
- outlookDll
- Модуль, используемый для похищения учетных данных из Microsoft Outlook.
- importDll
- Модуль, используемый для похищения информации браузера, такой как файлы cookie, история браузера, конфигурации.
- mailsearcher
- Модуль, используемый для поиска файлов на машине жертвы по списку жестко заданных расширений (документы, изображения, видео).
- cookiesDll
- Модуль похищения файлов cookie веб-браузера.
- squlDll
- Модуль, используемый для сбора адресов электронной почты с сервера SQL и очистки учетных данных из зараженной системы с помощью утилиты Mimikatz.
- aDll
- Похищает базу данных Active Directory.
- psfin
- одуль запрашивает в Active Directory конкретные строковые константы, относящиеся к программному обеспечению для торговых точек.
Сетевое злоупотребление
- injectDll
- Модуль Webinject.
- NewBCtestDll, NewBCtestnDll
- Модуль, который представляет собой обратный прокси-сервер и может выполнять команды.
- vncDll
- Модуль, используемый в качестве RAT на машине жертвы.
- vpnDll
- Модуль, используемый для создания прокси-сервера VPN, направленного на заданный адрес.
- rdpscanDll
- Модуль, используемый методом грубой силы или полного перебора RDP для определенного списка целей.
- bcClientDllTestTest
- Старый модуль, используемый для проксирования трафика оператора Trickbot через машину жертвы.
- shadnewDll
Модуль «Человек в браузере». Он содержит полную реализацию главного модуля IcedID. Может перехватывать веб-трафик на машине жертвы.
Другие
- mexecDll
- Модуль общего назначения «скачать и выполнить».
Имена модулей | Подконфигурация | Заголовки Rich |
---|---|---|
shareDll, mshareDll, tshareDll | НЕТ | |
wormwinDll, wormDll, mwormDll, nwormDll | НЕТ | |
tabDll | dpost | ДА |
pwgrab | dpost | ДА |
systeminfo | ДА | |
domainDll | НЕТ | |
networkDll | dpost | ДА |
outlookDll | НЕТ | |
importDll | НЕТ | |
mailsearcher | mailconf | НЕТ |
cookiesDll | dpost | ДА |
squlDll | ДА | |
aDll | ДА | |
psfin | dpost | ДА |
injectDll | dinj, sinj, dpost | ДА/НЕТ |
NewBCtestDll, NewBCtestnDll | bcconfig3 | ДА |
vncDll | vncconf | ДА |
vpnDll | vpnsrv | ДА |
rdpscanDll | srv | ДА |
bcClientDllTestTest | ДА | |
shadnewDll | dom | ДА |
mexecDll | ДА |
Полезные ссылки:
Блог-пост Microsoft: https://blogs.microsoft.com/on-the-issues/?p=64132
Источник: Welivesecurity
Поделиться статьей