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

Подготовка

В последние годы операторы вымогателей всё больше переходят на использование целевых атак и APT-подобных схем монетизации. И дело не только в стремлении заработать больше, но и в том, что рост вложений потенциальных жертв в кибербезопасность стал давать результаты: взлом перестал быть простой задачей.

Чтобы проникновение стало возможным, перед началом атаки проводится глубокое изучение жертв, после чего злоумышленники могут гораздо точнее оценить диапазон возможных сумм выкупа, а также объём вложений в приобретение эксплойтов нулевого дня для локального повышения привилегий и удалённого выполнения кода.

Проникновение в систему

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

Объявление о поиске партнёров для проведения вредоносной операции. Источник (здесь и далее, если не указано иное): Trend Micro
Объявление о поиске партнёров для проведения вредоносной операции. Источник (здесь и далее, если не указано иное): Trend Micro

Обычно прибыль делится в соотношении 20/80 или 30/70: меньшая часть достается владельцам, которая управляет вымогателем и ведёт переговоры с жертвой, а бо?льшая часть — группе, которая обеспечивает доступ к сети и реализует активную фазу атаки. Как правило, группа, ведущая переговоры с жертвой, получает всю сумму выкупа и распределяет её между участниками, ответственными за другие этапы атаки. 

Основные способы получения доступа к сети, которые используются в вымогательских операциях: 

  • покупка скомпрометированных учётных записей — доступ как услуга (Access as a Service, AaaS);

  • самостоятельный поиск уязвимостей инфраструктуры жертвы и их эксплуатация;

  • фишинг.

При атаках Nefilim было выявлено использование открытых служб RDP и общедоступных эксплойтов для уязвимости в Citrix Application Delivery Controller (CVE-2019-19781). Получив доступ, злоумышленники Nefilim загружали дополнительные инструменты: 

  • агент Cobalt Strike, который используется для удаленного доступа и выполнения команд;

  • Process Hacker, используемый для завершения работы агентов безопасности конечных точек;

  • Mimikatz, используемый для сброса учетных данных. 

В одном из проанализированных инцидентов злоумышленники сначала попытались установить неподписанный агент Cobalt Strike, который был обнаружен антивирусным агентом, работающим на сервере. Неудача не смутила хакеров, и через несколько дней они вернулись в сеть жертвы с уже подписанным агентом, который снова был обнаружен. 

Примечательно, что для запуска инструментов от имени администратора использовалась уязвимость повышения привилегий (EoP) в Windows Component Object Model CVE-2017-021328, устраненная Microsoft в мае 2017 года. Это в очередной раз демонстрирует важность своевременного исправления не только критических уязвимостей, которые обычно привлекают больше внимания в СМИ, но и любых уязвимостей, которые могут дать злоумышленникам возможность скомпрометировать инфраструктуру. 

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

Боковое перемещение и повышение привилегий

Закрепившись в сети, злоумышленники ищут дополнительные цели для компрометации. Чтобы избежать обнаружения, используются встроенные или часто используемые администраторами инструменты — тактика, которую иначе называют «подножный корм» («living off the land»). 

Один из самых популярных инструментов в рамках этой тактики — PsExec, утилита, созданная группой Sysinternals и предназначенная для выполнения легитимных административных задач, таких как запуск команд на удалённых серверах. Злоумышленники используют PsExec для выполнения на удалённых компьютерах скрипта, содержащего список команд для остановки работы определенных служб и процессов, блокирующих файлы, которые планируется зашифровать. Для запуска используются учетные данные, собранные либо на этапе латерального перемещения, либо на этапе, предшествующем атаке вымогателей.

Операторы Nefilim с помощью PsExec запускают на удалённых компьютерах taskkill.exe, «пристреливая» процессы, которые могут предупредить жертву о действиях злоумышленника. Во многих случаях PsExec использовался для остановки службы Simple Network Management Protocol (SNMP) и служб резервного копирования. 

Второй не менее популярный инструмент — Windows PowerShell. Мы наблюдали, как злоумышленники использовали команду PowerShell для агента Cobalt Strike в одной из атак 2020 года. Хакеры использовали функцию FromBase64String для декодирования шеллкода Cobalt Strike из Base64.

Закодированный в base64 шеллкод в PowerShell-скрипте
Закодированный в base64 шеллкод в PowerShell-скрипте

Третий инструмент, который применялся при атаках Nefilim, — Mimikatz. Это утилита из арсенала пентестеров, которые используют её для дампа паролей, хэшей, тикетов Kerberos и другой конфиденциальной информации. Получив хэши паролей, их можно взломать в автономном режиме с помощью hashcat или John the Ripper, а затем использовать для повышения привилегий и вредоносной деятельности. 

Взаимодействие с управляющими серверами и кража данных

Для взаимодействия с управляющими серверами Nefilim используют протоколы DNS, HTTP и HTTPS. Они размещают агенты Cobalt Strike в стратегически важных местах сети, в основном на серверах. Протокол DNS обеспечивает наибольшую скрытность, но при этом передача файлов через него происходит чрезвычайно медленно. Поэтому в некоторых случаях злоумышленники использовали для кражи данных приложение MegaSync облачного сервиса хранения данных MEGA, а если позволяло окружение — агенты с протоколами HTTP/HTTPS. Весной 2020 года операторы Nefilim развернули FTP-сервер, через который сливают данные своих жертв. Атакующий может подключиться к агенту Cobalt Strike через порт 50050/TCP.

Скриншот интерфейса управления Cobalt Strike. Источник: cobaltstrike.com
Скриншот интерфейса управления Cobalt Strike. Источник: cobaltstrike.com

Для размещения серверов операторы Nefilim используют как минимум три различных вида пуленепробиваемого (bulletproof) хостинга: 

  • серверы в сети Tor;

  • fast-flux-хостинг, на котором размещен, например, сайт clear-web corpleaks[.]net, куда злоумышленники загружают украденную у жертв информацию; 

  • оффшорные bulletproof-хостинги.

Вредоносная нагрузка

Первый обнаруженный образец Nefilim имел дату компиляции 10 марта 2020 года, был написан на чистом C/C++ с использованием Windows API,  скомпилирован для 32-битной архитектуры и подписан валидным сертификатом Sectigo. В нем не использовались крипторы или упаковщики.

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

Вымогательская записка Nefilim
Вымогательская записка Nefilim

Примечательно, что для расшифровки записки используются функции из платформы Microsoft CryptoAPI, которые Microsoft обозначила как устаревшие несколько лет назад:

  • CryptAcquireContextA

  • CryptCreateHash

  • CryptHashData

  • CryptDeriveKey

Фрагмент кода расшифровки вымогательской записки. В начале фрагмента с помощью вызова sub_402166 создаётся mutex со словами из популярной современной русскоязычной рэп-композиции
Фрагмент кода расшифровки вымогательской записки. В начале фрагмента с помощью вызова sub_402166 создаётся mutex со словами из популярной современной русскоязычной рэп-композиции

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

Шифрование файлов

При запуске без каких-либо аргументов исполняемый файл Nefilim готовится к шифрованию всех логических дисков с правами на запись, включая A:, B:, C: и D:, Сетевые ресурсы также шифруются, если подключены через букву диска.

Для каждого логического диска Nefilim расшифровывает и сохраняет записку о выкупе с именем «NEFILIMDECRYPT.txt» в корень диска и создает поток для шифрования всего содержимого диска.

Прежде чем Nefilim начнет шифровать файлы, он проверяет, соответствуют ли они его списку исключений файлов и имен каталогов, чтобы не нарушить работу ОС:

Список файлов-исключений
Список файлов-исключений

Функция шифрования — самая длинная в коде Nefilim. Алгоритм шифрования выглядит следующим образом: 

  1. Генерируются два 128-битных случайных числа с помощью функции RtIGetRandom/SystemFunction036 из ADVAPI32.DLL. Поскольку эта функция не экспортируется, для её загрузки используются LoadLibrary и GetProcAddress. Второе сгенерированное число используется в качестве ключа AES-128 в будущем.

  2. Оба числа шифруются с помощью открытого ключа RSA злоумышленников и записываются в конец целевого файла. 

  3. В конец целевого файла записывается ASCII-строка с именем варианта вредоноса. 

  4. Содержимое файла читается в буфер. 

  5. Буфер шифруется с помощью AES-128, в качестве ключа используется второе случайное число. 

  6. Содержимое буфера записывается в целевой файл, заменяя оригинальное содержимое. 

  7. В памяти очищаются сгенерированные случайные числа и зашифрованные ключи. 

  8. К имени файла в качестве расширения добавляется имя варианта вредоноса. 

  9. Исполняемый файл удаляется через три секунды после завершения шифрования с помощью команды cmd.exe /c timeout /t 3 /nobreak && del <path> /s /f .

    Динамическая загрузка функции RtlGetRandom
    Динамическая загрузка функции RtlGetRandom

Особенности семейства вымогателей Nefilim

Изучение Nefilim дает хорошее представление о методах работы современных вымогательских программ:

  • проникновение Nefilim в сеть происходит благодаря использованию слабых паролей в открытых службах RDP или других внешних HTTP-службах; 

  • как только злоумышленники оказываются в среде жертвы, они ведут себя аналогично авторам «штучных» целевых атак, выполняя все операции вручную: они перемещаются по сети, пытаясь найти важные системы и конфиденциальные данные для кражи и шифрования, при этом используя обычные инструменты сетевого администрирования, чтобы избежать обнаружения автоматизированными средствами защиты — в этом заключается техника «подножный корм»;

  • злоумышленники устанавливают в сети агенты удалённого доступа Cobalt Strike. При этом используются протоколы, которые могут проходить через брандмауэры, такие как DNS, HTTP или HTTPS; управляющие серверы для взаимодействия с агентами размещаются на пуленепробиваемых хостингах;

  • как только злоумышленники находят данные, которые стоит украсть, они приступают к их сливу, для чего используются внешние хостинги, такие как mega.nz; похищенные данные могут быть опубликованы на веб-сайтах, скрытых за сервисами Tor и сетями fast-flux, а украденная информация используется на более позднем этапе вымогательства;

  • когда данные слиты, запускается шифровальщик, которые использует сильные алгоритмы, исключающие самостоятельную дешифровку жертвой; 

  • операторы Nefilim нацелены на крупные компании с многомиллиардным оборотом, расположенные по всему миру.

Заключение

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

  • своевременное обновление ПО серверов, рабочих станций и сетевого оборудования;

  • внедрение принципов нулевого доверия и минимальных привилегий;

  • обучение и тренировка сотрудников навыкам безопасного поведения;

  • использование XDR-решений на базе ИИ для своевременного выявления и блокирования киберинцидентов.