В сети появился новый шифровальщик Nemty, который предположительно является преемником GrandCrab или Buran. Вредоносное ПО главным образом распространяется с поддельного сайта PayPal и обладает рядом интересных особенностей. Подробности о работе этого ransomware – под катом.
Новый шифровальщик Nemty обнаружил пользователь nao_sec 7 сентября 2019 года. Вредоносное ПО распространялось через сайт, замаскированный под PayPal, также имеется возможность проникновения ransomware на компьютер через эксплойт-кит RIG. Злоумышленники выбрали методы социальной инженерии, чтобы заставить пользователя запустить файл
Несколько любопытных фактов о Nemty подсказывают, что его разрабатывали те же люди или связанные с Buran и GrandCrab кибер-преступники.
- Как и в GandCrab, в Nemty есть пасхалка — ссылка на фото президента РФ Владимира Путина с матерной шуткой. В устаревшем шифровальщике GandCrab было изображение с тем же текстом.
- Языковые артефакты обеих программ указывают на тех же русскоязычных авторов.
- Это первый шифровальщик, использующий 8092-битный ключ RSA. Хотя смысла в этом нет: 1024-битного ключа для защиты от взлома вполне достаточно.
- Как и Buran, шифровальщик написан на Object Pascal и скомпилирован на Borland Delphi.
Статический анализ
Выполнение вредоносного кода происходит в четыре этапа. Первый шаг — запуск
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 2 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-2.png)
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 3 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-3.png)
SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC
После распаковки архива появятся три файла.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 4 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-4.png)
Далее запускается temp.exe, PE32-исполняемый файл под MS Windows размером 307200 байт. Код написан на Visual C++ и упакован MPRESS packer, упаковщиком, аналогичным UPX.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 5 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-5.png)
SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD
Следующий шаг — ironman.exe. После запуска temp.exe расшифровывает внедренные данные в temp и переименовывает их в ironman.exe, PE32-исполняемый файл размером 544768 байт. Код скомпилирован в Borland Delphi.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 6 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-6.png)
SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88
Последний шаг – перезапуск файла ironman.exe. Во время выполнения он преобразует свой код и запускает себя из памяти. Эта версия ironman.exe является вредоносной и отвечает за шифрование.
Вектор атаки
На данный момент шифровальщик Nemty распространяется через сайт pp-back.info.
Полную цепочку заражения можно посмотреть на app.any.run sandbox.
Установка
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 8 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-8.png)
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 9 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-9.png)
Далее устанавливается ключ реестра, который выглядит вот так:
[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”
Он используется для удаления распакованных файлов. Наконец,
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 10 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-10.png)
Temp.exe — второй этап в цепочке заражения
Это процесс, запущенный файлом
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 11 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-11.png)
Скрипт WindowSpy.ahk расшифровывает файл temp в ironman.exe, используя алгоритм RC4 и пароль IwantAcake. Ключ из пароля получается при помощи алгоритма хеширования MD5.
Затем temp.exe вызывает процесс ironman.exe.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 12 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-12.png)
Ironman.exe — третий шаг
Ironman.exe считывает содержимое файла iron.bmp и создает файл iron.txt с криптолокером, который запустится следующим.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 13 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-13.png)
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 14 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-14.png)
После этого вирус загружает iron.txt в память и перезапускает его как ironman.exe. После этого iron.txt удаляется.
ironman.exe — основная часть вымогателя NEMTY, которая и шифрует файлы на пораженном компьютере. Вредоносное ПО создает мьютекс под названием hate.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 15 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-15.png)
Первым делом он определяет географическое местоположение компьютера. Nemty открывает браузер и узнает IP на http://api.ipify.org. На сайте api.db-ip.com/v2/free[IP]/countryName по полученному IP определяется страна, и, если компьютер находится в одном из перечисленных ниже регионов, то выполнение кода вредоносного ПО прекращается:
- Россия
- Белоруссия
- Украина
- Казахстан
- Таджикистан
Вероятнее всего разработчики не хотят привлекать внимание правоохранительных органов в странах своего проживания, и поэтому не шифруют файлы в “родных” юрисдикциях.
Если IP-адрес жертвы не относится к списку выше, то вирус шифрует информацию пользователя.
Для предотвращения восстановления файлов удаляются их теневые копии:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 17 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-17.png)
Затем создается список файлов и папок, которые не будут шифроваться, а также список расширений файлов.
- windows
- $RECYCLE.BIN
- rsa
- NTDETECT.COM
- ntldr
- MSDOS.SYS
- IO.SYS
- boot.ini AUTOEXEC.BAT ntuser.dat
- desktop.ini
- CONFIG.SYS
- BOOTSECT.BAK
- bootmgr
- programdata
- appdata
- osoft
- Common Files
log LOG CAB cab CMD cmd COM com cpl
CPL exe EXE ini INI dll DDL lnk LNK url
URL ttf TTF DECRYPT.txt NEMTY
Обфускация
Чтобы скрыть URL-адреса и внедренные конфигурационные данные, Nemty использует алгоритм кодирования base64 и RC4 с ключевой фразой fuckav.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 18 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-18.png)
Процесс дешифровки с использованием CryptStringToBinary выглядит следующим образом
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 19 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-19.png)
Шифрование
Nemty использует трехслойное шифрование:
- AES-128-CBC для файлов. 128-битный AES-ключ генерируется случайным образом и используется один и тот же для всех файлов. Он хранится в конфигурационном файле на компьютере пользователя. IV генерируется случайным образом для каждого файла и хранится в зашифрованном файле.
- RSA-2048 для шифрования файлов IV. Генерируется ключевая пара для сессии. Закрытый ключ к сессии хранится в конфигурационном файле на компьютере пользователя.
- RSA-8192. Основной открытый ключ встроен в программу и используется для шифрования конфигурационного файла, в котором хранится ключ AES и секретный ключ для сессии RSA-2048.
- Сначала Nemty генерирует 32 байта случайных данных. Первые 16 байт используются в качестве ключа AES-128-CBC.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 20 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-20.png)
Второй алгоритм шифрования — это RSA-2048. Ключевая пара генерируется функцией CryptGenKey() и импортируется функцией CryptImportKey().
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 21 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-21.png)
После того, как ключевая пара для сессии сгенерирована, открытый ключ импортируется в MS Cryptographic Service Provider.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 22 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-22.png)
Пример сгенерированного открытого ключа для сессии:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 23 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-23.png)
Далее закрытый ключ импортируется в CSP.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 24 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-24.png)
Пример сгенерированного закрытого ключа для сессии:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 25 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-25.png)
И последним идет RSA-8192. Основной открытый ключ хранится в зашифрованном виде (Base64 + RC4) в разделе .data PE-файла.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 26 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-26.png)
Ключ RSA-8192 после декодирования base64 и дешифрования RC4 с паролем fuckav выглядит вот так.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 27 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-27.png)
В результате весь процесс шифрования выглядит следующим образом:
- Генерация 128-битного AES-ключа, который будет использоваться для шифрования всех файлов.
- Создание IV для каждого файла.
- Создание ключевой пары для сессии RSA-2048.
- Расшифровка имеющегося ключа RSA-8192 при помощи base64 и RC4.
- Шифрование содержимого файлов с помощью алгоритма AES-128-CBC из первого шага.
- Шифрование IV с помощью открытого ключа RSA-2048 и кодирование в base64.
- Добавление шифрованного IV в конец каждого зашифрованного файла.
- Добавление ключа AES и закрытого ключа сессии RSA-2048 в конфиг.
- Данные конфигурации, описанные в разделе Сбор информации о зараженном компьютере, шифруются при помощи основного открытого ключа RSA-8192.
- Зашифрованный файл выглядит следующим образом:
Пример зашифрованных файлов:
Сбор информации о зараженном компьютере
Вымогатель собирает ключи для дешифрации зараженных файлов, так что злоумышленник действительно сможет создать дешифратор. Кроме того, Nemty собирает пользовательские данные, такие как имя пользователя, имя компьютера, аппаратный профиль.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 28 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-28.png)
Он вызывает функции GetLogicalDrives(), GetFreeSpace(), GetDriveType(), чтобы собрать информацию о дисках зараженного компьютера.
Собранная информация хранится в конфигурационном файле. Декодировав строку, мы получаем список параметров в конфигурационном файле:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 29 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-29.png)
Пример конфигурации зараженного компьютера:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 30 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-30.png)
Шаблон конфигурации можно представить следующим образом:
{«General»: {«IP»:"[IP]",«Country»:"[Country]",«ComputerName»:"[ComputerName]",«Username»:"[Username]",«OS»:"[OS]",«isRU»:false,«version»:«1.4»,«CompID»:"{[CompID]}",«FileID»:"_NEMTY_[FileID]_",«UserID»:"[UserID]",«key»:"[key]",«pr_key»:"[pr_key]
Собранные данные Nemty хранит в формате JSON в файле %USER%/_NEMTY_.nemty. FileID длиной 7 символов генерируется случайным образом. Например: _NEMTY_tgdLYrd_.nemty. FileID также добавляется в конец зашифрованного файла.
Сообщение о выкупе
После шифрования файлов на рабочем столе появляется файл _NEMTY_[FileID]-DECRYPT.txt следующего содержания:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 31 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-31.png)
В конце файла находится зашифрованная информация о зараженном компьютере.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 32 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-32.png)
Сетевая коммуникация
Процесс ironman.exe скачивает дистрибутив браузера Tor с адреса https://dist.torproject.org/torbrowser/8.5.4/tor-win32-0.4.0.5.zip и пытается установить его.
Затем Nemty пытается отправить конфигурационные данные на адрес 127.0.0.1:9050, где ожидает найти работающий прокси-сервер браузера Tor. Однако по умолчанию прокси-сервер Tor прослушивает порт 9150, а порт 9050 использует демон Tor в Linux или Expert Bundle на Windows. Таким образом, данные на сервер злоумышленника не отправляются. Вместо этого пользователь может загрузить конфигурационный файл вручную, посетив службу расшифровки Tor по ссылке, указанной сообщении о выкупе.
Подключение к прокси Tor:
HTTP GET создает запрос на 127.0.0.1:9050/public/gate?data=
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 35 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-35.png)
Здесь вы видите открытые TCP-порты, которые используются прокси TORlocal:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 36 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-36.png)
Сервис дешифрации Nemty в сети Tor:
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 37 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-37.png)
Можно загрузить шифрованное фото (jpg, png, bmp) для тестирования сервиса дешифрации.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 38 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-38.png)
После этого злоумышленник просит заплатить выкуп. В случае неуплаты цена удваивается.
![Знакомьтесь: ransomware Nemty c поддельного сайта PayPal - 39 image](https://www.pvsm.ru/images/2019/10/18/znakomtes-ransomware-Nemty-c-poddelnogo-saita-PayPal-39.png)
Заключение
На данный момент расшифровать файлы, зашифрованные Nemty, без уплаты выкупа не получится. У этой версии ransomware есть общие черты с шифровальщиками Buran и устаревшим GandCrab: компиляция на Borland Delphi и изображения с одинаковым текстом. Кроме того, это первый шифровальщик, который использует 8092-битный ключ RSA, что, повторимся, не имеет никакого смысла, так как 1024-битного ключа для защиты вполне достаточно. Наконец, что любопытно, он пытается использовать неверный порт для локального прокси-сервиса Tor.
Тем не менее, решения Acronis Backup и Acronis True Image не допускают шифровальщик Nemty до пользовательских ПК и данных, а провайдеры могут защитить своих клиентов при помощи Acronis Backup Cloud. Полная Киберзащита обеспечивает не только резервное копирование, но также защиту с использованием Acronis Active Protection, специальной технологии на базе искусственного интеллекта и поведенческой эвристики, которая позволяет нейтрализовать даже еще неизвестное вредоносное ПО.
Автор: mir-mir