Ze wszystkich „polskich” rodzin malware, które zaobserwowaliśmy w zeszłym roku, najbardziej zaawansowaną technicznie był Banatrix. Malware ten podmieniał numer konta w pamięci procesu przeglądarki. Jednak jego budowa pozwalała na dużo więcej i zostało to wykorzystane do wykradania zapisanych w przeglądarce Mozilla Firefox haseł. Poniżej znajduje się omówienie szczegółów technicznych działania oraz szczegóły dotyczące infrastruktury serwera C&C tego złośliwego oprogramowania. W komunikacji z serwerem C&C wykorzystywana jest sieć TOR co utrudnia zarówno namierzenie sprawcy jak i unieszkodliwienie serwera sterującego.
Co potrafi Banatrix?
Jak pisaliśmy w poprzednim artykule to złośliwe oprogramowanie było używane do podmiany numeru rachunku bankowego w pamięci procesu. Jednak jego schemat działania pozwalał na dużo ogólniejsze zastosowanie. Poniższy rysunek prezentuje działanie tego złośliwego oprogramowania na komputerze ofiary.
Etap I: Rozpakowanie i uruchomienie
Po infekcji i uruchomieniu, oprogramowanie ładuje z dysku zaszyfrowaną (za pomocą czterobajtowego klucza) bibliotekę DLL. Biblioteka ta jest następnie szyfrowana za pomocą innego, losowego klucza i wraz z tym kluczem ponownie zapisywana na dysku w katalogu %AppData%
(w przypadku systemu Windows XP: C:UsersAll Users
, w przypadku systemów Vista i nowszych jest to C:ProgramData
) pod nazwą .sys
bądź .windows.sys
. Powoduje to, że plik taki ma za każdym razem inną zawartość. Sam plik wykonywalny znajduje się w tym samym katalogu i ma nazwę wms.exe
lub wmc.exe
.
Etap II: komunikacja sieciowa
Następnie odszyfrowana i załadowana do pamięci biblioteka odpowiada za wszelką komunikację z serwerem proxy C&C i pobranie dalszego złośliwego kodu do wykonania na komputerze ofiary. Pierwszym krokiem jest przesłanie zaszyfrowanych za pomocą własnej implementacji szyfru RSA danych dotyczących komputera ofiary. Dane te zawierają m.in. nazwę użytkownika, nazwę komputera, wersję czy język systemu operacyjnego. Co ciekawe, w nowej wersji jest wysyłany też adres prawdziwego C&C, chowającego się za proxy. Ten adres znajduje się w sieci TOR, więc ofiara łączy się tak naprawdę po prostu do „bramki” dostępowej do sieci TOR i prosi o przekazanie połączenia dalej. „Bramka” ta pełni rolę serwera proxy do sieci TOR, ale opartego na niestandardowym protokole.
W odpowiedzi przesyłana jest, zaszyfrowana znowu czterobajtowym kluczem, kolejna biblioteka DLL. Biblioteka ta jest ładowana do pamięci procesu i uruchamiana jest eksportowana funkcja o nazwie init
. Takie podejście pozwala na uruchomienie dowolnego kodu na komputerze ofiary. W ten sposób wysyłane też są aktualizacje.
Nowa wersja zawiera również DGA – algorytm generowania nazw domen, który tworzy z każdej zapisanej w próbce domeny proxy C&C cztery nazwy domenowe. Następnie złośliwe oprogramowanie pyta się o te cztery nazwy domenowe, ale połączy się tylko z adresem IP odpowiadającym ostatniej, czwartej nazwie. Zdekompilowana część algorytmu zaprezentowana jest na zrzucie ekranu poniżej.
Etap III: wykonanie pobranego kodu
Pobrany kod to, tak jak pisaliśmy wcześniej, w większości przypadków funkcja służąca do iteracji między procesami i znalezienia procesu przeglądarki internetowej. Następnie wyszukiwany w pamięci jest ciąg znaków, który odpowiada numerowi konta bankowego i jest on podmieniany na inny numer. Jednak ta elastyczna architektura pozwala na wykonanie dowolnego kodu. Podczas monitorowania zagrożenia zauważyliśmy, że niekiedy ofiary dostawały bibliotekę odpowiedzialną za wykradanie haseł zapisanych w przeglądarce internetowej Mozilla Firefox i wysłanie ich do innego serwera C&C. Biblioteka ta była wysyłana najprawdopodobniej raz do każdej ofiary. W przyszłości jednak Banatrix może wykonać inny, dowolny kod na komputerze ofiary.
Podsumowanie
Wydaje nam się, że Banatrix jest realnym zagrożeniem dla polskich użytkowników. Świadczy o tym chociażby liczba unikalnych zainfekowanych adresów IP dziennie, która, według obserwacji naszego serwera sinkhole utrzymuje się na poziomie 5000. Dodatkowo, oprogramowanie to jest stale rozwijane i wzbogacane w nowe funkcje, nie tylko związane z bankowością elektroniczną.
Skrót kryptograficzny SHA256 jednej z przeanalizowanych próbek droppera Banatrix to: 7c4d4e98601b2ae11c4a27299ded2a15e635b317ef32f48f683da016ca77c1c9. Poniżej znajdują się wyniki analizy próbki w serwisie VirusTotal. Jak widać wykrywalność jest dosyć wysoka.