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

    В сети появился новый шифровальщик 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

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

    [HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce\wextract_cleanup0]
    “rundll32.exe” “C:\Windows\system32\advpack.dll,DelNodeRunDLL32 «C:\Users\MALWAR~1\AppData\Local\Temp\IXPxxx.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, специальной технологии на базе искусственного интеллекта и поведенческой эвристики, которая позволяет нейтрализовать даже еще неизвестное вредоносное ПО.
    Acronis
    176,90
    Компания
    Поделиться публикацией

    Комментарии 11

      0
      Я рядом уже написал отзыв о таких статьях, напишу и тут — спасибо, что такие статьи хоть изредка появляются на Хабре. А то всё доскер да прочие модные штуки. Спасибо вам.
        +1
        в Nemty есть пасхалка — ссылка на фото президента РФ Владимира Путина с матерной шуткой

        Простите, но ради такого я сам себе этот шифровальщик скачаю :D
          0
          шифровальщик написан на Object Pascal

          Если бы об этом говорили на школьных уроках программирования, то возможно интерес к Pascal ABC у учеников был бы выше. Конечно я про школы, где всё еще Pascal на информатике.
            0
            А где пример зашифрованных файлов? mir-mir кажется вы забыли прикрепить фотографию в пост. imgur.com/65UncP2
              0
              да, видимо забыли при публикации. Должен быть скрин:
              0

              Хм, если у него нарушена коммуникация по сети, где и как он берет ключи шифрования и где их хранит?

                +1
                Для шифрования: Master открытый ключ RSA-8192 встроен в программу и используется для шифрования конфигурационного файла, в котором хранится ключ AES и секретный сессионный ключ RSA-2048. Файловые и сесссионные ключи генерируются на компьютере жертвы.

                Для расшифровки:
                Уникальный файловый IV, зашифрованный сессионным ключом RSA-2048, хранится в конец каждого зашифрованного файла. Файловый ключ AES и сессионный приватный ключ RSA-2048, зашифрованные мастер ключом, хранятся в конфиге (_NEMTY_[FileID]-DECRYPT.txt). Для расшифровки, конфиг загружается жертвой вручную через форму загрузки сервиса расшифровки в сети Tor.
                  0
                  В принципе понятно, ускользает назначение ключа RSA-2048. Для ускорения? Ведь можно было IV шифровать мастер ключом в принципе.
                    0
                    RSA-2048 ключи — выполняют функцию сессионных ключей, основная задача которых предотвратить возможность использования одного декриптора для всех жертв / компьютеров / сессий
                      0
                      Возможно, чтобы максимально уменьшить нагрузку на мастер-ключ.
                      У меня другой вопрос: зачем вообще шифровать IV?
                        0
                        IV можно не шифровать. Это все равно не даст возможность жертве расшифровать файлы. В таком случае отпадет необходимость в использовании сесионной пары ключей ( RSA-2048). Т.е. достаточно будет зашифровать сгенерированный статический файловый ключ при помощи мастер публичного RSA ключа и сохранить его в зашифрованном файле. Однако, использование статического симметричного файлового ключа повышает шансы его перехвата путем снятия дампа памяти процесса шифровальщика во время его работы и дальше использовать этот ключ для расшифровки всех файлов жертвы с открытыми IV

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое