Мы обнаружили загружаемый с официального сайта MonPass (крупного центра сертификации в Монголии) установщик с бинарными файлами Cobalt Strike (фреймворк, помогающий эксплуатировать уязвимости, закрепиться и продвинуться в целевой системе). Немедленно уведомив их о нашей находке, мы призвали MonPass обратиться к их скомпрометированному серверу и предупредить тех, кто скачал клиент с бэкдором.
MonPass предприняли все необходимые шаги для решения этих проблем, и теперь представляем вашему вниманию наш анализ.
Анализ, начатый в апреле 2021 года, показывает, что публичный сервер, организованный MonPass, потенциально мог быть взломан 8 раз: мы обнаружили восемь различных веб-оболочек и бэкдоров на этом сервере. Также мы выяснили, что клиент MonPass, доступный для скачивания с 8 февраля по 3 марта был взломан.
Наше исследование содержит анализ взломанных установщиков и других образцов кода, обнаруженных в «дикой природе» (прим. Дикая природа (in the wild) — сленговый термин, подразумевающий технологии и ПО, уже выпущенное для широкой публики и не находящиеся под контролем разработчиков). Также во время расследования было опубликовано схожее с нашим исследование от NTT Ltd (при нажатии начнется загрузка pdf), поэтому некоторые технические детали наших работ могут пересекаться.
Все рассмотренные образцы очень похожи друг на друга и имеют одинаковый путь к pdb:
C:UserstestDesktopfishmasterx64Releasefishmaster.pdb
и строка Bidenhappyhappyhappy
Технические подробности
Вредоносный установщик представляет из себя неподписанный PE-файл. Работа бэкдора начинается с загрузки установщика с официального сайта MonPass. Легитимная версия помещается в C:UsersPublic
и выполняется в новом процессе. Это гарантирует, что установщик ведет себя так, как и задумано, поэтому обычный пользователь едва ли заметит что-нибудь подозрительное.
В «дикой природе» мы также нашли схожие установщики со следующими SHA256 хешами: e2596f015378234d9308549f08bcdca8eadbf69e488355cddc9c2425f77b7535
и f21a9c69bfca6f0633ba1e669e5cf86bd8fc55b2529cd9b064ff9e2e129525e8
.
Злоумышленники использовали стеганографию для передачи шелл-кода своим жертвам. При выполнении бэкдор загружает файл растрового изображения с http: //download.google-images [.] Ml: 8880 / download / 37.bmp (переходите на свой страх и риск) с картинкой выше.
При этом, загрузка выполняется немного необычно, с помощью двух HTTP-запросов. Первый запрос использует метод HEAD для получения Content-Length, после чего следует второй запрос GET для фактической загрузки изображения. После того, как изображение скачалось, бэкдор извлекает зашифрованные данные следующим образом. Ожидается, что скрытые данные будут иметь размер до 0x76C байт. Начиная с 3-го байта данных изображения, бэкдор копирует каждый 4-й байт. Результатом работы является ASCII строка шестнадцатеричных символов, которые затем переводятся в соответствующие двоичные значения. Получившиеся байты дешифруются XORом с помощью hardcoded ключа miat_mg, в результате создается Cobalt-Strike beacon.
Всего мы обнаружили несколько версий взломанного установщика, отличающихся слегка измененными дешифраторами.
В одной из версии была удалена расшифровка с помощью XOR, а в другой были убраны основные приёмы антианализа. На изображениях ниже отображены одинаковые rich header с разными временными отметками:
Дата: 26 февраля 2021 08:16:23
Дата: 1 марта 2021 08:56:04
Также во взломанном установщике мы обнаружили некоторый перечень основных методов антианализа, используемых в попытке избежать обнаружения. В частности, наблюдались следующие приёмы:
-
проверка количества используемых процессоров с помощью функции GetSystemInfo:
-
проверка объема используемой физической памяти с помощью функции GlobalMemoryStatusEx;
-
проверка емкости диска с помощью IOCTL вызова IOCTL_DISK_GET_DRIVE_GEOMETRY.
В случае, если какое-либо из полученных значений оказывалось подозрительно низким, то вредоносная программа немедленно прекращала работу.
В одном образце для выполнения шелл-кода использовалась уже другая известная техника. Сначала шелл-код декодируется из списка UUID с помощью UuidFromStringA API, а затем выполняется с помощью EnumSystemLanguageGroupsA.
После того, как мы нашли у одного из наших клиентов взломанный установщик, мы начали дополнительный поиск образцов кода в VT и в нашей базе для того, что определить, существуют ли в «дикой природе» другие взломанные установщики. В VT мы обнаружили несколько интересных совпадений:
Мы проанализировали этот образец и заметили, что он очень похож на те установщики, что были обнаружены у наших клиентов. Найденный образец содержал схожие методы антианализа с использование XOR дешифрования, а также включал в себя аналогичные адреса С2 серверов, которые наблюдались в предыдущих взломанных установщиках. Помимо этого, в образце мы обнаружили упоминание вредоносной ссылки (hxxps://webplus-cn-hongkong-s-5faf81e0d937f14c9ddbe5a0.oss-cn-hongkong.aliyuncs[.]com/Silverlight_ins.exe)
и путь к файлу C:userspublicSilverlight_ins.exe,
которые, по всей видимости, не использовались. Также нас привлекло необычное название этого образца — Browser_plugin (8).exe. Мы думаем, что это может быть тестовый образец, загруженный злоумышленником.
В Vt мы заметили ещё один хеш с таким же именем Browser_plugin.exe. Согласно VT, образец с данным хэшем был скачан отсюда hxxps://jquery-code.ml/Download/Browser_Plugin.exe
. Данный образец загружал PDF файл из hxxp://37.61.205.212:8880/dow/Aili.pdf.
В целом, он имеет такие же функции, как и ранее упомянутые образцы от VT.
В нашей базе мы обнаружили аналогичный образец, но уже с названием Browser_plugin (1).exe, замеченный 4 февраля 2021 года. Он ничего не загружает, а только показывает MessageBox с C&C(Command and Control server) адресом.
Содержимое скомпрометированного веб-сервера
На взломанном сервере, откуда можно было скачать установщик с бэкдором, мы нашли ещё два исполняемых файла: DNS.exe и уже знакомый Browser_plugin.exe.
DNS.exe
Этот «экзешник» загружал bat-файл с C&C сервера, который сохранялся в файлеC:userspublicDNS.bat
. Файл содержал этот скрипт:
Во второй части этого экземпляра содержались те же функции и адрес на C&C сервер, что и в не раз упомянутом установщике.
Browser_plugin.exe
В целом, этот исполняемый файл очень похож на ранее упомянутый одноименный образец, найденный в VT, однако он не загружает никаких дополнительных документов.
Анализ C&C сервера
Мы проверили вредоносный сервер(hxxps://jquery-code.ml
), с которого осуществлялась загрузка Browser_plugin.exe. Вредоносный сайт выглядит идентично легитимному https://code.jquery.com/
, однако разница кроется в сертификате: сертификат официального сервера подписан Sectigo Limited, а вредоносного Cloudflare, Inc.
Заключение
В этой статье были изложены наши выводы относительно клиента MonPass с бэкдором Cobalt Strike. В ходе исследования мы нашли дополнительные вариации на VirusTotal в дополнение к тем, что обнаружили на скомпрометированным сервере MonPass. Для расшифровки Cobalt Strike beacon использовалась стеганография.
Сейчас мы не можем определять эти атаки с должной степенью уверенности. Однако очевидно, что злоумышленники планировали распространить вредоносное ПО среди пользователей в Монголии, скомпрометировав надежный источник, кем в данном случае является центр сертификации MonPass в Монголии
Наиболее важным является тот факт, что любой пользователь, загрузивший клиент MonPass в период с 8 февраля по 3 марта, должен предпринять соответствующие шаги для поиска и удаления клиента и загруженного им бэкдора.
Особую благодарность я хотел бы выразить Jan Rubín за помощь в проведении исследования.
Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.
Автор: Stedihabr