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

Новият криптограф Nemty открит от потребител на 7 септември 2019 година. Зловредният софтуер се разпространяваше през сайт, , съществува и възможност за проникване на ransomware на компютъра чрез exploit-kit 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.


SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC
След разпаковането на архива ще се появят три файла.

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

SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD
Следващата стъпка е ironman.exe. След стартиране temp.exe разшифрова внедрените данни в temp и ги преименува на ironman.exe, PE32 изпълним файл с размер 544768 байта. Кодът е компилиран в Borland Delphi.
![]()
SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88
Последната стъпка – перезапуск на файла ironman.exe. По време на изпълнението той преобразува своя код и стартира себе си от паметта. Тази версия на ironman.exe е злонамерена и отговаря за шифроването.
Вектор на атака
В момента шифровчикът Nemty се разпространява чрез сайта pp-back.info.

Пълната верига на заразяване може да се види на sandbox.
Инсталиране
Cashback.exe – началото на атаката. Както вече беше споменато, cashback.exe разопакова .cab файла, който съдържа. След това създава папка TMP4351$.TMP от вида %TEMP%IXxxx.TMP, където xxx е число от 001 до 999.


След това се инсталира ключ в регистъра, който изглежда по следния начин:
[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”
Той се използва за изтриване на разопакованите файлове. Накрая cashback.exe стартира процеса temp.exe.

Temp.exe – вторият етап в веригата на заразяване
Това е процес, стартиран от файла cashback.exe, вторият етап в изпълнението на вируса. Той се опитва да изтегли AutoHotKey – инструмент за изпълнение на скриптове под Windows – и да стартира скрипта WindowSpy.ahk, разположен в секцията ресурси на PE файла.

Скриптът WindowSpy.ahk разшифрова файла temp в ironman.exe, използвайки алгоритъма RC4 и паролата IwantAcake. Ключът за паролата се получава с помощта на алгоритъм за хеширане MD5.
След това temp.exe извиква процеса ironman.exe.
![]()
Ironman.exe – третата стъпка
Ironman.exe чете съдържанието на файла iron.bmp и създава файл iron.txt с криптолокер, който ще се стартира следващия.


След това вирусът зарежда iron.txt в паметта и го перезапуска като ironman.exe. След това iron.txt се изтрива.
ironman.exe – основната част на изнудвача NEMTY, който шифрова файловете на засегнатия компютър. Зловредният софтуер създава мютекс с име hate.

Първо той определя географското местоположение на компютъра. Nemty отваря браузъра и открива IP на . На сайта [IP]/countryName за полученото IP определя страната, и ако компютърът се намира в един от посочените по-долу региони, изпълнението на кода на зловредния софтуер спира:
- Русия
- Беларус
- Украйна
- Казахстан
- Таджикистан
Скорее всего, разработчиците не искат да привлекат вниманието на правоохранителните органи в страните, в които живеят, затова не криптират файлове в "родните" юрисдикции.
Ако IP адресът на жертвата не попада в списъка по-горе, вирусът криптира информацията на потребителя.

За да се предотврати възстановяването на файловете, техните сенчести копия се изтриват:

След това се създава списък с файлове и папки, които няма да бъдат криптирани, както и списък с разширения на файлове.
- 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.

Процесът на декриптиране с помощта на CryptStringToBinary изглежда по следния начин

Шифриране
Nemty използва трислойно криптиране:
- AES-128-CBC за файлове. 128-битовият AES ключ се генерира случайно и се използва един и същ за всички файлове. Той се съхранява в конфигурационния файл на компютъра на потребителя. IV се генерира случайно за всеки файл и се съхранява в криптирания файл.
- RSA-2048 за криптиране на файлове IV. Генерира се ключова двойка за сесия. Частният ключ за сесията се съхранява в конфигурационния файл на компютъра на потребителя.
- RSA-8192. Основният публичен ключ е вграден в програмата и се използва за криптиране на конфигурационния файл, в който се съхранява ключът AES и секретният ключ за сесия RSA-2048.
- Първо, Nemty генерира 32 байта случайни данни. Първите 16 байта се използват като ключ AES-128-CBC.

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

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

Пример за генериран публичен ключ за сесия:

След това частният ключ се импортира в CSP.

Пример за генериран частен ключ за сесия:
И последният е RSA-8192. Основният публичен ключ е съхранен в криптиран вид (Base64 + RC4) в секцията .data на PE файла.

Ключът RSA-8192 след декодиране на base64 и декриптиране на RC4 с паролата fuckav изглежда така.

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

Той извиква функции GetLogicalDrives(), GetFreeSpace(), GetDriveType(), за да събере информация за дисковете на заразения компютър.
Събраната информация се съхранява в конфигурационен файл. Декодирайки низ, получаваме списък с параметри в конфигурационния файл:

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

Шаблонът на конфигурацията може да бъде представен по следния начин:
{«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 със следното съдържание:

В края на файла се намира криптирана информация за заразения компютър.

Мрежова комуникация
Процесът ironman.exe изтегля инсталационен файл на браузера Tor от адрес и се опитва да го инсталира.
След това 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=

Тук виждате отворени TCP портове, които се използват от прокси TORlocal:

Услуга за декодиране на Nemty в мрежата Tor:

Можете да заредите криптирано изображение (jpg, png, bmp) за тестване на услугата за декодиране.

След това нападателят иска да се плати откуп. В случай на неплащане цената се удвоява.

Заключение
В момента не е възможно да се декодират файлове, криптирани от Nemty, без да се плати откуп. Тази версия на ransomware има общи черти с криптиращите вируси Buran и остарелия GandCrab: компилира се на Borland Delphi и има изображения с идентичен текст. Освен това, това е първият криптиращ вирус, който използва 8092-битов RSA ключ, което, да повторим, няма никакъв смисъл, тъй като 1024-битовият ключ е напълно достатъчен за защита. Накрая, интересно е, че той се опитва да използва грешен порт за локалната прокси услуга Tor.
Въпреки това, решенията и не позволяват на криптирания вирус Nemty да достигне до лични компютри и данни, а доставчиците могат да защитят своите клиенти чрез . Пълна осигурява не само резервно копиране, но и защита чрез , специална технология, основана на изкуствен интелект и поведенческа хевристика, която позволява неутрализиране дори на все още неизвестен злонамерен софтуер.
Източник: habr.com
