Spora – ransomware offline z wieloma metodami płatności

Nieszablonowe zagrożenie z ciekawą metodą monetyzacji – więcej zaszyfrowanych plików to większy okup!

Spora rozprzestrzenia się za pośrednictwem urządzeń USB, podobnie jak Gamarue czy Dinihou, szyfrując pliki na zainfekowanym komputerze. Przedstawiamy sposób w jaki szkodnik zaraża system oraz szyfruje zasoby, a także w niespotykany do tej pory sposób wymusza okupu.

Załącznik pocztowy HTA – pospolity wektor ataku

Spora została wykryta przez właścicieli witryny ID Ransomware. O istnieniu wirusa poinformował na Twitterze MalwareHunterTeam. Specjaliści zajmujący się malwarem, a także użytkownicy Twittera, byli zaskoczeni profesjonalną stroną autorów ransomware oraz nietypowym rozliczaniem okupu.  Większość witryn z tej kategorii przedstawia się bardzo skromnie. Pierwszą próbkę wirusa zaprezentował członek Bleepingcomputer oraz omówił ją na forum dyskusyjnym w odpowiednim temacie (Spora support topic).

Próbka to aplikacja HTA z zaciemnionym kodem VBScript. Jak wynika z informacji zamieszczonych przez Bleepingcomputer wiadomość dostarczono jako załączniki w formacie ZIP. Sprawdzenie pliku na Virus Total pokazało następującą nazwę pliku Скан-копия _ 10 января 2017г. Составлено и подписано главным бухгалтером. Экспорт из 1С.a01e743_рdf.hta.

Plik HTA zapisuje plik JScript do %TEMP%\close.js, a następnie go wykonuje. Z kolei plik JScript jest dropperem dla dokumentu Word zapisywanego w %TEMP%\doc_6d518e.docx oraz dla pliku PE (Portable Executable) zapisywanego jako %TEMP%\81063163ded.exe.

Oba pliki są otwierane przez close.js. Dokument Word otwierany jest z parametrem do wyświetlania okna, które ma skupiać na sobie uwagę natomiast plik PE zawiera parametry ukrywające okno MS Office. W rezultacie dokument jest otwierany przez domyślną aplikację dla plików .docx, Word, ale pojawia się komunikat o błędzie, wywołanym przez uszkodzony plik. Plik PE 81063163ded.exe wydaje się mieć losową nazwę, jest on jednak zhardkodowany przez dropper. To spakowany plik wykonywalny UPX zawierający payload.

Komunikat o błędzie pojawia się po otwarciu uszkodzonego dokumentu

Robak – podobne działanie do Dinihou i Gamarue

ZCryptor uznano pierwszym malwarem stanowiącym połączenie wirusa i ransomware ze względu na wykorzystanie autorun.inf.  Spora idzie o krok dalej, posługując się tymi samymi technikami co Dinihou i Gambarue.

Funkcjonalność autorun.inf została usunięta w Windows 7, a także zaktualizowana siedem lat temu na Windows XP oraz Windows Vista. W gruncie rzeczy stała się ona nieefektywną techniką rozprzestrzeniania wirusów za pośrednictwem przenośnych dysków. Niemniej Spora, Dinihou i Gamarue zamiast autorun.inf używają skrótów (.LNK files)

Spora dodaje ukryty atrybut do plików i folderów na pulpicie, przenośnych dyskach oraz dysku systemowym. Ukryte foldery i pliki przy standardowych opcjach ustawień są oczywiście niewidoczne.  Spora następnie umieszcza skróty systemu Windows z tą samą nazwą i ikoną co ukryte pliki i foldery jako widzialny zamiennik. Plik .LNK otwiera  oryginalny plik, aby uniknąć jakichkolwiek podejrzeń i jednocześnie uruchamia złośliwe oprogramowanie. Na przykład folder C:\Windows zostanie ukryty i  utworzy się plik o nazwie C:\Windows.lnk.;  wygląda on dokładnie tak samo jak oryginalny folder zakładając, że w systemie Windows ustawione są standardowe opcje.

Plik .LNK wykorzystuje następującą komendę, aby uruchomić wirusa otwierając oryginalny plik. Jeśli oryginalny plik jest folderem otworzy Eksploratora Windows, żeby wyświetlić jego zawartość:

/c explorer.exe „<originalfile>” & type „<worm>” > „%%tmp%%\<worm>” & start „<originalfile>” „%%tmp%%\<worm>

Robak kopiuje się jako ukryty plik razem z .LNK files, a nazwa pliku jest generowana przez obliczenie sumy kontrolnej CRC32 dla Volume Serial Number.

Wynik jest określany przez wzór %08x%04x%04x%02x%02x%02x%02x%02x%02 (zobacz adres 0x405492). To oznacza, że nazwa dla pliku malware przedstawia się następująco a277a133-ecde-c0f5-1591-ab36e22428bb.exe.

Funkcja oblicza CRC32 podstawie VolumeSerialNumber dysku.                                                   Plik .LNK i kopia złośliwego oprogramowania znalazły się w katalogu głównym dysku systemowego.

Wirus usuwa wartość rejestru HKCR\lnkfile\isShortcut w skutek czego ikony skrótu nie pokazują charakterystycznej wygiętej strzałki w lewym dolnym rogu ikony, która mogłaby zasygnalizować użytkownikowi, że coś jest nie tak.

Wirusa uaktywnia prosta nawigacja po folderach i pulpicie oraz podwójne kliknięcie. Wykorzystując tę strategię nie tylko rozprzestrzenia się  on na przenośnych dyskach, ale również szyfruje nowo powstałe pliki w systemie. Następuje blokada systemu operacyjnego i urządzenie jest niezdolne do przechowywania zasobów lub jakiejkolwiek pracy z dokumentami, dopóki wirus nie zostanie usunięty.

Funkcja, która usuwa wartość IsShortcut w rejestrze.

Szyfrowanie

Spora nie zmienia nazw zaszyfrowanych plików i skupia się na niewielkim zestawie rozszerzeń. Procedura szyfrowania pokazana jest na poniższej grafice:.backup, 7z, .rar, .zip, .tiff, .jpeg, .jpg, .accdb, .sqlite, .dbf, .1cd, .mdb, .cd, .cdr, .dwg, .psd, .pdf, .odt, .rtf, .docx, .xlsx, .doc, .xls

Spora generuje parę kluczy RSA – C1 i C2 (1024 bit).  Nowo wygenerowany klucz publiczny RSA C2 służy do szyfrowania plików z kluczami AES KEY File 1 oraz AES KEY File 2, które są także utworzone przez opisywany ransomware.

Utworzony prywatny klucz RSA C1 jest zapisywany w pliku .KEY.  Ten plik jest zaszyfrowany przy użyciu nowo utworzonego klucza AES Key B (256 bit). Publiczny klucz  RSA A2 jest używany do zaszyfrowania klucza AES Key B. Zaszyfrowany klucz B jest dołączany do pliku .KEY.

Kolejnym ważnym plikiem w procesie szyfrowania Spora jest dokument z rozszerzeniem .LST zawierający listę wszystkich zaszyfrowanych plików z zaatakowanego komputera. Nowo utworzony klucz AES jest wykorzystany do zaszyfrowania tej listy zablokowanych plików.

Zaszyfrowana treść pliku. KEY.  i zaszyfrowany klucz AES są zapisywane na dysk.                     Klucz AES F jest zaszyfrowany przez publiczny klucz RSA A i zawartość pliku .LST jest zaszyfrowana przy użyciu klucza AES F (256 bit).

Stosując ten schemat szyfrowania Spora nie musi pozyskiwać kluczy z serwera, wystarczy praca w trybie offline. Natomiast ofiara ataku musi przekazać plik .KEY do serwisu gdzie dokonuje płatności okupu.

Plik .KEY może być rozszyfrowany jedynie przez autora wirusa.  Używając prywatnego klucza RSA A1, można odszyfrować klucz AES  B, który został dołączony do pliku .KEY. Istnieje też możliwość odszyfrowania pozostałej zawartość pliku .KEY zawierającego prywatny klucz usera RSA C1 przy wykorzystaniu klucza AES B.

Następnie napastnicy mogą umieścić klucz prywatny RSA C1 w narzędziu deszyfrującym i przesłać go użytkownikowi po otrzymaniu płatności. To działanie gwarantuje, że prywatny klucza RSA A1 nie zostanie ujawniony, a narzędzie deszyfrujące zadziała tylko w przypadku jednego użytkownika. Co oznacza, że istnieje wyłącznie jeden prywatny klucz RSA A1 dla większej liczby infekcji. Jeśli klucz zostanie upubliczniony lub zostanie przechwycony przez organy ścigania, może on posłużyć do odszyfrowania plików zaszyfrowanych przez ransomware Spora.  Możemy określać go mianem Master Key.

Strona płatności Spora posiada chat oraz oferuje kilka pakietów deszyfrowania różniących się ceną.

Statystyki dotyczące zaszyfrowanych plików

Spora wprowadza podział na 6 różnych grup plików ze względu na ich rozszerzenie.

PozycjaKategoriaRozszerzenia plików
1dokumenty Office.odt, .rtf, .docx, .xlsx, .doc, .xls
2PDF.pdf
3CorelDraw, AutoCAD, Photoshop.cdr, .dwg, .psd
4Bazy danych.accdb, .sqlite, .dbf, .1cd, .mdb, .cd
5Obrazy.tiff, .jpeg, .jpg
6Archiwum.backup, .7z, .rar, .zip

Plik .KEY zapisuje te dane w formie date|user name|locale|cat1|cat2|cat3|cat4|cat5|cat6, na przykład: 13.1.2017|horst|USA|10|2|3|0|103|51

Te same dane będą wykorzystywane do nazewnictwa pliku .LTS, .KEY oraz wiadomości z żądaniem okupu. Weźmy pod uwagę następującą trójkę plik .KEY, .LST oraz żądanie okupu.

• RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.LST

• RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.KEY

• RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.HTML

Dwie pierwsze litery nazwy pliku są to ustawienia regionalne – w naszym przykładzie to RU. Kolejne pięć liter to znaki to początek hash MD5 dla zawartości pliku .KEY – 30215. Następnie mamy parametry plików, które musza być dekodowane przy użyciu tabeli poniżej:

0   1   2   3   4   5   6   7   8   9   I      Odstęp
Z   X   R   O  A   H  F  G  E  K   T     Y

Oznacza to, że nazwa pliku RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY – zawiera wskazanie lokalizacji jako rosyjskie, liczba 30215 rozpoczyna hash MD5, 12971 zaszyfrowanych dokumentów Office, 6370 zaszyfrowanych plików PDF, 8 zaszyfrowanych plików CorelDraw/AutoCAD/Photoshop, 9 zaszyfrowanych plików baz danych, 16632 zaszyfrowanych zdjęć oraz 114 zaszyfrowanych archiwów.

Po przesłaniu pliku .KEY do strony płatności Spora na podstawie ilości zaszyfrowanych plików zostaje ustalona wysokość okupu. Poniższa tabela pokazuje wysokość opłat za deszyfracje plików.

Dokumenty OfficePDFCorelDraw/AutoCAD/PhotoshopBazy danychZdjęciaArchiwaOkup w USD
228415500012118979-100
48947104796679-100
5223374206121269419890-120
79917341021948587782128-170
11160935424699774242146-190
1285151881851513310311281199-250
21173708751497069730214-270
25146258292959854631059435818280-350
1389649508721824984627754122449280-350
1181072721530610276511471280-350
3050321354009837252711580280-350
2637520505121783016315052487280-350
823194070716931314385203607280-360

Specyficzne zachowania Spora.

Spora nie potrafi ominąć UAC – czyli kontroli konta użytkownika. Oznacza to, że użytkownik zostanie zapytany czy złośliwe oprogramowanie może dokonać zmian na komputerze ofiary.

Spora usuwa pliki tzw. kopii w tle dzięki którym system ma możliwość powrotu do poprzednich wersji plików (VSS – volume shadow copy services). Taki zabieg uniemożliwia systemowi Windows naprawianie błędów systemu podczas kolejnego uruchomienia.

Mechanizm UAC.                                                                                                              Lista zaangażowanych plików

Nazwy plikówOpisSHA256Wykryty jako
Скан-копия _ 10 января 2017г. Составлено и подписано главным бухгалтером. Экспорт из 1С.a01e743_рdf.htaHTA dropper3fb2e50764dea9266ca8c20681a0e0bf60feaa34a52699cf2cf0c07d96a22553Script.Trojan-Dropper.Spora.A
close.jsJScript droppere2fe74d890ddb516b4f21a6588c6e0bdbf3dd6f8c5116d707d08db7ebddf505aScript.Trojan-Dropper.Spora.G
81063163ded.exe, a277a133-ecde-c0f5-1591-ab36e22428bb.exeSpora PE plik, spakowany za pomocą UPXdbfd24cd70f02ddea6de0a851c1ef0f45f18b4f70e6f3d0f2e2aec0d1b4a2cbfWin32.Worm.Spora.B
doc_6d518e.docxUszkodzony dokument Word0ba39054a70802d0b59a18b873aab519e418dc9b0c81400d27614c9c085409ad 
Windows.lnkskrót złośliwego pliku Win32.Worm.SporaLnk.A
RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.HTMLżądanie okupu  
RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.KEYZawiera statystki, ID kampanii, nazwę użytkownika, lokalizację, oznaczenie czasu, prywatny RSA klucz C1; zaszyfrowane  
RU302-15XRK-GXTFO-GZTET-KTXFF-ORTXA-AYYYY.LSTLista zaszyfrowanych plików  
Michał Łabęcki | P.o. Kierownika marketingu

Michał Łabęcki
P.o. kierownika marketingu
E-mail: [email protected]

Przeczytaj również ...