PetrWrap: новый вымогатель на базе Petya, используемый в целевых атаках

Содержание 

Вэтом году мы обнаружили новое семейство программ-вымогателей, которое использовалось в целевых атаках на организации. После проникновения в корпоративную сеть злоумышленники использовали утилиту PsExec для установки вымогателя на все рабочие станции и серверы предприятия. Кроме того, киберпреступники использовали известную программу-вымогатель Petya для шифрования данных пользователей. Как вы знаете, это семейство вымогателей для своего распространения использует модель «Вымогатель как услуга» (Ransomware-as-a-Service, RaaS), но в этот раз злоумышленники не стали ее применять. Для создания работоспособной версии криптовымогателя преступная группа создала специальный модуль, который изменяет зловреда Petya «на лету». Такая особенность делает это вредоносное ПО уникальным.

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

Троянец PetrWrap написан на С и скомпилирован в MS Visual Studio. Он содержит программу-вымогатель Petya (версия 3), которая используется для заражения машины жертвы. Кроме того, PetrWrap оснащен собственными криптографическими алгоритмами и в процессе работы изменяет код Petya, что позволяет преступникам, стоящим за PetrWrap, скрыть факт использования Petya в процессе заражения.

Modus operandi

После запуска PetrWrap «засыпает» на 5400 секунд (1,5 часа), затем расшифровывает основную DLL-библиотеку Petya и готовится вызвать ее экспортируемую функцию ZuWQdweafdsg345312. Эта функция обычно подготавливает Petya к дальнейшим операциям и запускает процесс перезаписи MBR. Но сначала PetrWrap должен перехватить пару функций Petya, поэтому он заменяет инструкции для вызова функции DllEntryPoint на инструкции NOP (шестнадцатеричные байты 0x90). Это не позволяет зловреду Petya работать самостоятельно и дает возможность PetrWrap выполнить все необходимые вычисления и приготовления, прежде чем разрешить тому продолжить работу.

PetrWrap: новый вымогатель на базе Petya, используемый в целевых атаках

Функция main троянца PetrWrap

После того как PetrWrap произведет необходимые криптографические вычисления (мы обсудим их более подробно далее), он перехватывает две процедуры Petya, которые отвечают за генерирование конфигурационных данных (эту функцию мы будем называть petya_generate_config,) и за процесс перезаписи MBR (petya_infect), а затем передает управление Petya. Чтобы узнать подробнее о том, на что был способен оригинал Petya, читайте https://securelist.ru/blog/issledovaniya/28473/petya-the-two-in-one-trojan/

Криптография

При заражении Petya генерирует 16-байтный ключ и с помощью поточного шифра Salsa20 шифрует MFT (таблица файловой системы NTFS) разделов, обнаруженные им на локальных дисках. Чтобы расшифровать данные могли только авторы троянца, Petya использует алгоритм распределения ключей Диффи-Хеллмана на эллиптической кривой (ECDH). Применяется кривая secp192k1 и встроенный в тело Petya открытый ключ.

Преступники, стоящие за PetrWrap, столкнулись с проблемой: если они используют троянца Petya «как есть», они не смогут расшифровать компьютер жертвы, поскольку для этого им потребуется секретный ключ авторов Petya. Поэтому они решили полностью заменить алгоритм ECDH, используемый в Petya, на собственную реализацию и использовать свой секретный и открытый ключи.

PetrWrap использет реализацию криптографических алгоритмов из библиотеки OpenSSL (тогда как Petya — библиотеку mbedtls), и происходит это следующим образом:

  • Троянец содержит встроенный открытый ключ master_pub (точка на стандартной эллиптической кривой prime192v1, которая опять же отличается от то той, что используется в Petya);
  • Для каждого заражения PetrWrap генерирует новую пару ключей ec_session_priv + ec_session_pub;
  • Вычисляет ecdh_shared_digest = SHA512(ECDH(master_pub, ec_session_priv));
  • «Перехватывает» ключ salsa, сгенерированный зловредом Petya, и шифрует его с использованием ecdh_shared_digest (производит ряд довольно бесполезных манипуляций, которые сводятся, по существу, к шифрованию ключа Salsa с помощью алгоритма AES-256, использующего различные части ecdh_shared_digest в качестве ключа и IV);
  • Создает user_id – строку, содержащую зашифрованный ключ salsa и ec_session_pub;
  • Передает этот user_id Petya, который использует его, как если бы это были его собственные данные (помещает его в конфигурацию загрузчика, который впоследствии покажет эту строку пользователю после перезагрузки ПК).

PetrWrap: новый вымогатель на базе Petya, используемый в целевых атаках

Вычисление разделяемого секрета ECDH, реализованное в PetrWrap

Перехват процедур

PetrWrap перехватывает две процедуры зловреда Petya, которые мы будем называть petya_infect и petya_generate_config, и заменяет их на собственные wrap_infect и wrap_generate_config.

wrap_infect выполняет следующие функции:

  • сохраняет ключ salsa, сгенерированный Petya, для дальнейшего использования;
  • модифицирует код загрузчика Petya и текст сообщения о выкупе, чтобы избавиться от анимации в виде мигающего черепа и стереть все упоминания о Petya;
  • передает управление оригинальной процедуре petya_infect.
  • wrap_generate_config выполняет следующие функции:

  • вызывает оригинальную процедуру petya_generate_config;
  • создает строку user_id в соответствии с алгоритмом, описанным в предыдущем разделе;
  • заменяет строку ID, используемую в Petya, на новую сгенерированную user_id.

PetrWrap: новый вымогатель на базе Petya, используемый в целевых атаках

Экран зараженной машины

Техническое резюме

Что мы имеем в результате:

  1. Компьютер жертвы заблокирован и MFT (файловая таблица NTFS) надежно зашифрована (третья версия Petya, используемая в этой атаке, не имеет недостатков ранних версий и правильно реализует Salsa20);

  2. На экране блокировки нет мигающего черепа и не содержится упоминаний о Petya, что затрудняет оценку ситуации и определение степени причиненного ущерба;

  3. Разработчикам PetrWrap не пришлось писать низкоуровневый код загрузчика, тем самым они избежали риска допустить ошибки, аналогичные наблюдавшимся в ранних версиях Petya.

Описание

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

Детектирование

Продуктами «Лаборатории Касперского» эта программа-вымогатель успешно детектируется как Trojan-Ransom.Win32.PetrWrap и PDM:Trojan.Win32.Generic.

Заключение

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

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

MD5 образца

17c25c8a7c141195ee887de905f33d7b — Trojan-Ransom.Win32.PetrWrap.b

Постинги на схожие темы 

Добавить комментарий

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