Nieuchwytny polski ransomware z arabskim akcentem w końcu złapany

dodał 10 marca 2017 o 11:56 w kategorii Złośniki  z tagami:
Nieuchwytny polski ransomware z arabskim akcentem w końcu złapany

Czasem niektórzy przestępcy bywają odrobinę sprytniejsi od konkurencji i odnajdują sposoby, by utrudnić analizę swojej aktywności. Na taki przypadek natrafiliśmy na początku tego roku – lecz w końcu udało się go częściowo wyjaśnić.

Pod koniec stycznia do specjalistów zajmujących się bezpieczeństwem zaczęły zgłaszać się ofiary nowego rodzaju ransomware. Przypadki te były ciekawe z dwóch powodów. Po pierwsze autor ransomware wydawał się być Polakiem, a po drugie nikt nie potrafił znaleźć próbki programu szyfrującego ani poznać metody jego dystrybucji mimo iż ofiar było co najmniej kilka. Powoli jednak można odsłonić rąbka tajemnicy i zajrzeć do nad wyraz amatorskiego – choć niestety chyba skutecznego polskiego ransomware.

Anonimowi Analitycy na tropie

Pierwsze ślady Polskiego Ransomware pojawiły się w serwisie Pastebin. Można było się z nich dowiedzieć, że z autorem programu można skontaktować się pod adresami  rsapl@openmailbox.org lub estion@sigaint.org a także pod nr GaduGadu 61621122. Koszt odszyfrowania danych miał wynosić 249 dolarów a obsługa klienta wyglądała na całkowicie manualną. Przez dłuższy czas w sprawie nie działo się nic znaczącego (oprócz pojawiania się kolejnych ofiar), aż do wczoraj, kiedy to ogłoszono zdobycie próbki złośliwego oprogramowania.

Okazało się, że ransomware ewoluował co można rozpoznać po nazwie „Vortex” nieobecnej we wcześniejszych notatkach. W sieci pojawiły się już pierwsze, dość surowe analizy a Orange zablokował swoim klientom dostęp do serwerów sterujących. Zespół Anonimowych Analityków naszego serwisu przyjrzał się udostępnionej próbce i choć śmiał się długo z metod jej działania, to przyznał, że brak prostej metody odzyskania plików.

Albański ransomware

Pamiętacie albańskiego wirusa, którego każdy musiał sam uruchomić? Z tym ransomware jest dość podobnie. Metodą jego dystrybucji zajmiemy się za chwilę, zacznijmy od konstrukcji. Program napisany jest w języku C# i nie jest w żaden sposób zaciemniony, spakowany ani zaszyfrowany. Wystarczy wczytać go do aplikacji dotPeek by obejrzeć od początku do końca. Co więcej, program wykorzystuje w przeważającej części projekt AESxWin znajdujący się na GitHubie. AESxWin to program, który wg jego autora ma być wykorzystywany do szyfrowania za pomocą algorytmu AES plików przesyłanych do chmury – i faktycznie na taki wygląda, został jednak zmodyfikowany. Po uruchomieniu wyświetla takie oto okienko.

Co ciekawe, szybkie kliknięcie w guzik „Stop” zatrzymuje szyfrowanie plików. O poziomie zaawansowania „programisty” tego ransomware świadczy także kawałek kodu uruchamiającego proces szyfrowania, w którym zamiast wywołać bezpośrednio konkretną funkcję w aplikacji, autor wywołuje zdarzenie „Click” na przycisku i dopiero ten przycisk uruchamia odpowiednia funkcję. #AnalitykPłakałJakAnalizował

Uruchomiony ransomware przede wszystkim potrzebuje klucza do szyfrowania plików. Autor postanowił ominąć tworzenie tego skomplikowanego element kodu (którego nie było w przerabianej aplikacji) i zdecydował się na odwołanie do publicznie dostępnej usługi. Żądanie wysłane do serwera wygląda tak:

W odpowiedzi program otrzymuje ciąg 40 znaków, który wygląda na losowy (badanie jego losowości jest osobnym zadaniem, którego się nie podejmujemy). W kolejnym kroku program sprawdza adres IP zainfekowanego komputera. Ponownie zadanie przerosło osobę modyfikującą kod, ponieważ odwołuje się w tym celu do zewnętrznego serwera:

W odpowiedzi otrzymuje adres IP. Program dodaje także klucz do rejestru zapewniający ponowne uruchomienie w razie problemów.

Jeśli złośliwy program nie otrzyma odpowiedzi serwera serwującego klucz lub zostanie zatrzymany guzikiem „Stop”, to nie zaszyfruje danych. Jeśli jednak uruchomimy ponownie komputer, to program uruchomi się z rejestru i ponownie spróbuje zaszyfrować pliki. Dlatego jeśli zablokujemy jego wykonanie, trzeba go jeszcze usunąć z rejestru przed restartem komputera.

Jak już wspominaliśmy wcześniej, ten ransomware to modyfikacja ogólnodostępnego programu do szyfrowania kopii zapasowych, stąd też uruchomienie pliku z parametrem /reg powoduje dodanie do menu pod prawym przyciskiem myszy opcji szyfrowania oraz deszyfrowania plików i katalogów.

Uruchomienie z parametrem /unreg wyłącza tę opcję.

Po zebraniu opisanych wyżej danych program “melduje” się na serwerze przestępcy wysyłając zebrane informacje wraz z wygenerowanym hasłem do odszyfrowania plików. Całość komunikacji odbywa się przez nieszyfrowany protokół HTTP, co może pomóc w odzyskaniu klucza do odszyfrowania danych (o ile ktoś przez przypadek nagrywa cały ruch wychodzący HTTP).

Po wysłaniu danych program przystępuje do szyfrowania plików. Jego celem są pliki znajdujące się w następujących katalogach:

  • Environment.SpecialFolder.Personal -> Katalog, który służy jako wspólne repozytorium do dokumentów użytkownika.
  • Environment.SpecialFolder.Recent -> Katalog zawierający odwołania do ostatnio używanych dokumentów użytkownika.
  • Environment.SpecialFolder.MyPictures -> Katalog „Moje Obrazy”
  • Environment.SpecialFolder.MyMusic -> Katalog „Moja Muzyka”
  • Environment.SpecialFolder.Favorites -> Katalog, który służy jako wspólne repozytorium „elementów ulubionych” użytkownika.
  • Environment.SpecialFolder.ProgramFiles -> Katalog „Program Files”
  • Environment.SpecialFolder.DesktopDirectory -> Katalog „Pulpit” zawierający dane z pulpitu użytkownika
  • Environment.SpecialFolder.System -> Katalog systemowy
  • Environment.SpecialFolder.MyComputer -> Katalog „Mój Komputer”
  • oraz główne katalogi wszystkich napędów w komputerze (np. C:\, D:\ itp.)

Do nazw zaszyfrowanych plików dodawany jest ciąg „aes”. Próbka którą analizowaliśmy przygotowana jest do szyfrowania całej gamy różnych plików w tym m.in:

  •   image_ext = new string[] { „.jpg”, „.jpeg”, „.png”, „.gif”, „.bmp” };
  •   video_ext = new string[] { „.avi”, „.flv”, „.mov”, „.mp4”, „.mpg”, „.rm”, „.rmvb”, „.mkv”, „.swf”, „.vob”, „.wmv”, „.3g2”, „.3gp”, „.asf”, „.ogv” };
  •   audio_ext = new string[] { „.mp3”, „.wav”, „.acc”, „.ogg”, „.amr”, „.wma” };
  •   document_ext = new string[] { „.pdf”, „.txt”, „.rtf”, „.doc”, „.docx”, „.ppt”, „.pptx”, „.xls”, „.xlsx” };
  •   compressed_ext = new string[] { „.zip”, „.rar”, „.7z”, „.tar”, „.gzip” };
  •   code_ext = new string[] { „.cs”, „.vb”, „.java”, „.py”, „.rb”, „.cpp”, „.html”, „.css”, „.js” };

Z nieznanego nam powodu (wydajność?) jej funkcje zostały ograniczone do szyfrowania jedynie plików graficznych z rozszerzeniami zdefiniowanymi w zmiennej “image_ext”. Postęp szyfrowania zapisywany jest do logu, w którym znajdziemy m.in pierwsze cztery znaki użytego do szyfrowania hasła oraz inne informacje typu “DEBUG” wskazujące na to co program robił i które pliki zaszyfrował. Plik znajdziemy w:

Zawartość logu wygląda tak:

Po zaszyfrowaniu, w katalogu gdzie ransomware znalazł pliki z listy do zaszyfrowania, tworzony jest plik ODZSZYFRUJ-DANE.txt z informacją o okupie i sposobie komunikacji z przestępcami.

Po zakończeniu szyfrowania ransomware kasuje swój plik (wykonując plik exec.bat, którego niestety nie udało się nam zlokalizować) oraz usuwa wpisy z rejestru, by uniknąć wykrycia.

Dystrybucja, atrybucja i unikanie ataku

Ciekawym wątkiem jest dystrybucja tego ransomware. Jakim cudem przez ponad miesiąc unikał rozpoznania i wrzucenia na VirusTotal, jeśli w tym czasie infekował internautów? Odpowiedzi możemy prawdopodobnie szukać w fakturach Playa lub emailach od Zary. W opisywanych przez nas kampaniach autor używał nietypowego konia trojańskiego, napisanego w całości w języku JavaScript. Trojan ten był autorstwa osoby arabskojęzycznej, podobnie jak program szyfrujący użyty do stworzenia ransomware Vortex. Prawdopodobnie opisywany ransomware jest wgrywany ręcznie na komputery wybranych ofiar javascriptowego konia trojańskiego, co tłumaczy długi czas potrzebny do wykrycia próbki.

W kodzie znaleźć można także następującą ścieżkę:

Kot gigant to ciekawy pseudonim. Google wskazuje utwór Tedego pod tym samym tytułem, a my wspominamy pewnego miłośnika taniego malware, który często słucha polskiego rapu.

Autora ransomware i całej kampanii niezmiennie prosimy o kontakt – mamy kilka pytań.