W sieci pojawił się nowy ransomware Nemty, który prawdopodobnie jest następcą GrandCrab lub Buran. Złośliwe oprogramowanie jest głównie rozpowszechniane za pośrednictwem fałszywej strony PayPal i ma kilka interesujących cech. Szczegóły dotyczące działania tego ransomware znajdują się poniżej.

Nowy ransomware Nemty odkryty przez użytkownika 7 września 2019 roku. Złośliwe oprogramowanie było rozpowszechniane przez stronę, , istnieje również możliwość dostania się ransomware na komputer za pośrednictwem zestawu exploitowego RIG. Cyberprzestępcy wykorzystali metody inżynierii społecznej, aby skłonić użytkownika do uruchomienia pliku cashback.exe, który rzekomo otrzymał ze strony PayPal. Ciekawostką jest, że w Nemty podano nieprawidłowy port dla lokalnej usługi proxy Tor, co uniemożliwia złośliwemu oprogramowaniu wysyłanie danych na serwer. Dlatego użytkownik będzie musiał samodzielnie przesyłać zaszyfrowane pliki do sieci Tor, jeśli zamierza zapłacić okup i czekać na klucz deszyfrujący od cyberprzestępców.
Kilka interesujących faktów o Nemty sugeruje, że zostało opracowane przez te same osoby lub powiązanych z Buran i GrandCrab cyberprzestępców.
- Podobnie jak w GandCrab, w Nemty jest ukryta wiadomość — link do zdjęcia prezydenta Rosji Władimira Putina z nieprzyzwoitym żartem. W przestarzałym ransomware GandCrab znajdowało się zdjęcie z tym samym tekstem.
- Artefakty językowe obu programów wskazują na tych samych rosyjskojęzycznych autorów.
- To pierwszy ransomware, który wykorzystuje 8092-bitowy klucz RSA. Choć nie ma w tym sensu: 1024-bitowy klucz jest wystarczający do ochrony przed złamaniem.
- Podobnie jak Buran, ransomware jest napisane w Object Pascal i skompilowane w Borland Delphi.
Analiza statyczna
Wykonanie złośliwego kodu odbywa się w czterech etapach. Pierwszym krokiem jest uruchomienie cashback.exe, PE32-plik wykonywalny dla systemu MS Windows o rozmiarze 1198936 bajtów. Jego kod jest napisany w Visual C++ i skompilowany 14 października 2013 roku. Zawiera archiwum, które automatycznie rozpakowuje się po uruchomieniu cashback.exe. Oprogramowanie korzysta z biblioteki Cabinet.dll i jej funkcji FDICreate(), FDIDestroy() i innych do pozyskiwania plików z archiwum .cab.


SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC
Po rozpakowaniu archiwum pojawią się trzy pliki.

Następnie uruchamiane jest temp.exe, PE32-plik wykonywalny dla systemu MS Windows o rozmiarze 307200 bajtów. Kod jest napisany w Visual C++ i spakowany pakietem MPRESS, który jest analogią do UPX.

SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD
Następnym krokiem jest ironman.exe. Po uruchomieniu temp.exe odszyfrowuje osadzone dane w temp i zmienia ich nazwę na ironman.exe, plik PE32 o rozmiarze 544768 bajtów. Kod został skompilowany w Borland Delphi.
![]()
SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88
Ostatnim krokiem jest ponowne uruchomienie pliku ironman.exe. W trakcie wykonania przekształca swój kod i uruchamia się z pamięci. Ta wersja ironman.exe jest złośliwa i odpowiada za szyfrowanie.
W manifeście UC Browser można znaleźć usługę o mówiącej nazwie
Obecnie szyfrujący program Nemty jest rozpowszechniany przez stronę pp-back.info.

Pełny ciąg infekcji można zobaczyć na sandbox.
Instalacja
Cashback.exe to początek ataku. Jak już wspomniano, cashback.exe rozpakowuje zawarty w nim plik .cab. Następnie tworzy folder TMP4351$.TMP w postaci %TEMP%IXxxx.TMP, gdzie xxx to liczba od 001 do 999.


Następnie ustawia klucz rejestru, który wygląda następująco:
[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”
Jest wykorzystywany do usuwania rozpakowanych plików. Na koniec cashback.exe uruchamia proces temp.exe.

Temp.exe to drugi etap w ciągu infekcji
To proces uruchomiony przez plik cashback.exe, drugi krok wykonania wirusa. Próbuje pobrać AutoHotKey — narzędzie do uruchamiania skryptów w systemie Windows — i uruchomić skrypt WindowSpy.ahk, znajdujący się w zasobach pliku PE.

Skrypt WindowSpy.ahk odszyfrowuje plik temp w ironman.exe, wykorzystując algorytm RC4 i hasło IwantAcake. Klucz z hasła jest uzyskiwany za pomocą algorytmu haszującego MD5.
Następnie temp.exe wywołuje proces ironman.exe.
![]()
Ironman.exe to trzeci krok
Ironman.exe odczytuje zawartość pliku iron.bmp i tworzy plik iron.txt z kryptolokerem, który uruchomi się następnie.


Potem wirus ładuje iron.txt do pamięci i ponownie uruchamia go jako ironman.exe. Następnie iron.txt jest usuwany.
Ironman.exe to główna część ransomware NEMTY, która szyfruje pliki na zainfekowanym komputerze. Złośliwe oprogramowanie tworzy mutex o nazwie hate.

Najpierw określa geograficzną lokalizację komputera. Nemty otwiera przeglądarkę i sprawdza IP na . Na stronie [IP]/countryName na podstawie uzyskanego IP określa kraj, i jeśli komputer znajduje się w jednym z wymienionych poniżej regionów, kod złośliwego oprogramowania zostaje zatrzymany:
- Rosja
- Białoruś
- Ukraina
- Kazachstan
- Tadżykistan
Prawdopodobnie programiści nie chcą przyciągać uwagi organów ścigania w krajach, w których mieszkają, dlatego nie szyfrują plików w 'rodzimych' jurysdykcjach.
Jeśli adres IP ofiary nie znajduje się na liście powyżej, wirus szyfruje informacje użytkownika.

W celu zapobieżenia przywróceniu plików usuwane są ich cienie:

Następnie tworzona jest lista plików i folderów, które nie będą szyfrowane, a także lista rozszerzeń plików.
- 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 Obfuskacja
Aby ukryć adresy URL i wbudowane dane konfiguracyjne, Nemty używa algorytmu kodowania base64 i RC4 z frazą kluczową fuckav.

Proces deszyfrowania przy użyciu CryptStringToBinary wygląda następująco

Szyfrowanie
Nemty wykorzystuje trójwarstwowe szyfrowanie:
- AES-128-CBC dla plików. 128-bitowy klucz AES jest generowany losowo i jest używany taki sam dla wszystkich plików. Jest przechowywany w pliku konfiguracyjnym na komputerze użytkownika. IV jest generowane losowo dla każdego pliku i przechowywane w zaszyfrowanym pliku.
- RSA-2048 do szyfrowania plików IV. Generowana jest para kluczy dla sesji. Prywatny klucz do sesji jest przechowywany w pliku konfiguracyjnym na komputerze użytkownika.
- RSA-8192. Główny klucz publiczny jest wbudowany w program i służy do szyfrowania pliku konfiguracyjnego, w którym przechowywany jest klucz AES i sekretny klucz do sesji RSA-2048.
- Najpierw Nemty generuje 32 bajty losowych danych. Pierwsze 16 bajtów jest używane jako klucz AES-128-CBC.

Drugim algorytmem szyfrowania jest RSA-2048. Para kluczy jest generowana przez funkcję CryptGenKey() i importowana przez funkcję CryptImportKey().

Po wygenerowaniu pary kluczy dla sesji klucz publiczny jest importowany do MS Cryptographic Service Provider.

Przykład wygenerowanego klucza publicznego dla sesji:

Następnie prywatny klucz jest importowany do CSP.

Przykład wygenerowanego prywatnego klucza dla sesji:
Ostatnim jest RSA-8192. Główny klucz publiczny jest przechowywany w zaszyfrowanej postaci (Base64 + RC4) w sekcji .data pliku PE.

Klucz RSA-8192 po dekodowaniu base64 i deszyfrowaniu RC4 z hasłem fuckav wygląda w ten sposób.

W rezultacie cały proces szyfrowania wygląda następująco:
- Generowanie 128-bitowego klucza AES, który będzie używany do szyfrowania wszystkich plików.
- Tworzenie IV dla każdego pliku.
- Tworzenie pary kluczy dla sesji RSA-2048.
- Deszyfrowanie istniejącego klucza RSA-8192 za pomocą base64 i RC4.
- Szyfrowanie zawartości plików za pomocą algorytmu AES-128-CBC z pierwszego kroku.
- Szyfrowanie IV za pomocą otwartego klucza RSA-2048 i kodowanie do base64.
- Dodawanie zaszyfrowanego IV na koniec każdego zaszyfrowanego pliku.
- Dodawanie klucza AES i prywatnego klucza sesji RSA-2048 do konfiguracji.
- Dane konfiguracyjne opisane w sekcji o zainfekowanym komputerze są szyfrowane za pomocą głównego otwartego klucza RSA-8192.
- Zaszyfrowany plik wygląda następująco:
Przykład zaszyfrowanych plików:
Zbieranie informacji o zainfekowanym komputerze.
Ransomware gromadzi klucze do deszyfrowania zainfekowanych plików, aby złośliwy użytkownik mógł rzeczywiście stworzyć deszyfrator. Ponadto, Nemty gromadzi dane użytkowników, takie jak nazwa użytkownika, nazwa komputera, profil sprzętowy.

Wywołuje funkcje GetLogicalDrives(), GetFreeSpace(), GetDriveType(), aby zebrać informacje o dyskach zainfekowanego komputera.
Zebrane informacje są przechowywane w pliku konfiguracyjnym. Po zdekodowaniu ciągu otrzymujemy listę parametrów w pliku konfiguracyjnym:

Przykład konfiguracji zainfekowanego komputera:

Szablon konfiguracji można przedstawić następująco:
{„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]
Zebrane dane Nemty przechowuje w formacie JSON w pliku %USER%/_NEMTY_.nemty. FileID o długości 7 znaków jest generowane losowo. Na przykład: _NEMTY_tgdLYrd_.nemty. FileID jest także dodawane na koniec zaszyfrowanego pliku.
Wiadomość o okupu
Po zaszyfrowaniu plików na pulpicie pojawia się plik _NEMTY_[FileID]-DECRYPT.txt o następującej treści:

Na końcu pliku znajduje się zaszyfrowana informacja o zainfekowanym komputerze.

Komunikacja sieciowa
Proces ironman.exe pobiera pakiet przeglądarki Tor z adresu i próbuje go zainstalować.
Następnie Nemty próbuje wysłać dane konfiguracyjne na adres 127.0.0.1:9050, gdzie oczekuje znaleźć działający serwer proxy przeglądarki Tor. Jednak domyślnie serwer proxy Tor nasłuchuje na porcie 9150, podczas gdy port 9050 jest używany przez demona Tor w systemie Linux lub Expert Bundle na Windows. W związku z tym dane nie są wysyłane na serwer przestępcy. Zamiast tego użytkownik może ręcznie pobrać plik konfiguracyjny, odwiedzając usługę dekryptującą Tor pod linkiem podanym w wiadomości o okupie.
Połączenie z proxy Tor:

![]()
HTTP GET generuje zapytanie na 127.0.0.1:9050/public/gate?data=

Tutaj widzisz otwarte porty TCP używane przez proxy TORlocal:

Usługa dekryptująca Nemty w sieci Tor:

Można przesłać zaszyfrowane zdjęcie (jpg, png, bmp) w celu przetestowania usługi dekryptującej.

Po tym przestępca prosi o zapłatę okupu. W przypadku braku płatności cena podwaja się.

Podsumowanie
Na ten moment odszyfrowanie plików zaszyfrowanych przez Nemty bez zapłacenia okupu nie jest możliwe. Ta wersja ransomware ma wspólne cechy z innymi szyfrowarkami, takimi jak Buran i nieaktualny GandCrab: kompilacja w Borland Delphi oraz obrazy z identycznym tekstem. Co więcej, to pierwsza szyfrowarka, która używa 8092-bitowego klucza RSA, co, przypominamy, nie ma żadnego sensu, ponieważ 1024-bitowy klucz jest wystarczający do zabezpieczeń. Wreszcie, co ciekawe, próbuje użyć niewłaściwego portu do lokalnej usługi proxy Tor.
Niemniej jednak rozwiązania i nie pozwalają szyfrowarce Nemty na dostęp do komputerów i danych użytkowników, a dostawcy mogą chronić swoich klientów za pomocą . Pełna zapewnia nie tylko kopie zapasowe, ale także ochronę przy użyciu , specjalnej technologii opartej na sztucznej inteligencji i heurystyce behawioralnej, która pozwala neutralizować nawet jeszcze nieznane złośliwe oprogramowanie.
Źródło: habr.com
