Знакомьтесь: ransomware Nemty c поддельного сайта PayPal

в 9:12, , рубрики: acronis, cybercrime, cyberprotection, paypal, ransomware, антивирусная защита, Блог компании Acronis, вымогатели, шифровальщики

В сети появился новый шифровальщик Nemty, который предположительно является преемником GrandCrab или Buran. Вредоносное ПО главным образом распространяется с поддельного сайта PayPal и обладает рядом интересных особенностей. Подробности о работе этого ransomware – под катом.

image

Новый шифровальщик Nemty обнаружил пользователь nao_sec 7 сентября 2019 года. Вредоносное ПО распространялось через сайт, замаскированный под PayPal, также имеется возможность проникновения ransomware на компьютер через эксплойт-кит RIG. Злоумышленники выбрали методы социальной инженерии, чтобы заставить пользователя запустить файл cashback.exe, который он якобы получает с сайта PayPal, Любопытно также, что в Nemty указан неверный порт для локального прокси-сервиса Tor, что не дает вредоносному ПО отправлять данные на сервер. Поэтому пользователю придется самому закачивать зашифрованные файлы в сеть Tor, если он намерен заплатить выкуп и ждать от злоумышленников расшифровки.

Несколько любопытных фактов о Nemty подсказывают, что его разрабатывали те же люди или связанные с Buran и GrandCrab кибер-преступники.

  • Как и в GandCrab, в Nemty есть пасхалка — ссылка на фото президента РФ Владимира Путина с матерной шуткой. В устаревшем шифровальщике GandCrab было изображение с тем же текстом.
  • Языковые артефакты обеих программ указывают на тех же русскоязычных авторов.
  • Это первый шифровальщик, использующий 8092-битный ключ RSA. Хотя смысла в этом нет: 1024-битного ключа для защиты от взлома вполне достаточно.
  • Как и Buran, шифровальщик написан на Object Pascal и скомпилирован на Borland Delphi.

Статический анализ

Выполнение вредоносного кода происходит в четыре этапа. Первый шаг — запуск cashback.exe, PE32-исполняемого файла под MS Windows размером 1198936 байт. Его код написан на Visual C++ и скомпилирован 14 октября 2013 года. В нем находится архив, который автоматически распаковывается при запуске cashback.exe. ПО использует библиотеку Cabinet.dll и ее функции FDICreate(), FDIDestroy() и прочие для получения файлов из архива .cab.

image

image

SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC

После распаковки архива появятся три файла.

image

Далее запускается temp.exe, PE32-исполняемый файл под MS Windows размером 307200 байт. Код написан на Visual C++ и упакован MPRESS packer, упаковщиком, аналогичным UPX.

image

SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD

Следующий шаг — ironman.exe. После запуска temp.exe расшифровывает внедренные данные в temp и переименовывает их в ironman.exe, PE32-исполняемый файл размером 544768 байт. Код скомпилирован в Borland Delphi.

image

SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88

Последний шаг – перезапуск файла ironman.exe. Во время выполнения он преобразует свой код и запускает себя из памяти. Эта версия ironman.exe является вредоносной и отвечает за шифрование.

Вектор атаки

На данный момент шифровальщик Nemty распространяется через сайт pp-back.info.

image

Полную цепочку заражения можно посмотреть на app.any.run sandbox.

Установка

Cashback.exe — начало атаки. Как уже говорилось, cashback.exe распаковывает содержащийся в нем .cab файл. Затем он создает папку TMP4351$.TMP вида вида %TEMP%IXxxx.TMP, где xxx — число от 001 до 999.

image

image

Далее устанавливается ключ реестра, который выглядит вот так:

[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”

Он используется для удаления распакованных файлов. Наконец, cashback.exe запускает процесс temp.exe.

image

Temp.exe — второй этап в цепочке заражения

Это процесс, запущенный файлом cashback.exe, второй шаг исполнения вируса. Он пытается скачать AutoHotKey — инструмент для запуска скриптов под Windows — и запустить скрипт WindowSpy.ahk, расположенный в разделе ресурсов PE-файла.

image

Скрипт WindowSpy.ahk расшифровывает файл temp в ironman.exe, используя алгоритм RC4 и пароль IwantAcake. Ключ из пароля получается при помощи алгоритма хеширования MD5.

Затем temp.exe вызывает процесс ironman.exe.

image

Ironman.exe — третий шаг

Ironman.exe считывает содержимое файла iron.bmp и создает файл iron.txt с криптолокером, который запустится следующим.

image

image

После этого вирус загружает iron.txt в память и перезапускает его как ironman.exe. После этого iron.txt удаляется.

ironman.exe — основная часть вымогателя NEMTY, которая и шифрует файлы на пораженном компьютере. Вредоносное ПО создает мьютекс под названием hate.

image

Первым делом он определяет географическое местоположение компьютера. Nemty открывает браузер и узнает IP на http://api.ipify.org. На сайте api.db-ip.com/v2/free[IP]/countryName по полученному IP определяется страна, и, если компьютер находится в одном из перечисленных ниже регионов, то выполнение кода вредоносного ПО прекращается:

  • Россия
  • Белоруссия
  • Украина
  • Казахстан
  • Таджикистан

Вероятнее всего разработчики не хотят привлекать внимание правоохранительных органов в странах своего проживания, и поэтому не шифруют файлы в “родных” юрисдикциях.

Если IP-адрес жертвы не относится к списку выше, то вирус шифрует информацию пользователя.

image

Для предотвращения восстановления файлов удаляются их теневые копии:

image

Затем создается список файлов и папок, которые не будут шифроваться, а также список расширений файлов.

  • 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.

image

Процесс дешифровки с использованием CryptStringToBinary выглядит следующим образом

image

Шифрование

Nemty использует трехслойное шифрование:

  • AES-128-CBC для файлов. 128-битный AES-ключ генерируется случайным образом и используется один и тот же для всех файлов. Он хранится в конфигурационном файле на компьютере пользователя. IV генерируется случайным образом для каждого файла и хранится в зашифрованном файле.
  • RSA-2048 для шифрования файлов IV. Генерируется ключевая пара для сессии. Закрытый ключ к сессии хранится в конфигурационном файле на компьютере пользователя.
  • RSA-8192. Основной открытый ключ встроен в программу и используется для шифрования конфигурационного файла, в котором хранится ключ AES и секретный ключ для сессии RSA-2048.
  • Сначала Nemty генерирует 32 байта случайных данных. Первые 16 байт используются в качестве ключа AES-128-CBC.

image

Второй алгоритм шифрования — это RSA-2048. Ключевая пара генерируется функцией CryptGenKey() и импортируется функцией CryptImportKey().

image

После того, как ключевая пара для сессии сгенерирована, открытый ключ импортируется в MS Cryptographic Service Provider.

image

Пример сгенерированного открытого ключа для сессии:

image

Далее закрытый ключ импортируется в CSP.

image

Пример сгенерированного закрытого ключа для сессии:

image

И последним идет RSA-8192. Основной открытый ключ хранится в зашифрованном виде (Base64 + RC4) в разделе .data PE-файла.

image

Ключ RSA-8192 после декодирования base64 и дешифрования RC4 с паролем fuckav выглядит вот так.

image

В результате весь процесс шифрования выглядит следующим образом:

  • Генерация 128-битного AES-ключа, который будет использоваться для шифрования всех файлов.
  • Создание IV для каждого файла.
  • Создание ключевой пары для сессии RSA-2048.
  • Расшифровка имеющегося ключа RSA-8192 при помощи base64 и RC4.
  • Шифрование содержимого файлов с помощью алгоритма AES-128-CBC из первого шага.
  • Шифрование IV с помощью открытого ключа RSA-2048 и кодирование в base64.
  • Добавление шифрованного IV в конец каждого зашифрованного файла.
  • Добавление ключа AES и закрытого ключа сессии RSA-2048 в конфиг.
  • Данные конфигурации, описанные в разделе Сбор информации о зараженном компьютере, шифруются при помощи основного открытого ключа RSA-8192.
  • Зашифрованный файл выглядит следующим образом:

Пример зашифрованных файлов:

Сбор информации о зараженном компьютере

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

image

Он вызывает функции GetLogicalDrives(), GetFreeSpace(), GetDriveType(), чтобы собрать информацию о дисках зараженного компьютера.

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

image

Пример конфигурации зараженного компьютера:

image

Шаблон конфигурации можно представить следующим образом:

{«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 следующего содержания:

image

В конце файла находится зашифрованная информация о зараженном компьютере.

image

Сетевая коммуникация

Процесс 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:

image
image

HTTP GET создает запрос на 127.0.0.1:9050/public/gate?data=

image

Здесь вы видите открытые TCP-порты, которые используются прокси TORlocal:

image

Сервис дешифрации Nemty в сети Tor:

image

Можно загрузить шифрованное фото (jpg, png, bmp) для тестирования сервиса дешифрации.

image

После этого злоумышленник просит заплатить выкуп. В случае неуплаты цена удваивается.

image

Заключение

На данный момент расшифровать файлы, зашифрованные Nemty, без уплаты выкупа не получится. У этой версии ransomware есть общие черты с шифровальщиками Buran и устаревшим GandCrab: компиляция на Borland Delphi и изображения с одинаковым текстом. Кроме того, это первый шифровальщик, который использует 8092-битный ключ RSA, что, повторимся, не имеет никакого смысла, так как 1024-битного ключа для защиты вполне достаточно. Наконец, что любопытно, он пытается использовать неверный порт для локального прокси-сервиса Tor.

Тем не менее, решения Acronis Backup и Acronis True Image не допускают шифровальщик Nemty до пользовательских ПК и данных, а провайдеры могут защитить своих клиентов при помощи Acronis Backup Cloud. Полная Киберзащита обеспечивает не только резервное копирование, но также защиту с использованием Acronis Active Protection, специальной технологии на базе искусственного интеллекта и поведенческой эвристики, которая позволяет нейтрализовать даже еще неизвестное вредоносное ПО.

Автор: mir-mir

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js