Firma ESET współpracowała z policją federalną Brazylii, próbując zakłócić działanie botnetu Grandoreiro. Firma ESET wniosła wkład w projekt, udostępniając analizy techniczne, informacje statystyczne oraz znane nazwy domen i adresy IP serwerów dowodzenia i kontroli (C&C). Ze względu na błąd projektowy w protokole sieciowym Grandoreiro badacze z firmy ESET mogli również rzucić okiem na wiktymologię.
Zautomatyzowane systemy ESET przetworzyły dziesiątki tysięcy próbek Grandoreiro. Algorytm generowania domeny (DGA), z którego korzysta złośliwe oprogramowanie od około października 2020 r., tworzy dziennie jedną domenę główną i opcjonalnie kilka domen bezpiecznych. DGA to jedyny sposób, w jaki Grandoreiro wie, jak zgłosić się do serwera kontroli. Oprócz aktualnej daty DGA akceptuje również konfiguracje statyczne – w chwili pisania tego tekstu zaobserwowaliśmy 105 takich konfiguracji.
Operatorzy Grandoreiro wykorzystywali dostawców usług w chmurze, takich jak Azure i AWS, do hostowania ich infrastruktury sieciowej. Badacze firmy ESET dostarczyli dane niezbędne do zidentyfikowania kont odpowiedzialnych za konfigurację tych serwerów. Dalsze dochodzenie przeprowadzone przez policję federalną Brazylii doprowadziło do: identyfikacji i aresztowania osób kontrolujących te serwery. W tym poście przyjrzymy się, w jaki sposób uzyskaliśmy dane, aby pomóc organom ścigania w przeprowadzeniu tej operacji zakłócającej.
Tło
Grandoreiro jest jednym z wielu Trojany bankowe z Ameryki Łacińskiej. Jest aktywny co najmniej od 2017 roku i od tego czasu badacze firmy ESET uważnie go śledzą. Celem Grandoreiro jest Brazylia i Meksyk, a od 2019 r. także Hiszpania (zob. wykres 1). Chociaż w latach 2020–2022 najczęściej atakowano Hiszpanię, w 2023 r. zaobserwowaliśmy wyraźne przesunięcie uwagi w stronę Meksyku i Argentyny, która była nowością w Grandoreiro.
Pod względem funkcjonalności Grandoreiro nie zmieniło się zbytnio od naszego ostatniego wpis na blogu w 2020 roku. W tej sekcji oferujemy krótki przegląd złośliwego oprogramowania, a kilka zmian, głównie nową logikę DGA, omówimy później.
Kiedy trojan bankowy z Ameryki Łacińskiej pomyślnie złamie komputer, zwykle wysyła żądanie HTTP GET do zdalnego serwera, wysyłając podstawowe informacje o zaatakowanej maszynie. Chociaż starsze wersje Grandoreiro implementowały tę funkcję, z czasem programiści zdecydowali się ją porzucić.
Grandoreiro okresowo monitoruje okno na pierwszym planie, aby znaleźć takie, które należy do procesu przeglądarki internetowej. Kiedy takie okno zostanie znalezione, a jego nazwa pasuje do dowolnego ciągu z zakodowanej na stałe listy ciągów związanych z bankami, wtedy i tylko wtedy szkodliwe oprogramowanie inicjuje komunikację ze swoim serwerem C&C, wysyłając żądania co najmniej raz na sekundę, aż do zakończenia.
Operator musi ręcznie wejść w interakcję z zaatakowaną maszyną, aby ukraść pieniądze ofiary. Szkodnik umożliwia:
- blokowanie ekranu ofiary,
- rejestrowanie naciśnięć klawiszy,
- symulowanie działania myszy i klawiatury,
- udostępnianie ekranu ofiary i
- wyświetlanie fałszywych wyskakujących okienek.
Grandoreiro podlega szybkiemu i ciągłemu rozwojowi. Czasami nawet widzieliśmy kilka nowych wersji tygodniowo, co utrudniało śledzenie. Aby to zademonstrować, w lutym 2022 r. operatorzy Grandoreiro dodali do plików binarnych identyfikator wersji. Na rysunku 2 pokazujemy, jak szybko zmienił się identyfikator wersji. Nowa wersja pojawiała się średnio co cztery dni w okresie od lutego 2022 r. do czerwca 2022 r. W miesięcznej przerwie pomiędzy 24 majath, 2022 i 22 czerwcandw 2022 r. nadal pojawiały się nowe próbki z rosnącymi czasami kompilacji PE, ale brakowało im identyfikatora wersji. 27 czerwcath, 2022 zmieniono identyfikator wersji na V37 i od tego czasu nie zaobserwowaliśmy, aby się to zmieniło, co pozwala nam stwierdzić, że ta funkcja została porzucona.
Trojany bankowe z Ameryki Łacińskiej mają wiele wspólnych cech. Grandoreiro jest podobny do innych trojanów bankowych z Ameryki Łacińskiej, głównie ze względu na oczywistą podstawową funkcjonalność i łączenie programów pobierających w instalatorach MSI. W przeszłości zaobserwowaliśmy kilka przypadków udostępnienia programom pobierającym Mekotio i Wadokristchoć nie w ciągu ostatnich dwóch lat. Główną cechą odróżniającą trojana bankowego Grandoreiro od innych rodzin był unikalny mechanizm dopełniania binarnego, który znacznie obciąża końcowy plik wykonywalny (opisany w naszym wpis na blogu w 2020 roku). Z biegiem czasu operatorzy Grandoreiro dodali tę technikę antyanalizacyjną również do swoich programów pobierających. Ku naszemu zdziwieniu w trzecim kwartale 3 r. funkcja ta została całkowicie usunięta z plików binarnych trojana bankowego i downloadera i od tego czasu jej nie zaobserwowaliśmy.
Od lutego 2022 r. śledzimy m.in drugi wariant Grandoreiro, który znacznie różni się od głównego. Widzieliśmy to w małych kampaniach w marcu, maju i czerwcu 2022 r. Biorąc pod uwagę, że zdecydowana większość domen serwerów C&C nie jest rozpoznawana, jego podstawowe funkcje zmieniają się dość często i protokół sieciowy nie działa prawidłowo, jesteśmy głęboko przekonani, że tak jest Praca w toku; dlatego w tym poście skupimy się na głównym wariancie.
Śledzenie długoterminowe Grandoreiro
Systemy ESET przeznaczone do automatycznego, długoterminowego śledzenia wybranych rodzin złośliwego oprogramowania monitorują Grandoreiro od końca 2017 r., wyodrębniając informacje o wersji, serwerach kontroli, celach, a od końca 2020 r. konfiguracje DGA.
Śledzenie DGA
Konfiguracja DGA jest zakodowana na stałe w pliku binarnym Grandoreiro. Do każdej konfiguracji można się odwołać za pomocą ciągu znaków, który wywołujemy dga_id. Używanie różnych konfiguracji DGA daje różne domeny. W dalszej części tekstu zagłębimy się w mechanizm DGA.
ESET wyodrębnił w sumie 105 różnych dga_ids ze znanych nam próbek Grandoreiro. 79 z tych konfiguracji przynajmniej raz wygenerowało domenę, która w trakcie naszego śledzenia została przekształcona w aktywny adres IP serwera kontroli.
Wygenerowane domeny są rejestrowane za pośrednictwem usługi Dynamic DNS (DDNS) firmy No-IP. Operatorzy Grandoreiro nadużywają tej usługi, aby często zmieniać swoje domeny, aby odpowiadały DGA, oraz do dowolnej zmiany adresów IP. Zdecydowana większość adresów IP, na które rozwiązują te domeny, jest dostarczana przez dostawców usług w chmurze, głównie AWS i Azure. Tabela 1 ilustruje niektóre statystyki dotyczące adresów IP używanych przez serwery kontroli i kontroli Grandoreiro.
Tabela 1. Informacje statystyczne dotyczące adresów IP kontrolera Grandoreiro C&C od chwili rozpoczęcia śledzenia
Informacja | Średni | Minimum | Maksymalny |
Liczba nowych adresów IP C&C dziennie | 3 | 1 | 34 |
Liczba aktywnych adresów IP C&C dziennie | 13 | 1 | 27 |
Czas życia adresu IP C&C (w dniach) | 5 | 1 | 425 |
Wkrótce po tym, jak zaczęliśmy śledzić wygenerowane domeny i powiązane z nimi adresy IP, zaczęliśmy zauważać, że wiele domen generowanych przez DGA o różnych konfiguracjach ma ten sam adres IP (jak pokazano na rysunku 3). Oznacza to, że w danym dniu ofiary skompromitowane przez Grandoreiro miały różne próbki dga_id wszystkie podłączone do tego samego serwera C&C. Zjawisko to nie było dziełem przypadku – obserwowaliśmy je niemal codziennie podczas naszych tropień.
W znacznie rzadszych przypadkach zaobserwowaliśmy również ponowne wykorzystanie adresu IP przez inną osobę dga_id Kilka dni później. Tylko tym razem zmieniły się także parametry wykorzystywane przez Grandoreiro do nawiązania połączenia (wyjaśnione w dalszej części tekstu). Oznacza to, że w międzyczasie strona serwera C&C musiała zostać ponownie zainstalowana lub ponownie skonfigurowana.
Nasze początkowe założenie było takie, że dga_id jest unikalny dla każdej konfiguracji DGA. To później okazało się błędne – zaobserwowaliśmy dwa zestawy różnych konfiguracji, które mają tę samą funkcję dga_id. Tabela 2 przedstawia oba z nich, „jjk” i „gh”, gdzie „jjk” i „jjk(2)” odpowiadają dwóm różnym konfiguracjom DGA, tak samo jak „gh” i „gh(2)”.
Tabela 2 pokazuje gromady, które udało nam się zaobserwować. Wszystkie konfiguracje DGA, które mają wspólny co najmniej jeden adres IP, znajdują się w tym samym klastrze i są z nimi powiązane dga_idsą wymienione. Klastry, które stanowią mniej niż 1% wszystkich ofiar, są pomijane.
Tabela 2. Klastry Grandoreiro DGA
Identyfikator klastra |
dga_id podstęp |
Wielkość klastra |
% wszystkich serwerów C&C |
% wszystkich ofiar |
1 |
b, bbh, bbj, bbn, bhg, cfb, cm, cob, cwe, dee, dnv, dvg, dzr, E, eeo, eri, ess, fhg, fox, gh, gh(2), hjo, ika, jam , jjk, jjk(2), JKM, jpy, k, kcy, kWn, md7, md9, MRx, mtb, n, Nkk, nsw, nuu, occ, p, PCV, pif, rfg, rox3, s, sdd, sdg, sop, tkk, twr, tyj, u, ur4, vfg, vgy, vki, wtt, ykl, Z, zaf, zhf |
62 |
93.6% |
94% |
2 |
jl2, jly |
2 |
2.4% |
2.5% |
3 |
ibr |
1 |
0.8% |
1.6% |
4 |
JYY |
1 |
1.6% |
1.1% |
Największy klaster zawiera 78% wszystkich aktywnych dga_idS. Jest odpowiedzialny za 93.6% wszystkich adresów IP serwerów C&C i 94% wszystkich ofiar, jakie widzieliśmy. Jedyny inny klaster składający się z więcej niż 1 dga_id to klaster 2.
Trochę źródła twierdzą, że Grandoreiro działa jako złośliwe oprogramowanie jako usługa (MaaS). Backend serwera Grandoreiro C&C nie pozwala na jednoczesną aktywność więcej niż jednego operatora na raz. Z tabeli 2 wynika, że zdecydowaną większość adresów IP generowanych przez DGA można grupować w grupy bez jasnego wzorca dystrybucji. Wreszcie, biorąc pod uwagę duże wymagania protokołu sieciowego dotyczące przepustowości (zajmiemy się tym na końcu wpisu na blogu), uważamy, że różne serwery kontroli i kontroli są wykorzystywane jako prymitywny system równoważenia obciążenia i że bardziej prawdopodobne jest, że Grandoreiro jest obsługiwane przez pojedynczą grupę lub kilka grup ściśle ze sobą współpracujących.
Śledzenie C&C
Wdrożenie protokołu sieciowego przez firmę Grandoreiro pozwoliło badaczom firmy ESET zajrzeć za kurtynę i rzucić okiem na wiktymologię. Serwery C&C Grandoreiro udostępniają informacje o połączonych ofiarach w momencie pierwszego żądania do każdej nowo połączonej ofiary. To powiedziawszy, dane są obciążone liczbą żądań, ich interwałami i ważnością danych dostarczonych przez serwery C&C.
Każda ofiara podłączona do serwera kontroli Grandoreiro jest identyfikowana przez: ciąg_logowania – ciąg znaków, który Grandoreiro konstruuje po ustanowieniu połączenia. Różne kompilacje używają różnych formatów i różne formaty zawierają różne informacje. Podsumowujemy informacje, które można uzyskać z ciąg_logowania w Tabeli 3. Kolumna Wystąpienie pokazuje odsetek wszystkich formatów, które widzieliśmy, które zawierają odpowiedni rodzaj informacji.
Tabela 3. Przegląd informacji, które można uzyskać od ofiary Grandoreiro ciąg_logowania
Informacja |
Występowanie |
Opis |
System operacyjny |
100% |
System operacyjny komputera ofiary. |
Nazwa komputera |
100% |
Nazwa maszyny ofiary. |
Państwo |
100% |
Kraj docelowy próbki Grandoreiro (zakodowany na stałe w próbce złośliwego oprogramowania). |
Wersja |
100% |
Wersja (ciąg_wersji) próbki Grandoreiro. |
Kryptonim banku |
92% |
Nazwa kodowa banku, który uruchomił połączenie C&C (nadana przez twórców Grandoreiro). |
Uptime |
25% |
Czas (w godzinach) działania komputera ofiary. |
Rozdzielczość ekranu |
8% |
Rozdzielczość ekranu głównego monitora ofiary. |
Użytkownik |
8% |
Nazwa użytkownika ofiary. |
Trzy z pól zasługują na bliższe wyjaśnienie. Kraj to ciąg znaków zakodowany na stałe w pliku binarnym Grandoreiro, a nie informacja uzyskana za pośrednictwem odpowiednich usług. Dlatego służy bardziej jak zamierzony kraj ofiary.
Nazwa kodowa banku to ciąg znaków, który twórcy Grandoreiro powiązali z określonym bankiem lub inną instytucją finansową. Ofiara odwiedziła witrynę tego banku, co uruchomiło połączenie C&C.
Połączenia ciąg_wersji to ciąg znaków identyfikujący konkretną wersję Grandoreiro. Jest on zakodowany na stałe w złośliwym oprogramowaniu i zawiera ciąg znaków identyfikujący konkretną serię kompilacji, wersję (o której mówiliśmy już we wstępie) oraz znacznik czasu. Tabela 4 ilustruje różne formaty i zawarte w nich informacje. Zauważ, że niektóre znaczniki czasu zawierają tylko miesiąc i dzień, podczas gdy inne zawierają także rok.
Tabela 4. Lista różnych ciąg_wersji formaty i ich parsowanie
Ciąg wersji |
Identyfikator kompilacji |
Wersja |
Sygnatura czasu |
DANIL |
DANIL |
N / A |
N / A |
(V37)(P1X)1207 |
P1X |
V37 |
12/07 |
(MX)2006 |
MX |
N / A |
20/06 |
fox50.28102020 |
fox50 |
N / A |
28/10/2020 |
MADMX(ZAŁADUJ PONOWNIE)EMAIL2607 |
MADMX(ZAŁADUJ PONOWNIE) E-MAIL |
N / A |
26/07 |
Można pokusić się o stwierdzenie, że identyfikator kompilacji faktycznie identyfikuje operatora. Nie sądzimy jednak, aby tak było. Format tego ciągu jest bardzo chaotyczny, czasami odnosi się tylko do miesiąca, w którym prawdopodobnie zbudowano plik binarny (jak (np.AGOST)2708). Co więcej, mocno w to wierzymy P1X odnosi się do konsoli używanej przez operatorów Grandoreiro, zwanej PIXLOGGER.
Śledzenie serwera C&C – ustalenia
W tej sekcji skupiamy się na tym, co znaleźliśmy, wysyłając zapytania do serwerów C&C. Wszystkie dane statystyczne wymienione w tej sekcji zostały uzyskane bezpośrednio z serwerów kontroli i kontroli Grandoreiro, a nie z danych telemetrycznych firmy ESET.
Stare próbki są nadal aktywne
Każdy ciąg_logowania zaobserwowaliśmy, zawiera ciąg_wersji a zdecydowana większość z nich zawiera informacje o sygnaturze czasowej (patrz tabela 3 i tabela 4). Chociaż wiele z nich zawiera tylko dzień i miesiąc, co czasami wydaje się być wyborem programisty, najstarsza komunikująca się próbka została oznaczona znacznikiem czasu 15/09/2020 – to znaczy od czasu, gdy to DGA zostało po raz pierwszy wprowadzone do Grandoreiro. Najnowsza próbka została oznaczona znacznikiem czasu 12/23/2023.
Dystrybucja systemu operacyjnego
Ponieważ wszystkie ciąg_logowania formaty zawierają informacje o systemie operacyjnym, możemy nakreślić dokładny obraz tego, jakie systemy operacyjne padły ofiarą, jak pokazano na rysunku 4.
(Zamierzona) dystrybucja krajowa
Wspomnieliśmy już, że Grandoreiro używa wartości zakodowanej na stałe zamiast wysyłać zapytania do usługi w celu uzyskania kraju ofiary. Rysunek 5 pokazuje rozkład, który zaobserwowaliśmy.
Takiego rozkładu można się spodziewać po Grandoreiro. Co ciekawe, nie koreluje to z mapą cieplną przedstawioną na rysunku 1. Najbardziej logicznym wyjaśnieniem jest to, że kompilacje nie są odpowiednio oznaczone, aby przypominały zamierzone cele. Na przykład wzrost liczby ataków w Argentynie w ogóle nie jest odzwierciedlony w zakodowanym na stałe oznaczeniu. Brazylia stanowi prawie 41% wszystkich ofiar, następnie Meksyk z 30% i Hiszpania z 28%. Argentyna, Portugalia i Peru stanowią mniej niż 1%. Co ciekawe, widzieliśmy kilka (mniej niż 10) ofiar oznaczonych jako PM (Saint Pierre i Miquelon), GR (Grecja) lub FR (Francja). Uważamy, że są to literówki lub mają inne znaczenie i nie są skierowane do tych krajów.
Należy również pamiętać, że podczas Grandoreiro dodał cele z wielu krajów spoza Ameryki Łacińskiej już w 2020 r. zaobserwowaliśmy niewiele kampanii skierowanych do tych krajów lub nie zaobserwowaliśmy ich wcale, co potwierdza wykres 5.
Liczba ofiar
Zaobserwowaliśmy, że średnia liczba ofiar podłączonych w ciągu dnia wynosi 563. Jednak liczba ta z pewnością zawiera duplikaty, ponieważ jeśli ofiara pozostaje podłączona przez długi czas, co, jak zaobserwowaliśmy, często się zdarza, wówczas serwer kontroli i kontroli Grandoreiro zgłoszę to w przypadku wielu żądań.
Próbując rozwiązać ten problem, zdefiniowaliśmy a wyjątkowy ofiarę jako osobę posiadającą unikalny zestaw cech identyfikacyjnych (takich jak nazwa komputera, nazwa użytkownika itp.), pomijając te, które mogą ulec zmianie (np. czas działania). W ten sposób otrzymaliśmy 551 wyjątkowy ofiar łączy się średnio w ciągu jednego dnia.
Biorąc pod uwagę, że zaobserwowaliśmy ofiary, które łączyły się z serwerami C&C nieprzerwanie przez ponad rok, obliczyliśmy średnią liczbę 114 nowy unikat ofiar łączących się codziennie z serwerami C&C. Doszliśmy do tej liczby lekceważąc wyjątkowy ofiar, które zaobserwowaliśmy już wcześniej.
Wnętrze Grandoreiro
Skupmy się bardziej szczegółowo na dwóch najważniejszych cechach Grandoreiro: DGA i protokole sieciowym.
DGA
Operatorzy Grandoreiro wdrożyli na przestrzeni lat kilka rodzajów DGA, a najnowszy pojawił się w lipcu 2020 r. Chociaż zauważyliśmy kilka drobnych zmian, rdzeń algorytmu nie zmienił się od tego czasu.
DGA wykorzystuje specyficzną konfigurację, która jest zakodowana na stałe w pliku binarnym i przechowywana jako wiele ciągów znaków. Rysunek 6 przedstawia jedną z takich konfiguracji (z dga_id „bbj”), przeformatowany w JSON dla lepszej czytelności.
W zdecydowanej większości przypadków domena_bazowa pole jest freedynamicdns.org or zapto.org. Jak już wspomniano, Grandoreiro wykorzystuje No-IP do rejestracji swojej domeny. The baza64_alfa pole odpowiada niestandardowemu alfabetowi base64 używanemu przez DGA. The miesiąc_substytucja służy do zastąpienia znaku numerem miesiąca.
Połączenia dga_table stanowi główną część konfiguracji. Składa się z 12 ciągów znaków, każdy z 35 polami rozdzielonymi znakami |. Pierwszym wpisem w każdym wierszu jest dga_id. Drugi i ostatni wpis reprezentuje miesiąc, dla którego przeznaczona jest linia. Pozostałe 32 pola reprezentują wartość dla innego dnia miesiąca (co najmniej jedno pole pozostaje niewykorzystane).
Logikę DGA pokazano na rysunku 7. Algorytm najpierw wybiera właściwą linię i z niej właściwy wpis, traktując ją jak klucz czterobajtowy. Następnie formatuje bieżącą datę w ciąg znaków i szyfruje ją kluczem za pomocą prostego XOR. Następnie przygotowuje dga_id do wyniku, koduje wynik przy użyciu base64 z niestandardowym alfabetem, a następnie usuwa wszelkie znaki dopełniające =. Ostatecznym rezultatem jest subdomena, która wraz z domena_bazowa, ma być używany jako serwer C&C na bieżący dzień. Część zaznaczona na czerwono to mechanizm zabezpieczający przed awarią i omówimy ją dalej.
W niektórych kompilacjach Grandoreiro zaimplementowano mechanizm zabezpieczający przed awarią, gdy główna domena nie zostanie rozpoznana. Mechanizm ten nie występuje we wszystkich kompilacjach, a jego logika zmieniała się kilkukrotnie, ale podstawową ideę pokazano na rysunku 7. Wykorzystuje on konfigurację, która jest stała w analizowanych przez nas próbkach i może zostać wygenerowana za pomocą prostego kodu pokazanego na rysunku 8. Każdy wpis składa się z klucza, prefiksu i domeny bazowej.
Algorytm Failsafe zajmuje część głównej subdomeny C&C. Następnie iteruje po wszystkich wpisach konfiguracyjnych, szyfruje je za pomocą XOR i dodaje przedrostek, podobnie jak główna część algorytmu.
Od września 2022 roku zaczęliśmy obserwować próbki wykorzystujące nieco zmodyfikowany DGA. Algorytm pozostaje prawie identyczny, ale zamiast kodowania subdomeny w formacie Base64 w ostatnim kroku, dołączany jest do niej zakodowany na stałe przedrostek. Z naszego śledzenia wynika, że metoda ta stała się metodą dominującą od około lipca 2023 r.
protokół sieciowy
Grandoreiro wykorzystuje portal RTC, zestaw komponentów Delphi zbudowanych na bazie SDK RealThinClient który jest zbudowany na bazie protokołu HTTP(S). Portal RTC był wycofane w 2017 r. i jego kod źródłowy opublikowany na GitHub. Zasadniczo Portal RTC umożliwia jednej lub większej liczbie Kontroli zdalny dostęp do jednego lub większej liczby Hostów. Hosty i Kontrole są oddzielone komponentem mediatora zwanym Bramą.
Operatorzy Grandoreiro używają konsoli (działającej jako Kontrola) do łączenia się z serwerem C&C (działającym jako Brama) i do komunikowania się z zaatakowanymi maszynami (działającymi jako Hosty). Aby połączyć się z Gatewayem wymagane są trzy parametry: tajny klucz, długość klucza i login.
Tajny klucz służy do szyfrowania początkowego żądania wysyłanego do serwera. Dlatego serwer musi również znać tajny klucz, aby odszyfrować początkowe żądanie klienta.
Długość klucza określa długość kluczy służących do szyfrowania ruchu, ustaloną podczas uzgadniania. Ruch jest szyfrowany przy użyciu niestandardowego szyfru strumieniowego. Ustanawiane są dwa różne klucze – jeden dla ruchu przychodzącego i drugi dla ruchu wychodzącego.
Loginem może być dowolny ciąg znaków. Bramka wymaga, aby każdy podłączony komponent miał unikalny login.
Grandoreiro używa dwóch różnych kombinacji wartości tajnego klucza i długości klucza, zawsze zakodowanych na stałe w formacie binarnym, a omówiliśmy już to ciąg_logowania który służy jako login.
Dokumentacja RTC stwierdza, że może obsłużyć tylko ograniczoną liczbę połączeń jednocześnie. Biorąc pod uwagę, że każdy podłączony host musi wysłać co najmniej jedno żądanie na sekundę, w przeciwnym razie jego połączenie zostanie zerwane, uważamy, że powodem, dla którego Grandoreiro wykorzystuje wiele serwerów C&C, jest próba nieprzeciążenia żadnego z nich.
Wnioski
W tym poście na blogu zajrzeliśmy za kulisy naszego długoterminowego śledzenia Grandoreiro, które pomogło umożliwić tę zakłócającą operację. Opisaliśmy szczegółowo, jak działa DGA Grandoreiro, ile różnych konfiguracji istnieje jednocześnie i jak udało nam się wykryć wiele pokrywających się adresów IP.
Udostępniliśmy także informacje statystyczne uzyskane z serwerów C&C. Informacje te zapewniają doskonały przegląd wiktymologii i ukierunkowania, a jednocześnie pozwalają nam zobaczyć rzeczywisty poziom wpływu.
Operacja zakłócająca prowadzona przez brazylijską policję federalną była wycelowana w osoby, o których uważa się, że zajmują wysokie stanowiska w hierarchii operacyjnej Grandoreiro. ESET będzie nadal śledzić inne trojany bankowe z Ameryki Łacińskiej przy jednoczesnym ścisłym monitorowaniu wszelkich działań Grandoreiro wynikających z tej operacji zakłócającej.
W przypadku jakichkolwiek pytań dotyczących naszych badań opublikowanych na WeLiveSecurity, prosimy o kontakt pod adresem groźba intel@eset.com.
ESET Research oferuje prywatne raporty analityczne APT i strumienie danych. W przypadku jakichkolwiek pytań dotyczących tej usługi odwiedź stronę Analiza zagrożeń firmy ESET strona.
IoC
Akta
SHA-1 |
Nazwa pliku |
Wykrywanie |
Opis |
FB32344292AB36080F2D040294F17D39F8B4F3A8 |
Notif.FEL.RHKVYIIPFVBCGQJPOQÃ.msi |
Win32/Spy.Grandoreiro.DB |
Program do pobierania MSI |
08C7453BD36DE1B9E0D921D45AEF6D393659FDF5 |
RYCB79H7B-7DVH76Y3-67DVHC6T20-CH377DFHVO-6264704.msi |
Win32/Spy.Grandoreiro.DB |
Program do pobierania MSI |
A99A72D323AB5911ADA7762FBC725665AE01FDF9 |
pcre.dll |
Win32/Spy.Grandoreiro.BM |
Grandoreiro |
4CDF7883C8A0A83EB381E935CD95A288505AA8B8 |
iconv.dll |
Win32/Spy.Grandoreiro.BM |
Grandoreiro (z binarnym wypełnieniem) |
Sieć
IP |
Domena |
Dostawca hostingu |
Pierwszy widziany |
Szczegóły |
20.237.166[.]161 |
Wygenerowane w formacie DGA |
Lazur |
2024–01–12 |
Serwer C&C. |
20.120.249[.]43 |
Wygenerowane w formacie DGA |
Lazur |
2024–01–16 |
Serwer C&C. |
52.161.154[.]239 |
Wygenerowane w formacie DGA |
Lazur |
2024–01–18 |
Serwer C&C. |
167.114.138[.]249 |
Wygenerowane w formacie DGA |
OVH |
2024–01–02 |
Serwer C&C. |
66.70.160[.]251 |
Wygenerowane w formacie DGA |
OVH |
2024–01–05 |
Serwer C&C. |
167.114.4[.]175 |
Wygenerowane w formacie DGA |
OVH |
2024–01–09 |
Serwer C&C. |
18.215.238[.]53 |
Wygenerowane w formacie DGA |
AWS |
2024–01–03 |
Serwer C&C. |
54.219.169[.]167 |
Wygenerowane w formacie DGA |
AWS |
2024–01–09 |
Serwer C&C. |
3.144.135[.]247 |
Wygenerowane w formacie DGA |
AWS |
2024–01–12 |
Serwer C&C. |
77.246.96[.]204 |
Wygenerowane w formacie DGA |
VDSina |
2024–01–11 |
Serwer C&C. |
185.228.72[.]38 |
Wygenerowane w formacie DGA |
Mistrz sieci |
2024–01–02 |
Serwer C&C. |
62.84.100[.]225 |
N / A |
VDSina |
2024–01–18 |
Serwer dystrybucji. |
20.151.89[.]252 |
N / A |
Lazur |
2024–01–10 |
Serwer dystrybucji. |
Techniki SKOŚNE ATT&CK
Ten stół został zbudowany przy użyciu wersja 14 ramy MITER ATT&CK.
Taktyka |
ID |
Imię |
Opis |
Rozwój zasobów |
Rozwijanie możliwości: złośliwe oprogramowanie |
Programiści Grandoreiro opracowują własne, niestandardowe programy do pobierania. |
|
Wstępny dostęp |
phishing |
Grandoreiro rozprzestrzenia się poprzez e-maile phishingowe. |
|
Egzekucja |
Wykonanie użytkownika: Złośliwy plik |
Grandoreiro naciska na ofiary, aby ręcznie wykonały załącznik phishingowy. |
|
Uporczywość |
Wykonywanie autostartu rozruchu lub logowania: klucze uruchamiania rejestru/folder startowy |
Grandoreiro wykorzystuje standardowe lokalizacje Autostartu w celu zapewnienia trwałości. |
|
Przebieg wykonywania przejęcia: przejęcie zamówienia wyszukiwania DLL |
Grandoreiro jest wykonywane poprzez naruszenie kolejności wyszukiwania DLL. |
||
Unikanie obrony |
Rozszyfruj/dekoduj pliki lub informacje |
Grandoreiro jest często dystrybuowane w archiwach ZIP chronionych hasłem. |
|
Zaciemnione pliki lub informacje: wypełnienie binarne |
Grandoreiro EXE były kiedyś powiększane rsrc sekcje z dużymi obrazami BMP. |
||
Wykonanie binarnego serwera proxy systemu: Msiexec |
Narzędzia do pobierania Grandoreiro są zawarte w instalatorach MSI. |
||
Zmodyfikuj rejestr |
Grandoreiro przechowuje część swoich danych konfiguracyjnych w rejestrze systemu Windows. |
||
odkrycie |
Wykrywanie okna aplikacji |
Grandoreiro odkrywa witryny bankowości internetowej na podstawie nazw okien. |
|
Wykrywanie procesów |
Grandoreiro odkrywa narzędzia bezpieczeństwa w oparciu o nazwy procesów. |
||
Wykrywanie oprogramowania: Wykrywanie oprogramowania zabezpieczającego |
Grandoreiro wykrywa obecność produktów ochrony bankowej. |
||
Wykrywanie informacji o systemie |
Grandoreiro zbiera informacje o maszynie ofiary, takie jak %NAZWA KOMPUTERA% i system operacyjny. |
||
Collection |
Przechwytywanie danych wejściowych: Przechwytywanie danych wejściowych GUI |
Grandoreiro może wyświetlać fałszywe wyskakujące okienka i przechwytywać wpisywany w nich tekst. |
|
Przechwytywanie danych wejściowych: Rejestrowanie klawiszy |
Grandoreiro potrafi przechwytywać naciśnięcia klawiszy. |
||
Zbieranie wiadomości e-mail: Lokalne gromadzenie wiadomości e-mail |
Operatorzy Grandoreiro opracowali narzędzie do wyodrębniania adresów e-mail z Outlooka. |
||
Dowodzenia i kontroli |
Kodowanie danych: niestandardowe kodowanie |
Grandoreiro używa protokołu RTC, który szyfruje dane za pomocą niestandardowego szyfru strumieniowego. |
|
Rozdzielczość dynamiczna: algorytmy generowania domen |
Grandoreiro polega wyłącznie na DGA w celu uzyskania adresów serwerów kontroli. |
||
Szyfrowany kanał: kryptografia symetryczna |
W RTC szyfrowanie i deszyfrowanie odbywa się przy użyciu tego samego klucza. |
||
Port niestandardowy |
Grandoreiro często wykorzystuje do dystrybucji niestandardowe porty. |
||
Protokół warstwy aplikacji |
RTC jest zbudowany na bazie protokołu HTTP(S). |
||
Exfiltracja |
Eksfiltracja przez kanał C2 |
Grandoreiro eksfiltruje dane na swój serwer kontroli. |
|
Rezultat |
Zamykanie/ponowne uruchamianie systemu |
Grandoreiro może wymusić ponowne uruchomienie systemu. |
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://www.welivesecurity.com/en/eset-research/eset-takes-part-global-operation-disrupt-grandoreiro-banking-trojan/
- :ma
- :Jest
- :nie
- :Gdzie
- ][P
- $W GÓRĘ
- 1
- 10
- 114
- 12
- 120
- 160
- 179
- 180
- 2017
- 2019
- 2020
- 2022
- 2023
- 237
- 32
- 35%
- 40
- 7
- 70
- 8
- 84
- 89
- 97
- a
- Zdolny
- O nas
- nadużycie
- Akceptuje
- dostęp
- Konto
- Konta
- dokładny
- gra aktorska
- aktywny
- działalność
- rzeczywisty
- faktycznie
- w dodatku
- do tego
- adres
- Adresy
- Po
- wymierzony
- Cel
- algorytm
- Wszystkie kategorie
- dopuszczać
- dozwolony
- Pozwalać
- pozwala
- prawie
- Alfabet
- już
- również
- zawsze
- amerykański
- wśród
- an
- analiza
- analizowane
- i
- Inne
- każdy
- pojawia się
- właściwy
- w przybliżeniu
- APT
- Archiwum
- archiwum
- SĄ
- Argentyna
- na około
- AS
- przydzielony
- pomagać
- powiązany
- założenie
- At
- Ataki
- próba
- zautomatyzowane
- średni
- z dala
- AWS
- Lazur
- Backend
- przepustowość
- Bank
- Bankowość
- baza
- na podstawie
- podstawowy
- podstawa
- BE
- bo
- stają się
- być
- zanim
- rozpoczął
- za
- jest
- uwierzyć
- Uważa
- należy
- oprócz
- Ulepsz Swój
- pomiędzy
- bhg
- stronniczy
- Najwyższa
- obie
- Botnet
- Brazylia
- przeglądarka
- budować
- Buduje
- wybudowany
- w zestawie
- ale
- by
- obliczony
- wezwanie
- nazywa
- oprawa ołowiana witrażu
- Kampanie
- CAN
- możliwości
- zdolny
- zdobyć
- Przechwytywanie
- walizka
- Etui
- pewien
- na pewno
- zmiana
- zmieniony
- Zmiany
- wymiana pieniędzy
- Kanał
- charakter
- Charakterystyka
- znaków
- wybór
- szyfr
- roszczenie
- jasny
- klient
- dokładnie
- bliższy
- Chmura
- Grupa
- kod
- Kody
- zbieg okoliczności
- współpracował
- kolekcja
- Kolumna
- COM
- kombinacje
- komunikować
- przyległy
- Komunikacja
- całkowicie
- składnik
- składniki
- Zagrożone
- kompromis
- obliczenia
- komputer
- stwierdza,
- systemu
- Skontaktuj się
- połączony
- Podłączanie
- połączenie
- połączenia
- wobec
- Składający się
- składa się
- Konsola
- stały
- stale
- konstrukty
- skontaktuj się
- zawierać
- zawiera
- kontynuować
- nadal
- przyczyniły
- kontrola
- kontroli
- współpracujący
- rdzeń
- skorygowania
- Odpowiedni
- odpowiada
- kraje
- kraj
- Kurs
- istotny
- Aktualny
- kurtyna
- zwyczaj
- da
- codziennie
- dane
- Data
- dzień
- Dni
- dDNS
- postanowiła
- Odszyfruj
- głębiej
- zdefiniowane
- wykazać
- głębokość
- opisane
- zasłużyć
- Wnętrze
- zaprojektowany
- Wykrywanie
- określa
- rozwijać
- rozwinięty
- deweloperzy
- oprogramowania
- różne
- trudny
- bezpośrednio
- Odkrywa
- odkrycie
- dyskutować
- omówione
- Wyświetlacz
- wyświetlacze
- lekceważenie
- Zakłócać
- Zakłócenie
- wyróżnienie
- dystrybuowane
- 分配
- nurkować
- dns
- dokumentacja
- robi
- domena
- NAZWY DOMEN
- domeny
- dominujący
- zrobić
- nie
- Spadek
- porzucone
- z powodu
- duplikaty
- podczas
- dynamiczny
- e
- każdy
- Wcześnie
- bądź
- więcej
- e-maile
- kodowanie
- Szyfrowanie
- szyfrowane
- szyfrowanie
- zakończenia
- zakończony
- egzekwowanie
- wejście
- istotnie
- zapewniają
- ustanowiony
- ustanowienie
- itp
- Parzyste
- EVER
- Każdy
- przykład
- doskonała
- wykonać
- wykonany
- egzekucja
- istnieć
- spodziewany
- wyjaśnione
- wyjaśnienie
- wyciąg
- nie
- imitacja
- rodzin
- Cecha
- Korzyści
- luty
- Federalny
- policja federalna
- kilka
- mniej
- pole
- Łąka
- Postać
- Akta
- finał
- W końcu
- budżetowy
- instytucja finansowa
- Znajdź
- i terminów, a
- wada
- pływ
- Skupiać
- następnie
- następujący
- W razie zamówieenia projektu
- wytrzymałość
- format
- formularze
- znaleziono
- cztery
- lis
- Framework
- Francja
- często
- od
- Funkcjonalność
- funkcjonowanie
- dalej
- szczelina
- Bramka
- wygenerowane
- generacja
- generator
- otrzymać
- Dać
- dany
- Dojrzeć
- Globalne
- Grecja
- Zarządzanie
- Grupy
- miał
- uchwyt
- Have
- ciężki
- pomógł
- stąd
- hierarchia
- Wysoki
- Podświetlony
- historia
- przytrzymaj
- posiada
- gospodarz
- gospodarze
- GODZINY
- W jaki sposób
- How To
- Jednak
- http
- HTTPS
- ID
- pomysł
- identiques
- zidentyfikowane
- identyfikator
- identyfikuje
- identyfikacja
- if
- ilustruje
- obraz
- zdjęcia
- Rezultat
- realizacja
- realizowane
- in
- nieprawidłowy
- Zwiększać
- osób
- Informacja
- Infrastruktura
- początkowy
- Inicjuje
- wkład
- Zapytania
- wewnątrz
- zamiast
- Instytucja
- Inteligencja
- zamierzony
- interakcji
- najnowszych
- wprowadzono
- Wprowadzenie
- śledztwo
- IP
- Adres IP
- Adresy IP
- problem
- problemy
- IT
- JEGO
- styczeń
- JPY
- json
- lipiec
- czerwiec
- Trzymać
- Klawisz
- Klawisze
- Uprzejmy
- rodzaje
- Wiedzieć
- znany
- wie
- duży
- Nazwisko
- później
- łacina
- Ameryki Łacińskiej
- Prawo
- egzekwowanie prawa
- warstwa
- najmniej
- pozostawiając
- Doprowadziło
- Długość
- mniej
- poziom
- lubić
- Prawdopodobnie
- Ograniczony
- Linia
- Lista
- Katalogowany
- miejscowy
- lokalizacji
- logika
- logiczny
- Zaloguj Się
- długo
- długi czas
- długoterminowy
- Popatrz
- Partia
- maszyna
- maszyny
- Główny
- głównie
- Większość
- robić
- Dokonywanie
- złośliwy
- malware
- Malware jako usługa (MaaS)
- ręcznie
- wiele
- March
- wyraźny
- Oznakowanie
- masywnie
- zapałki
- Może..
- znaczenia
- znaczy
- w międzyczasie
- mechanizm
- wzmiankowany
- metoda
- Meksyk
- moll
- zmodyfikowano
- pieniądze
- monitor
- monitorowanie
- monitory
- Miesiąc
- jeszcze
- większość
- msi
- dużo
- wielokrotność
- musi
- MX
- Nazwa
- Nazwy
- wymagania
- sieć
- Nowości
- nowo
- Następny
- Nie
- noty
- Zauważyć..
- numer
- obserwować
- uzyskać
- uzyskane
- oczywista
- OCC
- okazje
- występowanie
- październik
- of
- oferta
- Oferty
- często
- starszych
- najstarszy
- on
- pewnego razu
- ONE
- Online
- bankowości online
- tylko
- eksploatowane
- działa
- operacyjny
- system operacyjny
- system operacyjny
- działanie
- operator
- operatorzy
- or
- zamówienie
- OS
- Inne
- Pozostałe
- ludzkiej,
- Outlook
- zewnętrzne
- koniec
- przegląd
- własny
- P&E
- strona
- parametry
- część
- Przeszłość
- Wzór
- dla
- procent
- wykonywane
- okres
- uporczywość
- Peru
- zjawisko
- phishing
- obraz
- Pierre
- plato
- Analiza danych Platona
- PlatoDane
- Proszę
- Policja
- pop-up
- Portal
- porty
- Portugalia
- możliwy
- obecność
- teraźniejszość
- Ciśnienia
- prymitywny
- prywatny
- prawdopodobnie
- wygląda tak
- Obrobiony
- produkuje
- Produkty
- Postęp
- postępuje
- projekt
- prawidłowo
- ochrona
- protokół
- protokoły
- okazały
- pod warunkiem,
- dostawców
- zapewnia
- że
- pełnomocnik
- opublikowany
- Python
- Q3
- szybko
- całkiem
- szybki
- Kurs
- raczej
- powód
- niedawny
- Czerwony
- , o którym mowa
- odnosi
- odzwierciedlenie
- zarejestrowany
- Rejestracja
- rejestr
- pozostały
- szczątki
- zdalny
- zdalnie
- usuwa
- raport
- Raporty
- reprezentować
- zażądać
- wywołań
- wymagany
- wymagania
- Wymaga
- Badania naukowe
- Badacze
- Rozkład
- rozwiązać
- zdecydowany
- rozwiązywanie
- odpowiedzialny
- dalsze
- run
- bieganie
- s
- Powiedział
- SAINT
- taki sam
- zobaczył
- powiedzieć
- Ekran
- Szukaj
- druga
- Tajemnica
- Sekcja
- działy
- bezpieczeństwo
- widzieć
- wydaje
- widziany
- wybrany
- wysłać
- wysyłanie
- wysłany
- wrzesień
- Serie
- serwer
- Serwery
- służy
- usługa
- Usługi
- zestaw
- Zestawy
- ustawienie
- kilka
- shared
- dzielenie
- pokazać
- pokazane
- Targi
- bok
- znacznie
- podobny
- Prosty
- jednocześnie
- ponieważ
- pojedynczy
- mały
- So
- Tworzenie
- Wyłącznie
- kilka
- czasami
- wkrótce
- Źródło
- Kod źródłowy
- Hiszpania
- specyficzny
- Spot
- Spready
- standard
- rozpoczęty
- startup
- Zjednoczone
- statyczny
- statystyczny
- statystyka
- Ewolucja krok po kroku
- Nadal
- przechowywany
- sklep
- strumień
- sznur
- strongly
- przedmiot
- Z powodzeniem
- taki
- streszczać
- podpory
- niespodzianka
- Przełącznik
- system
- systemy
- stół
- Brać
- trwa
- ukierunkowane
- kierowania
- cele
- Techniczny
- Analiza techniczna
- technika
- kilkadziesiąt
- XNUMX
- niż
- że
- Połączenia
- Informacje
- Linia
- ich
- Im
- następnie
- w związku z tym
- Te
- one
- myśleć
- to
- tych
- chociaż?
- tysiące
- groźba
- trzy
- Przez
- czas
- czasy
- znak czasu
- Tytuł
- do
- razem
- narzędzie
- narzędzia
- Top
- Kwota produktów:
- w kierunku
- śledzić
- Śledzenie
- ruch drogowy
- leczenia
- rozsierdzony
- trojański
- drugiej
- przechodzi
- wyjątkowy
- aż do
- nieużywana
- na
- uptime
- us
- posługiwać się
- używany
- zastosowania
- za pomocą
- zazwyczaj
- wykorzystać
- wykorzystuje
- wartość
- Wartości
- Wariant
- Naprawiono
- wersja
- informacje o wersji
- początku.
- przez
- Ofiara
- Ofiary
- Odwiedzić
- odwiedził
- była
- Droga..
- we
- sieć
- przeglądarka internetowa
- Strona internetowa
- strony internetowe
- tydzień
- DOBRZE
- były
- Co
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- KIM
- szerokość
- będzie
- okno
- okna
- w
- w ciągu
- Praca
- działa
- pisanie
- rok
- lat
- plony
- zefirnet
- Zamek błyskawiczny