Медовый капкан: исследуем атаки группировки Hive0117 на бухгалтеров компаний в России и странах СНГ

от автора

В 2026 году специалисты департамента противодействия финансовому мошенничеству (Fraud Protection) компании F6 зафиксировали новую волну атак финансово мотивированной группы Hive0117, нацеленных на юридические лица. Злоумышленники заражают устройства бухгалтеров, получают доступ к системам дистанционного банковского обслуживания (ДБО) и выводят деньги на счета дропов, в том числе под видом перечисления зарплаты.

Группировка Hive0117 действует с конца 2021 года. Примечательна использованием бесфайлового вредоносного ПО DarkWatchman. Нацелена на финансовые отделы организаций из различных отраслей. Помимо России, среди целей в том числе замечены пользователи из Беларуси, Узбекистана и Казахстана. Злоумышленники маскируются под реальные организации, регистрируют инфраструктуру для рассылок и управляющих доменов, зачастую домены используют повторно. Для группировки характерны периодические простои продолжительностью до нескольких месяцев, за которыми следуют всплески масштабной активности.

В 2026 году злоумышленники проводили рассылки, ориентированные на бухгалтеров, в адрес более 3000 российских компаний из разных отраслей. Пик рассылок пришёлся на февраль-март, после чего их количество пошло на спад и сократилось в десятки раз. Вредоносные рассылки клиентам компании F6 были успешно заблокированы системой защиты корпоративной почты F6 Business Email Protection (F6 BEP).

Кроме того, по данным департамента киберразведки (Threat Intelligence) компании F6, среди получателей рассылок группы Hive0117 оказались организации из СНГ, включая как минимум 6 компаний в Беларуси (из сфер телекома, промышленности, торговли и других), 3 – в Казахстане (интернет-магазины и предприятие химической промышленности) и 1 – в Узбекистане (производитель напитков).

Злоумышленники использовали, например, такие темы для писем, как: «Документы от <дата>», «Уведомление об окончании срока бесплатного хранения», «Счет на оплату», «накладная», «Акт сверки», «счет», «Fwd: Fwd: Документы от <дата>», «Задолженность по оплате», «Счет на оплату СРТ-008.7z», «накладная от <дата>». Во всех случаях в этих письмах доставляли вредоносное ПО DarkWatchman.

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

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

Продвинутые антифрод-решения, которые банки используют для защиты клиентов – физических лиц позволяют за считанные доли секунды проанализировать каждую платёжную операцию по множеству параметров и показателей, начиная с устройства пользователя и установленных на нём приложений до контекста транзакции и рисковых признаков. Это позволяет заблокировать подозрительные переводы.

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

По оценкам F6, с начала 2026 года группировка Hive0117 совершила около 400 успешных атак на российские компании. Средняя сумма ущерба от этих атак в марте-апреле выросла с 3 млн до 10 млн рублей.

Специалисты F6 Fraud Proteсtion изучили весенние атаки Hive0117 и разобрали инструменты, которые используют злоумышленники. Итоги исследования представляем в этом блоге.

Как бухгалтер бухгалтеру

В 2026 году группировка Hive0117 использовала для атак целый арсенал вредоносного ПО, включающий несколько вредоносных модулей для ПК под управлением Windows, каждый из которых обладает собственным функционалом. Сценарий атаки включает несколько этапов, для каждого из которых мошенникам требуется использование какого-либо из модулей ВПО.

Первый этап комплексной атаки – заражение компьютера бухгалтера с использованием ВПО DarkWatchman. Злоумышленники распространяют вредоносную программу через фишинговую рассылку по электронной почте (об этом мы рассказывали в апреле 2026 года), маскируя под документ, при попытке открытия которого происходит запуск ВПО.

Рисунок 1 – Пример распространения ВПО DarkWatchman по электронной почте

Рисунок 1 – Пример распространения ВПО DarkWatchman по электронной почте

После установки DarkWatchman на устройство выгружается модуль кейлоггера, задача которого – перехват чувствительных данных, введенных на клавиатуре, данных буфера обмена, а также проверка наличия криптографического токена, вставленного в USB-разъем компьютера. Этот момент особенно важен для злоумышленников: наличие токена обязательно для аутентификации в кабинете ДБО юридического лица – а значит, к следующему этапу атаки злоумышленники переходят только в тот момент, когда модуль кейлоггера обнаружит криптографический токен.

Существует два  способа подтверждения двухфакторной аутентификации при работе через ДБО юридического лица: с помощью криптографического токена либо с помощью СМС-кода. Соответственно, в зависимости от способа двухфакторной аутентификации существуют два вектора атаки: с захватом управления при наличии криптографического токена, вставленного в USB-разъем зараженного компьютера, либо с установкой Android-приложения на мобильное устройство пользователя для перехвата кодов двухфакторной аутентификации из СМС.

В первом случае, как только жертва вставит криптографический токен в USB-разъем устройства, злоумышленники доустанавливают еще одну программу, как правило – средство удаленного администрирования или RAT (Remote Access Trojan, троян удалённого доступа), позволяющий управлять экраном зараженного устройства. Достаточно часто в роли такого средства удаленного доступа используются LiteManager, BitRAT и различное ВПО с функционалом hVNC.

Техническое описание атаки

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

— DarkWatchman;

— кейлоггер;

— RAT (троян удаленного доступа).

Рассмотрим эти утилиты по отдельности.

DarkWatchman

DarkWatchman RAT — троян удаленного доступа. В атаках на бухгалтеров роль роль этого ВПО – средство первичного скрытого удалённого доступа к зараженному компьютеру, которое также обеспечивает возможность загружать дополнительные вредоносные программы для проведения комплексной атаки.

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

Рассмотрим данное ВПО на примере семпла, который использовался злоумышленниками в одной из недавних атак.

Образец ВПО распространялся с помощью фишинговой почтовой рассылки в виде исполняемого EXE-файла, замаскированного под документ. Цель такой маскировки – ввести пользователя в заблуждение и побудить его попытаться открыть файл, тем самым запустив вредоносное ПО.

Рисунок 2 – Пример маскировки исполняемого EXE-файла под документ в формате .PDF

Рисунок 2 – Пример маскировки исполняемого EXE-файла под документ в формате .PDF

Когда пользователь попытается открыть вложение письма, произойдет запуск исполняемого файла, осуществляющего распаковку исполняемого JavaScript-файла – это и есть DarkWatchman в чистом виде.

Запуск и исполнение JS-скрипта в ОС Windows производится с помощью ее встроенных механизмов, а именно с помощью Windows Based Script Host (wscript.exe) – скриптовой оболочки Windows, которая позволяет обрабатывать и выполнять JS-скрипты в операционной системе и в легитимных целях используется для автоматизации и администрирования компьютера.

Рисунок 3 – Запуск процесса через JS-оболочку Windows

Рисунок 3 – Запуск процесса через JS-оболочку Windows

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

Доменное имя составляется путем конкатенации (операции объединения нескольких строк или последовательностей символов в одну) трех строк. Первая часть может включать подстроки:

  • e732a5ae

  • 90359538

  • 093cc482

  • 7e3bf414

  • e05f61b7

  • 97585121

  • 0e51009b

  • 7956300d

  • e9e92d9c

  • 9eee1d0a

Вторая часть может включать:

  • .xyz

  • .shop

  • .buzz

Третья часть включает значение /index.php.

Рисунок 4 – Генерация URL управляющего сервера

Рисунок 4 – Генерация URL управляющего сервера

Как уже упоминалось ранее, на этапе старта Darkwatchman собирает базовую информацию о компьютере, на котором он был запущен. К собираемым данным относятся:

— Основная версия операционной системы. Данные собираются из пути реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMajorVersionNumber, либо, если собрать из этого пути не удалось — из HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion.

— Дополнительная версия операционной системы. Собирается из пути редактора реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ CurrentMinorVersionNumber.

— Номер сборки Windows. Параметр собирается из пути реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ CurrentBuildNumber.

— Номер ревизии сборки Windows. Параметр собирается из пути реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ UBR.

— Редакция установленной Windows. Параметр собирается из пути реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ EditionID.

— Публичное название версии ОС. Параметр из пути реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DisplayVersion.

— Язык операционной системы. Параметр из пути реестра HKEY_CURRENT_USER\\\\Control Panel\\\\International\\\\LocaleName.

— Принадлежность зараженного ПК к домену и его роль в нем. Параметр собирается из встроенной базы данных ОС Windows через выполнение запросов SELECT DomainRole FROM Win32_ComputerSystem и SELECT PartOfDomain FROM Win32_ComputerSystem.

— Название установленного в системе антивируса. Определяется через запрос к WMI-пути SELECT * FROM AntiVirusProduct с последующим получением displayName – имени антивируса.

— Имя компьютера

— Имя пользователя

— Наличие у запущенного процесса прав администратора.

На этапе закрепления в системе DarkWatchman может использовать параметр реестра «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM\\<UID> + v» для записи JS-кода, необходимого для выполнения при перезапуске устройства.

Рисунок 5 – Запись кода для автозагрузки Windows

Рисунок 5 – Запись кода для автозагрузки Windows

В рамках конфигурирования Darkwatchman происходит корректировка временного интервала обращения ВПО к серверу в зависимости от значения, прописанного в пути реестра «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM\\<UID> + t». Значение интервала может быть получено при получении соответствующей управляющей команды.

Примечательно, что на этапе установки DarkWatchman демонстрирует окно с сообщением о якобы поврежденном документе, чтобы объяснить пользователю причину, по которой документ, полученный по почте, не удалось открыть.

Рисунок 6 – Вывод окна о поврежденном документе

Рисунок 6 – Вывод окна о поврежденном документе

Кроме того, при получении прав администратора в системе ВПО удаляет теневые копии в системе.

Рисунок 7 – Удаление теневых копий в системе

Рисунок 7 – Удаление теневых копий в системе

DarkWatchman осуществляет интеграцию с модулем кейлоггера, получая от него данные о перехваченных нажатиях клавиш и содержимом буфера обмена и сохраняя в пути реестра «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM\\<UID> + a». ВПО непрерывно отправляет содержимое этого параметра реестра на сервер злоумышленников вместе с данными о смарт-картах, подключенных к зараженному устройству. Эти данные также собираются модулем кейлоггера и отправляются на сервер в заголовке «X-Client-Sc» HTTP-запроса.

Рисунок 8 – Отправка похищенных данных на сервер

Рисунок 8 – Отправка похищенных данных на сервер

Вредоносная программа способна обрабатывать ответы на непрерывно отправляемые ей HTTP-запросы на сервер, интерпретируя HTTP-статус ответа сервера как управляющую команду. Рассмотрим каждую из них по отдельности.

Рисунок 9 – Обработка команд с сервера

Рисунок 9 – Обработка команд с сервера

DarkWatchman обрабатывает такие HTTP-статусы ответа сервера, как:

  • При ответе сервера со статусом 200 ВПО не выполняет никаких действий.

  • 820 и 835. При таком статусе ответа выполняется загрузка с сервера исполняемого EXE-файла и его сохранение во временном файле. В зависимости от первого аргумента EXE-файл выполняется в командной строке с отправкой на сервер результата исполнения или же в отдельном процессе без ожидания результата.

Рисунок 10 – Обработка команды выполнения EXE-файла

Рисунок 10 – Обработка команды выполнения EXE-файла
  • При получении такого HTTP-кода статуса ответа сервера осуществляется загрузка с сервера DLL-библиотеки с ее дальнейшим запуском с помощью команды «rundll32.exe <dll-файл> <аргументы>»

Рисунок 11 – Обработка команды запуска DLL-библиотеки

Рисунок 11 – Обработка команды запуска DLL-библиотеки
  • Данный код вызывает выполнение переданной с сервера команды в CMD-интерфейсе Windows. Результат выполнения отправляется на сервер.

Рисунок 12 – Обработка команды выполнения CMD

Рисунок 12 – Обработка команды выполнения CMD
  • При получении HTTP-ответа с таким статусом происходит выполнение программы, находящейся по переданному в ответе пути через интерфейс Windows Script Host.

Рисунок 13 – Обработка команды выполнения JS в Windows

Рисунок 13 – Обработка команды выполнения JS в Windows
Рисунок 14 – Выполнение JS в Windows

Рисунок 14 – Выполнение JS в Windows
  • Получение HTTP-ответа с сервера с таким статус-кодом вызывает запуск переданного в теле ответа js-скрипта через встроенную JS-оболочку Windows, представленную утилитой wscript.exe.

Рисунок 15 – Выполнение JS-скрипта в Windows с передачей с сервера

Рисунок 15 – Выполнение JS-скрипта в Windows с передачей с сервера
  • Получение данного кода будет вызывать удаленное выполнение JS-кода в рамках выполняемого процесса DarkWatchman.

Рисунок 16 – Выполнение JS в Windows с передачей с сервера

Рисунок 16 – Выполнение JS в Windows с передачей с сервера
  • Получение кода 826 инициирует запуск PS-скрипта на зараженной машине.

Рисунок 17 – Обработка команды запуска PS-скрипта

Рисунок 17 – Обработка команды запуска PS-скрипта
  • Команда инициирует остановку всех процессов DarkWatchman, включая модуль кейлоггера.

Рисунок 18 – Обработка команды остановки DarkWatchman

Рисунок 18 – Обработка команды остановки DarkWatchman
  • Статус HTTP-ответа вызывает запуск процедуры самоудаления DarkWatchman, сопровождающуюся очисткой логов, истории браузера и удалением собственного файла.

Рисунок 19 – Обработка команды самоудаления DarkWatchman

Рисунок 19 – Обработка команды самоудаления DarkWatchman
  • Команда, вызываемая получением такого статус-кода HTTP-ответа сервера, производит загрузку файла в файловую систему зараженного компьютера. Если файл существует, он перезаписывается переданными данными.

Рисунок 20 – Обработка команды загрузки файла на ПК

Рисунок 20 – Обработка команды загрузки файла на ПК
  • Получение такого HTTP-кода вызывает команду настройки таймаута, отвечающего за частоту обращения зараженного компьютера к вредоносному серверу.

Рисунок 21 – Обработка команды настройки таймаута

Рисунок 21 – Обработка команды настройки таймаута
  • Команда меняет управляющий сервер на переданный в теле ответа. Смена происходит после предварительного тестирования доступности, что является еще одним механизмом поддержания непрерывного соединения ВПО с управляющим сервером злоумышленников.

Рисунок 22 – Обработка команды смены управляющего URL

Рисунок 22 – Обработка команды смены управляющего URL
  • Данная команда позволяет производить самообновление DarkWatchman, перезаписывая его на диске переданной версией и меняя задачу автозапуска.

Рисунок 23 – Обработка команды обновления DarkWatchman

Рисунок 23 – Обработка команды обновления DarkWatchman
  • Получение такого кода выполняет обновление кейлоггера. При обновлении используются методы, отсутствующие в теле DarkWatchman, что может свидетельствовать об устаревании данного механизма обновления кейлоггера.

Рисунок 24 – Обработка команды обновления кейлоггера

Рисунок 24 – Обработка команды обновления кейлоггера
  • Включение задачи на автозапуск DarkWatchman при перезапуске устройства.

Рисунок 25 – Автозапуск DarkWatchman

Рисунок 25 – Автозапуск DarkWatchman
  • 839 и 840. Данные статус-коды сервера вызывают рефлективную загрузку исполняемого файла с сервера с его передачей в реестр Windows по пути «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM\\<UID> + f64/f32»

Рисунок 26 – Обработка команды рефлективной загрузки исполняемого файла

Рисунок 26 – Обработка команды рефлективной загрузки исполняемого файла
  • Данный статус-код сервера вызывают рефлективную загрузку Powershell-скрипта с сервера с его передачей в реестр Windows по пути «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM\\<UID> + g»

Рисунок 27 – Обработка команды рефлективной загрузки PS-скрипта

Рисунок 27 – Обработка команды рефлективной загрузки PS-скрипта
  • При получении HTTP-ответа с сервера со статусом 842 производится перезагрузка модуля кейлоггера.

Рисунок 28 – Перезагрузка модуля кейлоггера

Рисунок 28 – Перезагрузка модуля кейлоггера
  • При получении HTTP-ответа с сервера со статусом 843 производится перезагрузка Darkwatchman.

Рисунок 29 – Перезагрузка DarkWatchman

Рисунок 29 – Перезагрузка DarkWatchman

Таким образом, общая роль DarkWatchman в рамках действий злоумышленника – произвести первичное проникновение на устройство пользователя, совершить сбор данных для определения перспективы атаки и дать возможность установить ВПО, наиболее удобное злоумышленникам в зависимости от конкретных условий для совершения атаки.

Описание работы модуля кейлоггера

Модуль кейлоггера реализован на базе PS-скрипта, собирающего и запускающего исполняемый код на языке C#. Сборка осуществляется из переданной строки исходного кода с последующим запуском инициализационного метода. В качестве одного из параметров инициализационного метода передается Powershell-функция iex(), позволяющая выполнять PS-команды.

В рамках своей работы модуль использует несколько записей реестра для хранения собранных данных или их получения и передачи между собой и запущенным DarkWatchman. Записи реестра создаются в разделе «HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM» с именами, генерируемыми из сгенерированного ранее идентификатора, хранимого в переменной окружения «wdBXvFRv».

Рисунок 30 – Код инициализации модуля кейлоггера

Рисунок 30 – Код инициализации модуля кейлоггера
Рисунок 31 – Инициализация таймера

Рисунок 31 – Инициализация таймера

В дальнейшем производится запуск кейлоггера путем установки хука (механизма перехвата системных вызовов или событий в операционной системе) на события ввода клавиатуры с помощью метода WinAPI SetWindowsHookEx.

Рисунок 32 – Установка хука для перехвата клавиатурных нажатий

Рисунок 32 – Установка хука для перехвата клавиатурных нажатий

Обработка перехваченных событий осуществляется с помощью метода HandleKeyboard. В рамках его выполнения игнорируется нажатие ряда служебных клавиш, например Esc или Tab. Другие же клавиши обрабатываются в отдельном порядке, а именно Backspace и Delete. Перехваченные нажатия клавиш логируются в запись реестра HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/DWM/<uid> + a.

Рисунок 33 – Обработчик клавиатурных нажатий

Рисунок 33 – Обработчик клавиатурных нажатий
Рисунок 34 – Система логирования в реестр ОС

Рисунок 34 – Система логирования в реестр ОС

Возвращаясь к функции инициализации, можно заметить запуск таймера, каждую секунду обращающуюся к методу dg. Рассматривая этот метод, можно заметить, что модуль инициирует запуск дополнительного функционала, а именно:

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

Рисунок 35 – Мониторинг буфера обмена

Рисунок 35 – Мониторинг буфера обмена
  • Запуск проверки наличия смарт-карт, подключенных к зараженному компьютеру. ВПО анализирует перечень смарт-карт и выгружает их список в запись реестра HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/DWM/<uid> + d. Данный функционал необходим для того, чтобы преступники могли отслеживать подключение к компьютеру криптографического токена, наличие которого необходимо злоумышленникам для проведения несанкционированных операций.

Рисунок 36 – Проверка наличия криптографического токена

Рисунок 36 – Проверка наличия криптографического токена
  • Запуск исполняемого файла, побайтово хранимого в одном из параметров реестра по адресу HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/DWM/<uid> + f<32/64>. ВПО производит расшифровку файла и проверку его сигнатуры «MD» на предмет корректной расшифровки. Расшифрованный файл запускается в отдельном потоке, а результат попытки запуска записывается в запись реестра HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/DWM/<uid> + r.

Рисунок 37 – Рефлективное исполнение кода из записи в реестре ОС

Рисунок 37 – Рефлективное исполнение кода из записи в реестре ОС
  • Запуск PowerShell-команды. Как упомянуто ранее , одним из аргументов, переданных в инициализационный скрипт, была PS-команда iex(), способная производить выполнение переданных в нее Powershell-команд. Данная функция используется в методе ProcessRegistryCommand, где команда на исполнение передается в записи реестра HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/DWM/<uid> + r.

Рисунок 38 – Выполнение PS-кода

Рисунок 38 – Выполнение PS-кода

Таким образом, модуль кейлоггера используется не только для перехвата клавиш, но и для непрерывного мониторинга буфера обмена, наличия криптографических токенов и, кроме того, является вспомогательным инструментом для функционала подгрузки дополнительного ВПО в рамках взаимодействия с экземпляром DarkWatchman.

Описание работы HVNC-RAT

Как уже было упомянуто, цель DarkWatchman и модуля кейлоггера – собрать базовую информацию, проанализировав которую, злоумышленники выбирают средство удаленного доступа для использования непосредственно при атаке.

В одном из кейсов нам удалось получить RAT, который был загружен и запущен на устройстве жертвы на втором этапе атаки. Данное ВПО – DLL-библиотека, которая запускается с помощью rundll32.exe – встроенной утилиты по запуску DLL-библиотеки. Обнаруженный RAT реализует HVNC-интерфейс взаимодействия с зараженным ПК.

HVNC (Hidden Virtual Network Computing) – это класс вредоносных программ, которые позволяют создавать отдельный виртуальный рабочий стол. Он может быть использован для управления зараженным ПК точно так же, как и обычный при использовании ПО удаленного доступа, но в данном случае виртуальный рабочий стол не будет заметен для пользователя.

Базовое взаимодействие сервер-клиент

HVNC-RAT поддерживает набор управляющих команд, в рамках которых выполняет взаимодействие с сервером по протоколу TCP.

ВПО поддерживает следующие команды:

1. S2C_CTRL_CMD_START_HVNC_SESSION – эта команда обеспечивает старт HVNC-сессии, путем вызова функции MainThread, запускаемой в отдельном потоке. Данный поток предназначен для обеспечения обработки команд с сервера уже в контексте HVNC-сессии, описание механизма работы которой будет рассмотрено отдельно.

Рисунок 39 – Команда S2C_CTRL_CMD_START_HVNC_SESSION

Рисунок 39 – Команда S2C_CTRL_CMD_START_HVNC_SESSION

2. S2C_CTRL_CMD_START_DEFAULT_VIEW – данная команда обеспечивает запуск отдельного потока, принимающего и передающего команды с сервера и данные с зараженного устройства для отправки на обработку в другой, ранее упомянутый, поток обработки команд.

Рисунок 40 – Команда S2C_CTRL_CMD_START_DEFAULT_VIEW

Рисунок 40 – Команда S2C_CTRL_CMD_START_DEFAULT_VIEW

3. S2C_CTRL_CMD_EXIT – эта команда осуществляет завершение сессии с сервером, прерывая обмен сообщениями с сервером.

Рисунок 41 – Команда S2C_CTRL_CMD_EXIT

Рисунок 41 – Команда S2C_CTRL_CMD_EXIT

4. S2C_CTRL_CMD_UPLOAD — команда позволяет злоумышленнику отправить на устройство с установленным RAT файл с сервера и сохранить в указанную папку.

Рисунок 42 – Команда S2C_CTRL_CMD_UPLOAD

Рисунок 42 – Команда S2C_CTRL_CMD_UPLOAD

5. S2C_CTRL_CMD_UPLOAD_EXECUTE – команда обладает функционалом, схожим с предыдущей. Она позволяет загрузить с сервера на зараженное устройство файл и выполнить его.

Рисунок 43 – Команда S2C_CTRL_CMD_UPLOAD_EXECUTE

Рисунок 43 – Команда S2C_CTRL_CMD_UPLOAD_EXECUTE
Рисунок 44 – Реализация загрузки и выполнения файла

Рисунок 44 – Реализация загрузки и выполнения файла

6. S2C_CTRL_CMD_UPLOAD_RUN_DLL – эта команда также выполняет функцию доставки и запуска исполняемых файлов, представляющих собой DLL-библиотеки. Их выполнения производится с помощью утилиты rundll32.exe.

Рисунок 45 – Команда S2C_CTRL_CMD_UPLOAD_RUN_DLL

Рисунок 45 – Команда S2C_CTRL_CMD_UPLOAD_RUN_DLL
Рисунок 46 – Запуск rundll32

Рисунок 46 – Запуск rundll32

7. S2C_CTRL_CMD_TERMINAL – команда предназначена для выполнения CMD-команд в терминале с последующей передачей результата выполнения на сервер. Выполнение переданной команды производится с помощью формирования полезной нагрузки CMD: cmd /c (<команда с сервера>) > <временный файл> 2>&1

Результат выполнения для отправки на сервер извлекается из временного файла, который после этого удаляется.

Рисунок 47 – Команда S2C_CTRL_CMD_TERMINAL

Рисунок 47 – Команда S2C_CTRL_CMD_TERMINAL
Рисунок 48 – Исполнение CMD-команды

Рисунок 48 – Исполнение CMD-команды

8. S2C_CTRL_CMD_UNINSTALL

Команда инициирует самоудаление HVNC-RAT

9. S2C_HVNC_CMD_NEW_CLIENT_LOG. Данная команда создает файл для логирования действий RAT. На протяжении всего исполнения ВПО записывается большая часть действий, совершаемых RAT.

Рисунок 49 – Команда S2C_HVNC_CMD_NEW_CLIENT_LOG

Рисунок 49 – Команда S2C_HVNC_CMD_NEW_CLIENT_LOG

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

Рисунок 50 – Команда S2C_HVNC_CMD_GET_CLIENT_LOG

Рисунок 50 – Команда S2C_HVNC_CMD_GET_CLIENT_LOG

11. S2C_CTRL_CMD_SET_SERVER

Используя эту команду, злоумышленники могут сменить управляющий сервер RAT.

12. S2C_CTRL_CMD_UPLOAD_MODULE

Команда позволяет загрузить с сервера DLL-библиотеку и выполнить ее с помощью rundll32.exe

При получении данного кода команды RAT осуществляет проверку, какие расширения для браузеров были установлены

Управление HVNC

В отдельном порядке реализован интерфейс обработки HVNC-команд – его обработчиком является функция HandleHVNCServerMessage, роль которой – правильно соотнести полученный целочисленный номер управляющей команды с реализацией ее функционала. Рассмотрим отдельно каждую из команд.

  • S2C_HVNC_CMD_CUSTOM2 – вероятно, в названии данной команды произведена опечатка, поскольку ее название не коррелирует с выполняемой функцией. При ее получении вредоносным исполняемым файлом осуществляется завершение работы окна программы по определенным координатам.

Рисунок 51 – HVNC-команда завершения окна

Рисунок 51 – HVNC-команда завершения окна
  • S2C_HVNC_CMD_CUSTOM2 – команда переключает режим выбора окна получателя при клике на место экрана. В одном режиме получателем становится самое верхнее вложенное окно, в другом – корневое окно, а вложенные игнорируются.

Рисунок 52 – HVNC-команда S2C_HVNC_CMD_CUSTOM2

Рисунок 52 – HVNC-команда S2C_HVNC_CMD_CUSTOM2
  • 0x7e9 — S2C_HVNC_CMD_CHANGE_KL. Получение этой команды инициирует смену раскладки клавиатуры в открытом HVNC-интерфейсе.

Рисунок 53 – HVNC-команда S2C_HVNC_CMD_CHANGE_KL

Рисунок 53 – HVNC-команда S2C_HVNC_CMD_CHANGE_KL
  • 0xbd0 – BrowserHvncCommand. Получение данной команды инициирует запуск интерфейса обработки команд браузеров, который будет рассмотрен в дальнейшем отдельно.

  • 0x786 – HvncCmdCustom. Получение данного сообщения с сервера запускает сбор данных о текущем окне, на которое наведена мышь оператора ВПО в HVNC-интерфейсе. Собираются имя класса окна, его заголовок, идентификатор процесса окна, а также полный путь к его исполняемому файлу.

Рисунок 54 – HVNC-команда HvncCmdCustom

Рисунок 54 – HVNC-команда HvncCmdCustom
  • 0x5af – S2C_HVNC_CMD_START_SHELL. Команда обеспечивает старт работы удаленного рабочего стола, используя exe в качестве графической оболочки, отрисовывающей рабочий стол HVNC. С помощью данной методики и становится возможным эмуляция нажатий мышью на экране или же взаимодействие с окнами программ.

Рисунок 55 – HVNC-команда S2C_HVNC_CMD_START_SHELL

Рисунок 55 – HVNC-команда S2C_HVNC_CMD_START_SHELL
  • 0x5b0 – S2C_HVNC_CMD_START_RUN. Команда обеспечивает открытие на управляемом устройстве окна «Выполнить». Тем самым у злоумышленника открывается возможность удобного запуска программ на устройстве.

Рисунок 56 – HVNC-команда S2C_HVNC_CMD_START_RUN

Рисунок 56 – HVNC-команда S2C_HVNC_CMD_START_RUN
  • 0x5b1 – S2C_HVNC_CMD_START_CMD. Команда обеспечивает запуск на устройстве окна командной строки, что позволяет злоумышленнику выполнять CMD-сценарии. Данная команда дублирует уже встречавшийся ранее функционал, но позволяет выполнять CMD-команды в рамках HVNC-сессии.

Рисунок 57 – HVNC-команда S2C_HVNC_CMD_START_CMD

Рисунок 57 – HVNC-команда S2C_HVNC_CMD_START_CMD
  • 0x5c2 – S2C_HVNC_CMD_RESTART_SESSION. Команда отвечает за перезапуск HVNC-сессии.

  • 0x5c3 – S2C_HVNC_CMD_END_SESSION. Команда завершает как сессию HVNC, так и соответствующий поток.

  • 0x5c4 — S2C_HVNC_CMD_QUIT. При получении команды RAT отправляет 4 нулевых байта на сервер (вероятно, управляющее значение для сервера, свидетельствующее о завершении окна CMD).

Рисунок 58 – HVNC-команды завершения сессии, потока или CMD-сессии

Рисунок 58 – HVNC-команды завершения сессии, потока или CMD-сессии
  • 0x5c5(S2C_HVNC_CMD_SET_CLIPBOARD), 0x5c6(S2C_HVNC_CMD_GET_CLIPBOARD) и 0x5c7(S2C_HVNC_CMD_EMPTY_CLIPBOARD) –   это команды, работающие с буфером обмена, а именно позволяющие подменять его значение, копировать или же очищать. Такой функционал может быть использован для кражи и подмены чувствительных данных, а также для обеспечения большего удобства для оператора ВПО при работе с интерфейсом удаленного управления.

  • 0x5c8 – S2C_HVNC_CMD_TERMINAL. Команда дублирует уже ранее описанный функционал выполнения BAT-сценариев, однако делает это без запуска окна CMD непосредственно в скрытом VNC-интерфейсе. Механика выполнения заключается в запуске процесса:

    cmd /c (<Команда с сервера>) > «<temp_file.txt>» 2>&1

    Затем результат выполнения, сохраненный во временный файл отправляется на сервер, а сам файл удаляется.

  • 0x5cc(S2C_HVNC_CMD_PREVIOUS_MONITOR), 0x5cd(S2C_HVNC_CMD_NEXT_MONITOR) и 0x5ce(S2C_HVNC_CMD_SET_DPI) – это команды управления графическим отображением интерфейса удаленного управления. Первые две позволяют выбрать монитор, изображение которого необходимо отобразить в HVNC-интерфейсе, а третья – изменять его масштаб экрана.

Рисунок 59 – HVNC-команды управления мониторами устройства

Рисунок 59 – HVNC-команды управления мониторами устройства

Управление браузерами

Поскольку основная функция данного RAT – захват управления над устройством для выполнения браузерной сессии в кабинете дистанционного обслуживания банка, отдельное внимание уделено возможностям взаимодействия с браузерами на зараженном устройстве. Так, функция BrowserHvncCommand, вызываемая одноименной HVNC-командой, производит обработку команды на открытие браузера, где в зависимости от переданного параметра будет произведена попытка открыть конкретный браузер.

Рисунок 60 – Запуск браузеров по команде

Рисунок 60 – Запуск браузеров по команде

Для запуска доступны:

  • Chrome;

  • Brave;

  • Edge;

  • Yandex;

  • Firefox.

В зависимости от переданного с сервера числового значения вызывается та или иная функция, отвечающая за инициализацию работы конкретного браузера. Команды интерфейса управления браузерами:

  • 1. BROWSER_CHROME

  • 2. BROWSER_EDGE

  • 3. BROWSER_FF

  • 4. BROWSER_BRAVE

  • 7. YANDEX_BROWSER_SUPPORT

Запуск каждого из браузеров сводится к выполнению нужной CMD-команды. Для Chrome:

chrome.exe —no-sandbox —allow-no-sandbox-job —disable-gpu —use-gl=disabled —disable-audio —aura-no-shadows —user-data-dir=<Папка профиля>

Для Edge:

msedge.exe —no-sandbox —allow-no-sandbox-job —disable-gpu —use-gl=disabled —disable-audio —aura-no-shadows —user-data-dir=<Папка профиля>

Для Brave:

brave.exe —no-sandbox —allow-no-sandbox-job —disable-gpu —use-gl=disabled —disable-audio —aura-no-shadows —user-data-dir=<Папка профиля>

Для Yandex:

browser.exe —no-sandbox —allow-no-sandbox-job —disable-gpu —use-gl=disabled —disable-audio —aura-no-shadows —user-data-dir=<Папка профиля>

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

  • Создания нового профиля из копии, когда подразумевается работа в изолированном профиле со скопированными данными из профиля пользователя зараженного устройства. В таком случае сохраненные пароли, активные сессии и другие пользовательские данные становятся доступны для использования злоумышленниками в открытом браузере. При этом действия злоумышленника из профиля пользователя будут незаметны.

  • Создание пустого профиля браузера.

  • Работа в профиле пользователя. Запуск браузера в этом режиме закрывает все активные процессы браузера, а затем работает с пользовательским профилем жертвы.

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

Индикаторы компрометации — в блоге на сайте F6.

ссылка на оригинал статьи https://habr.com/ru/articles/1051938/