Android Exploitation CHEF ATELIER : NEJI MOHAMED OUSSAMA (RT4) KOURAICHI SANA (RT4) BRAIKI RIHAB (RT4) MEJBRI SONIA (RT4) IDRISS IMEN (RT4) GHARBI HATEM (RT3) BEN SIDHOUM TEISSIR (MPI)
Table des matières I. Présentation de l atelier :... 2 II. Présentation des outils utilisés :... 2 1. Ubuntu... 2 a- Les avantages d'ubuntu :... 2 b- Principales différences de fonctionnement entre Windows et Ubuntu :... 3 2. Le Framework Metasploit... 4 3. Smartphone Android... 6 III. Topologie de réseau :... 7 IV. Configuration des outils :... 8 1. Installation Ubuntu :... 8 2. Installation Metasploit :... 9 V. Scenario de test :... 10 VI. Conclusion :... 16 1
I. Présentation de l atelier : L atelier Android Exploitation représente l interception et l exploitation des données d un utilisateur Smartphone, Tablette ou autre a l aide d une application andoid en utilisant un malware, ce qui nous permet de voler des informations se trouvant sur le téléphone ou la tablette de la victime (photos, vidéos, nom de l operateur, contacts.). II. Présentation des outils utilisés : 1. Ubuntu Ubuntu est un système d'exploitation libre commandité par la société Canonical et une marque déposée par cette même société. Fondé sur la distribution Linux Debian, ce système d'exploitation est constitué de logiciels libres, et est disponible gratuitement sur le site http://www.ubuntu-fr.org/telechargement Ubuntu pour postes de travail rassemble le meilleur du logiciel ouvert (open-source) en une plate-forme bien soutenue, mise à jour et totalement gratuite. Il profite de centaines d'améliorations et des nouvelles mises à niveau de logiciels à chacune de ses nouvelles versions stables, attirant de plus en plus d'utilisateurs! a- Les avantages d'ubuntu : Clarté: Lorsque vous chargez Ubuntu pour la première fois, vous découvrez un environnement qui est propre et simple, sans icône superflue sur le bureau et dont le thème est agréable à l'œil. 2
Ubuntu "just works": Les développeurs ont fait tout le gros du travail pour vous. Une fois que Ubuntu est installé, toute la base est en place afin que votre système soit immédiatement utilisable. Vos logiciels sont aussi compatibles avec les divers autres logiciels d'autres éditeurs. Vos documents professionnels peuvent être échangés avec les utilisateurs de Microsoft Office, de Corel WordPerfect Office, de Calligra, de StarOffice, etc. L'accès à une vaste bibliothèque de logiciels gratuits: Besoin d'un logiciel particulier? Il n'est pas besoin d'aller fouiller partout dans des sites Internet parfois douteux afin de trouver ce qu'il vous manque. Choisissez simplement parmi des milliers de paquets logiciels à travers le catalogue d'ubuntu, tous téléchargeables et installables en un minimum de clics de souris. Et le tout, sans débourser le moindre centime (et c'est légal)! b- Principales différences de fonctionnement entre Windows et Ubuntu : Introduction : Ubuntu n'est pas Windows, c est une alternative à Windows qui a pour avantages : Facilité d'utilisation Liberté Gratuité Modularité Sécurité Installation et mise à jour des programmes : Windows : pour installer un programme il suffit généralement de télécharger puis lancer un exécutable <<.exe >>, et pour mettre à jour il faut télécharger sur internet la nouvelle version puis l'installer et enfin redémarrer. Ubuntu: il suffit d'un clic sur les liens que vous trouverez sur la documentation du site Ubuntu-fr. Il existe aussi un annuaire de logiciels intégré (Logithèque Ubuntu) très pratique. Système de fichiers : Windows: ne peut utiliser que deux systèmes de fichiers : FAT ou NTFS. Ubuntu (Linux): peut utiliser quasiment tous les systèmes de fichiers. Le principal étant l'ext4. 3
2. Le Framework Metasploit Metasploit est un outil, open source, pour le développement et l'exécution d exploits (logiciels malveillant) contre une machine distante, il permet de réaliser des audits en sécurité, de tester et développer ses propres exploits.créé à l origine en langage de programmation, Metasploit Framework a été complètement réécrit en langage Ruby. Il est utilisé souvent par les administrateurs systèmes pour tester les vulnérabilités des systèmes informatiques afin de les protéger, ou par les hackers à des fins de piratage. Les étapes basiques pour l'exploitation d'un système sont : 1. Choisir et configurer un exploit (code permettant de pénétrer un système cible en profitant de l'un de ses bogues ; environ 1000 exploits sont disponibles pour les systèmes Windows, Unix/Linux/Mac OS X/BSD/Solaris, et d'autres...). 2. Vérifier si le système cible visé est sensible à l'exploit choisi. 3. Choisir et configurer un payload (code qui s'exécutera après s'être introduit dans la machine cible, par exemple pour avoir accès à un shell distant). 4. Choisir la technique d'encodage pour encoder le payload de sorte que les systèmes de préventions ne le détectent pas. 5. Exécuter l'exploit. Composition Tout d abord définissons quelques termes : - Exploit : C est l attaque mise en œuvre qui va exploiter une vulnérabilité du système cible - Payload : C est le code qui s'exécutera après s'être introduit dans la machine cible, par exemple pour avoir accès à un Shell distant. 4
La très forte modularité de Metasploit vient du fait qu une payload ne fonctionne pas seulement qu avec un seul exploit, et vice-versa. Ainsi pour une même attaque on peut utiliser une payload permettant de rediriger le flux d exécution de l application vulnérable et donc d avoir accès à un Shell distant, ou d avoir un déport d affichage de la machine attaquée. Exploits Il est possible de créer plusieurs exploits permettant d utiliser une même vulnérabilité, ou à l inverse, d utiliser un même exploit afin d exploiter plusieurs vulnérabilités similaires. Le processus afin de créer un exploit est le suivant : on cible tout d abord l OS et/ou le logiciel cible, puis on cherche une vulnérabilité connue sur des sites web tels que www.osvdb.org (Open Source Vulnerability DataBase, qui est un site qui recense toutes les vulnérabilités découvertes à ce jour), à moins que l on en ait trouvé une soi-même. Il suffit ensuite de rédiger l attaque en prenant pour modèle d autres exploits Metasploit. Cette attaque contient l exploitation même de la vulnérabilité (très souvent un buffer overflow), puis une procédure permettant de chercher assez d espace disponible afin d ensuite pouvoir uploader et y placer notre payload. A noter qu il est nécessaire de connaître le fonctionnement du logiciel cible, qui souvent modifie les données avant de les traiter. Ainsi notre payload risque d être modifiée avant son exécution et donc ne plus fonctionner correctement. Les exploits peuvent se classer de plusieurs façons. Cette classification peut se faire suivant leur impact sur la cible, c'est-à-dire si elle provoque une perte de confidentialité, une perte d intégrité, une perte de disponibilité ou autre. On peut aussi les classer par type d attaque : elle peut porter sur la gestion de l authentification, provoquer un déni de service, être de nature cryptographique, malconfigurer la cible, dévoiler des informations de la cible, ou autre. Dans le Framework Metasploit, ces exploits sont tout d abord classées par OS cible. Les plus nombreuses concernent les attaques sur les systèmes Windows (250/330). Le reste concerne les systèmes Unix globalement, alors que certaines sont spécifiques à Linux ou Solaris. Il y en a très peu spécifiques à l OS MAC. Ensuite, au sein d un même OS, ces exploits sont classés par type de protocole utilisé par l application vulnérable. Les plus utilisés sont : ftp, http, imap, misc, smb, ssh, tftp, dcerpc 5
Enfin, au sein d un même protocole utilisé, les noms de différents exploits sont listés et diffèrent selon l OS ciblé, sa version et ses vulnérabilités. Payloads Une payload (charge utile) est une suite d'instructions qui est envoyée via un exploit pour rediriger le flux d exécution d'une application faillible afin d'obtenir une invite de commande après compromission. Il existe plusieurs type de code que l on va insérer une fois la faille ouverte. Les deux principales sortes de payload sont : - Le bind shellcode, qui consiste à exécuter sur la machine distante l équivalent d un serveur : un port (TCP ou UDP) se met alors en écoute de connexions entrantes et redirige les flux vers un shell distant. - Un reverse shellcode permet d obtenir un comportement de client standard sur la machine exploitée, c'est-à-dire qu elle établira une connexion sur une machine définie (par exemple celle de l attaquant) et lancera alors un shell que le «serveur» pourra contrôler. Les reverse shellcodes permettent parfois d outrepasser des règles de filtrage sur des firewalls. Une sorte de shell amélioré est la payload meterpreter (reverse_meterpreter) où en plus de pouvoir disposer d un shell afin de naviguer, exécuter ou lister du contenu sur la machine cible, le meterpreter permet d uploader ou de downloader n importe quel fichier entre la machine attaquante et cible. On peut ainsi facilement récupérer tout le contenu d un ordinateur, ou uploader un exécutable particulier afin de le lancer sur la machine cible. Il permet aussi, en gérant des canaux de communication, de détourner l entrée ou la sortie standard de la machine cible. Enfin il est aussi possible de gérer tous les processus à distance de la machine cible, les lister et aussi les arrêter Les payloads précédentes ne donnent pas d aperçu de l écran de la cible. Avec une payload du type vncinject (reflective_vncinject), un déport d affichage est possible jusqu à l écran de la machine attaquante, avec maîtrise de la souris et clavier. 3. Smartphone Android Un Smartphone, ordi phone, ordinateur de poche ou téléphone intelligent, est un téléphone mobile évolué disposant des fonctions. Selon le principe d'un ordinateur, il peut exécuter divers logiciels/applications grâce à un système d'exploitation spécialement conçu pour mobiles, et donc en particulier fournir des fonctionnalités en plus de celles des téléphones mobiles classiques. 6
Ce système d exploitation spécifique aux Smartphones, tablettes. Est l ANDROID c est un système open source, utilisant le noyau Linux. Il a été lancé par une startup rachetée par Google5 en APK : application package file c est le format de fichier utilisé pour distribuer et installer le logiciel d'application et middleware sur Google système d'exploitation Android. Pour créer un fichier APK, un programme pour Android est d'abord compilé, puis l'ensemble de ses pièces sont emballées dans un seul fichier. III. Topologie de réseau : Un ordinateur disposant d une adresse IP 192.168.1.32 envoi une application malware a un utilisateur Android, et en exécutant l application par la victime, une connexion entre le pirate et la victime s établi sur le port 4444 en envoyant les données du Smartphone vers l adresse 192.168.1.32 7
IV. Configuration des outils : 1. Installation Ubuntu : Télécharger ubuntu : http://www.ubuntu.com/download/desktop Appuyez sur le bouton Start download pour télécharger la dernière version de l image disque de Ubuntu. Lors de cet essai, le fichier au format iso était nommé ubuntu-12.04- desktop-i386.iso. On lance VMware Player et on choisit l option Create a New Virtual Machine : Sélectionner ensuite l option : Installer disc image file (iso): et sélectionner dans Image disque le fichier C:\Users\rehab1\Downloads\ubuntu-12.04.3-desktop-i386.iso : Après avoir fini l installation, votre machine linux «ubunto» est prête. 8
2. Installation Metasploit : Téléchargez Metasploit : http://www.rapid7.com/products/metasploit/download.jsp Le fichier d installation est sur votre bureau, maintenant. Ouvrez le terminal, puis exécutez ces commandes afin d installer le Metasploit sur votre machine : Apres avoir exécuté ces commandes : 9
Pour installer Metasploit sous Linux, nous avons besoin de quelques paquets spécifiques. Ouvrez un terminal en root et lancez la commande suivante : Metasploit est maintenant installé sur votre machine. Pour lancer le logiciel, on utilisera la commande suivante en root : V. Scenario de test : D abord, on exécute la commande «ifconfig» pour trouver l adresse ip de notre machine (machine pirate) : Notre adresse IP : 192.168.31.139 Maintenant, on doit créer l application qu on va envoyer à la victime (Smartphone, Tablette). Ceci est réalisé grâce à la commande suivante : 10
Cette commande doit être exécutée en tant que root. Explication de la commande: - On demande à msfpayload d utiliser le payload «android/meterpreter/reverse_tcp». -On configure LHOST suivant notre adresse IP et le LPORT sur lequel la machine victime va contacter la machine pirate. -On demande de sortir notre payload en format RAW (R), soit non crypté. -Enfin, on précise le chemin où on va récupérer notre application «/home/sana/desktop/app_securinets.apk» L application est enregistrée sur le bureau : Maintenant, on doit envoyer l application à la victime d une façon ou d une autre ; on peut mettre ce genre d application sur un site web ou l envoyer directement via Bluetooth, les mettre sur facebook... Dans notre cas, on va l envoyer par Bluetooth au téléphone visé, il faut faire alors l installation, puis l exécution de cette dernière. 11
Maintenant, on commence à faire notre exploit : Tout d abord, on tape la commande «msfconsole» pour entrer dans l interface de Metasploit : Pour sélectionner un exploit : Pour voir ses options : La commande show payloads va nous permettre de voir les payloads disponibles pour l exploit : 12
La sélection d un payload se fait avec la commande : Le payload sélectionné consiste à ce que la machine cible ouvre une connexion (reverse_tcp) sur la machine attaquante. Une fois l exploit lancé et le payload envoyé, cette machine va ouvrir une connexion TCP sur notre machine (192.168.1.32), sur le port 4444. On tape la commande «exploit» qui va initier l exploit par l écoute sur le port Puis, on exécute l application dans le téléphone, on remarque alors que l invite de commande se transformer en ceci. Une sorte de shell amélioré est la payload meterpreter (reverse_meterpreter) où en plus de pouvoir disposer d un shell afin de naviguer, exécuter ou lister du contenu sur la machine cible, le meterpreter permet d uploader ou de downloader n importe quel fichier entre la machine attaquante et cible. On peut ainsi facilement récupérer tout le contenu du téléphone, ou uploader un exécutable particulier afin de le lancer sur la machine cible. Il permet aussi, en gérant des canaux de communication, de détourner l entrée ou la sortie standard de la machine cible. Enfin il est aussi possible de gérer tous les processus à distance de la machine cible, les lister et aussi les arrêter Ainsi, on a accès à tous les fichiers de la victime : 13
on peut alors faire différents essais : Télécharger une photo depuis le téléphone (download): Entrer dans le dossier où il y a les photos pour en télécharger une : Le téléchargement : On peut remarquer alors la photo CAM01438 dans le dossier HOME de notre machine pirate : Envoyer une photo au téléphone (upload): On vérifie que l image a été bien enregistrée dans le chemin désigné «/sdcard/download» 14
Prendre des photos à partir du téléphone de la victime (webcam_snap): On peut prendre quelques photos en utilisant l appareil photo du Smartphone ou Tablette a l aide de la commande «webcam_snap i 1 p /home/nagui/bureau/test.jpg v true» -i : l indice de l appareil photo ; si la victime possède 2 cameras, on utilise «webcam_list» pour avoir l indice. -v : L ouverture automatique de l image enregistrée. -p : représente le chemin d enregistrement de l image ainsi que son nom. Enregistrement audio à partir du téléphone de la victime : -d : nombre de seconde a enregistrée. -p : l ouverture automatique de la partie audio enregistrée. 15
On peut voir un fichier audio «GmgNIdZo.wav» dans le dossier HOME : VI. Conclusion : Nous espérons, au travers de ces quelques pages, avoir réussi à vous intéressez à cet outil Metasploit. Cet atelier nous a donc permis d'apprendre en premier lieu le travail d'équipe,la cohésion du groupe mais aussi l étude plus approfondie de Metasploit nous a permis d entrevoir les étapes de la création d un exploit, le fonctionnement et le déroulement d une payload, et les différentes possibilités qui s offrent à l attaquant une fois qu il a la main mise sur la machine cible. Néanmoins, cet atelier nous a permis de confirmer nos «préjugés» concernant l insécurité des systèmes android. Quant à l outil Metasploit, c est un projet open-source sérieux et surtout à jour, ce qui est très important dans le milieu de la sécurité informatique. Concernant les perspectives de cette étude, les exploits étant disponible sur le site officiel de Metasploit dès leur sortie, cela permet d avoir un outil le plus complet possible afin d être le plus efficace possible. De plus, étant donné un nombre d heures prévues assez limité pour ce projet, et le nombre important d exploit de ce Framework, l étendue des investigations reste encore large afin d explorer pleinement cet outil. En effet, l installation de logiciels dans leur version vulnérable afin de pouvoir utiliser de nombreuses autres attaques, ou la création même d un exploit pourraient constituer un projet à part entière faisant suite au notre. 16