Uwaga na „Faktury od Playa”, czyli historia nietypowego konia trojańskiego

dodał 3 stycznia 2017 o 16:14 w kategorii Złośniki  z tagami:
Uwaga na „Faktury od Playa”, czyli historia nietypowego konia trojańskiego

Kilka dni temu, gdy wszyscy szykowali się do celebrowania końca starego i początku nowego roku do Cyberlaboratorium ZaufanejTrzeciejStrony zaczęły trafiać próbki nowej kampanii złośliwego oprogramowania.

Początkowo nie wzbudziły one naszego zainteresowania (“kolejna kampania z fakturami Play jak 3 czy 4 poprzednie”) jednak wkrótce okazało się, że ta kampania różni się od poprzedniej – i to bardzo. Zamiast zwyczajnie pobrać ransomware i zaszyfrować komputer, w załączniku był skrypt, który miał coś pobierać – lecz uparcie pobrać nie chciał. Śledztwo zmierzające do ustalenia przyczyn braku współpracy skryptu zaprowadziło nas w ciekawe miejsca. Gdzie konkretnie – przeczytacie poniżej.

„Faktura od Play”

W piątek 30 grudnia w godzinach porannych do skrzynek Polaków zaczęły trafiać wiadomości o temacie “Play – e-faktura do pobrania”. Wyglądały one następująco:

Wiadomości były całkiem porządnie przygotowane. Jednym z niewielu elementów ostrzegających o zagrożeniu był brak polskich znaków w treści, np:

Dzien dobry,

przesylamy fakture numer F/10587808/12/16 wystawiona 29.12.2016. Dokument znajduje sie w zalaczniku, a ponizej prezentujemy jego podsumowanie.

Adresem nadawcy było [email protected] – jak w oryginale. Zgadzał się także temat wiadomości oraz jej format i treść. W treści dokumentu znajdował się numer faktury i kwota, a wszystkie linki prowadziły do prawdziwego serwisu firmy Play. Co więcej, kliknięcie w nie wyświetlało stronę, na której zgadzał się numer faktury i kwota (parametry były przekazywane w URLu).

Sama wiadomość w pierwszej fazie ataków zawierała grafiki osadzone w swojej treści i – przynajmniej dla niektórych ofiar – była spersonalizowana. W treści znajdowały się dane osobowe posiadacza konta, zapewne wykradzione z jakiejś bazy. W drugiej wersji, która do nas trafiła, grafiki “się zgubiły”, jednak forma została zachowana.

W załączniku do wiadomości zamieszczone było archiwum RAR, które występowało w dwóch różnych wersjach. W obu znajdował się plik JavaScript ukryty pod nazwą udającą fakturę, jednak sposób jego spakowania był różny. Wariant prosty był zwykłym archiwum z plikiem JS w środku. Wariant drugi był sprytniejszy. Do wiadomości załączone było archiwum, zawierające dwa pliki – kolejne archiwum (zabezpieczone hasłem) oraz plik tekstowy z informacją o haśle. Dopiero po odpakowaniu drugiego archiwum ofiara mogła uruchomić złośliwy skrypt.

Co ciekawe, ta druga metoda okazała się być całkiem skutecznym sposobem na niektóre mechanizmy antywirusowe. Gmail, który w praktycznie każdym do tej pory przez nas obserwowanym przypadku wycinał bezlitośnie wszystkie złośliwe załączniki, kilku tak skonstruowanych archiwów nie zablokował.

Pojawiały się także drobne różnice w nazwach plików. Warianty które do nas trafiły korzystały z takich ciągów (czyżby A/B testing?):

  • E-Faktura-Play-nr-46064201-Z dnia-30-12-2016_PDF.rar
  • [email protected]_PDF.rar
  • Hasło do Faktury.txt
  • HASŁO DO OTWARCIA PLIKU.txt
  • E-Faktura-Play-nr-46064201-Z dnia-30-12-2016_PDF.js
  • [email protected]_PDF.js

Sam plik JS w każdym z obserwowanych przez nas przypadków był identyczny.

  • MD5: 18ed5935f4985f52837921fb332b7795
  • SHA256: 691676f1a673921bf8108c2a4bf089fd8679168d0dd342dd2bbbafb22c058b3b

Co ciekawe, w analizie dostępnej w serwisie VirusTotal (z zachowaniem wszystkich jej ograniczeń) jeszcze 3 dni po pierwszym zgłoszeniu jedynie 4 programy antywirusowe uznały plik JS za niebezpieczny. Pozostaje mieć nadzieję, że w prawdziwym środowisku uruchomieniowym, korzystając z bardziej rozbudowanych mechanizmów detekcji, antywirusy poradzą sobie lepiej.

Niecodzienny załącznik

Załącznik rozsyłany w korespondencji zawierał dość prosto zaciemniony kod JavaScript wygenerowany z publicznie dostępnego narzędzia o nazwie vjw0rm. Co ciekawe, choć serwer C&C napisany jest w .NET, to użyty przez przestępcę koń trojański jest dostarczany ofierze w formie pliku JavaScript. Jego autor, ukrywający się pod pseudonimami Sliemerez lub V_B01 (kiedyś także B01HaCker) wyprodukował wiele podobnych narzędzi, noszących ciekawe nazwy:

  • vjw0rm czyli Vengeance Justice Worm
  • vrw0rm czyli Vengeance Rise Worm
  • vbw0rm czyli Vengeance Blame Worm
  • vsw0rm czyli Vengeance Soul Worm

Na co dzień najłatwiej znaleźć go na Twitterze lub arabskojęzycznym forum DEVPOINT. Niestety nie wiemy, w jaki sposób nasz polski, rodzimy atakujący trafił na produkty arabskiego programisty.

Złośliwy kod, choć niezbyt rozbudowany, posiada wystarczające funkcje. Potrafi połączyć się do zdefiniowanego serwera przestępcy i wykonywać jego komendy. Posiada także mechanizmy zapewniające jego “przeżywalność” oraz sprytne mechanizmy rozprzestrzeniania się (np. przez napędy USB).

Zaraz po uruchomieniu, złośliwy skrypt tworzy klucz

HKLM\vjw0rm

z wartością TRUE lub FALSE – klucz ten określa stan złośliwego oprogramowania – aktywny/nieaktywny. Następnie wykonuje kopie swojego pliku do katalogów:

C:\Users\<nazwa użytkownika>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\Users\<nazwa użytkownika>\AppData\Local\Temp

i tworzy klucz o nazwie

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\TFR0ELUFV8

z wartością wskazującą na kopię złośliwego pliku umieszczonego w poprzednim kroku w katalogu TEMP użytkownika. Powyższe operacje mają zapewnić ponowne uruchomienie złośliwego skryptu po restarcie komputera. Następnie w skrypcie uruchomiona zostaje nieskończona pętla wykonywana co 7 sekund, w której wykonywane jest połączenie do serwera C&C i przetwarzana jest odpowiedź która zawiera komendy do wykonania na zarażonej maszynie.

Złośliwy skrypt przesyła dane identyfikujące zarażony komputer i jego parametry w nagłówku User-Agent. Struktura tego nagłówka jest następująca:

"play_NUMERSERYJNYDYSKU\\NAZWAKOMPUTERA\\NAZWAUŻYKOWNIKA\\WERSJASYSTEMUOPERACYJNEGO\\NAZWAPROGRAMUANTYWIRUSOWEGO\\\\CZYJESTDOTNET(YES/NO)\\CZYENABLED(TRUELUBFALSE)\\"

A tak wygląda komunikacja z zarażoną maszyną:

Sam złośliwy skrypt wyposażony jest w podstawowy zestaw komend, ale są one wystarczające aby przeprowadzić dalsze operacje na komputerze takie jak instalacja innego złośliwego oprogramowania, wykradzenie lub zniszczenie danych użytkownika. Jak skrypt obsługuje komendy? W odpowiedzi na żądanie wysłane do serwera C&C otrzymuje on ciąg identyfikujący komendę oraz jej parametry. Struktura takiej komendy jest następująca:

<komenda>|V|treść

Gdzie “|V|” to zdefiniowany separator oddzielający komendę od jej parametrów i/lub danych. Poniższy screen przedstawia definicję i przesłanie pliku BAT z serwera C&C do zarażonego komputera.

Obsługiwane przez złośliwy skrypt komendy to:

  • Cl – Wyłącza skrypt
  • Sc – Uruchamia przekazany w odpowiedzi z serwera zarządzającego skrypt (obsługiwane formaty to js, vbs, bat, html, hta, txt)
  • Ex – Pobiera treść ze wskazanego URLa i uruchamia na komputerze ofiary
  • Rn – Zmienia nazwę złośliwego pliku
  • Up – Aktualizuje złośliwy plik
  • Un – Odinstalowuje złośliwy plik z systemu
  • RF – Uruchamia przekazany w odpowiedzi z serwera zarządzającego plik binarny

Dodatkowo, poza funkcją obsługi komend odebranych z serwera przestępców, złośliwy skrypt posiada wbudowaną opcję rozprzestrzeniania się za pomocą podłączonych do komputera nośników przenośnych. Robi to w sprytny sposób, a mianowicie zapisuje swoją kopię na napęd wymienny i zmienia atrybuty pliku na systemowy i ukryty. Następnie ukrywa wszystkie katalogi (i ich podkatalogi) oraz pliki w głównym katalogu napędu zmieniając ich atrybuty na systemowe i ukryte i tworzy dla każdego z nich skrót którego uruchomienie powoduje wykonanie złośliwego skryptu. Powoduje to, że gdy ktoś zajrzy na tak zainfekowany napęd, może z rozpędu kliknąć w skrót i uruchomić złośnika.

Treść utworzonego skrótu wygląda następująco:

Dla katalogu: C:\windows\system32\cmd.exe /c start <nazwa pliku złośliwego skryptu>.js&start explorer <nazwa właściwego katalogu>&exit

Dla pliku: C:\windows\system32\cmd.exe /c start <nazwa pliku złośliwego skryptu>.js&start <nazwa właściwego pliku>&exit

A jak to wszystko wygląda z poziomu atakującego przestępcy? Poniżej zrzut ekranu z serwera C&C  z widokiem na aplikację zarządzającą zarażonymi komputerami.

Analiza infrastruktury atakujących

Złośliwy kod łączy się z serwerem pod adresem pobierz.www1.biz na porcie 1512. Adres www1.biz należy do puli darmowych domen firmy ChangeIP.com, umożliwiających skonfigurowanie usługi DNS pod łatwym do zapamiętania adresem. Sama domena od co najmniej 30 grudnia, zatem od początku ataku, wskazuje na adres IP 95.167.151.228. Z kolei ten sam adres IP od 21 grudnia 2016 powiązany był z domeną ns03.d-n-s.name. Ta domena jest nam bardzo dobrze znana, ponieważ w styczniu 2016 pod adresem ns01.d-n-s.name znajdował się serwer C&C złośliwego oprogramowania, które blokowało ofiarom m. in. dostęp do naszego serwisu i który można było próbować przypisać Thomasowi.

Adres IP 95.167.151.228 był także wykorzystywany przez przestępców do rozsyłania omawianego ataku, co widać w nagłówkach wiadomości:

Received: from [192.168.25.1] (unknown [95.167.151.228])
 by amada.nazwa.pl (Postfix) with ESMTP id 579B042A77F

Co ciekawe, ta fala wiadomości wysłana była za pomocą popularnego mailera dla .NET:

X-Mailer: aspNetEmail ver 3.7.0.26

Druga fala wiadomości była wysyłana z innego serwera:

Received: from [87.246.251.88] (netpanel-87-246-251-88.umcs.akademiki.lublin.pl [87.246.251.88])
 by amada.nazwa.pl (Postfix) with ESMTP id 8EC9C443BF3

za pomocą także popularnego skryptu:

X-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/)

Niestety jak widać w obu przypadkach przestępcy użyli serwera w firmie nazwa.pl – to m. in. ulubiona hostownia naszego ulubionego Thomasa. Z tej samej serwerowni, przy użyciu tego samego adresu IP wysłano także pod koniec listopada 2016 wiadomość o temacie “Poczta Polska – Powiadomienie o Awizowanej przesyłce” zawierająca załącznik o nazwie Awizo-Poczta-Polska-26.11.2016_pdf.js, który wygląda na wcześniejszą wersję tego samego ataku. Niestety wysłana wiadomość nie została zachowana. Udało nam się jednak znaleźć treść odciemnionego skryptu oraz jego analizę. Porównanie z wynikiem analizy dzisiaj opisywanego skryptu nie pozostawia wątpliwości – to to samo narzędzie.

Atrybucyjna wycieczka

Czasem w atrybucji ataku można wybrać się na dość długą wycieczkę – jedziecie z nami? Tak jak wspominaliśmy wyżej, w opisywanej przez nas kampanii wykorzystywany jest adres IP 95.167.151.228. Wiemy o nim, że:

  • ten sam adres był także użyty w ataku z 27 listopada 2016 (temat: Poczta Polska – Powiadomienie o Awizowanej przesyłce)
  • ten sam adres obsługiwał domenę ns03.d-n-s.name

Jeśli zaś poszukamy wiadomości o temacie “Poczta Polska – Powiadomienie o Awizowanej przesyłce”, trafimy na wiadomość z końca marca 2016. Wtedy jej załącznikiem był plik o bardzo podobnej konstrukcji nazwy: E-Awizo z dnia 24_03_2016.docm. Był to też czas, kiedy Thomas używał plików DOCM do dystrybucji swoich produkcji. Plik ten zawierał złośliwe makro bardzo podobne do tego, jakim często posługiwał się Thomas, pobierające złośliwy plik z adresu http://ddl3.data.hu/get/0/9598891/crt66.exe – z tego serwera Thomas w swoich kampaniach korzystał regularnie. Podsumowując:

  • adres IP 95.167.151.228 powiązany z domeną ns03.d-n-s.name – bardzo podobną do powiązanej z Thomasem ns01.d-n-s.name
  • temat wiadomości identyczny jak używany w kampanii używającej mechanizmów lubianych przez Thomasa (DOCM, makro, węgierski hosting)
  • nazwy plików podobne do używanych przez Thomasa (użycie zwrotu “z dnia” oraz daty)
  • wiadomości wysyłane przez serwery nazwa.pl zawsze używane przez Thomasa

Brakuje nam jednoznaczne potwierdzenia, lecz jeśli coś wygląda jak Thomas i zachowuje się jak Thomas…

Znajomy zaraził swój komputer, co robić

W pierwszym etapie infekcji gdy w systemie zainstalowany jest jedynie plik JS wyczyszczenie komputera jest w miarę proste. Wystarczy wykonać następujące kroki:

  • uruchomić Menedżera zadań
  • odszukać proces “wscript.exe”, kliknać na nim prawym przyciskiem myszki i wybrać opcję “Zakończ proces”
  • otworzyć edytor rejestru (start->uruchom i wpisać regedit.exe) i skasować następujące klucze:
     HKCU\Software\Microsoft\Windows\CurrentVersion\Run\TFR0ELUFV8

    oraz

     HKLM\vjw0rm
  • usunąć złośliwy skrypt z katalogów
    C:\Users\<nazwa użytkownika>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
    

    oraz

    C:\Users\<nazwa użytkownika>AppData\Local\Temp\
  • i zrestartować komputer.

Jeśli w trakcie uruchomienia złośliwego skryptu w napędzie był obecny dysk USB lub pendrive, należy

  • włączyć pokazywanie plików i folderów ukrytych i systemowych oraz rozszerzenia plików, standardowo niewidoczne dla użytkownika (na stronie Microsoftu znajdzie instrukcje jak to zrobić),
  • przejść do głównego katalogu napędu USB,
  • odnaleźć złośliwy plik JS i go skasować,
  • skasować wszystkie skróty (*.lnk) do plików i katalogów znajdujące się na napędzie USB (uwaga! skróty utworzone są także w podkatalogach! tam też trzeba je wyczyścić).

I już po wirusie. Gdy badaliśmy infekcję 2 stycznia, serwer C&C wydawał się być wyłączony. Możliwe, że wcześniej działał i mógł instalować na zainfekowanych komputerach dodatkowe złośliwe oprogramowanie – dla uniknięcia wątpliwości można próbować szukać innych śladów lub – w opcji dla radykałów – przeinstalować system.

Podsumowanie

W zalewie plików JavaScript, których jedynym zadaniem jest pobieranie z zewnętrznego serwera i uruchamianie złośliwego oprogramowania, koń trojański napisany w JS jest miłą odmianą dla analityka. Ciekawi nas sposób, w jaki ten właśnie koń trojański dotarł do Polski – znaleźliśmy jedynie 4 ślady jego użycia w tej samej wersji, z czego 2 dotyczyły naszych, krajowych ataków. Do tego pierwszy atak za jego pomocą w Polsce jest pierwszym odnalezionym przez nas jego wystąpieniem w sieci – czyżby na nasz rynek trafiały także premiery?

Dziękujemy bardzo kilkunastu Czytelnikom, którzy przysłali do nas swoje próbki – pamiętajcie, jeśli chcecie czytać ciekawe analizy to musicie regularnie korzystać z formularza kontaktowego (idealnie prosimy o pliki w formacie EML). Nasz zespół fachowych Anonimowych Analityków na pewno sobie z nimi poradzi.