Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

CoinVault - czy to już koniec koszmaru?

Dodany 17 września 2015, 14:18 CEST
Tagi:

Dzień po udostępnieniu przez nas narzędzia do deszyfrowania danych, które było elementem Kampanii No Ransom mającej na celu walkę z programem żądającym okupu CoinVault, skontaktował się z nami badacz z firmy Panda, Bart Blaze. Poinformował nas on, że dostępne są nowe warianty szkodnika oraz że z przyjemnością nam je przekaże. Po uzyskaniu nowych hashy MD5 dla plików zaczęliśmy poszukiwać innych wskazówek i plików do analizy, aby odkryć, co nowego niosą te nowe odmiany szkodliwego programu: trzy rodziny malware, które łączy uderzające podobieństwo.  

W końcu znaleźliśmy kilka interesujących niespodzianek.

Jednak najlepsze jest to, że dzięki naszym analizom jednostka National High Tech Crime Unit holenderskiej policji zaaresztowała w miniony poniedziałek dwóch podejrzanych.

Początki historii o CoinVault

Nasze badania rozpoczęły się w maju 2014 roku, gdy odkryliśmy pierwszą wersję CoinVaulta. Ponieważ próbka ta nie działała na każdym komputerze, więc postanowiliśmy wówczas nie analizować jej.

Wtedy nagle pojawił się Comhost

Dwa miesiące po wykryciu pierwszej wersji CoinVaulta wykryliśmy dwie niemal identyczne próbki. Oba pliki różniły się jedynie sposobem rozpakowywania oraz wykonywania szkodliwego programu z sekcji zasobów w formacie binarnym.

Oba pliki binarne zostawiały plik wykonywalny znany jako ‘comhost.exe’. Comhost miał całkowicie inną funkcjonalność niż CoinVault – pierwszy z nich kradł informacje, a drugi został zaliczony do kategorii zwykłego programu żądającego okupu (przynajmniej do tamtej chwili).

W dalszej kolejności szkodliwy program rozwiązywał dwie ustalone nazwy domen na adresy IP i uruchamiał keyloggera oraz licznik. Po upływie określonego czasu rozpoczynało się wyszukiwanie portfeli bitcoinów. Atakujący zastosowali tę funkcję najprawdopodobniej dlatego, aby znacznie utrudnić wykopywanie tej wirtualnej waluty.

coinvault_en_1.png

Ponadto szkodliwy program mógł wykonywać polecenia otrzymywane od serwera C2.

coinvault_en_2.png

Powrót do CoinVaulta

Minęły dwa miesiące i natrafiliśmy na kolejny przykład CoinVaulta. Tym razem kod programu wykazywał wiele wspólnego ze szkodnikiem Comhost. Część funkcji była taka sama, np. fixNOIPhosts(), co wskazywało na oczywiste powiązanie między programami CoinVault i Comhost. Co więcej, były także podobne z wyglądu.

Na szczęście autorzy tego malware’u popełnili drobny błąd. Zamiast nadpisać oryginalny plik szyfrowaną zawartością, utworzyli nowy w tym samym katalogu z rozszerzeniem ._clf.

coinvault_en_3.png

Później oryginalny plik został usunięty przy użyciu funkcji File.Delete(). Wewnętrznie metoda ta została zastosowana jako odwołanie do funkcji Win32Native.DeleteFile(). Funkcja DeleteFile oznaczyła ten plik we wpisie MFT jako usunięty. Wobec tego ofiary CoinVault, które zostały zainfekowane tą wersją szkodliwego programu, prawdopodobnie mogły odzyskać pliki utracone podczas ataku (jeśli po usunięciu pliku dysk nie był zbyt aktywnie używany).

S.H.I.E.L.D Runner i dodatkowe funkcje

Miesiąc po pojawieniu się ostatniej próbki CoinVaulta odkryto nową wersję Comhost. Była to pierwsza próbka, która zawierała “S.H.I.E.L.D Runner”. Funkcjonalność tej części kodu opisaliśmy w poście: https://securelist.com/blog/virus-watch/67699/a-nightmare-on-malware-street/.

Widocznie autorzy malware’u nie byli zbytnio usatysfakcjonowani wcześniejszą wersją Comhosta. Zapomnieli dodać keyloggera, aby rejestrować np. wciśnięcie klawisza CapsLock. Kolejną interesującą funkcją, która została dodana, była funkcja zbierania informacji o zainstalowanym programie antywirusowym i domyślnej przeglądarce, które były wysyłane do serwera C2. Jednak najbardziej interesującą nowością była klasa ActivecaptionWatcher, która mogła wykonywać zrzuty ekranu i wysyłać je do serwera C2.

Mailspreader i zaciemnianie

O zagrożeniu CoinVault pisaliśmy już w listopadzie 2014 roku: wpis omawiał próbkę, która pojawiła się kilka tygodni po najnowszej wersji Comhosta. Wszystkie próbki, które pojawiły się w tym czasie, były zaciemnione przy użyciu narzędzia Confuser. Ale w naszych analizach pominęliśmy funkcjonalność, której nie mogliśmy wtedy przywrócić: klasę odwołania „emailDownloader”.

Klasa ta zawierała pewne interesujące fragmenty kodu, które wymagały dalszej analizy. Dostrzegliśmy wzmianki o obecności kilku plików wykonywalnych, ale gdzie one były? I co ważniejsze – jaka była ich rola podczas infekcji?

coinvault_en_4.png

Jak się okazało, pliki te były zostawiane przez trzeci szkodliwy program z rodziny CoinVault, noszący nazwę Mailspreader. Sekcja zasobów w formacie binarnym pokazuje, że osadzonych zostało kilka plików, a my wypakowaliśmy je, aby je przebadać każdy z osobna.

coinvault_en_5.png

Dostrzegliśmy, że w próbkach CoinVault, pomiędzy wszystkimi odnalezionymi modułami, dominował bardzo oszczędny kod. Funkcjonalność była prosta, ale wystarczająca, aby osiągnąć pożądane rezultaty. Wątek był tworzony i uruchamiany, aby wykorzystać wszystko, co oferował plik MailSpreader.exe.

coinvault_en_6.png

Jak już wspomnieliśmy, odkryty przez nas serwer C2 jest podzielony z inną próbką, która posiadała podobne charakterystyki (wartość hasha MD5 – AF0E5A5DF0BE279AA517E2FD65CADD5C), co jest kolejnym dowodem na powiązania CoinVaulta z Mailspreaderem.

Przy pomocy tych plików wykonywalnych oraz prostych sposobów metod ukrywania infekcji atakujący uruchamiali nowy proces, który był ukrywany niemal natychmiast.

coinvault_en_7.png

Wciąż nie odpowiedzieliśmy na pytanie, co reprezentują te pliki wykonywalne ani jakie było ich zadanie w programie szyfrującym. Plik ‘mailpv.exe’ był częścią CoinVaulta i działał jako dropper, który pobierał pierwszą część szkodliwego kodu. Prawdziwą naturę plików nk2edit.exe i livecv.exe. ujawniła wyszukiwarka Google: oba były legalnymi narzędziami używanymi do interakcji z programem Outlook i komunikatorem Windows Live.

Plik ‘livecv.exe’ miał hash MD5 D7FC749BB3B10FCC38DE498E8DB2639A i zawierał zweryfikowany podpis dla pliku wykonywalnego. Według opisu twórców narzędzia LiveContactsView jest małym narzędziem, które umożliwia przeglądanie szczegółów wszystkich kontaktów w komunikatorze Windows Live Messenger.

coinvault_en_8.png

To samo stało się po sprawdzeniu pliku nk2edit.exe (C1A591727E4519AC0D94C59B680E00E4). Jest to wygodne narzędzie, które współpracuje z książką adresową AutoComplete w Microsoft Outlook.

coinvault_en_9.png

Żegnaj, CoinVaulcie

Po opublikowaniu poprzedniego badania dotyczącego zagrożenia CoinVault szkodliwy program oraz jego twórcy przestali działać. W kwietniu 2015 r. zarejestrowaliśmy nową próbkę w internecie. Na uwagę najbardziej zasługuje obecność poprawnych zwrotów w języku holenderskim, które zostały użyte w kodzie binarnym. Bezbłędne używanie języka holenderskiego jest dosyć trudne, stąd od początku naszego badania podejrzewaliśmy, że autorzy szkodliwego programu są powiązani z Holandią.

Inną interesującą dodaną funkcjonalnością było wyszukiwanie i usuwanie analiz i procesów wykrywania, takich jak processhacker, spyhunter, roguekiller itp. Co więcej, ta wersja obsługuje przechowywanie danych konfiguracyjnych w plikach .ini.

Niedługo po pojawieniu się nowej wersji holenderska policja przechwyciła używany przez przestępców serwer C2 i dostarczyła nam numer identyfikacyjny portfela bitcoinów, wektory inicjujące i klucze wymagane do tworzenia oraz dostarczania narzędzia deszyfrującego.

I nagle sprawa ucichła. Od jakiegoś czasu CoinVault zniknął z horyzontu i wygląda na to, że kampania dobiegła końca.

Witaj, Bitcryptorze

Mieliśmy rację, że CoinVault przestał działać. Miesiąc później pojawił się BitCryptor.

BitCryptor jest wyraźnym następcą CoinVault, ponieważ większość kodu pokrywa się. Chociaż BitCryptor nie atakuje Holendrów. Holenderskie teksty zostały usunięte (podobnie jak odnośniki do CoinVaulta). Została dodana niewielka funkcja, która działa w tle i sprawdza, czy ofiara zapłaciła okup.

Wniosek

Od czasu opublikowania naszego pierwszego raportu o zagrożeniu CoinVault i uruchomieniu kampanii No Ransom cyberprzestępcy odpowiedzialni za te trzy twory próbowali je modyfikować i atakować kolejne ofiary. Wygranie bitwy z tym złośliwym programem było możliwe dzięki wspólnym wysiłkom organów ścigania, firm prywatnych i użytkowników końcowych – dzięki współpracy osiągnęliśmy wspaniały wynik: aresztowanie dwóch podejrzanych.

Dziękujemy naszemu koledze Bartowi Blaze’owi za udostępnienie tych próbek do analizy.

Hashe MD5

0f1830174d7b08c0d1fcd9aea00cdc97 Trojan-Ransom.MSIL.CoinVault.l
10438b6d4f479779234ef60560d2f40c Trojan-Ransom.MSIL.CoinVault.p
174a3f6982d254a74d2db202fd87ec26 Trojan-Ransom.MSIL.CoinVault.f
289b43d3c234585285a38b2a0f4db2e3 Trojan-Ransom.MSIL.CoinVault.i
2f707ed9f368cd5838f5fb76abcd5bd9 Trojan-Ransom.MSIL.CoinVault.q
30bc17990350f44d74f4a2ca25cdb9e3 Trojan-Ransom.MSIL.CoinVault.s
45db7e51b39fd0669b4f78eedc00ad2f Trojan-Ransom.MSIL.CoinVault.n
4d46310bdfdc5c49615be5c61b13c8ae Trojan-Ransom.MSIL.CoinVault.r
4d52e7e6f4dc77c39c50ed84ce1b10b5 Trojan-Ransom.MSIL.CoinVault.s
60a5b27a525ca21026ffff1f0d0baa6a Trojan-Ransom.MSIL.CoinVault.t
648280e5ba36ff038e97e444ecdb9d8e Trojan-Ransom.MSIL.CoinVault.g
716dfea51b1a8d95859cfda38ff7fa9d Trojan-Ransom.MSIL.CoinVault.j
73848ec02d5d9f4d0fdd5be31ef86449 Trojan-Ransom.MSIL.CoinVault.u
78fd303be07db8fa35b98645bef10ca4 Trojan-Ransom.MSIL.CoinVault.v
7fff4eabcdfb21e7884a240e668f1e8b Trojan-Ransom.MSIL.CoinVault.i
80db8e54a1a28e0167a4d66b3be84a5d Trojan-Ransom.MSIL.CoinVault.af
876050d738f434fc149970cc0d073dbe Trojan-Ransom.MSIL.CoinVault.w
8e1bdc1c484bc03880c67424d80e351d Trojan-Ransom.MSIL.CoinVault.x
a6499dac9a7b59830c77442eb030c93c Trojan-Ransom.MSIL.CoinVault.a
a76df48770a6cffc62e4d1a21749071b Trojan-Ransom.MSIL.CoinVault.m
a90d5d05728fec4c592393c7f4ec173e Trojan-Ransom.MSIL.CoinVault.e
ac4b5ce347820c8817afd49eacee3ec5 Trojan-Ransom.MSIL.CoinVault.y
af0e5a5df0be279aa517e2fd65cadd5c Trojan-Ransom.MSIL.CoinVault.z
aff8fefe76cc51d5e7120ef3f422ce29 Trojan-Ransom.MSIL.CoinVault.ah
b3a7fc445abfba3429094542049063c2 Trojan-Ransom.MSIL.CoinVault.x
b3bb6facbb557ddd9aada93f6b2efab8 Trojan-Ransom.MSIL.CoinVault.h
b3e1c2fce9763a2bdd08223c406bcf7f Trojan-Ransom.MSIL.CoinVault.aa
b92ec8ccc085b853545fc54781d0c1a3 Trojan-Ransom.MSIL.CoinVault.ab
be1f48b6b4c0515ac0d865713968e1c3 Trojan-Ransom.MSIL.CoinVault.ac
cb91d0db64d9245426c7789ed00ba4d3 Trojan-Ransom.MSIL.CoinVault.k
d5f291f2bc38873e145f6e6b13fb05db Trojan-Ransom.MSIL.CoinVault.d
d7732b4132440e9e8902080032897c15 Trojan-Ransom.MSIL.CoinVault.ad
d92e1be4fdfdea99dfa23de27f3bb568 Trojan-Ransom.MSIL.CoinVault.ae
e6227eaefc147e66e3c7fa87a7e90fd6 Trojan-Ransom.MSIL.CoinVault.af
e7414d82d69b902b5bc1efd0f3e201d7 Trojan-Ransom.MSIL.CoinVault.b
e883706376bb45ef53ec52fbd090a29a Trojan-Ransom.MSIL.CoinVault.ai
e8b83233071fd752e29b436113d5ea9d Trojan-Ransom.MSIL.CoinVault.ag
f293970741bbe0ee0c1b8ce6cb045d4d Trojan-Ransom.MSIL.CoinVault.b