Исследование

Один за всех и все за одного: совместные атаки 4BID, BO Team и Red Likho

Введение

В последние месяцы мы наблюдаем растущую тенденцию к одновременным атакам нескольких хактивистских групп на одни и те же организации. Подобные кампании уже не являются чем-то необычным и значительно усложняют атрибуцию, поскольку становится сложно определить тактики, методы и процедуры (TTP) отдельных групп.

В рамках продолжающегося исследования ландшафта киберугроз, нацеленных на организации в Российской Федерации, мы проанализировали серию кампаний, о которых публично заявляла группа 4BID, позиционирующая себя как проукраинская. В организациях, затронутых этими кампаниями, мы также обнаружили свидетельства активности, связанной с двумя другими известными хактивистскими группами: BO Team и Red Likho. В частности, в некоторых случаях атакованная 4BID инфраструктура также была заражена бэкдором GoRed, связанным с Red Likho, и ZeronetKit, связанным с BO Team. Обе группы известны проведением масштабных операций против российских целей.

Группа 4BID заявила о себе в начале 2025 года. Ее основная публичная активность ведется в Telegram-канале. Злоумышленники атакуют российские организации из различных отраслей, включая производство, здравоохранение и государственный сектор. Изначально целями были небольшие региональные компании, однако впоследствии группа переключилась на более крупные предприятия.

Тот факт, что в инфраструктуре целей присутствуют инструменты и вредоносное ПО нескольких групп: программа-вымогатель 4BID, бэкдоры BO Team и Red Likho, а также уникальные компоненты, ранее не встречавшиеся в других кампаниях, свидетельствует о том, что разные группы атаковали их параллельно или совместно для достижения общих целей. В этом отчете мы подробно рассмотрим активность 4BID и ее пересечения с другими хактивистами.

Технические детали

Новые файлы шифровальщиков

Одной из самых интересных находок стал пакет из нескольких файлов, каждый из которых отвечает за определенные задачи и запускает следующий. Первым выполнялся PowerShell-скрипт Edgeupdate.ps1. Этот скрипт не встречался в публичных репозиториях вредоносных программ и не был замечен в других атаках, что позволяет предположить, что это специализированный инструмент, вероятно, разработанный для конкретной кампании. Он выполняет ряд скрытых деструктивных операций, нацеленных на защиту от обнаружения и закрепление в системе.

На первом этапе настраивается ведение журнала, что упрощает работу с ошибками и последующее устранение неполадок. Также в скрипте присутствует блок проверки времени. Если указанная в коде дата больше текущей (то есть еще не наступила), в журнал записывается сообщение «Выход из скрипта из-за проверки даты», а выполнение скрипта прерывается командой exit. Этот механизм позволяет скрипту работать по принципу логической бомбы.

Следующий шаг — блокировка устройств ввода. Скрипт ищет их с помощью команды Get-PnpDevice -FriendlyName 'HIDKeyboardDevice'. Для каждого найденного устройства вызывается команда, которая отключает его без запроса подтверждения. После этого аналогичные действия — поиск и отключение — выполняются для классов Keyboard и Mouse (клавиатуры и мыши).

Отключив устройства ввода, скрипт создает пользователя с заданными именем и паролем, присваивает параметрам PasswordExpires и Disabled значение FALSE и добавляет пользователя в группу локальных администраторов. После этого настраивается автоматический вход в Windows под созданным пользователем с регистрацией имени, пароля и домена в реестре.

На следующем этапе скрипт настраивает хост таким образом, чтобы после перезагрузки компьютер загрузился в безопасном режиме с поддержкой сети. Затем он копирует библиотеку NPLogon.dll в папку System32. После этого создается сетевой провайдер для выполнения библиотеки в безопасном режиме, а также служба для ее прямого запуска.

Далее скрипт отключает протокол ms-contact-support, который Windows использует для открытия приложения «Связаться со службой поддержки». В результате при попытке вызвать функцию «Служба поддержки Windows» открывается и тут же закрывается cmd.exe.

На последнем шаге скрипт удаляет следы своей работы и перезагружает хост.

После перезагрузки запускается библиотека NPLogon.dll, подготовленная скриптом. Она создает исполняемый файл nplsvc.exe и соответствующую службу NPLogon Service, а затем запускает файл. Nplsvc.exe демонстрирует ложное обновление системы, которое является своего рода заглушкой, призванной усыпить бдительность пользователя, пока дальнейшая полезная нагрузка выполняется в фоновом режиме.

Ложное обновление

Ложное обновление

Кроме того, NPLogon.dll извлекает данные из файла update.dat и на их основе создает новый файл. Мы предполагаем, что именно этот файл выполняет основную полезную нагрузку. К сожалению, нам не удалось получить файл update.dat для анализа. Однако на основе анализа других обнаруженных в системе жертвы артефактов мы можем утверждать, что это программа-вымогатель Blackout Locker. В зависимости от версии, эта программа-вымогатель реализует различные схемы шифрования: некоторые варианты используют простой цикл XOR, другие — шифр AES в режиме GCM.

Стоит отметить, что вредоносные файлы NPLogon.dll и nplsvc.exe, а также связанные с ними файлы с аналогичной функциональностью ранее были обнаружены в инфраструктурах нескольких жертв. О компрометации одной из них публично заявила BO Team, а другой — 4BID.

Blackout Locker

В атаках 4BID мы обнаружили образец новой программы-вымогателя, который назвали Blackout Locker. Он написан на C/C++ и, несмотря на сходство имени, не имеет ничего общего с шифровальщиком Blackout, активным в период с 2020 по 2024 год и написанным на .NET.

Blackout Locker способен массово завершать процессы, которые могут помешать шифрованию данных:

  1. Функция KillProcesses принимает в качестве аргумента зашитую в коде строку со списком целевых подстрок (список процессов).
  2. Используя WinAPI CreateToolhelp32Snapshot, троянец получает список всех запущенных процессов в системе.
  3. С помощью WinAPI Process32First и Process32Next выполняется обход запущенных процессов.
  4. Для каждого процесса имя преобразуется в нижний регистр.
  5. Если в имени процесса содержится одна из подстрок из зашитого в коде троянца списка, он завершается вызовом TerminateProcess.

Список процессов, которые завершает Blackout Locker.

Функция KillProcesses в Blackout Locker

Функция KillProcesses в Blackout Locker

Помимо этого, вредоносное ПО имеет функцию массового завершения работы сервисов, которые могут ему помешать:

  1. Функция KillServices с помощью WinAPI OpenSCManagerA открывает доступ к локальному менеджеру служб Windows с параметром 0xf003f — MAXIMUM_ALLOWED (полный доступ).
  2. Функция принимает в качестве аргумента зашитый в коде троянца список сервисов, из которого берет одну строку на итерацию и выполняет следующие функции:
    1. OpenServiceA(hSCManager, lpServiceName, 0x10024) — открывает службу с правами SERVICE_STOP | DELETE (0x10024).
    2. ControlService(rax, 1, &lpServiceStatus) — отправляет службе команду STOP (код 1).
    3. DeleteService(rax) — удаляет службу из системы.
    4. CloseServiceHandle(rax) — закрывает дескриптор сервиса.
  3. После обработки всех сервисов дескриптор менеджера закрывается.

Список сервисов, подлежащих завершению.

Функция KillServices шифровальщика Blackout Locker

Функция KillServices шифровальщика Blackout Locker

Шифровальщик также содержит функцию перезаписи главной загрузочной записи (MBR). Она открывает первый физический диск (PhysicalDrive0) с правами записи. Затем создается новый буфер размером 512 байт, равный сектору MBR. Первые 0x12 байт заполняются машинным кодом (B8 00 B8 BB…) — это начало загрузчика, а чуть дальше записывается строка System Locke. После этого весь подготовленный сектор размером 512 байт записывается непосредственно в нулевой сектор диска (MBR) и полностью заменяет исходную главную загрузочную запись.

Функция replace_mbr шифровальщика Blackout Locker

Функция replace_mbr шифровальщика Blackout Locker

Однако злоумышленники не добавили в свою версию MBR байты 0x55 0xAA, которые должны завершать этот сектор. Без них система сочтет сектор недопустимым и не будет загружаться с него, соответственно, процедура перезаписи MBR в такой реализации просто ломает систему.

Функция replace_mbr шифровальщика Blackout Locker

Функция replace_mbr шифровальщика Blackout Locker

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

  • Application
  • Security
  • System

Далее в цикле для каждого журнала выполняется ряд действий:

  1. OpenEventLogA(NULL, name) — открытие указанного журнала.
  2. ClearEventLogA(hEventLog, NULL) — полная очистка этого журнала событий.
  3. CloseEventLog(hEventLog) — закрытие дескриптора.
Функция DeleteEventsLogs шифровальщика Blackout Locker

Функция DeleteEventsLogs шифровальщика Blackout Locker

Исполняемый файл содержит оригинальные (не обфусцированные) имена функций. В частности, функцию шифрования содержимого файла злоумышленники назвали LockBitEncryptFile. Это ложный флаг: в действительности троянец не имеет ничего общего с настоящим LockBit.

Функция LockBitEncryptFile принимает следующие входные параметры:

  • путь к файлу для обработки;
  • 32-байтовый ключ шифрования (возвращается функцией generate_fernet_key(), но, несмотря на название, ключ не генерируется, а жестко прописан в коде троянца);
  • флаг (логическое значение), указывающий, следует ли ограничивать количество шифруемых байтов. Если флаг установлен, шифруется не более 1024 байтов (0x400), в противном случае — файл целиком;
  • дополнительный параметр функции шифрования EncryptData(), который подвергается операции XOR с начальным значением (seed), переданным в srand().
Функция LockBitEncryptFile шифровальщика Blackout Locker

Функция LockBitEncryptFile шифровальщика Blackout Locker

Функция EncryptData представляет собой симметричное XOR-шифрование с ключом и псевдослучайной генерацией:

  • Данные шифруются побайтно с использованием XOR.
  • Ключ составляется на основе следующей комбинации:
    • байты строки arg3 (циклически повторяются);
    • псевдослучайная последовательность из функции rand().

Входные параметры функции EncryptData:

  • данные (буфер), подлежащие шифрованию/дешифрованию;
  • длина данных;
  • 32-байтовый ключ;
  • дополнительный параметр, с которым значение seed, передаваемое функции srand(), подвергается операции XOR.

Поскольку код троянца не предусматривает сохранение последовательности, выдаваемой функцией rand(), мы с высокой степенью уверенности предполагаем, что авторы планировали использовать эту программу как вайпер, то есть троянец для уничтожения данных. Расшифровывать данные, не зная этой последовательности, невозможно. Хотя отметим, что используется нестабильный генератор псевдослучайных чисел, что делает нестабильной всю схему шифрования. Это может указывать на то, что создатели шифровальщика в целом не очень хорошо разбираются в криптографии.

Функция EncryptData шифровальщика Blackout Locker

Функция EncryptData шифровальщика Blackout Locker

Функция encrypt_file запускает процесс шифрования файлов и присваивает им расширение .blackout. При шифровании Blackout Locker игнорирует файлы из белого списка.

Также не шифруются файлы со следующими расширениями.

Функция encrypt_file шифровальщика Blackout Locker

Функция encrypt_file шифровальщика Blackout Locker

Перед запуском шифрования Blackout Locker выполняет ряд деструктивных действий, направленных на защиту от обнаружения и лишение пользователей доступа к системе. В частности, зловред блокирует диски и папки при помощи функции RestrictAccessToDrivesAndFolders. Эта функция:

  • Получает токен процесса текущего пользователя.
  • Включает привилегию SeTakeOwnershipPrivilege, чтобы иметь возможность менять владельца файлов и папок.
  • Проходится по всем дискам (буквы A: — Z:) и изменяет их DACL, запрещая доступ обычным пользователям.
  • Применяет аналогичные ограничения ко всем папкам на дисках.
Функция RestrictAccessToDrivesAndFolders шифровальщика Blackout Locker

Функция RestrictAccessToDrivesAndFolders шифровальщика Blackout Locker

Другие действия, выполняющиеся перед началом шифрования файлов:

  • Отключение модулей Microsoft Defender
  • Отключение всех пользователей, кроме стандартных
  • Отключение интерпретатора командной строки путем установки соответствующего флага в следующей ветке реестра
  • Включение DisableRegistryTools посредством установки соответствующего флага в следующей ветке реестра
Завершив блокировку дисков и отключение ненужных ему функций, Blackout Locker шифрует файлы и выводит пользователю следующее сообщение.

Записка о выкупе шифровальщика Blackout Locker

Записка о выкупе шифровальщика Blackout Locker

В одной из последних кампаний мы обнаружили обновленный образец вымогателя Blackout Locker. Основным отличием этой версии является переработанная криптография: файлы теперь шифруются с помощью AES-128-GCM. Ключ шифрования жестко прописан в исполняемом файле, а одноразовый код (nonce) рандомизирован и хранится вместе с зашифрованными данными в каждом обрабатываемом файле. В отличие от предыдущей версии, которая была разработана как вайпер, этот образец реализует криптографическую схему, позволяющую расшифровать данные при наличии ключа. Кроме того, этот образец не содержит кода для перезаписи MBR, что также подтверждает предположение, что он предназначен для использования в качестве обычного шифровальщика, а не вайпера.

Записка обновленной версии шифровальщика Blackout Locker

Записка обновленной версии шифровальщика Blackout Locker

Шифровальщик Babuk

Мы обнаружили вымогатель Babuk у одной из жертв рассматриваемых группировок. Файл шифровальщика имел стандартное имя e_win.exe, характерное для сборок, созданных с помощью оригинального сборщика Babuk, который попал в открытый доступ в 2021 году. В связи с тем, что Babuk широко распространен и присутствует в арсенале как BO Team, так и 4BID, мы не можем однозначно отнести этот образец к какой-либо группе.

Кастомные скрипты

В ходе расследования был обнаружен репозиторий Pastebin с набором из нескольких скриптов, написанных, судя по содержащимся в них учетным данным, для конкретной кампании. На устройство жертвы скрипты загружались с помощью утилиты certutil.exe.

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

Второй скрипт выполняет аналогичные действия, но в отношении продуктов «Лаборатории Касперского».

Последний скрипт предназначен для установки и настройки AnyDesk на компьютере, а также для управления пользователями. На первом этапе проверяется существование указанного в теле скрипта каталога; если каталог не существует, скрипт создает его, загружает исполняемый файл AnyDesk, устанавливает его в скрытом режиме и настраивает автозапуск при старте Windows. После этого устанавливается пароль для удаленного доступа через AnyDesk, создается локальный пользователь с указанным паролем, который добавляется в группу администраторов и скрывается с экрана входа с помощью ключа реестра SpecialAccounts, а также получает идентификатор AnyDesk на устройстве.

Tuoni и CobaltStrike

В ходе расследования одной из кампаний мы обнаружили пропатченные образцы Process Explorer. Некоторые из них загружали Tuoni, а другие — Cobalt Strike. Аналогичные пропатченные образцы использовались в атаках Red Likho и BO Team.
Все образцы Tuoni, которые мы наблюдали, взаимодействовали с одним и тем же сервером C2.

Домен Регистратор
op2a.beemooshka-v1[.]art NameCheap, Inc

Обнаруженные образцы Cobalt Strike обращались к следующим серверам C2.

IP ASN Имя сети Страна Провайдер
82.202.173[.]167 29182 RU-WEBDC-20031006 Россия JSC Datacenter
144.172.112[.]179 ROUTERHOSTING США RouterHosting LLC

Сервер C2 82.202.173[.]167 мы ранее видели в атаках группы Red Likho.

ZeronetKit backdoor

Следующий выявленный образец — бэкдор ZeronetKit, считающийся «фирменным» инструментом BO Team. ZeronetKit — это бэкдор на языке Go. Его название происходит от строки ZeroNet by Vegas — мы находили образцы ранних версий бэкдора с таким именем. ZeronetKit был впервые обнаружен в конце 2024 года. Подробное описание функциональности бэкдора представлено в отдельной статье.

Домен Регистратор
urbantvpn[.]online NameCheap, Inc
wholewell[.]online NameCheap, Inc.

Бэкдор GoRed

У одной из жертв, о которых публично заявила группа 4BID, мы обнаружили бэкдор GoRed, связанный с Red Likho.

Кража учетных данных

T1003.001 OS Credential Dumping: LSASS Memory

В одном из инцидентов мы зафиксировали попытку получения дампа памяти процесса LSASS (Local Security Authority Subsystem Service), который используется злоумышленниками для извлечения учетных данных, с помощью стандартного компонента Windows — библиотеки comsvcs.dll, вызываемой через rundll32.exe.

Также была задокументирована команда, которая изменяет конфигурацию загрузки Windows, включая безопасный режим с загрузкой сетевых драйверов, после чего следует немедленная перезагрузка системы.

В атаках с использованием ZeronetKit злоумышленники изменяли его метаданные.

T1003.003 OS Credential Dumping: NTDS

В одном случае злоумышленники использовали утилиту ntdsutil.exe для создания копии базы данных Active Directory (NTDS.dit).

T1003.002 OS Credential Dumping: Security Account Manager

Злоумышленники экспортировали раздел реестра Security в файл.

Закрепление в системе, выполнение и обход обнаружения

T1112 ModifyRegistry

Атакующие отключали для RDP аутентификацию на уровне сети (NLA) путем изменения значения параметра реестра UserAuthentication в разделе RDP-Tcp. Это снижает требования к аутентификации для сеансов RDP, упрощая злоумышленникам получение доступа путем повторного использования учетных данных или подбора пароля.

T1562 ImpairDefenses

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

T1546.008 Event Triggered Execution: Accessibility Features

Злоумышленники использовали ключи реестра Image File Execution Options (IFEO), чтобы назначить cmd.exe в качестве отладчика для файла utilman.exe, отвечающего за специальные возможности. Это позволяет получить привилегии SYSTEM при запуске приложения Ease of Access с экрана входа.

T1053.005 Scheduled Task/Job: Scheduled Task

Злоумышленники использовали групповые политики (GPO) и запланированные задания для распространения Babuk по всему домену. Запланированные задания копируют архив вредоносной программы (e_win.zip) с сетевого ресурса, распаковывают локально и запускают через PowerShell.

T1070.001 Indicator Removal: Clear Windows Event Logs

Для обхода защиты злоумышленники очищали журналы событий при помощи встроенной утилиты wevtutil.exe, предназначенной для управления журналами и их источниками.

Сотрудничество с другими группами

В апреле 2025 года в комментарии к одной из публикаций в Telegram-канале BO Team участник 4BID оставил предложение о сотрудничестве. В одной из недавних кампаний 4BID мы обнаружили образцы бэкдора ZeronetKit, ранее применявшегося исключительно в операциях BO Team и считавшегося их инструментом. Это говорит о том, что 4BID, возможно, действует не полностью автономно или использует инструменты и ресурсы других групп.

Цели

Все рассмотренные в этой статье кампании были нацелены на организации в Российской Федерации из различных секторов экономики, включая производство, медицину и государственный сектор.

Атрибуция

Для атрибуции анализируемой активности обратимся к следующим ключевым наблюдениям.

  • Использование вредоносного ПО. Мы исследовали следующие файлы, имеющие отношение к описанным в статье атакам:
    • Вредоносные файлы NPLogon.dll, nplsvc.exe и подобные им, обладающие идентичной функциональностью, которые были обнаружены в инфраструктурах нескольких жертв. О компрометации одной из них публично заявила BO Team, а другой — 4BID.
    • Образец программы-вымогателя Blackout Locker, который оставляет записку с требованием выкупа, содержащую адрес электронной почты 4BID. На сегодняшний день мы не наблюдали подобных образцов программ-вымогателей в кампаниях других злоумышленников.
    • Бэкдор ZeronetKit, ранее наблюдавшийся исключительно в операциях BO Team.
    • Образцы бэкдора GoRed, которые были обнаружены в инфраструктуре, зараженной образцами из предыдущих пунктов.
  • Внутрикластерное сотрудничество: все описанные показатели свидетельствуют о том, что несколько групп действовали в инфраструктуре жертв параллельно или скоординированно для достижения схожих целей.
  • Публичные заявления в Telegram: группы 4BID и BO Team открыто заявляли в своем Telegram-канале о целях, среди которых были жертвы описанных в статье кампаний.

Заключение

Мы рассмотрели серию киберкампаний, которую отличает тот факт, что одну и ту же жертву одновременно атаковали две или три хактивистские группы. Этот сценарий значительно усложняет атрибуцию, поскольку не позволяет однозначно определить тактики, методы и процедуры (TTP) каждой отдельной группы. Обнаруженный в инцидентах инструментарий указывает на гибридный подход злоумышленников: с одной стороны, они совершают такие деструктивные действия, как шифрование данных, нарушение работы инфраструктуры и публичное раскрытие скомпрометированной информации; с другой стороны, реализуют и более сложные операции, включая кибершпионаж и использование настраиваемых бэкдоров. Текущая тенденция указывает на продолжающуюся эволюцию хактивизма: злоумышленники становятся более гибкими, интегрируя готовые решения и разрабатывая собственные инструменты, при этом все чаще используют ресурсы совместно. Это увеличивает вероятность проведения более частых, масштабных и технически сложных кампаний.

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

Обратите внимание: сетевые адреса, приведенные в настоящем разделе, являются действительными на момент публикации, однако могут оказаться неактуальными в перспективе. Больше индикаторов компрометации доступно подписчикам Kaspersky Threat Intelligence Portal. Чтобы узнать подробности, свяжитесь с нами по адресу crimewareintel@kaspersky.com.

Образцы Tuoni
F812BDAECDCEC818D015B1A8D1D21C40   procexp.exe
925EEA2692C4D8DEC9B8F1C94A8C8229   systcp.exe
E5B2E603861E8E01B7A03122280F2E90   msdtsr.exe

Образцы Cobalt Strike
EEDA5A1A503233F6DE3EAC3F34CABC2F   mstdpool.exe
5470DD5E57D0060D98891D8F5740E5B2   msbtsc.exe
8B66D1EDA2F1E0A858E0747307552E0B   msdtsc.exe

Образцы ZeronetKit
6FE8943F364F6308C2E46910BFFEFEAF   fontdrv.exe
71612EBCC591B2475D3488E5580DB56A   diagsrv.exe

ADRecon (инструмент разведки домена)
BDC4FD7329E5F5BAA7964B24C61171FD   adrecon.ps1

Образцы шифровальщиков
D528158A6459A71A33E3C05A606B6B33   e_win.exe
0E6578DC4F95565C1426E3F188D36460   NPLogon.dll
32F9C7FB69BB7EE76E19F4BBEE16F4B3   MicrosoftUpdate.ps1
2D85FB64F37E78913C20EE9C886D33BE   blackout.exe
0EFEB6B9699B7FBEBF5E0657A14C7F88   1.exe

Пути к файлам
c:\windows\system32\diagsrv.exe
c:\windows\system32\fontdrv.exe
c:\ps1\adrecon.ps1
c:\veeam\veeam.exe

Домены и IP
op2a.beemooshka-v1[.]art          Tuoni С2
urbantvpn[.]online                ZeronetKit С2
wholewell[.]online                ZeronetKit С2
82.202.173[.]167                  Cobalt Strike С2
144.172.112[.]179                 Cobalt Strike С2

Один за всех и все за одного: совместные атаки 4BID, BO Team и Red Likho

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

 

Отчеты

ToddyCat — ваш скрытый почтовый ассистент. Часть 1

Эксперты «Лаборатории Касперского» разбирают атаки APT ToddyCat через корпоративную электронную почту. Изучаем новую версию TomBerBil, инструменты TCSectorCopy и XstReader, а также способы кражи токенов доступа из Outlook.

Криптоафера группы BlueNoroff: «призрачные» инвестиции и фиктивные рабочие предложения

Эксперты команды GReAT проанализировали кампании GhostCall и GhostHire APT-группы BlueNoroff: несколько цепочек вредоносного ПО для macOS, поддельные клиенты Zoom и Microsoft Teams, а также изображения, улучшенные с помощью ChatGPT.

Mem3nt0 mori – Hacking Team снова с нами!

Исследователи «Лаборатории Касперского» впервые обнаружили шпионское ПО Dante, разработанное Memento Labs (бывшей Hacking Team) в дикой природе и нашли его связь с APT ForumTroll.