SHA1:
- 90f044607f37ccc795af8a8d87eef2fae071104f
- 45273fc93befb963015bbb99ae67bcf596412cc1 (dex)
- 9fef8711a2cce4b2e46f93f29bc4b3153d719af1 (RockClient.odex, détecté comme Android.Gmobi.3)
Un Trojan SDK (Software Development Kit) intégré aux applications Android et conçu pour afficher des publicités, télécharger et installer des logiciels ainsi que pour collecter des informations confidentielles. Ce Trojan peut se trouver dans divers programmes. Il a notamment été détecté dans des applications comme com.rock.gota (logiciel système pour les mises à jour du firmware de Micromax AQ5001), Trend Micro Dr.Safety, Dr Booster et Asus WebStorage.
A chaque démarrage de l'appareil infecté (android.intent.action.BOOT_COMPLETED) ainsi que lors de l'installation des nouvelles applications (android.intent.action.PACKAGE_ADDED), Android.Gmobi.1 utilise Action Monitor (BroadcastReceiver) pour lancer le service ActionService.
Puis ActionService vérifie si les autres composants du malware sont actifs et, si nécessaire, il initialise leur fonctionnement. Il donne ensuite au service système AlarmManager une tâche d'envoi de messages au receiver ActionMonitor toutes les 60 minutes, en assurant ainsi son fonctionnement continu.
ActionActivity
L'un des récepteurs BroadcastReceiver enregistrés dans ActionMonitor surveille l'état de l'écran de l'appareil contaminé. Après avoir reçu un message indiquant que l'écran est allumé (android.intent.action.SCREEN_ON), il vérifie sa propre base de données locale à la recherche des informations sur les publicités à afficher à l'utilisateur. Si ces données sont disponibles, ActionActivity démarre afin d'afficher les types suivants de publicité :
- publicité dans la barre de notification ;
- publicité dans une boîte de dialogue ;
- publicité sous forme de boîtes de dialogue interactives - lorsqu'on clique sur le bouton OK, un SMS est envoyé (à condition que l'application dans laquelle est implémenté le SDK malveillant possède les droits appropriés) ;
- bannière publicitaire par-dessus des fenêtres d'autres applications et GUI de l'OS ;
- consultation d'une page spécifiée dans un navigateur Web ou une application Google Play.
- lancement automatique des applications déjà installées sur l'appareil ;
- téléchargement d’applications à l'aide du service système DownloadManager en utilisant des liens précédemment connus qui sont mis en file d'attente pour téléchargement à l'insu de l'utilisateur.
PushThread
Il démarre lorsqu’une connexion à Internet est établie ou lorsque l'écran s'allume. Il arrête dès que la connexion à Internet est fermée ou 60 secondes après que l'écran se soit éteint. Il enregistre dans la base de données locale une liste des applications installées sur l'appareil.
Il collecte les informations suivantes :
- adresses e-mail de l'utilisateur ;
- disponibilité du roaming ;
- coordonnées de l'utilisateur (à l'aide du GPS ou selon les informations du réseau cellulaire) ;
- informations techniques détaillées concernant l'appareil : le nom de l'éditeur, les identificateurs IMEI et IMSI, l'adresse MAC des adaptateurs Bluetooth et Wi-Fi, les dimensions de l'écran, des données sur une application qui contient le SDK malveillant, la version de SDK etc. ;
- le pays où se trouve l'utilisateur, qui est déterminé à l'aide du GPS (si le GPS est indisponible, les informations du réseau NetworkCountryIso, de la carte SIM et de Locale sont utilisées) ;
- présence de l'application Google Play installée.
Ensuite, ces données sont chiffrées et envoyées au serveur http://api.fotapro.com/api/push/connect. Un exemple de données collectées par le Trojan et envoyées au serveur :
{
"device":{
"sdk_b":"2015.03.18.1",
"os_v":"4.1.2",
"lang":"en",
"id":"54be457a2c47a2981219219c",
"gprs":false,
"updated":false,
"app_v":"01.03.03",
"sdk":"go2sync",
"roaming":false,
"wmac":"9C:3A:AF:51:01:F6",
"sw":480,
"bmac":"9C:3A:AF:51:01:F5",
"os":"android",
"app":"com.rock.gota",
"sn":"4da348e981cfee7d",
"imei":"356507059351894",
"sd":true,
"loc":{
"lat":59.9588551,
"lng":30.3187445
},
"emails":[
"XXXXX@gmail.com"
],
"sh":800,
"cid":"B40CF4E8F83EEA83CD65C119F2B1AAD7",
"sdk_v":"2.0",
"country":"ru",
"wifi":true,
"sa":false,
"ua":"android;MANUFACTURER\/samsung;MODEL\/GT-I8190;BOARD\/DB8520H;BRAND\/samsung;DEVICE\/golden;
HARDWARE\/samsunggolden;PRODUCT\/goldenxx",
"brand":"Samsung",
"imsi":"",
"gp":true
},
"ac":"D603ECE5139479DD9D55A36FE8E10B73",
"last":"6262634407211827200,2016031613,D603ECE5139479DD9D55A36FE8E10B73"
}
Le serveur répond pas un JSON crypté (Java Script objet Notification), qui contient le fichier de configuration qui comprend, entre autres, l'adresse du serveur TCP (tcp: //) et le paramètre « mode ». Selon le paramètre « mode », ultérieurement, PushThread peut se connecter via le protocole TCP au serveur de contrôle depuis lequel il reçoit un JSON formé de même manière avec les commandes " messages ".
Parmi les commandes reçues :
- enregistrer dans la base de données des informations concernant la publicité à afficher à l'utilisateur ;
- créer un raccourci publicitaire sur le bureau (si vous cliquez dessus, ce raccourci lance ActionActivity avec des publicités) ;
- afficher une notification contenant une publicité (si vous cliquez sur la notification, ActionActivity démarre) ;
- afficher une notification qui lancera, si elle est cliquée, une application déjà installée ;
- télécharger et installer automatiquement des fichiers apk à l'aide de ReliableDownloadManager (l'installation n’est pas masquée) ;
- installer des fichiers apk à l'aide de ReliableDownloadManager de manière cachée (pm install utilisé).
Les commandes énumérées peuvent contenir des filtres spéciaux :
- par IMEI ;
- par nom de l'application dans laquelle est implanté le SDK malveillant ;
- par région de résidence de l'utilisateur ;
- par opérateur mobile ;
- par nom de fabricant de l'appareil mobile ;
Un exemple de données reçues par le Trojan depuis le serveur de contrôle :
{
"server":"tcp://0.0.0.0",
"chs":[
],
"did":"56e2c66b31409b5725270a9d",
"sid":"56e2c66b31409b5725270a9d-com.trendmicro.dr.booster",
"brand":"Google",
"ac":null,
"messages":[
],
"last":"6260771250398822400,2016031113,",
"fileUrl":"http://cdn.fotapro.com/files/{id}",
"enabled":true,
"mode":3,
"fs":[
],
"ri":300,
"log":false
}
Le paramètre « ri », reçu dans la commande du serveur, contient une valeur du délai en secondes à l'échéance duquel des informations de la base de données " Data " sont chargées sur l'hôte distant http://api.fotapro.com/api/data/d.
Après avoir accompli toutes ses fonctions, PushThread arrête de fonctionner durant quelques secondes, puis il redémarre en boucle jusqu'au moment où il sera arrêté à cause de la fermeture de la connexion Internet ou lorsque l'écran sera éteint, ou bien que la commande " push/disable " sera reçue de l'application dans laquelle le SDK malveillant est implanté.
Composant ReliableDownloadManager
Ce composant est responsable du téléchargement des fichiers apk, ainsi que de l'installation cachée ou automatique des applications. Il fonctionne via ActionService. Il surveille votre connexion Internet à l'aide d'android.net.conn. CONNECTIVITY_CHANGE. Il place les commandes de téléchargement de fichiers apk dans Map. Après avoir établi une connexion Internet, il télécharge les fichiers nécessaires et essaie de les installer en utilisant la boîte de dialogue système standard ou getPackageManager (). installPackage (...). Si l'installation via installPackage (...) échoue, il tente d'installer des applications à l'aide de la commande " su pm install ".
De plus, ce module est utilisé pour télécharger des fichiers auxiliaires, par exemple, des raccourcis ou des images pour les bannières publicitaires.
LocationService
Il commence son fonctionnement à l'aide d'ActionService. Il enregistre les récepteurs contrôlant le statut de l'écran. À l'aide de ces récepteurs, il calcule la durée totale pendant laquelle l'écran est allumé. Dans le cas où l'écran est actif pendant plus d'une heure, il reçoit les coordonnées de l'appareil à l'aide du GPS ou en utilisant les données de réseau mobile. Puis, à l'aide du service http://maps.googleapis.com, il reçoit l'adresse exacte de l'emplacement de l'appareil (road, county, state, state district, country, country_code, region, town, city), ainsi que les coordonnées courantes.
Les données obtenues sont stockées dans SharedPreferences, ainsi que dans la base de données locale sous la clé location_send_server_data. Jusqu’à ce que SharedPreferences contienne des informations pour location_send_server_data, les nouvelles coordonnées ne sont pas mémorisées.
Les informations sur l'emplacement actuel sont transmises non pas au serveur de contrôle mais directement à l'application dans laquelle est implanté le SDK malveillant. Cette action s'exécute en réponse à la commande « GetSalesTrackInfo ». Dans ce cas, le SDK supporte plusieurs commandes :
- GetSalesTrackInfo
- push/disable
- push/enable
- data/
- GetSDKUsedTime
AppUsageMonitor
Il est créé et lancé par les récepteurs enregistrés dans ActionService et surveillant le statut de l'écran (allumé/éteint). Chaque fois que l'écran s'allume, il définit la tâche TimerTask, qui s'exécute toutes les 5 secondes. La tâche vérifie la liste des applications en cours d'exécution et enregistre des informations les concernant dans la base de données locale au format " application + statut ".
Si le nom d'une application en cours d'exécution est sauvegardé dans SharedPreferences, la fonction " Reward Action " est lancée. Il est fort probable que cette fonction est destinée à générer des profits à chaque téléchargement et lancement des applications annoncées dans la publicité. Lorsque l'écran est éteint, la tâche TimerTask est annulée.