История одного нелепого взлома клиники.

В январской сборке вымогателя Pay2Key скрывается неприятный сюрприз. Даже когда шифрование работает «по всем правилам», часть данных всё равно остаётся на месте, и иногда довольно большая. Разобранный образец показывает, как устроен механизм внутри и почему жертвы могут вернуть хотя бы часть файлов.
В конце февраля Pay2Key атаковал медицинскую организацию в США. По данным Halcyon и Beazley Security, злоумышленники вошли в сеть через украденные учётные данные администратора, почти неделю не проявляли активности, затем подключились через TeamViewer и начали собирать пароли с помощью Mimikatz и LaZagne. После этого запустили архив, который распаковал шифратор. На полное шифрование ушло около трёх часов.
Сам файл из атаки на клинику найти в открытых базах не удалось. Зато обнаружилась более ранняя версия Pay2Key от 9 января 2026 года. Образец отличается от февральского, но использует тот же набор инструментов и схожую схему доставки. Шифратор упакован в самораспаковывающийся архив 7z и внутри тянет вспомогательные утилиты, включая средство безопасного удаления данных.
Программа построена на базе вымогателя Mimic, который, в свою очередь, вырос из утёкшего конструктора Conti. Для поиска файлов используется утилита Everything, а заблокированные процессы принудительно закрываются через системные механизмы Windows. Перед шифрованием вредонос завершает десятки служб и процессов, в том числе связанные с базами данных, резервным копированием и защитой системы.
Криптография реализована аккуратно и без явных ошибок. Для каждого файла генерируется уникальный 32-байтовый ключ с помощью встроенного генератора случайных чисел Windows. Далее используется потоковый алгоритм ChaCha20, а сами ключи защищаются через обмен ключами Curve25519. Без закрытого ключа злоумышленников расшифровать данные не получится.
Интересная деталь: во всех файлах используется нулевой одноразовый параметр, который обычно должен быть случайным. На практике проблема не возникает, потому что ключ для каждого файла новый. Повторения потока не происходит, значит уязвимость не появляется.
Ключи для расшифровки сохраняются локально в файле session.tmp в каталоге C:\temp. В январской версии вредонос не отправляет этот файл на сервер. Если файл удалить или повредить, восстановление становится невозможным даже для самих злоумышленников. Поэтому при расследовании такой файл нужно сохранять в первую очередь.
Главная особенность – режим частичного шифрования. Для крупных файлов программа шифрует только отдельные блоки, пропуская остальное. В результате от 70% до 87% содержимого может остаться в открытом виде. Для баз данных, виртуальных дисков и резервных копий это критично: значительную часть информации можно извлечь напрямую, даже если структура файла повреждена.
Размер зашифрованных блоков обычно составляет 1 МБ, а расстояние между ними рассчитывается на основе ключа. Шаблон меняется от файла к файлу, но в среднем большая часть данных не трогается. При этом начало и конец файла всё равно шифруются, поэтому стандартные инструменты восстановления часто не справляются без дополнительной обработки.
На практике частичное восстановление возможно. Из файлов баз данных удаётся извлечь таблицы, из образов виртуальных машин – файлы внутри диска, из архивов – отдельные сегменты. Полностью вернуть данные без ключа нельзя, но ущерб можно заметно снизить.
Январская версия Pay2Key показывает важный момент. Даже при сильной криптографии злоумышленники делают ставку на скорость, а не на полное уничтожение данных. Такой подход ускоряет атаку, но оставляет шанс на восстановление, если вовремя зафиксировать следы и сохранить служебные файлы.