Conférence BLACK HAT. Comment faire un téléphone espion. Partie 1

Présentateur: Kevin McNami est directeur du Bell Labs Security Research Laboratory, qui fait partie d'Alcatel-Lucent. Sa présentation s'intitule "Comment fabriquer un téléphone espion", et si vous avez des questions, veuillez les conserver jusqu'à la fin du discours afin que nous sachions qu'il nous reste suffisamment de temps pour eux.

Kevin McNami: Je souhaite la bienvenue à tous, je suis heureux de prendre la parole ici aujourd'hui. Je vais parler de la façon de faire un bon téléphone espion, mais je pense que le principal intérêt pour vous sera de savoir comment prendre ce module de téléphone espion SpyPhone et le mettre dans une application Android.



Ma présentation comprendra 3 parties. Le premier est une démonstration de SpyPhone en action, puis nous parlerons un peu de la conception spéciale du «téléphone espion». La troisième partie de la conversation sera consacrée à la façon dont vous pouvez injecter le service SpyPhone dans l'application, et à la fin j'aimerai les résultats et répondrai aux questions.

La diapositive suivante montre comment les gens percevaient le «téléphone espion». Fondamentalement, ils pensaient qu'un tel téléphone vous permet d'espionner d'autres personnes.



Un téléphone espion moderne est différent; il s'agit d'un smartphone classique exécutant le système d'exploitation Android. Android est une plate-forme très flexible avec laquelle il est facile de travailler, elle est très ouverte et vous permet de faire beaucoup de choses. Voilà à quoi ressemble un SpyPhone moderne. Je pense que la même chose peut être faite avec les téléphones fonctionnant sous iOS, mais j'ai concentré mes efforts sur Android.



Auparavant, pour organiser la surveillance extérieure, vous auriez besoin d'une variété d'équipements, allant des magnétophones pour enregistrer les conversations téléphoniques à la bande et se terminant par des voitures avec un équipement de surveillance secrète. Aujourd'hui, vous n'avez besoin que d'un téléphone Android. Vous utilisez un tel téléphone avec un logiciel spécial installé dessus et vous pouvez suivre la personne qui possède ce téléphone. Vous pouvez contrôler ses appels téléphoniques, vous pouvez contrôler son emplacement, vous pouvez même envoyer des messages à partir du téléphone de cette personne, afficher une liste de contacts, etc.



Il s'agit d'une forme très puissante de dispositif de cyber-surveillance. Si le téléphone d'une personne est infecté par cette application de spyware et que cette personne l'apporte au bureau, vous pouvez suivre cette personne au travail, regarder des réunions d'affaires, etc. La gestion et le contrôle de l'appareil espion se font via Internet. Le module espion ne nécessite aucun équipement supplémentaire spécial, tout est situé à l'intérieur du téléphone. Lorsqu'il a quelque chose à transmettre, il vous contacte via le site de commande et de contrôle et vous transmet des informations. Plus tard, je vais vous montrer une démonstration de comment cela fonctionne.

Considérez maintenant les contre-mesures. Dans l'Antiquité, le soi-disant «cône de silence» était utilisé pour empêcher les écoutes. Si quelqu'un vous espionne, vous pouvez toujours entrer dans le «cône de silence» et communiquer en toute liberté avec votre interlocuteur.



Le «cône de silence» d'aujourd'hui est un peu différent. L'entreprise pour laquelle je travaille a développé une technologie qui peut être placée sur le réseau et qui détecte automatiquement le trafic comme la commande et le contrôle, qui est médiée par un téléphone Android.



C'est pourquoi nous avons créé le module SpyPhone, que nous utilisons comme démonstration lorsque nous nous rendons chez nos clients, qui sont principalement des fournisseurs de services de communication mobile et d'Internet mobile. Nous leur montrons un «téléphone espion» pour montrer qu'il y a un énorme problème de sécurité dans le réseau mobile. Cette menace en est encore à ses balbutiements, mais pourrait potentiellement causer de gros dégâts à l'avenir. Nous utilisons ce module pour éduquer nos clients sur les dangers, il est donc naturel que la deuxième partie de la démonstration soit la présentation de notre produit, qui puisse résister à ces dangers.

Le smartphone est un appareil très puissant. Il permet d'accéder à votre emplacement, se connecte à Internet de presque n'importe où, dispose d'un microphone, d'une caméra, se connecte aux réseaux locaux via Wi-Fi, et tout cela en fait une plate-forme d'espionnage idéale.

Je dirais qu'un smartphone est un outil de cyberespionnage idéal qui peut être utilisé pour suivre l'emplacement de la victime, télécharger des informations personnelles, intercepter et envoyer des messages, enregistrer des conversations et prendre des photos à l'insu du propriétaire. Dans le contexte du BYOD et de l'APT, c'est la plateforme idéale pour lancer des attaques internes sur les réseaux d'entreprises ou gouvernementaux.

Je pense que j'en ai assez parlé, alors passons à la démonstration. Sur la gauche, vous voyez une capture d'écran de l'écran du téléphone, qui deviendra bientôt un logiciel espion, c'est le téléphone que j'utilise actuellement. Sur la droite, vous voyez la console de commande et de contrôle, qui sera utilisée par la personne qui suit ce téléphone.



Nous avons donc pris le malware, le module SpyPhone, et l'avons implémenté dans une copie du jeu très populaire Angry Birds. Ensuite, nous avons envoyé un gars un e-mail disant qu'il pouvait télécharger ce jeu cool et y jouer. Nous pouvons également placer ce jeu infecté sur des sites tiers, d'où l'utilisateur peut le télécharger. Maintenant, je vais aller sur mon navigateur sur mon téléphone pour voir la lettre reçue.

Ainsi, lorsque ce type reçoit la lettre, il clique sur le lien et entre dans le véritable magasin d'applications pour «Android» sur la page avec notre jeu. Nous avons décidé de l'appeler Very Angry Birds, car il contient le module SpyPhone.



Ainsi, l'utilisateur télécharge ce jeu. Sur votre téléphone Android, lorsque vous installez l'application, il vous fournit une liste de toutes les autorisations dont il a besoin pour fonctionner.



Il indique que l'application a besoin d'accéder à votre position, à vos informations personnelles, aux communications réseau, au stockage de données, aux services payants et aux appels téléphoniques. Étant donné que l'utilisateur souhaite installer l'application, il ne fait généralement pas attention à toutes ces autorisations, qui apparaissent constamment lors de l'installation des programmes, et clique simplement sur le bouton "Installer". L'écran montre maintenant comment se déroule le processus d'installation de l'application. Ensuite, nous lançons l'application installée. Maintenant, à gauche, vous voyez le jeu en cours d'exécution, et à droite - les informations du site Web de commande et de contrôle que le smartphone est sous contrôle, et vous pouvez entendre les sons qui accompagnent le jeu.



Je vais couper le son car cela m'ennuie. Donc, notez que le jeu se joue comme d'habitude, il n'y a rien d'extraordinaire qui pourrait attirer l'attention de l'utilisateur. Il n'y a aucune preuve que quelque chose d'étrange arrive au téléphone.

L'utilisateur joue, c'est très cool, mais même lorsqu'il arrête de jouer et ferme le jeu, le module espion continuera de fonctionner en arrière-plan. Même si vous redémarrez le téléphone, le service SpyPhone sera redémarré, maintenant il est constamment présent sur ce smartphone. Donc, ce téléphone est infecté par un cyberespion et est maintenant affiché ici dans la console du site Web de commande et de contrôle. Si je clique sur cette ligne, le site me donnera des informations stockées sur cet appareil. Nous pouvons obtenir une carte avec l'emplacement de cet appareil - c'est Las Vegas.



Permettez-moi de souligner qu'ici la connexion entre le téléphone et l'ordinateur ne se fait pas directement, mais via Internet à l'aide d'un serveur Web situé à Ottawa, où je travaille. La seule raison pour laquelle j'ai connecté ce téléphone avec un câble à mon ordinateur est la nécessité de prendre des captures d'écran. La console montre que d'autres téléphones fonctionnent en même temps. Voici l'un d'entre eux situé en Chine, vous pouvez donc créer un réseau international de «téléphones espions» et les surveiller tout le temps lorsqu'ils sont en ligne.

Alors, revenons à notre téléphone à Las Vegas. Vous pouvez voir que voici l'adresse e-mail du compte du propriétaire du téléphone, le numéro de téléphone, la norme de communication CDMA, le type de réseau, l'IMEI, le pays de l'opérateur mobile, son nom, l'état de la carte SIM, les coordonnées de localisation et les contacts du propriétaire du téléphone. Toutes ces informations sont téléchargées sur le serveur de commande et de contrôle, et nous pouvons suivre le propriétaire de ce téléphone 24 heures par jour, 7 jours par semaine et utiliser toutes les informations fournies par le téléphone, y compris le téléchargement de la liste de contacts de cette personne en particulier. Cela nous donnera une liste d'autres objectifs potentiels si nous utilisons une sorte de cyber-espionnage industriel, lorsque nous voulons savoir avec qui le propriétaire du téléphone parle et avec qui il fait affaire. Nous pourrions utiliser cette liste de contacts pour cibler des personnes spécifiques.

On peut imaginer qu'un attaquant distribue ce jeu à toutes les boutiques d'applications Android, et après que les gens l'aient téléchargé, vous vous concentrez sur un employé d'une entreprise particulière, sur sa liste de contacts, etc.

Une autre chose que nous pouvons faire est de mettre à jour le logiciel espion installé et d'envoyer des messages au téléphone infecté. Vous pouvez l'utiliser à d'autres fins, par exemple pour effrayer les gens avec de tels messages. Nous pouvons accéder aux messages SMS et e-mail, déterminer l'emplacement du téléphone. Toutes ces opérations sont indiquées dans la partie supérieure de la console de gestion du téléphone capturé; elles sont surlignées en bleu. Une autre chose qui peut être fait est d'allumer l'appareil photo du téléphone, je vais essayer de le faire dès maintenant. Je prends le téléphone dans mes mains et clique sur la fonction «Peep» dans la console de contrôle, cela prendra un certain temps, car vous devez prendre une photo et l'envoyer sur le site de commande et de contrôle. Comme vous pouvez le voir, ma photo apparaît d'abord, prise avec la caméra frontale, derrière elle se trouve une photo de cette pièce, prise avec la caméra arrière. Ainsi, je peux photographier à distance sur un téléphone infecté et recevoir ces photos.

Si vous remarquez, le jeu est toujours en cours d'exécution sur l'écran, de sorte que la personne ne remarquera même pas que la photo a été prise. Cela se fait en arrière-plan à l'insu de l'utilisateur. Nous pouvons utiliser la même technologie pour filmer des vidéos. La dernière chose que je veux démontrer est la fonction d'écoute. Donc, je dis au téléphone: "C'est un test, un, deux trois, c'est un test, un, deux, trois." Ensuite, je clique sur le bouton "Play Audio", la connexion prend un peu de temps, et maintenant vous entendez la répétition de mes mots.



J'ai donc enregistré la conversation via le microphone du téléphone et l'ai téléchargée sur le site Web de commande et de contrôle, donc tout est plutôt cool. Il s'agissait donc d'une démonstration de ce que la technologie SpyPhone peut faire.

Parlons maintenant un peu de la façon dont nous avons développé la conception et la technologie de nos logiciels et pourquoi nous avons pris de telles décisions de conception. Je reviens aux diapositives précédentes.



Tout d'abord, nous voulions combiner nos logiciels malveillants avec les fonctionnalités d'origine du téléphone et créer un programme espion de type cheval de Troie avec accès à distance qui fonctionnerait avec un téléphone Android. Nous avons pris comme base une application de démonstration appelée «Dictionnaire interrogeable» et l'avons modifiée afin qu'un module de spyware puisse y être inséré, et l'avons implémenté comme une application régulière pour Android.

Autrement dit, nous avons adhéré à la conception de programmes Android originaux utilisant Java. Nous en avions besoin pour contenir tous les composants nécessaires en lui-même, pour fonctionner en arrière-plan, même si l'application a été arrêtée, elle a démarré lorsque le téléphone s'est chargé. Notre deuxième tâche consistait à faciliter l'intégration de SpyPhone dans les applications officielles. Cela a fonctionné et notre logiciel malveillant n'a pas interféré avec le fonctionnement d'autres applications installées sur le téléphone. En tant que commande et contrôle du serveur de commande et de contrôle, nous avons choisi le serveur Web NodJS avec transfert de données via HTTP. Pour les commandes de contrôle de notre programme, nous avons utilisé l'interface JS, et les commandes elles-mêmes ressemblaient à ceci:

mise Ă  jour - envoyer des informations au serveur,
toast - afficher un message Ă  l'Ă©cran,
arrĂŞt - arrĂŞtez SpyPhone,
sms - envoyer un SMS Ă  un contact,
location - envoyer les informations de localisation du téléphone au serveur,
peep - prendre une photo et l'envoyer au serveur,
Ă©couter - enregistrer le son et l'envoyer au serveur.

Tout cela était assez facile à programmer, car les créateurs d'Android ont fourni à leur système un ensemble complet d'outils de développement SDK assez puissant. Ce kit fournit une interface pour tout ce que vous voulez. Nous n'avons jamais développé de programmes Android, mais grâce à ce SDK, nous n'avons même pas eu à apprendre quoi que ce soit et nous avons développé cette chose en quelques semaines.

La diapositive suivante montre la conception initiale du dictionnaire interrogeable, sur la base de laquelle nous avons créé SpyPhone en utilisant les codes Java que vous voyez ici. Nous avons ajouté une partie appelée droidwhisper à cette application.



C'est la partie que nous allions couper et coller dans une application appropriée plus tard. Nous n'avions aucune expérience dans la création d'exploits spéciaux qui exploiteraient les vulnérabilités des applications, nous avons donc importé l'API standard fournie par Android:

Information utilisateur
- importer android.accounts.Account;
- importez android.accounts.AccountManager.
Téléphone et SMS
–Importez android.telephony.SmsManager;
–Importez android.telephony.TelephonyManager.
Emplacement
–Importez android.location.Location;
–Importez android.location.LocationListener;
–Importez android.location.LocationManager;
Enregistrement de fichiers multimédias (audio et vidéo)
- importez android.media.MediaRecording.
Appareil photo
–Importez android.hardware.Camera;
–Importez android.hardware.Camera.PictureCallback;
–Importez android.hardware.Camera.PreviewCallback;
–Importez android.hardware.Camera.Size;
–Importez android.media.AudioManager;
–Importez android.view.SurfaceHolder;
–Importez android.view.SurfaceView.
Internet
–Import org.apache.http.HttpResponse;
–Import org.apache.http.NameValuePair;
–Import org.apache.http.client.ClientProtocolException;
–Import org.apache.http.client.HttpClient.

Quelqu'un a dit que l'enregistrement de vidéos et la prise de photos lorsque le téléphone est dans la poche de l'utilisateur n'était pas très bon. Par conséquent, si vous voulez prendre une bonne photo, vous envoyez le SMS au propriétaire, car nous avons son numéro de téléphone. Il reçoit un message, tient le téléphone face à lui pour le lire, et à ce moment vous prenez une photo avec la caméra frontale. Si vous venez de l'appeler, il porte le téléphone à son oreille et à ce moment-là, vous pouvez prendre une photo avec la caméra arrière.



Faire fonctionner la caméra est un peu plus compliqué, nous avons donc utilisé tout un ensemble de classes, par exemple AudioManager, SurfaceHolder et similaires. Nous devions prévoir de désactiver temporairement le clic lorsque vous prenez une photo, afin de ne pas attirer l'attention de l'utilisateur si cette fonction est activée dans les paramètres de son appareil photo. De plus, nous avons envisagé que les photos ou vidéos d'espionnage prises soient affichées dans la galerie du téléphone sous forme de miniatures de 1 pixel afin que l'utilisateur ne puisse pas les voir. Nous avons donc dû utiliser quelques astuces pour assurer le fonctionnement discret de notre module d'espionnage. Comme je l'ai déjà remarqué, presque tout pour assurer la communication avec le serveur de commande et de contrôle est contenu dans le téléphone lui-même. Nous avons également utilisé certaines des faiblesses de sécurité d'Android.

Comme vous le savez, ces applications doivent être signées pour être installées sur le téléphone, mais ce n'est pas un problème, car vous pouvez utiliser n'importe quel ancien certificat pour la signature, car l'essentiel est que l'application ait un certificat, peu importe lequel. Plus tard, j'en parlerai davantage.

Il s'agissait donc d'une brève description de la conception que nous avons utilisée lors de la création de l'application. Maintenant, je vais vous parler du processus de mise en œuvre, c'est-à-dire de la façon dont nous avons pris notre module malveillant et l'avons inséré dans l'application.

La première chose que nous avons faite a été de choisir le jeu Angry Birds. Nous l'avons choisi non pas parce que c'est un très bon jeu, mais à cause de sa popularité. Notre module SpyPhone peut être entré dans n'importe quelle application. Tout d'abord, nous avons besoin d'une copie du fichier .apk d'origine. Il s'agit d'une archive contenant tous les composants de l'application. A l'intérieur du fichier d'application se trouve du code Java, ou plutôt pas tout à fait Java - c'est le code de la machine virtuelle Dalvik. Ce code peut être remplacé par un autre contenu, c'est ce qu'on appelle une vulnérabilité de «clé principale». Donc, nous devons ouvrir ce fichier .apk et le démonter, c'est-à-dire avoir une liste de tous les composants à démonter.
Donc, tout d'abord, nous extrayons tous les composants de l'application Angry Birds 2000.



Ensuite, nous insérons notre exemple de répertoire / android / droidwhisper dans le répertoire smali, et c'est dans le dernier dossier droidwhisper que se trouvent les fichiers d'application du dictionnaire Searchable modifiés contenant notre module d'espionnage.



Nous avons téléchargé le jeu Angry Birds sur Google Play Market et en avons fait une copie. La prochaine chose qui nous inquiète, ce sont les clés de signature. Vous voyez tous ces fichiers dans notre répertoire appelé inject.

Dans le processus de démontage, nous avons utilisé le programme Apk_tools, un outil de gestion des fichiers .apk. Maintenant, en utilisant la ligne de commande, je montre comment nous avons commencé à démonter Angry Birds.



Ensuite, nous avons procédé directement au démontage de l'application. Nous avons créé le catalogue Angry Birds, où nous avons inséré tous les composants de l'application. Comme il s'agit d'une démonstration, vous devez attendre un peu jusqu'à la fin du processus de démontage. Donc, vous voyez une pléthore de répertoires, le dossier des actifs est situé en premier, des choses comme les sons sont dedans, puis il y a des dossiers de ressources, des bibliothèques lib, mais la clé pour nous est le répertoire smali, qui contient le code et le format du langage d'assemblage.

23:00 min

Conférence BLACK HAT. Comment faire un téléphone espion. 2e partie



Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbit / s jusqu'en janvier gratuitement en payant pour une période de six mois, vous pouvez commander ici .

Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

Source: https://habr.com/ru/post/fr434052/


All Articles