Во время пандемии Covid-19 большое количество мировых организаций столкнулись с ростом числа кибератак. Сегодня речь пойдет о зловреде-вымогателе, который активизировался как раз в то время. Злоумышленники, используя тематические приманки для заражения устройств пользователей различными семействами вредоносных программ, смогли украсть у обеспокоенных и без того граждан более миллиона долларов.
Этот вектор атак, связанных с эпидемией, в 2022 году подубавил свой ход. Однако злоумышленники по-прежнему используют свой арсенал вредоносных программ для атаки на пользователей, которые мониторят информацию, связанную с коронавирусом.
Не так давно компания Cyble Research в своем отчете упомянула о появлении нового вымогателя с именем Punisher. Вредоносная программа распространялась через фишинговый веб-сайт новостной тематикой COVID-19, размещенный по адресу covid19.digitalhealthconsulting.cl.
Формально это сайт, на котором находилось якобы приложение для мониторинга числа зараженных в реальном времени. Но на самом деле само приложение было лишь пустышкой, содержащей в себе вымогатель. В основном все это было нацелено на чилийских пользователей, но эксперты прогнозируют, что в скором времени Punisher может задеть и пользователей других стран.
Попадая на устройство жертвы, вредонос не определяется антивирусными приложениями, так было по крайней мере на момент написания статьи, в случае его открытия происходит следующее:
Считывается ID системы и имя пользователя, а после добавляется в файл о выкупе.
Далее происходит шифрование всех данных на накопителях с помощью алгоритма AES-128, относительно слабого, и если сравнивать с другими вымогателями последнего десятилетия, то это однозначный регресс. К примеру, WannaCry (2016-2017) использует гибридный алгоритм шифрования RSA+AES, применение которого означает, что восстановление зашифрованных файлов практически невозможно.
Запускается таймер, который увеличивает сумму выкупа в зависимости от того, сколько времени прошло с момента заражения. С каждым днем выкуп возрастает на 250$, а по истечении семи дней все зашифрованные файлы на вашем устройстве удаляются.
Проанализировав методы работы и сумму выкупа (1000$), исследователи пришли к выводу, что данная кампания нацелена исключительно на обычных пользователей, а не на компании. То есть цель злоумышленников остается простой и понятной — они стремятся подзаработать.
Как, почему и зачем? Рассмотрим вредоноса под микроскопом
А прежде чем приступать к глобальному динамическому и статическому анализу, я просто открою его на своей основной машине, но вам такое повторять не советую. Но в рамках написания статьи могу позволить себе творить, что душе заблагорассудится. А делаю я это для того, чтобы осмотреть внешний вид сего творения и сделать соответствующие выводы.
Этот вид программ-вымогателей использует обычное примечание о выкупе, которое загружается с удаленного сервера, а затем добавляет в него данные об устройстве жертвы, скажем так, персонализируя для каждого пользователя. На скриншоте ниже изображен HTML-файл, используемый в качестве записки о выкупе, которая открывается в обычном браузере.
Но стоило мне перезагрузить устройство и вымогатель больше не запустился, бедняга не справился. Кстати, это результат проведения одной защитной махинации с файлами Windows, с помощью которой можно обвести вокруг пальца некоторых вымогателей. О ней расскажу в конце статьи.
Итак, для статистического анализа будем использовать следующий набор утилит, все они являются бесплатными и находятся в открытом доступе:
DIE — Detect it Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием.
Hidra — как и прошлая утилита, уже светилась в моей статье. Прекрасный и многофункциональный инструмент для реверс-инжиниринга.
Reko — декомпилятор, так же знаком нам с прошлых статей.
Сперва воспользуемся DIE, чтобы получить дополнительные сведения о приложении.
Как видим, вымогатель представляет собой двоичный файл с расширением .NET, предназначенный для операционной системы Windows. Что ещё интересного здесь можно заметить, так это измененное время компиляции. Этот метод называется «Timestomping» и представляет собой антикриминалистический метод, используемый для того, чтобы ввести следствие и специалистов быстрого реагирования в заблуждение.
Если перейти к просмотру PE заголовков, то мы не сможем увидеть чего-то интересного, три секции и никаких пасхалок, как в случае с некоторыми другими вымогателями. Злоумышленники в некоторых случаях оставляли там послания тем, кто анализирует их творения.
Что же, а теперь давайте более детально поговорим о механике и принципе работы этого шифровальщика, для этого воспользуемся Гидрой.
Сразу же после нашему взору открывается детальная информация о вымогателе. Все, что сверху — мы уже видели ранее, а вот что действительно интересно — так это отложенный импорт одного .dll файла в каталог syswow64:
Loading /C:/Windows/SysWOW64/MSCOREE.DLL
И ещё внесенные изменения в системный виндосовский shell.dll, чуть позже мы посмотрим, что же такого интересного в этих файлах появилось. Немного покопавшись в функциях и организовав декомпиляцию исходного кода, удалось выяснить алгоритм работы этого вредоноса:
Сперва генерируется пароль для шифрования пользовательских файлов.
Далее создается уникальный идентификатор системы, в последующем он будет передан на C&C сервер. (Для тех кто в танке, то так называется сервер злоумышленников, с которого они посылают команды вредоносу).
Затем проверяется наличие интернет-подключения.
Производится подключение к командному C&C серверу.
После происходит шифрование полученных файлов.
А далее — появляется вежливое оповещение пользователя о том, что его файлы теперь в руках у злоумышленников.
Далее рассмотрим каждый пункт подробнее.
1. Генерация пароля
Сразу же после запуска устройства выполняется метод Thread.Sleep() и программа-вымогатель уходит в состояние «сна» на следующие 5 секунд. Далее выполняет функцию GeneratePassword(). Эта функция вызывает метод RNGCryptoServiceProvider() для генерации случайной строки, а затем преобразует случайную строку в байты с помощью метода GetBytes() . Затем с помощью этого же метода происходит преобразование в кодированный формат Base64, а после зачем-то отправляет их на C&C-сервер, и наконец сохраняет сгенерированный пароль в MSCOREE.DLL. Исследователи, как и автор, действительно в шоке, этот вымогатель действительно представляет возможность снять блокировку, в отличие от своих собратьев, уплатив выкуп.
Возможно, это лишь ошибка злоумышленника. Далее этот пароль… Его будет проще назвать просто ключом, этот самый ключ далее будет использован для расшифровки файлов в случае успешной оплаты.
Этот метод является достаточно простым и бесхитростным, так как подобное шифрование можно легко обойти.
2. Создание уникального идентификатора системы
Теперь программа-вымогатель получает объем серийных номеров зараженных машин с помощью запроса WMI, как показано ниже. Этот уникальный серийный номер тома имеет большое значение на более позднем этапе заражения для создания ключа шифрования.
3. Самый неинтересный момент — проверка подключения
Происходит банальное пингование сервера google.com, чтобы проверить, есть ли у жертвы активное подключение к интернету, в случае его отсутствия программа отправится в «сон» на 2000 секунд (чуть более получаса), ожидая подключения, а ваши файлы в это время не будут зашифрованы. На скрине ниже можете увидеть часть кода, отвечающую за этот этап.
4. Подключение к серверу C&C и передача данных о устройстве жертвы
Сперва программа-вымогатель формирует список передаваемой информации: имя компьютера, имя пользователя, идентификатор системы и т. д. Определение IP-адреса зараженной машины происходит очень занимательным образом, запрашивая его через «https[:]//api.ipify[.]org».
Далее это список сохраняется в файл handshake.php и отправляется POST запросом на сервер, как показано ниже.
После отправки файла с информацией о жертве Punisher проверяет наличие каталога «UI» в папке « C:\Users\Public\Windows\». Если он существует — программа-вымогатель удаляет существующий каталог на машине жертвы, создает новый каталог с тем же именем и монтирует на него атрибуты «только чтение» и «скрытый». Если каталог «UI» не существует — программа-вымогатель создает новый каталог с такими же атрибутами, как показано ниже.
Далее вымогатель снова устанавливает связь с командным сервером и загружает оттуда ZIP-файл, содержащий сообщение о выкупе, а также JS скрипт, который отвечает за персонализацию сообщения. Загрузка происходит посредством использования GET запроса на hxxp[:]//20.100.168[.]3[:]1974/alertmsg[.]zip.
Все содержимое извлекается в только созданный каталог “UI” и имеет следующий вид:
Как уже ранее упоминалось, загруженный .zip архив содержит в себе сообщение о выкупе, которое будет общим для всех жертв. Далее Punisher добавляет данные о системе к примечаниям о выкупе, такие как идентификатор системы, уникальный идентификатор каждой жертвы, адрес BTC для выплаты выкупа, дату заражения и коды JavaScript для запуска таймера, который также увеличивает сумму выкупа после конкретного срока.
За персонализацию отвечает следующий фрагмент кода:
5. «Я шифрую»: вирус берется за дело
И, наконец, вымогатель может начинать шифрование пользовательских файлов. На самом деле до этого момента могло просто не дойти, так как все упирается в каталог UI и интернет-соединение, а функции пропуска какого-то из шагов разработчиком предусмотрено не было.
Прежде мной был проведен небольшой эксперимент: поставив атрибут «только чтение» на папку UI, я запустил вымогатель. Теперь вредонос не сможет удалить этот каталог, а, стало быть, и скачать данные о выкупе. Как вы думаете, что произошло? Он без конца повторял попытки удалить папку UI, и на этом все. А процесс шифрования моих данных так и не начался.
Но давайте позволим ему таки выполнить поставленную задачу. Сперва происходит поиск файлов со следующими расширениями: .pptx, .docx, .doc, .xlsx, .txt, .pdf, .500, .jpeg, .jpg, .png. (кстати, это очень мало, уже упомянутый мной WannaCry способен шифровать файлы с более 500 видами расширений).
Вымогатель пользуется методом DriveInfo.GetDrives() для получения имен всех логических дисков в машине и шифрует только файлы, находящиеся в каталоге USERPROFILE диска C.
Перед шифрованием файлов вымогатель генерирует ключ для этого процесса, его действия поэтапно:
Создается строка путем объединения следующих значений 2202sb (созданное злоумышленником) плюс серийная метка тома. Здесь стоит пояснить, что же такое эта метка.
Метка тома — это текстовый идентификатор, который может быть присвоен логическому тому, и обычно используется как дополнительное средство идентификации томов в системе.
Он преобразует эту строку в массив байтов. (Массив — это неизменяемые последовательности отдельных байтов.)
И, наконец, он вычисляет хэш MD5 объекта массива.
Далее этот хэш используется в качестве окончательного ключа для запуска процесса шифрования с помощью протокола AES-128.
AES — симметричный алгоритм блочного шифрования, принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется по всему миру.
Программа-вымогатель также изменяет расширение зашифрованных файлов на «.punisher» и делает их непригодными для использования, как показано ниже.
После процесса шифрования открывается браузерное окно с оповещением о том, что пользовательские файлы были зашифрованы и дабы обратно их получить, нужно заплатить выкуп. Вымогатель также размещает заметки о выкупе в виде файла ярлыка с именем «unlock your files.lnk» на Рабочем столе, в Автозагрузке и в меню Пуск, чтобы предупреждение о выкупе отображалось жертвам при входе в свои уязвимые системы.
А что там по .dll?
Меня изначально интересовал момент, где было видно, что вымогатель дропает в системные файлы mscoree.dll, что же в нём такое?..
Файл mscoree. dll — одна из библиотек DLL, входящих в состав Microsoft . NET Framework 4-х версий и по умолчанию уже присутствует в Windows 11 и Windows 10, хоть и не всегда установлена.
Сперва я подумал, что мне понадобится декомпилятор, но оказалось, что файл не имел никаких различий с изначальным системным, кроме наличия ключа для расшифровки.
Думаю, что динамический анализ нам не понадобится, так как здесь уже все просто и понятно. Более тонко разбираться в устройстве этого вредоноса не имеет смысла, лучше давайте поговорим о том, как можно расшифровать данные, которые «залочил» Punisher.
Попытки вернуть свои файлы: расшифровываем и защищаемся
Один из самых простых и быстрых способов определить заражение программой-вымогателем — использовать веб-сайт ID Ransomware. Этот инструмент распознаёт большинство видов существующих программам-вымогателей. Жертве просто нужно загрузить сообщение с требованием выкупа и/или один зашифрованный файл, если вы стали жертвой какого-либо шифровальщика — советую загрузить оба элемента.
Программа-вымогатель будет идентифицирована в течение нескольких секунд, и вам будут предоставлены различные сведения о вредоносе, а также оценят вероятность расшифровки файлов. В случае с нашим вымогателем — сайт сообщит нам, что не существует методов расшифровки. Но если мы возьмем, какой-то другой более старый вымогатель, например WannaCry, то обнаружим целую уйму расшифровщиков. К сожалению, на этот ресурс ещё не был добавлен ни один для Punisher. Поэтому рассмотрим несколько альтернативных методов.
Есть два метода, как вернуть свои файлы, не скидывая 1000$ злоумышленнику. Первый — ручной и очень простой.
Так как мы знаем точный алгоритма создания пароля — для нас не составит труда его найти, ведь он находится в том самом .dll, который ранее мы осматривали. Но самое смешное, что этот ключ подходит в 5 из 10 случаев, то есть ровно в 50%. Это меня действительно удивило, но, скорее всего, это ошибка злоумышленника. Поэтому есть другой метод получения того самого ключа, который использовался для шифрования. Как я уже говорил, он создается с помощью создания строки, состоящей из значения “2202sb” и метки тома.
Переходим в командную строку и прописываем следующую команду, которая покажет значение метки:
vol :c
И составляем строку 2202sb28A4-8F6B, далее превращаем её в хэш, получаем следующее:
bbbda18b2a72cc0ecdd19589188cb63d
Это и есть тот самый ключ шифрования, затем можем воспользоваться абсолютно любым дескриптором из интернета.
Описанное мной может быть чертовски непонятным, поэтому советую воспользоваться вторым методом. Рекомендую использовать проект No More Ransom Project. На веб-сайте No More Ransom Project есть раздел «Инструменты расшифровки» с панелью поиска. Введите имя идентифицированного вымогателя, и все доступные расшифровщики (если они есть) — будут перечислены.
На данный момент доступен один дескриптор, который был разработан антивирусной компанией Avast. Скачав утилиту, достаточно лишь выбрать диск, на котором находятся зараженные файлы, а далее произойдет автоматический поиск и расшифровка.
Выводы и способы защиты
После завершения процесса восстановления вам следует задуматься о сканировании компьютера с помощью антивирусного приложения. Для этих целей могу посоветовать GridinSoft Anti-Malware, он специально разработан для противодействия вымогателям. Хоть большинство шифровальщиков и удаляются после того, как выполнили свою работу — некоторые могут оставлять вредоносные процессы или устанавливать бэкдоры. Думаю, что вы сами понимаете, с какой целью злоумышленники так поступают.
Итак, выделю основные шаги по предотвращению заражения своего устройства:
Не скачивайте приложения с неизвестных и непроверенных источников. Это чревато последствиями.
Создавайте резервные копии своих данных. Пусть некоторые вымогатели и будут их удалять, но GridinSoft Anti-Ransomware способен в первую очередь защитить их от удаления. Когда какая-то вредоносная программа или вирус-вымогатель пытается удалить ваши резервные копии — Gridin перехватит запрос и заблокирует процесс отправки.
Не паникуйте и будьте благоразумны. Не платите выкуп сразу после того, как заразились, всегда лучше поискать ответы в сети Интернет. Возможно, кто-то разработал инструмент для расшифровки, который может вам помочь. Сервисы для поиска дешифраторов были представлены выше.
А на этом у меня все. Бывайте.
Автор статьи @DeathDay
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.