В прошлом году мы опубликовали подробный анализ билдера LockBit 3.0, «утекшего» в публичный доступ в 2022 году. Благодаря этой утечке злоумышленники получили возможность создавать собственные модификации зловреда для разных целей. Функции распространения по сети и обхода защиты, которые можно настроить в билдере, повышают эффективность атак, при этом риски существенно возрастают, если у злоумышленников уже есть привилегированные учетные данные в целевой инфраструктуре.
Недавно в одном инциденте мы столкнулись именно с таким сценарием: киберпреступникам удалось заполучить учетные данные администратора. Они собрали свою версию шифровальщика, которая при помощи этих учетных данных могла распространяться по сети и выполнять такие вредоносные действия, как отключение Windows Defender и удаление журналов событий Windows, чтобы зашифровать данные и замести следы.
В этой статье мы снова рассматриваем файлы билдера LockBit 3.0 и анализируем, какими параметрами воспользовались злоумышленники, чтобы максимизировать ущерб. Также мы приводим список профилактических мер, с помощью которых сетевые администраторы могут избежать заражения.
Повторный анализ файлов билдера LockBit 3.0
С появлением билдера LockBit 3.0 стало намного проще создавать пользовательские модификации шифровальщиков. На рисунке ниже представлены файлы, из которых состоит билдер. Как мы видим, keygen.exe отвечает за генерацию открытого и закрытого ключей для шифрования и расшифровки файлов. Затем builder.exe генерирует модифицированную версию зловреда в соответствии с параметрами, заданными в файле config.json.
Весь этот процесс автоматизирован с помощью скрипта Build.bat, который выглядит следующим образом:
1 2 3 4 5 6 7 8 |
IF exist Build (ERASE /F /Q Build\*.*) ELSE (mkdir Build) keygen -path Build -pubkey pub.key -privkey priv.key builder -type dec -privkey Build\priv.key -config config.json -ofile Build\LB3Decryptor.exe builder -type enc -exe -pubkey Build\pub.key -config config.json -ofile Build\LB3.exe builder -type enc -exe -pass -pubkey Build\pub.key -config config.json -ofile Build\LB3_pass.exe builder -type enc -dll -pubkey Build\pub.key -config config.json -ofile Build\LB3_Rundll32.dll builder -type enc -dll -pass -pubkey Build\pub.key -config config.json -ofile Build\LB3_Rundll32_pass.dll builder -type enc -ref -pubkey Build\pub.key -config config.json -ofile Build\LB3_ReflectiveDll_DllMain.dll |
В файле config.json можно активировать функции имперсонации (impersonation) и указать учетные записи, от имени которых должен действовать шифровальщик (impers_accounts). В приведенном ниже примере зловред сконфигурирован использовать права учетной записи администратора. В настройках также можно активировать шифрование сетевых папок (network_shares), отключение Windows Defender (kill_defender), и распространение по сети с помощью PsExec (psexec_netspread). В процессе работы образец вредоносной программы может удалять журналы событий Windows (delete_eventlogs), чтобы замести следы.
Билдер также позволяет злоумышленникам выбирать, какие файлы и каталоги не нужно шифровать. Если злоумышленник хорошо знает целевую инфраструктуру, он может создать вредоносную программу под конкретную сетевую архитектуру объекта, обозначив важные файлы, учетные записи администраторов и ключевые системы. На рисунках ниже показан процесс генерации собственного шифровальщика в соответствии с приведенной выше конфигурацией и получившиеся файлы. Как мы видим, главный файл здесь — LB3.exe. Это шифровальщик, который будет доставлен в систему жертвы. Также билдер создает файл LB3Decryptor.exe, позволяющий восстановить зашифрованные файлы, и еще несколько вариантов шифровальщика. Например, LB3_pass.exe представляет собой защищенную паролем версию вымогателя, а отражающая DLL-библиотека дает возможность обойти стандартный загрузчик операционной системы и внедрить вредоносное ПО непосредственно в память. Файлы TXT содержат инструкцию по выполнению защищенных паролем файлов.
При запуске полученной сборки на виртуальной машине она делает свое злое дело и генерирует файлы с требованием выкупа. В реальных сценариях в таких файлах описывается, как именно жертва должна связаться со злоумышленниками, чтобы получить дешифратор. Тут важно отметить, что мы не рекомендуем вступать в переговоры со злоумышленниками и платить выкуп. Даже если оставить в стороне этические аспекты этого решения, нет никакой гарантии, что вымогатели предоставят инструмент для восстановления файлов.
Однако, поскольку мы сами сгенерировали образец шифровальщика и соответствующий дешифратор в контролируемой лабораторной среде, мы смогли проверить, работает ли последний на самом деле. Мы попытались расшифровать зашифрованные файлы и установили, что при наличии дешифратора их действительно можно восстановить, как показано на рисунке ниже.
При этом еще раз подчеркнем: даже существование корректно работающего дешифратора не гарантирует, что злоумышленники сдержат свое слово.
Недавняя операция по ликвидации LockBit и пользовательские сборки шифровальщика
В феврале 2024 года международная полицейская операция «Кронос» пресекла деятельность LockBit. Совместными усилиями правоохранительные органы из десяти стран конфисковали инфраструктуру шифровальщика и взяли под контроль его среду администрирования. Однако спустя всего несколько дней после операции группа вымогателей объявила о своем возвращении.
В результате операции правоохранительные органы получили доступ к инфраструктуре группы и закрытые ключи для расшифровки файлов. Благодаря этому они смогли подготовить набор инструментов для расшифровки на основе списка идентификаторов известных жертв. Утилита check_decryption_id проверяет, есть ли идентификатор, активированный для жертвы, в списке известных ключей дешифрования:
Даже если в теории существует возможность восстановить файлы, в реальности успешная расшифровка зависит от множества условий. Утилита check_decrypt проверяет, соответствует ли анализируемая система всем необходимым требованиям. По итогам проверки она создает CSV-файл со списком файлов, которые можно расшифровать, и адресом электронной почты, по которому можно обратиться за дальнейшими инструкциями по их восстановлению:
Этот набор инструментов привлек наше внимание, поскольку мы расследовали несколько случаев, связанных с угрозой LockBit. Обычно мы рекомендуем клиентам сохранить критически важные зашифрованные файлы и подождать, пока в результате анализа угрозы или действий правоохранительных органов не появится возможность их расшифровать, поскольку это лишь вопрос времени. С помощью описанных выше двух утилит мы проверили идентификаторы жертв и зашифрованные файлы, проанализированные нашей командой, но в большинстве случаев получили один и тот же результат:
Проверка с помощью check_decrypt также подтвердила, что расшифровка файлов на основе базы данных известных ключей невозможна:
На основании текущего анализа и своих предыдущих исследований мы пришли к выводу, что файлы, которые были зашифрованы полезной нагрузкой, созданной при помощи утекшего билдера LockBit, нельзя расшифровать имеющимися инструментами дешифрования. Дело в том, что группы, стоящие за этими атаками, не связаны с оператором RaaS-сервиса и не предоставляли ему свои закрытые ключи.
География атак с использованием утекшего билдера LockBit
Пользовательские сборки LockBit, созданные с помощью утекшего билдера, были замешаны в ряде инцидентов по всему миру. Скорее всего, эти атаки не связаны между собой и были совершены независимыми субъектами. Утекший билдер, по всей видимости, использовали и конкуренты группы LockBit, атаковавшие компании в СНГ, что нарушает первое правило группы — не вредить гражданам стран союза. Это привело к дискуссии в даркнете, в ходе которой операторы LockBit пытались объяснить, что не имеют отношения к этим атакам.
В своей практике реагирования на инциденты мы столкнулись с использованием утекшего билдера в инцидентах в России, Италии, Гвинее-Бисау и Чили. Хотя, как мы показали выше, билдер имеет множество настроек, злоумышленники использовали преимущественно стандартную или слегка измененную конфигурацию. Однако один случай выделяется на фоне этой тенденции.
Реальный инцидент с участием модификации LockBit
В одном из недавних инцидентов мы натолкнулись на образец шифровальщика LockBit, созданный с помощью утекшего билдера. Этот вымогатель использовал не встречавшиеся ранее функции имперсонации и распространения по сети. Злоумышленники проникли на сервер с выходом в интернет и открытым доступом к ряду важных портов. Каким-то образом им удалось раздобыть пароль администратора (возможно, он хранился в открытом виде в текстовом файле, либо злоумышленники прибегли к социальной инженерии). Затем атакующие создали свою модификацию шифровальщика, указав привилегированную учетную запись, к которой получили доступ. Нашей команде удалось получить значения соответствующих полей в файле config.json, который они использовали:
1 2 3 4 5 6 7 8 |
"impersonation": true, "impers_accounts": "Administrator:************", "local_disks": true, "network_shares": true, "running_one": false, "kill_defender": true, "psexec_netspread": true, "delete_eventlogs": true, |
Как видно, данная модификация может выполнять операции от имени администратора, получать доступ к сетевым папкам и распространяться по сети с помощью PsExec.
Более того, такая конфигурация предполагает, что на зараженном хосте может выполняться более одной копии шифровальщика. Одно из первых действий исполняемого файла при запуске — проверка и создание уникального мьютекса на основе хеш-суммы открытого ключа шифровальщика в формате Global\%.8x%.8x%.8x%.8x%.8x. Если в конфигурации флаг running_one имеет значение true, и мьютекс уже присутствует в ОС, процесс будет завершен.
В нашем случае конфигурация позволяла запустить на одном хосте одновременно несколько экземпляров программы-вымогателя. Такое поведение в сочетании с флагами автоматического распространения в сети от имени привилегированной доменной учетной записи привело к лавинному эффекту: каждый зараженный хост пытался заразить другие хосты в сети, включая уже зараженные. В контексте реагирования на инциденты это означает, что можно было найти свидетельства одной и той же угрозы, поступающей из разных источников (см. ниже найденные на одном хосте записи о создании удаленной службы PsExec с аутентификацией, выполненной с нескольких зараженных хостов).
Хотя в зараженных системах сохранились эти записи, большая часть журналов была удалена шифровальщиком сразу после первичного заражения. Из-за этого было невозможно установить, как именно злоумышленнику удалось получить доступ к серверу и паролю администратора. Информация о создании удаленных служб сохранилась, потому что при горизонтальном распространении по сети зловред генерировал новые логи и уже не удалял их за собой, что помогло проанализировать его распространение внутри инфраструктуры.
Проанализировав некоторые следы, которые сохранились на первоначально зараженном сервере, мы обнаружили сжатые данные Gzip в потоке памяти. Данные были закодированы по алгоритму base64. После расшифровки и распаковки мы обнаружили признаки использования Cobalt Strike. Кроме того, нам удалось установить командный сервер, через который злоумышленники взаимодействовали с зараженной машиной, и мы сразу передали этот индикатор клиенту для блокирования.
Также мы обнаружили использование скрипта SessionGopher в инфраструктуре клиента. Это средство с помощью WMI извлекает информацию о сохраненных сеансах различного ПО для удаленного доступа, такого как WinSCP, PuTTY, FileZilla и Microsoft RDP. Для этого SessionGopher просматривает куст реестра HKEY_USERS на предмет сохраненных сеансов PuTTY, WinSCP и RDP. В режиме Thorough скрипт позволяет выявить файлы .ppk, .rdp и .sdtid для извлечения закрытых ключей и сведений о сеансах. Его можно запустить удаленно с помощью параметра -iL, за которым следует список компьютеров. Флаг -AllDomain позволяет запустить его на всех компьютерах, подключенных к AD. Как показано на рисунке ниже, скрипт легко извлекает сохраненные пароли для удаленных подключений. Результаты его работы можно экспортировать в файл CSV для последующего использования.
Хотя скрипт SessionGopher предназначен для сбора сохраненных учетных данных, злоумышленники не использовали его для получения доступа к аккаунту администратора при первоначальном проникновении. С помощью SessionGopher они собирали дополнительные учетные данные в инфраструктуре на более позднем этапе.
Как только мы определили домены командных серверов и ряд связанных со злоумышленниками IP-адресов, а также получили полное представление о скомпрометированных учетных записях и инструментах автоматического развертывания, клиент изменил учетные данные всех затронутых пользователей и настроил средства контроля безопасности так, чтобы остановить развитие атаки. Кроме того, мониторинг действий в сети и использования учетных записей позволил нам выявить зараженные системы и изолировать их для анализа и восстановления.
Этот случай демонстрирует интересную комбинацию методов получения доступа к сети атакуемой компании, обхода защиты и шифрования важных данных. Ниже перечислены тактики, техники и процедуры (TTP), выявленные в этой атаке.
Тактика | Техника | ID |
Impact | Data Encrypted for Impact | T1486 |
Defense Evasion, Persistence, Privilege Escalation, Initial Access | Valid Accounts | T1078.002 |
Credential Access | Credentials from Password Stores | T1555 |
Lateral Movement | Remote Services | T0886 |
Discovery | Network Service Discovery | T1046 |
Defense Evasion | Clear Windows Event Logs | T1070.001 |
Defense Evasion | Impair Defenses | T1562 |
Профилактика атак шифровальщиков
Атаки с применением шифровальщиков могут наносить огромный ущерб, особенно если злоумышленникам удалось завладеть учетными данными с высоким уровнем привилегий. Меры по снижению риска таких атак могут различаться в зависимости от технологий, применяемых компанией. Однако можно выделить ряд методов, актуальных в любой инфраструктуры:
- Использование хорошего, правильно настроенного антивирусного решения, например Kaspersky Endpoint Security.
- Внедрение сервиса Managed Detection and Response (MDR) для проактивного мониторинга угроз.
- Отключение неиспользуемых служб и портов, чтобы минимизировать поверхность атаки.
- Своевременная установка обновлений программного обеспечения на всех системах инфраструктуры.
- Регулярные тесты на проникновение и мониторинг уязвимостей для выявления слабых мест и своевременного применения эффективных мер противодействия.
- Регулярные тренинги по кибербезопасности, чтобы сотрудники знали о киберугрозах и о том, как их избежать.
- Правильно организованный процесс создания резервных копий критичных данных.
Заключение
В ходе анализа файлов билдера LockBit 3.0 мы обратили внимание на то, с какой легкостью злоумышленники могут создавать собственные версии шифровальщика. Разобранный в этой статье инцидент, в котором преступники использовали учетные данные администратора для развертывания собственной версии программы-вымогателя, только подтверждает это. Подобные случаи лишний раз подчеркивают важность надежных мер безопасности, позволяющих эффективно бороться с угрозами, а также развития культуры кибербезопасности среди сотрудников.
Решения «Лаборатории Касперского» детектируют эту угрозу как:
- Trojan-Ransom.Win32.Lockbit.gen
- Trojan.Multi.Crypmod.gen
- Trojan-Ransom.Win32.Generic
А также скрипт SessionGopher:
- HackTool.PowerShell.Agent.l
- HackTool.PowerShell.Agent.ad
Билдер LockBit и целевые шифровальщики