Инциденты

Атаки на индустриальный и государственный секторы РФ

Летом 2023 года в ходе исследования инцидента в одной из российских организаций мы обнаружили ряд вредоносных программ, нацеленных на кражу данных. Аналогичные программы, по данным Kaspersky Threat Intelligence, были найдены еще в нескольких государственных и индустриальных организациях РФ, поэтому мы можем предположить, что кража данных из организаций, работающих в данных секторах, была основной целью злоумышленников.

Мы провели тщательное исследование инцидента, проанализировали вредоносное ПО и хотим поделиться находками.

Цепочка заражения

Первым обнаруженным нами артефактом этой атаки был вредоносный файл finansovyy_kontrol_2023_180529.rar, который с 5 по 6 июня 2023 года распространялся в качестве почтового вложения.

Cценарий атаки

Cценарий атаки

Файл finansovyy_kontrol_2023_180529.rar представляет собой ARJ-архив, из которого извлекается файл finansovyy_kontrol_2023_180529.com — исполняемый файл архива Nullsoft. Его полезной нагрузкой являются документ-приманка в формате PDF и скрипт инсталляционной системы Nullsoft Scriptable Installation System (NSIS) — файл [NSIS].nsi.

Разбор вредоносного NSIS-скрипта

Строки в скрипте зашифрованы простыми бинарными операциями и представлены в виде шестнадцатеричных последовательностей.

Функция расшифровки строк скрипта

Функция расшифровки строк скрипта

После запуска скрипт [NSIS].nsi открывает легитимный подложный документ finansovyy_kontrol_2023_180529.pdf, чтобы отвлечь внимание жертвы.\

Открытие подложного документа

Открытие подложного документа

Далее скрипт расшифровывает строки и вызывает функцию get плагина INetC установщика Nullsoft, которая пытается загрузить в систему файл с вредоносного веб-ресурса hxxps://fas-gov-ru[.]com/?e&n=zr6tjbinjvef86.

Расшифровка строк и вызов команды INetC::get

Расшифровка строк и вызов команды INetC::get

Запуск команды происходит с использованием следующих параметров:

В случае успешной загрузки вредоносного файла C:\ProgramData\UsrRunVGA скрипт копирует его в папку C:\ProgramData\Microsoft\DeviceSync\ и добавляет расширение .exe  — UsrRunVGA.exe. Отметим, что в ходе первой фишинговой рассылки помимо UsrRunVGA распространялись еще два бэкдора с именами Netrunner и Dmcserv, которые отличались лишь сервером управления.

Далее скрипт запускает UsrRunVGA.exe со скрытым окном:

Этот же файл записывается в автозапуск с помощью ярлыка .lnk по пути %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ StartUp\menu.lnk.

Запуск загруженного ВПО и добавление его в автозапуск

Запуск загруженного ВПО и добавление его в автозапуск

Анализ бэкдора UsrRunVGA.exe

Вредоносная программа написана на языке Go, а названия функций и переменных в ней обфусцированы. Однако нам удалось установить подключенные библиотеки, восстановить имена функций, а также выделить вредоносный код. Все строки в исследуемом образце зашифрованы простым XOR.

Расшифровка строк в образце бэкдора

Расшифровка строк в образце бэкдора

После запуска зловред проверяет доступ в интернет, пытаясь подключиться к сайтам различных зарубежных СМИ. Для этого он отправляет HTTP-запросы GET с URL-адресами вида https://domain?[A-Za-z]{20} до тех пор, пока все легитимные ресурсы не вернут в ответ HTTP-код 200:

Запросы к легитимным ресурсам

Запросы к легитимным ресурсам

Запросы к легитимным ресурсам

Запросы к легитимным ресурсам

Для подключения к веб-ресурсам бэкдор использует следующий User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.5.

После получения нужных ответов зловред обращается к управляющему серверу (в нашем случае это был tantsuyushchiykarlik[.]com) по протоколу HTTPS со следующим URL-адресом: hxxps://tantsuyushchiykarlik[.]com/?h=, снова ожидая HTTP-код 200 в ответ на свой запрос.

Первый запрос на управляющий сервер

Первый запрос на управляющий сервер

Далее бэкдор проверяет, не находится ли он в виртуальной среде или «песочнице» (anti-vm/anti-sandbox). Он использует библиотеку ghw — Go HardWare discovery/inspection library для сбора информации о конфигурации системы.

Проверка конфигурации системы

Проверка конфигурации системы

Ниже в таблице мы собрали используемые функции библиотеки и подстроки, которые зловред ищет в возвращаемой строке выполненной функции. Если хотя бы одна из этих подстрок будет найдена, то вредоносная программа выставляет специальный флаг, предотвращающий дальнейшее выполнение.

Проверяемые индикаторы нахождения в песочнице

Используемая функция библиотеки Подстроки, которые бэкдор ищет в возвращаемой строке
ghw.BIOS() BOCHS, VBOX, VRTUAL, SeaBIOS, Xen
ghw.Baseboard() 1111-2222, Default string, Microsoft, Oracle, To be filled by
ghw.Chassis() Default string, QEMU, Microsoft, Oracle, Red Hat, RHEL
ghw.Product() 00000000, 11111111, 1111-2222, Microsoft, QEMU, VirtualBx, VMware, Xen

Затем бэкдор сравнивает текущее имя пользователя и имя системы с жестко закодированным списком. Если проверка будет провалена, то зловред также завершит свою работу.

Проверка имени системы

Проверка имени системы

Проверка имени пользователя

Проверка имени пользователя

В заключение UsrRunVGA.exe проверяет наличие директорий и файлов, специфичных для виртуальных сред:

c:\analyzer.exe
c:\Meterpreter
c:\code.exe
c:\program.exe
c:\VMREMOTE
c:\program files\fortinet
c:\program files\meterpreter
c:\program files\uvnc bvba
C:\program files\CrowdStrike
c:\program files (x86)\detonate.exe
c:\run_task.bat
c:\run_task.py
c:\VMRunner

Если все проверки успешно пройдены, то зловред переходит к выполнению основной полезной нагрузки.

С помощью функции ghw.Block() той же библиотеки ghw бэкдор получает информацию о модели и изготовителе системного диска зараженного ПК. Далее UsrRunVGA.exe удаляет все символы «.» и «_» из полученной строки и выполняет HTTP-запрос GET на управляющий сервер hxxps://tantsuyushchiykarlik[.]com/?r&z={disk_model}, где disk_model — информация о модели и изготовителе диска.

В ответ бэкдор ожидает от сервера управления одну из двух команд.

Команда Описание команды
list Получить рекурсивно список файлов и папок в указанной директории
file Передать файл(ы) на сервер управления

Если ответа от сервера управления не последовало, то бэкдор повторяет тот же HTTP-запрос GET каждые 10 секунд.

Также зловред имеет в своем арсенале еще несколько модулей, которые выполняются в отдельных потоках с определенной периодичностью.

Модули бэкдора

Задача модуля Описание модуля
Получение буфера обмена Использует библиотеку atotto Clipboard for Go для получения содержимого буфера обмена с помощью функции clipboard.ReadAll().
Снятие снимков экрана Использует библиотеку kbinani screenshot для снятия снимков экрана с помощью функции screenshot.GetDisplayBounds() и screenshot.CaptureRect().
Отправка файлов с заданными расширениями на сервер управления Ищет файлы с заданными расширениями в директории C:\Users\{username}, а также на всех дисках системы кроме диска C:\ и передает их на сервер управления.

Для каждого диска системы и директории C:\Users\{username} создает по отдельному потоку для поиска файлов с расширениями .doc, .docx, .pdf, .xls, .xlsx, .ppt, .pptx, .zip, .rar, .7z, .odt, .ods, .kdbx, .ovpn, .pem, .crt, .key.

Данные, которые бэкдор собирается отправить на сервер управления, шифруются алгоритмом AES и сохраняются по пути C:\Users\{username}\AppData\Local\Temp\[0-9]{10}\[A-Za-z]{10}.enc.

Во всех случаях шифрование файлов с расширением .enc осуществляется при помощи алгоритма AES256-GCM с ключом «bdieiq23nweih23qqq74ehq1bu082dhh«, который зашит в тело зловреда. Во всех проанализированных нами образцах ключ был одинаковый.

Использованный при шифровании вектор инициализации (nonce, IV) сохраняется для каждого файла .enc в первых 12 байтах этого файла:

Зашифрованные данные записываются после вектора инициализации.

Отправка файла .enc на сервер управления происходит через POST-запрос по URL-адресу hxxps://tantsuyushchiykarlik[.]com/?s&z={disk_model}. В этом запросе также передаются две переменные в заголовках Content-Disposition:

В тот же период, в который происходила рассматриваемая атака, злоумышленники провели еще одну фишинговую рассылку, содержащую вредоносные вложения с названием detali_dogovora_no_2023_000849.rar. Содержимое вредоносного архива при этом отличалось лишь названиями файлов NSIS-архива и бэкдора, а также зашитым в коде адресом C&C-сервера.

Вторая кампания

Новую версию описанного бэкдора мы заметили в середине августа того же года. Используемая цепочка заражения не изменилась, вредоносный скрипт-загрузчик также оказался идентичный. Однако есть и отличия: проверка доступа в интернет через обращение к легитимным веб-ресурсам убрана, зловред сразу же подключается к серверу управления. В исследуемом образце C&C располагается по адресу lunnayareka[.]com.

Увеличилось количество проверок среды, в которой выполняется бэкдор. Дополнительные проверки мы собрали в таблицы.

Проверяемые индикаторы нахождения в «песочнице»

Используемая функция библиотеки Новые подстроки для проверки
ghw.BIOS() Google, KVM, Red Hat, RHEL
ghw.Baseboard() Google, KVM, Red Hat, RHEL
ghw.Chassis() Google, KVM
ghw.Product() Google, KVM, Red Hat, RHEL

Проверяемые индикаторы нахождения в «песочнице»

Объект Новые подстроки для проверки
username Anna, Frank, fred, Harry, Julia, Louise, Lucas, mike, Peter
hostname ACEPC, azure-PC, JULIA-PC, LOUISE-PC, LUCAS-PC, MARCI-PC, MIKE-PC, Phil-PC, RALPHS-PC, SERVER-PC, WILEYPC

Файлы и папки, присутствие которых в системе проверяет бэкдор

c:\admin_Index.html
c:\Cookies
c:\History
c:\Important.txt
c:\Program Files\Anti-Trojan

Первый запрос на сервер управления — теперь HTTP-запрос POST вида hxxps://lunnayareka[.]com/?z={disk_model}&h. В его теле бэкдор передает в формате JSON информацию о зараженной системе, собранную во время проверок anti-vm/anti-sandbox.

В новой версии добавлены инструменты для кражи паролей из браузера. С этой целью зловред проверяет наличие в системе браузеров.

Браузер Путь до данных пользователя
7Star {{ .LocalAppData }}\7Star\7Star\User Data
amigo {{ .LocalAppData }}\Amigo\User Data
blackHawk {{ .AppData }}\NETGATE Technologies\BlackHawk
brave {{ .LocalAppData }}\BraveSoftware\Brave-Browser\User Data
centbrowser {{ .LocalAppData }}\CentBrowser\User Data
chedot {{ .LocalAppData }}\Chedot\User Data
chrome canary {{ .LocalAppData }}\Google\Chrome SxS\User Data
chromium {{ .LocalAppData }}\Chromium\User Data
chromium edge {{ .LocalAppData }}\Microsoft\Edge\User Data
coccoc {{ .LocalAppData }}\CocCoc\Browser\User Data
comodo dragon {{ .LocalAppData }}\Comodo\Dragon\User Data
comodo IceDragon {{ .AppData }}\Comodo\IceDragon
cyberfox {{ .AppData }}\8pecxstudios\Cyberfox
elements browser {{ .LocalAppData }}\Elements Browser\User Data
epic privacy browser {{ .LocalAppData }}\Epic Privacy Browser\User Data
firefox {{ .AppData }}\Mozilla\Firefox
google chrome {{ .LocalAppData }}\Google\Chrome\User Data
icecat {{ .AppData }}\Mozilla\icecat
k-Meleon {{ .AppData }}\K-Meleon
kometa {{ .LocalAppData }}\Kometa\User Data
opera {{ .AppData }}\Opera Software\Opera Stable
orbitum {{ .LocalAppData }}\Orbitum\User Data
sputnik {{ .LocalAppData }}\Sputnik\Sputnik\User Data
thunderbird {{ .AppData }}\Thunderbird
torch {{ .LocalAppData }}\Torch\User Data
uran {{ .LocalAppData }}\uCozMedia\Uran\User Data
vivaldi {{ .LocalAppData }}\Vivaldi\User Data
yandex {{ .LocalAppData }}\Yandex\YandexBrowser\User Data

Найденные таким образом пользовательские данные зловред пытается украсть и отправить на управляющий сервер.

Есть изменения в методах шифрования, которые использует бэкдор. Так, содержимое команд list и file и их параметров, которые сервер управления передает бэкдору, теперь зашифровано алгоритмом RSA. Их расшифровка осуществляется с помощью вшитого в бэкдор приватного RSA-ключа. Кроме того, AES-ключ для шифрования файлов сменился на «gzlqjwrlv4qkx5lc2whjiyenhdpe9rzk».

Индикаторы компрометации

MD5

ARJ-архивы
finansovyy_kontrol_2023_180529.rar:
1ECF7DDE0F692E635688B181FE7AE8BB
678DBD5294150F0DEDD125EED41E7728

NSIS-файлы
finansovyy_kontrol_2023_180529.com:
24E5A0D1F0BC19D36AEE67A715B0B573
25EB1B4534A91524E6A293B459D71A19
44CFDAC04E1CB3E813BB8F0C3D695F56
509901D73FE39A5F46FDB2BFC9C7DE9F
51B6C1454FC79179C66CA4F949D201E9
67B388477CEDD7AAA1054FEFA4F20DB0
67E38A5BD8D14BA507124894FA988342
787EC689241C2B01954045879BE30ED2
9722E3E0DB3774EBDCEEF142D8143956
A383F9F87218897AE3FBCFA8F3617AA9
B5B796DB5331655B6C7F44F5DCFB60E7
E57E91EB891E4CB98FA16FC2E740B39D
EBAAEF4D739001F49A0E4D05A10284BF
FE3887C853846C7FD8BB7AA8F87D6A18

detali_dogovora_no_2023_000849.com
131CB8061A042FC13A640BF783030DED
2CD36BCC238B797C5DD224A6AA80CEF4
35B192D30A6E495D36C0EB0FDE06409E
45F824B00D2AD14181803AE5C63BEBD3
64865D6F2E8FE256D2A8DE6C97C3C661
88219B612564D0821F86C4F3DC1FF5F5
BAB4065F4E9F569F0658EA9E33459EF2
B994B476A45D76173F048CBB247013F4
B9F91E09B24F0D249147E5ECEC8ED6B8

Dogovor_No_0339_07_23.com:
45DE46B40E80CF37C8125A7DBFE60FAE
6CE34D82D23B6A73B54E957C9CBA7FC0

No_9537_23.com:
C842B05B4315CC6CA1B015812B31E3FB
F7664BF2E56403D1E235DC302BF807F1
C87BA9AFE2CB05F286F909EB4DB79726
9DA5E7C549B30F5F8507DC6AADB3CF9D
AF39FF63A49F170D70736D4E9C619012

PDF-файлы
finansovyy_kontrol_2023_180529.pdf:
E9253667A17F36BA12622F5170A59D40

detali_dogovora_no_2023_000849.pdf:
AB2F197A1ED2D418E9BB717AAA057CF2

Файлы бэкдора
UsrRunVGA:
5EE1E79B341510858D609B67648DA6BB
2E8A4A6D19CAC2653279DAB822D69BF5

Dmcserv:
16074C7518B2E5A3335CCF5AAA469470

Netrunner:
6086673A65B85B3463B551BA611EE6E6

VirtualDriveModule:
0777DFA3CA844FF59661C261C5B48BA6

UsrNetBrooker:
6B944C0E8C2D76A2DC2477C720E82F14

Вредоносные ссылки

fas-gov-ru[.]com
tantsuyushchiykarlik[.]com
skachanye-ru[.]com
mirvovsemire[.]com
vlozhenye24[.]com
megaworstqal[.]com
vlozhenye-ru[.]com
lunnayareka[.]com
fas-otdel-ru[.]com
beshenayasobaka[.]com

User-Agent

Mozilla/5.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.5

Пути и имена файлов

finansovyy_kontrol_2023_180529.com
detali_dogovora_no_2023_000849.com
C:\ProgramData\UsrRunVGA
C:\ProgramData\Dmcserv
C:\ProgramData\netrunner
C:\ProgramData\Microsoft\DeviceSync\UsrRunVGA.exe
C:\ProgramData\Microsoft\DeviceSync\Dmcserv.exe
C:\ProgramData\Microsoft\DeviceSync\netrunner.exe
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp\menu.lnk
C:\Users\{username}\AppData\Local\Temp\homef.dat
C:\Users\{username}\AppData\Local\Temp\ds[A-Z]{1}.dat
C:\Users\{username}\AppData\Local\Temp\lg_[A-Za-z]{10}.dat
C:\Users\{username}\AppData\Local\Temp\[0-9]{10}\[A-Za-z]{10}.enc
C:\Users\{username}\AppData\Local\Temp\[0-9]{10}\[A-Za-z]{10}.txt
Dogovor_No_0339_07_23.com
No_9537_23.com
C:\ProgramData\VirtualDriveModule
C:\ProgramData\UsrNetBrooker
C:\ProgramData\Microsoft\DeviceSync\VirtualDriveModule.exe
C:\ProgramData\Microsoft\DeviceSync\UsrNetBrooker.exe

Вердикты

HEUR:Trojan.Win32.Vebzenpak.gen
Trojan.Win64.Agent.qwiigt
Trojan.Win64.Agent.qwiird
Backdoor.Win64.Agent.jtc
Backdoor.Win64.Agent.jtd

Тактики и техники MITRE ATT&CK

Тактика Техника ID техники
Initial Access Phishing: Spearphishing Attachment T1566.001
Execution Command and Scripting Interpreter: Windows Command Shell T1059.003
Execution User Execution: Malicious File T1204.002
Persistence Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547.001
Defense Evasion Indirect Command Execution T1202
Defense Evasion Indicator Removal: File Deletion T1070.004
Defense Evasion Obfuscated Files or Information T1027
Discovery Account Discovery: Local Account T1087.001
Discovery File and Directory Discovery T1083
Discovery Software Discovery: Security Software Discovery T1518.001
Discovery System Information Discovery T1082
Discovery System Owner/User Discovery T1033
Collection Archive Collected Data: Archive via Library T1560.002
Collection Data from Local System T1005
Command and Control Application Layer Protocol: Web Protocols T1071.001
Command and Control Data Encoding: Standard Encoding T1132.001
Command and Control Encrypted Channel: Symmetric Cryptography T1573.001

Атаки на индустриальный и государственный секторы РФ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике