RegretLocker
Резюме
RegretLocker — это новая программа-вымогатель, которая была обнаружена в дикой природе в прошлом месяце и не только шифрует обычные файлы на диске, как другие программы-вымогатели. При запуске он, в частности, будет искать VHD-файлы, монтировать их с помощью Windows Virtual Storage API, а затем шифровать все файлы, которые он находит внутри этих VHD-файлов.
Как правило, файлы VHD имеют огромный размер с максимальным размером почти 2 ТБ, потому что они в основном используются для хранения содержимого жесткого диска виртуальной машины, включая разделы диска и файловые системы. Из-за этого программы-вымогатели не могут тратить время на шифрование просто потому, что они слишком велики.
Однако, монтируя эти виртуальные диски как физические диски, RegretLocker может проходить и шифровать отдельные файлы внутри, что значительно увеличивает общую скорость шифрования.
Для шифрования RegretLocker обращается к C&C-серверу за ключом RSA, чтобы зашифровать и создать уникальный ключ AES. Этот ключ AES будет использоваться для шифрования всех файлов на дисках. Однако, если машина находится в автономном режиме или не может связаться с C&C, она просто использует жестко запрограммированный ключ RSA в памяти, что упрощает написание инструмента для расшифровки!
Все зашифрованные файлы имеют расширение .mouse.
Большое спасибо Виталию Кремезу и MalwareHunterTeam за то, что они обратили мое внимание на эту программу-вымогатель!
RegretLocker поставляется в виде 32-битного PE-файла.
MD5: 3265b2b0afc6d2ad0bdd55af8edb9b37
SHA256: a188e147ba147455ce5e3a6eb8ac1a46bdd58588de7af53d4ad542c6986491f4
Зависимости
Advapi32.dll и Crypt32.dll: основные функции шифрования, такие как шифрование RSA и AES.
VirtDisk.dll: монтирование функций виртуального диска
tor-lib.dll: DLL, которая используется для связи с C&C через Tor
Сеть
RegretLocker связывается с C&C-сервером по адресу http://regretzjibibtcgb.onion/input через Tor 3 раза:
Прежде чем связаться с C&C, он отправляет запрос GET на http://api.ipify.org/ для получения общедоступного IP-адреса ПК. Если это не удается, вредоносное ПО может предположить, что оно работает в автономном режиме, и будет использовать жестко запрограммированный ключ RSA.
Записка с требованием выкупа
RegretLocker оставляет записку с требованием выкупа в каждой зашифрованной папке. Хэш используется для определения того, какой ключ RSA используется для создания ключа AES на вашем компьютере.
Вы можете найти лог вредоносных программ здесь (https://chuongdong.com/uploads/locker.log).
Анализ кода
Работает только один процесс
Сначала RegretLocker проверяет, работает ли только одна его версия, перебирая все запущенные процессы с помощью CreateToolhelp32Snapshot, Process32First и Process32Next.
Для каждого из запущенных процессов он сравнивает имя с собственным именем, чтобы убедиться, что нет процесса с таким же именем.
Если есть один с таким же именем, программа-вымогатель немедленно завершает работу.
Дропиинг tor-lib.dll
Вредоносное ПО извлекает путь к текущему каталогу, в котором оно находится, через GetModuleFileNameA и привязывает к нему "\tor-lib.dll", что означает, что оно сбрасывает эту dll в тот же каталог вредоносного ПО.
Затем он вызывает функцию для извлечения dll из своего раздела ресурсов с помощью FindResourceA, LoadResource и LockResource. Как мы видим в Resource Hacker, dll хранится в незашифрованном виде в разделе ресурсов. После извлечения dll он вызывает LoadLibrary, чтобы получить дескриптор dll. Этот дескриптор будет использоваться вредоносным ПО для связи с C&C.
Проверка ПК
ПО имеет 2 странные проверки для проверки определенного имени пользователя и имени ПК (WIN-295748OMAKG). Если имя пользователя или имя ПК совпадают, вредоносное ПО немедленно завершит работу.
Потенциально это просто проверка ПК для разработки, чтобы убедиться, что программа-вымогатель не попытается зашифровать машину во время разработки.
Как разработчик я разочарован таким непрофессионализмом Почистите свой чертов код, пожалуйста!
Персистенс
Для сохранения вредоносное ПО задает в реестре SOFTWARE\Microsoft\Windows\CurrentVersion\Run путь вредоносного ПО. Это гарантирует, что вредоносное ПО автоматически запускается каждый раз, когда пользователь входит в систему.
Затем он также запускает вредоносное ПО как задачу каждую минуту с помощью этой команды Schtasks.exe, которая запускается из cmd.exe с помощью ShellExecuteA.
schtasks /Create /SC MINUTE /TN "Mouse Application" /TR "RegretLocker_path" /f
Настройка шифрования
Вредоносная программа создает и выполняет эту команду из cmd.exe.
cmd.exe /C wmic SHADOWCOPY DELETE & wbadmin DELETE SYSTEMSTATEBACKUP & bcdedit.exe / set{ default } bootstatuspolicy ignoreallfailures & bcdedit.exe / set{ default } recoveryenabled No
-wmic SHADOWCOPY DELETE: это удалит все теневые копии файлов в системе, предотвращая возврат зашифрованных файлов в их предыдущее состояние.
-wbadmin DELETE SYSTEMSTATEBACKUP: удалить резервную копию системы. Предотвращение возврата системы к предыдущему снимку
-bcdedit.exe / set{ default } bootstatuspolicy ignoreallfailures: настройка политики статуса загрузки на игнорирование ошибок во время неудачной загрузки. Убедитесь, что ПК не переходит в режим восстановления или перезагрузки Windows.
-bcdedit.exe / set{ default } recoveryenabled No : убедитесь, что система не может быть восстановлена.
Затем он перебирает все диски и добавляет имена дисков с типом DRIVE_FIXED, DRIVE_REMOVABLE или DRIVE_REMOTE.
Эти имена подключаются к диску C с помощью GetVolumePathNamesForVolumeNameA, SetVolumeMountPointA, FindFirstVolumeA и FindNextVolumeA. Поскольку имя этой функции помечено как show_hided_drives(), эта функция, вероятно, просто монтирует все действительные диски, чтобы не пропустить ни одного скрытого диска.
Получение ключа RSA
Как обсуждалось выше, вредоносное ПО сначала обратится к C&C по адресу http://regretzjibibtcgb.onion/input с помощью get_key в запросе, чтобы запросить ключ RSA.
Глобальная переменная RSA_KEY будет записана соответственно с ключом RSA в зависимости от того, сможет ли он дойти до C&C или нет. Если это невозможно, он будет использовать этот жестко запрограммированный ключ RSA.
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1ZQInrnhxXCtAN/LsOX2GmgbvBxMsO49lc1/qodshkUvRQLazWv61UbMLKx2gaRQrCYuVrR1Cgd7LxY4ueGo50TqZioAJbCcfzdiXlEkJqLlz4RTU9RFZ/wFjWxChek2NsU6vLLSowPPTw+JhwTooI+QPAIYeoxCf4xz7Kvu9CQIDAQAB
-----END PUBLIC KEY-----
Генерация AES-ключа
Используя ключ RSA, он вызовет CryptAcquireContextA, CryptDecodeObjectEx, CryptImportPublicKeyInfo и CryptEncrypt для шифрования буфера "AES" в памяти, генерируя новый ключ AES.
С помощью этого метода вредоносное ПО может генерировать другой ключ AES, если он получает другой ключ RSA от C&C. Однако этот ключ AES остается постоянным после этого шифрования, если вредоносное ПО запускается в автономном режиме, поэтому должно быть просто создать инструмент дешифрования, если C&C не работает или ПК не подключен к Интернету.
Шифрование — USB-накопители
Первое шифрование происходит с USB-накопителями, если они есть. Эта функция вызывается для получения имени всех USB-накопителей путем проверки любого диска с типом DRIVE_REMOVABLE. Эта функция была очень похожа на ту, которая ранее использовалась в show_hided_drives().
Затем он перебирает все эти USB-накопители и вызывает функцию для шифрования их содержимого. Я обозначил это как small_encrypt(), потому что он используется только для шифрования USB-накопителей и небольших файлов.
Я углублюсь в эти функции шифрования позже, потому что есть несколько разных версий.
Шифрование — сканер SMB
Вредоносное ПО написано на C++, и в нем есть класс smb_scanner. Функция SMB пытается сканировать SMB, чтобы найти
- Имена адаптеров и диапазоны адресов на адаптере
- IP-адреса NetServers и имена машин на сервере с использованием NetServerEnum.
Результатом является буфер всех папок SMB в строковой форме.
Затем он проходит через цикл while, вызывая функцию для шифрования этих папок SMB, поэтому я обозначил эту функцию шифрования как smb_encrypt(). На самом деле я не настраивал SMB на своей виртуальной машине, поэтому, когда я запускал это, я не знал, может ли он на самом деле шифровать папки SMB или нет…
Шифрование — большие файлы
Вредонос имеет особый метод поиска больших файлов, а затем начинает их шифровать сразу после шифрования SMB.
Автор вредоносного ПО назвал эту функцию шифрования encrypt_large_file(). Похоже, что это то же самое, что и большинство других функций шифрования, за исключением того, что в нем есть дополнительные данные для учета размера файла. Суть этой функции по-прежнему сводится к шифрованию AES.
После шифрования он переименует зашифрованный файл в то же имя, но с расширением .mouse и перезапишет файловый буфер этим новым зашифрованным буфером.
Шифрование - все остальное
После шифрования большого файла RegretLocker переходит в цикл while, чтобы зашифровать все остальное с помощью small_encrypt().
small_encrypt() вызывает функцию-обертку для перемещения по каталогам и файлам перед их шифрованием. Он специально следит за ними, чтобы избежать их шифрования.
- RegretLocker file
- .log
- HOW TO RESTORE FILES.TXT
- Windows folder
- ProgramData
- Microsoft
-System
Далее он проверяет тип файла. Если тип файла FILE_ATTRIBUTE_DIRECTORY, он вызовет функцию рекурсивного шифрования для рекурсивного прохождения каждого слоя внутри папки. Если тип файла не является папкой, он просто вызовет основную функцию шифрования для его шифрования.
Внутри функции рекурсивного шифрования RegretLocker специально ищет эти имена файлов, чтобы избежать их шифрования.
- Cheat
- Notepad
- x96dbg
- Hex Editor
- tor-lib.dll
- .mouse
Поскольку диски смонтированы, RegretLocker проверяет расширение файла на «.vhd», чтобы обнаружить любой виртуальный диск. Если он найден, RegretLocker вызовет функцию, чтобы открыть виртуальный диск, чтобы начать шифрование всего внутри, рекурсивно вызывая рекурсивную функцию. Программа-вымогатель использует серию вызовов OpenVirtualDisk, AttachVirtualDisk, GetVirtualDiskPhysicalPath, FindFirstVolumeW, CreateFileW, DeviceIoControl, GetVolumePathNamesForVolumeNameW и FindNextVolumeW для получения списка имен файлов и папок внутри.
Если файл не является папкой, он просто вызовет основную функцию шифрования для его шифрования.
Эта функция разделена на 2 блока условий. Если размер файла больше 104857600 байт или около 105 МБ, файл считается большим и будет зашифрован с помощью функции encrypt_large_file(). Если это не так, то RegretLocker продолжает шифровать его с помощью AES.
Здесь есть загвоздка. Если шифрование не удается, это означает, что файл запущен или используется каким-то процессом. В этом случае RegretLocker найдет процесс, который в данный момент использует этот файл, и попытается его завершить. Это достигается за счет использования Restart Manager с этими вызовами API.
- RmStartSession: начать новый сеанс для Restart Manager
- RmRegisterResources: регистрация файла для шифрования в качестве ресурса.
- RmGetList: получить список приложений служб/процессов, использующих этот ресурс.
- CreateToolhelp32Snapshot, Process32FirstW и Process32NextW: проверьте идентификаторы всех запущенных процессов по сравнению с процессами, указанными выше.
После получения процессов, использующих файл, он проверяет имя. Если они соответствуют любому из них, они не будут добавлены в список и позже закрыты.
- vnc
- ssh
- mstsc
- System
- svchost.exe
Затем RegretLocker создает командную строку taskkill /F /IM \имя_процесса и запускает ее с помощью cmd.exe. Эта команда в основном просто отфильтровывает процесс с заданным именем процесса и завершает его.
Программа-вымогатель будет непрерывно зацикливаться, пока не закроет процесс. Затем он снова попытается выполнить шифрование.
Шифрование — AES
Ядром функций шифрования, описанных выше, является одна функция шифрования AES. По сути, он просто использует сгенерированный ключ AES для шифрования файла с помощью серии вызовов CryptAcquireContextA, CryptImportKey, CryptSetKeyParam и CryptEncrypt, что довольно стандартно.
После шифрования он запишет этот зашифрованный буфер обратно в файл с новым расширением .mouse. Он также проверит путь к папке, чтобы увидеть, был ли уже создан файл HOW TO RESTORE FILES.TXT, и создал ли он его, если это не так.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://chuongdong.com/reverse engineering/2020/11/17/RegretLocker/
Резюме
RegretLocker — это новая программа-вымогатель, которая была обнаружена в дикой природе в прошлом месяце и не только шифрует обычные файлы на диске, как другие программы-вымогатели. При запуске он, в частности, будет искать VHD-файлы, монтировать их с помощью Windows Virtual Storage API, а затем шифровать все файлы, которые он находит внутри этих VHD-файлов.
Как правило, файлы VHD имеют огромный размер с максимальным размером почти 2 ТБ, потому что они в основном используются для хранения содержимого жесткого диска виртуальной машины, включая разделы диска и файловые системы. Из-за этого программы-вымогатели не могут тратить время на шифрование просто потому, что они слишком велики.
Однако, монтируя эти виртуальные диски как физические диски, RegretLocker может проходить и шифровать отдельные файлы внутри, что значительно увеличивает общую скорость шифрования.
Для шифрования RegretLocker обращается к C&C-серверу за ключом RSA, чтобы зашифровать и создать уникальный ключ AES. Этот ключ AES будет использоваться для шифрования всех файлов на дисках. Однако, если машина находится в автономном режиме или не может связаться с C&C, она просто использует жестко запрограммированный ключ RSA в памяти, что упрощает написание инструмента для расшифровки!
Все зашифрованные файлы имеют расширение .mouse.
Большое спасибо Виталию Кремезу и MalwareHunterTeam за то, что они обратили мое внимание на эту программу-вымогатель!
IOCS
RegretLocker поставляется в виде 32-битного PE-файла.
MD5: 3265b2b0afc6d2ad0bdd55af8edb9b37
SHA256: a188e147ba147455ce5e3a6eb8ac1a46bdd58588de7af53d4ad542c6986491f4
Зависимости
Advapi32.dll и Crypt32.dll: основные функции шифрования, такие как шифрование RSA и AES.
VirtDisk.dll: монтирование функций виртуального диска
tor-lib.dll: DLL, которая используется для связи с C&C через Tor
Сеть
RegretLocker связывается с C&C-сервером по адресу http://regretzjibibtcgb.onion/input через Tor 3 раза:
Прежде чем связаться с C&C, он отправляет запрос GET на http://api.ipify.org/ для получения общедоступного IP-адреса ПК. Если это не удается, вредоносное ПО может предположить, что оно работает в автономном режиме, и будет использовать жестко запрограммированный ключ RSA.
Записка с требованием выкупа
RegretLocker оставляет записку с требованием выкупа в каждой зашифрованной папке. Хэш используется для определения того, какой ключ RSA используется для создания ключа AES на вашем компьютере.
Вы можете найти лог вредоносных программ здесь (https://chuongdong.com/uploads/locker.log).
Анализ кода
Работает только один процесс
Сначала RegretLocker проверяет, работает ли только одна его версия, перебирая все запущенные процессы с помощью CreateToolhelp32Snapshot, Process32First и Process32Next.
Для каждого из запущенных процессов он сравнивает имя с собственным именем, чтобы убедиться, что нет процесса с таким же именем.
Если есть один с таким же именем, программа-вымогатель немедленно завершает работу.
Дропиинг tor-lib.dll
Вредоносное ПО извлекает путь к текущему каталогу, в котором оно находится, через GetModuleFileNameA и привязывает к нему "\tor-lib.dll", что означает, что оно сбрасывает эту dll в тот же каталог вредоносного ПО.
Затем он вызывает функцию для извлечения dll из своего раздела ресурсов с помощью FindResourceA, LoadResource и LockResource. Как мы видим в Resource Hacker, dll хранится в незашифрованном виде в разделе ресурсов. После извлечения dll он вызывает LoadLibrary, чтобы получить дескриптор dll. Этот дескриптор будет использоваться вредоносным ПО для связи с C&C.
Проверка ПК
ПО имеет 2 странные проверки для проверки определенного имени пользователя и имени ПК (WIN-295748OMAKG). Если имя пользователя или имя ПК совпадают, вредоносное ПО немедленно завершит работу.
Потенциально это просто проверка ПК для разработки, чтобы убедиться, что программа-вымогатель не попытается зашифровать машину во время разработки.
Как разработчик я разочарован таким непрофессионализмом Почистите свой чертов код, пожалуйста!
Персистенс
Для сохранения вредоносное ПО задает в реестре SOFTWARE\Microsoft\Windows\CurrentVersion\Run путь вредоносного ПО. Это гарантирует, что вредоносное ПО автоматически запускается каждый раз, когда пользователь входит в систему.
Затем он также запускает вредоносное ПО как задачу каждую минуту с помощью этой команды Schtasks.exe, которая запускается из cmd.exe с помощью ShellExecuteA.
schtasks /Create /SC MINUTE /TN "Mouse Application" /TR "RegretLocker_path" /f
Настройка шифрования
Вредоносная программа создает и выполняет эту команду из cmd.exe.
cmd.exe /C wmic SHADOWCOPY DELETE & wbadmin DELETE SYSTEMSTATEBACKUP & bcdedit.exe / set{ default } bootstatuspolicy ignoreallfailures & bcdedit.exe / set{ default } recoveryenabled No
-wmic SHADOWCOPY DELETE: это удалит все теневые копии файлов в системе, предотвращая возврат зашифрованных файлов в их предыдущее состояние.
-wbadmin DELETE SYSTEMSTATEBACKUP: удалить резервную копию системы. Предотвращение возврата системы к предыдущему снимку
-bcdedit.exe / set{ default } bootstatuspolicy ignoreallfailures: настройка политики статуса загрузки на игнорирование ошибок во время неудачной загрузки. Убедитесь, что ПК не переходит в режим восстановления или перезагрузки Windows.
-bcdedit.exe / set{ default } recoveryenabled No : убедитесь, что система не может быть восстановлена.
Затем он перебирает все диски и добавляет имена дисков с типом DRIVE_FIXED, DRIVE_REMOVABLE или DRIVE_REMOTE.
Эти имена подключаются к диску C с помощью GetVolumePathNamesForVolumeNameA, SetVolumeMountPointA, FindFirstVolumeA и FindNextVolumeA. Поскольку имя этой функции помечено как show_hided_drives(), эта функция, вероятно, просто монтирует все действительные диски, чтобы не пропустить ни одного скрытого диска.
Получение ключа RSA
Как обсуждалось выше, вредоносное ПО сначала обратится к C&C по адресу http://regretzjibibtcgb.onion/input с помощью get_key в запросе, чтобы запросить ключ RSA.
Глобальная переменная RSA_KEY будет записана соответственно с ключом RSA в зависимости от того, сможет ли он дойти до C&C или нет. Если это невозможно, он будет использовать этот жестко запрограммированный ключ RSA.
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1ZQInrnhxXCtAN/LsOX2GmgbvBxMsO49lc1/qodshkUvRQLazWv61UbMLKx2gaRQrCYuVrR1Cgd7LxY4ueGo50TqZioAJbCcfzdiXlEkJqLlz4RTU9RFZ/wFjWxChek2NsU6vLLSowPPTw+JhwTooI+QPAIYeoxCf4xz7Kvu9CQIDAQAB
-----END PUBLIC KEY-----
Генерация AES-ключа
Используя ключ RSA, он вызовет CryptAcquireContextA, CryptDecodeObjectEx, CryptImportPublicKeyInfo и CryptEncrypt для шифрования буфера "AES" в памяти, генерируя новый ключ AES.
С помощью этого метода вредоносное ПО может генерировать другой ключ AES, если он получает другой ключ RSA от C&C. Однако этот ключ AES остается постоянным после этого шифрования, если вредоносное ПО запускается в автономном режиме, поэтому должно быть просто создать инструмент дешифрования, если C&C не работает или ПК не подключен к Интернету.
Шифрование — USB-накопители
Первое шифрование происходит с USB-накопителями, если они есть. Эта функция вызывается для получения имени всех USB-накопителей путем проверки любого диска с типом DRIVE_REMOVABLE. Эта функция была очень похожа на ту, которая ранее использовалась в show_hided_drives().
Затем он перебирает все эти USB-накопители и вызывает функцию для шифрования их содержимого. Я обозначил это как small_encrypt(), потому что он используется только для шифрования USB-накопителей и небольших файлов.
Я углублюсь в эти функции шифрования позже, потому что есть несколько разных версий.
Шифрование — сканер SMB
Вредоносное ПО написано на C++, и в нем есть класс smb_scanner. Функция SMB пытается сканировать SMB, чтобы найти
- Имена адаптеров и диапазоны адресов на адаптере
- IP-адреса NetServers и имена машин на сервере с использованием NetServerEnum.
Результатом является буфер всех папок SMB в строковой форме.
Затем он проходит через цикл while, вызывая функцию для шифрования этих папок SMB, поэтому я обозначил эту функцию шифрования как smb_encrypt(). На самом деле я не настраивал SMB на своей виртуальной машине, поэтому, когда я запускал это, я не знал, может ли он на самом деле шифровать папки SMB или нет…
Шифрование — большие файлы
Вредонос имеет особый метод поиска больших файлов, а затем начинает их шифровать сразу после шифрования SMB.
Автор вредоносного ПО назвал эту функцию шифрования encrypt_large_file(). Похоже, что это то же самое, что и большинство других функций шифрования, за исключением того, что в нем есть дополнительные данные для учета размера файла. Суть этой функции по-прежнему сводится к шифрованию AES.
После шифрования он переименует зашифрованный файл в то же имя, но с расширением .mouse и перезапишет файловый буфер этим новым зашифрованным буфером.
Шифрование - все остальное
После шифрования большого файла RegretLocker переходит в цикл while, чтобы зашифровать все остальное с помощью small_encrypt().
small_encrypt() вызывает функцию-обертку для перемещения по каталогам и файлам перед их шифрованием. Он специально следит за ними, чтобы избежать их шифрования.
- RegretLocker file
- .log
- HOW TO RESTORE FILES.TXT
- Windows folder
- ProgramData
- Microsoft
-System
Далее он проверяет тип файла. Если тип файла FILE_ATTRIBUTE_DIRECTORY, он вызовет функцию рекурсивного шифрования для рекурсивного прохождения каждого слоя внутри папки. Если тип файла не является папкой, он просто вызовет основную функцию шифрования для его шифрования.
Внутри функции рекурсивного шифрования RegretLocker специально ищет эти имена файлов, чтобы избежать их шифрования.
- Cheat
- Notepad
- x96dbg
- Hex Editor
- tor-lib.dll
- .mouse
Поскольку диски смонтированы, RegretLocker проверяет расширение файла на «.vhd», чтобы обнаружить любой виртуальный диск. Если он найден, RegretLocker вызовет функцию, чтобы открыть виртуальный диск, чтобы начать шифрование всего внутри, рекурсивно вызывая рекурсивную функцию. Программа-вымогатель использует серию вызовов OpenVirtualDisk, AttachVirtualDisk, GetVirtualDiskPhysicalPath, FindFirstVolumeW, CreateFileW, DeviceIoControl, GetVolumePathNamesForVolumeNameW и FindNextVolumeW для получения списка имен файлов и папок внутри.
Если файл не является папкой, он просто вызовет основную функцию шифрования для его шифрования.
Эта функция разделена на 2 блока условий. Если размер файла больше 104857600 байт или около 105 МБ, файл считается большим и будет зашифрован с помощью функции encrypt_large_file(). Если это не так, то RegretLocker продолжает шифровать его с помощью AES.
Здесь есть загвоздка. Если шифрование не удается, это означает, что файл запущен или используется каким-то процессом. В этом случае RegretLocker найдет процесс, который в данный момент использует этот файл, и попытается его завершить. Это достигается за счет использования Restart Manager с этими вызовами API.
- RmStartSession: начать новый сеанс для Restart Manager
- RmRegisterResources: регистрация файла для шифрования в качестве ресурса.
- RmGetList: получить список приложений служб/процессов, использующих этот ресурс.
- CreateToolhelp32Snapshot, Process32FirstW и Process32NextW: проверьте идентификаторы всех запущенных процессов по сравнению с процессами, указанными выше.
После получения процессов, использующих файл, он проверяет имя. Если они соответствуют любому из них, они не будут добавлены в список и позже закрыты.
- vnc
- ssh
- mstsc
- System
- svchost.exe
Затем RegretLocker создает командную строку taskkill /F /IM \имя_процесса и запускает ее с помощью cmd.exe. Эта команда в основном просто отфильтровывает процесс с заданным именем процесса и завершает его.
Программа-вымогатель будет непрерывно зацикливаться, пока не закроет процесс. Затем он снова попытается выполнить шифрование.
Шифрование — AES
Ядром функций шифрования, описанных выше, является одна функция шифрования AES. По сути, он просто использует сгенерированный ключ AES для шифрования файла с помощью серии вызовов CryptAcquireContextA, CryptImportKey, CryptSetKeyParam и CryptEncrypt, что довольно стандартно.
После шифрования он запишет этот зашифрованный буфер обратно в файл с новым расширением .mouse. Он также проверит путь к папке, чтобы увидеть, был ли уже создан файл HOW TO RESTORE FILES.TXT, и создал ли он его, если это не так.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://chuongdong.com/reverse engineering/2020/11/17/RegretLocker/
