Mobile Exploitation CHEF ATELIER : MERIEM MEMMICHE (RT3) SARAH LOUSSAIEF(RT3) OUSSEMA BEN GHROBEL EMNA MANNAI (RT3) ALY MESSAOUDI (RT3) TARAK CHAABOUNI (RT3)
Mobile Exploitation | SECURILIGHT 2014
Table des matières 1.
Présentation de l’atelier................................ ................................................................................................ .................................... 2
2.
Présentation des outils utilisés.......................................................................................... utilisés .......................... 2
3.
Topologie du réseau ................................................................................................ ................................ .......................................... 7
4.
Configuration des outils ................................................................................................ ................................ .................................... 8
5.
Un scénario de test ................................................................................................ ................................ ......................................... 10
6.
Conclusion .........................................................................Error! ................................ Error! Bookmark not defined. defined.0
1
Mobile Exploitation | SECURILIGHT 2014
I.
Présentation de l’atelier Bonjour et bienvenue dans ce tutoriel pour vous initier aux bases de l’exploitation Mobile avec Metasploit. Ce tutoriel vous montrera les fonctionnements basiques d’une interception et exploitation d’un utilisateur Smartphone, Tablette ou autre a à l’aide d’une application Android.
II.
Présentation des outils utilisés Ce tutoriel se déroulera sur un réseau local avec un laboratoire de hacking constitué de :
1. Une machine Kali-Linux Kali : Kali ali est une reconstruction complète de BackTrack Linux,, qui adhère aux standards de développement Debian.. Une toute nouvelle infrastructure, tous les outils révisés et reconstruits. Il se caractérise par : Plus de 300 outils de tests d’intrusion: Après une révision des outils disponibles sur
BackTrack, ils ont éliminé plusieurs qui étaient soit non- fonctionnels, soit qui ont été remplacés par de nouveaux qui produisent des résultats similaires. Gratuit pour toujours: Kali Linux, comme son prédécesseur, sera entière entièrement ment gratuit et
le sera toujours Arborescence Git Open Source: Promoteurs du mouvement Open Source, la structure
de développement est disponible à tous. Téléchargement des codes sources pour que tout le monde puissent modifier et refaire les paquets selon ses besoin. Conforme au FHS: Le développement de Kali adhère au standard FHS (Filesystem (Filesystem
Hierarchy Standard), ), ce qui permet aux utilisateurs de facilement naviguer le système et de rapidement trouver les fichiers de librairie, binaires, fichiers de support etc. Vaste support pour appareils sans-fils: sans Kali Linux est bâti pour supporter le plus
d’appareils reils possible, lui permettant de fonctionner sans problèmes sur une grande variété de matériel, dispositifs USB et autres machins sans-fils. sans Noyau patché pour injection: Étant donné que les tests d’intrusions peuvent inclure
aussi du réseau sans-fils, fils, le noyau est conçu et patché pour rendre la tâche possible.
2
Mobile Exploitation | SECURILIGHT 2014 Environnement de développement sécuritaire: L’équipe de développement Kali est
formé d’une petite équipe en confiance qui peut seulement interagir avec les répertoires de distribution via le biais de protocoles sécurisés. Paquets signés GPG: Tous les paquets Kali Linux sont signés par chaque auteur
individuel quand ils sont construits const et livrés aux répertoires de distributions de kali kali. Multi-langues: Tous les paquets Kali Linux sont signés par chaque auteur individuel
quand ils sont construits et livrés aux répertoires de distributions. Personnalisation Complète: Les utilisateurs plus aventuriers peuvent personnaliser naliser Kali
Linux comme bon leur semble, jusqu’au noyau. Support ARMEL et ARMHF: une version fonctionnelle de Kali sur les systèmes ARMEL et
ARMHF. Les répertoires res de Kali Linux pour ARM sont intégrés aux autres distributions et les outils sont mis à jour en même temps que les autres outils. Kali est présentement disponible sur les systèmes suivants:
o
rk3306 mk/ss808
o
Raspberry Pi
o
ODROID U2/X2 Kali est spécifiquement conçu pour les tests d’intrusion et audit de sécurité Pour télécharger la bête en version 32/64 bits et ARM, vous pouvez vous ous rendre sur : http://www.kali.org/downloads/ Nb : L’inscription n’est pas obligatoire. obligatoire
2. Le Framework Metasploit : a. Définition : Metsploit est un outil pour le développement et l’exécution d’exploits 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 Perl, Metasploit Framework a été complètement réécrit en langage Ruby. Il est utilisé souvent par les administrateurs systèmes systèmes pour tester les vulnérabilités des systèmes informatiques afin de les protéger, protéger ou par les hackers à des fins de piratage.
b. Qu’est ce qu’on peut faire avec Metasploit
Le Framework permet de faire énormément de chose comme :
Le scan et collecte l’ensemble d’informations sur une machine Repérage et l’exploitation des vulnérabilités Escalade de privilèges et vol de données 3
Mobile Exploitation | SECURILIGHT 2014
Installation d’une porte dérobée Fuzzing Echapper à l’antivirus Suppression des logs et des traces
c. Architecture du Framework Metasploit : Le Framework est structuré de la manière suivante :
A première vu de l’image, on constate que l’architecture est modulaire et qu’il fonctionne sous diverses interfaces (Graphique, WEB, CLI et Console). On s’intéresse dans ce tutoriel à l’interface graphique. L’avantage majeur du Framework : c’est cette modularité qui permet de combiner n’importe quel exploit avec n’importe quel payload. Il facilite la tâche de l’attaquant, des développeurs d’exploits, et des développeurs de payloads. On va définir ci-dessous dessous quelques termes utilisés dans Metasploit : Exploit : Un exploit est le moyen par lequel un hacker ou un testeur de pénétration prend avantage sur une faille dans un système, une application ou un service. Un attaquant utilise un exploit pour attaquer un système et le résultat de cette attaque entraîne exécution ion des codes de cet exploit comme son auteur (le développeur de cet exploit) l’avait programmé. La majorité des Exploits exploite les failles du type : Buffer overflows (dépassement de mémoire), les vulnérabilités vulnérabilités des applications Web (telles que l'injection SQL), et les erreurs de la configuration dans les applications.
4
Mobile Exploitation | SECURILIGHT 2014
Payload : Un Payload (charge utile) est le morceau du code que nous voulons que le système exécute, les payloads sont livrées par le Framework, vous serez serez là juste pour le sélectionner. Par exemple, reverse shell c’est un payload qui crée une connexion entre la machine cible à celle de l'attaquant a renvoya à celle-ci celle unee invite de commande DOS , tandis que bind shell est un payload qui «Lie» une invite de commande à un port d'écoute sur la machine cible, elle reste là à l’écoute pour attendre patiemment que le pirate se connecter dessus. Un Payload peut aussi être quelque chose aussi simple que quelques quelques commandes à exécuter sur le système d'exploitation cible. Shellcode : Le Shellcode est constitué d’un un ensemble des instructions utilisées par Payload lors de l'exploitation. Shellcode est généralement écrit en assembleur dans la plupart des cas, si le shellcode est bien exécuté, une invite de commande shell ou une Meterpreter sera fourni à l’attaquant. Module : Les modules sont des parties d’application qu’on importe et on peut utiliser dans le Framework Metasploit. Dans certains cas on est obligé soit d’utiliser un exploit module: il s’agit d’un un composant logiciel pour effectuer l'attaque et par fois on utilise le module auxiliaire pour augmenter la performance des actions comme le scannage, énumération de système. Avec ce système des modules interchangeables MSF est très dynamique. Modules Axillaires C’est des modules utilisés pour diverses taches comme le scan de port, sniffing, scan de services. Une fois l’exploit et le Payload sont exécutés sur une machine vulnérable, on peut faire ce qu’on veut sur le système comme télécharger les données de la cible, mise en place d’un malware, capture d’ecran, etc. Listener : Un listener est un composant de Metasploit qui attend une connexion entrante sur la machine de l’attaquant. Par exemple, après que la machine cible a été exploitée, elle peut appeler la machine attaquante par le baie de l’Internet. C’est le Listerner qui gère ces genres d’affaire, le Listener entend sur la machine d'attaquant pour être contacté automatiquement sur le système exploité quand celle-ci celle se met en ligne
.
d. Comment utiliser Metasploit ? On passe maintenant à la partie la plus intéressant, c’est l’utilisation de Metasploit. Voici les étapes basiques pour l’exploitation d’un système avec Metasploit: 1. Collecter des informations sur la cible telle que la version du système d’exploitation, et les services es réseaux installés. Ces informations peuvent être récupérées grâce à des outils de scan de port et de Footprinting comme Nmap, Maltego et Nessus; 2. Choisir et configurer un exploit; 3. Vérifier si le système cible visée est sensible à l’exploit choisi; 5
Mobile Exploitation | SECURILIGHT 2014 4. Choisir et configurer un payload ; 5. Exécuter l’exploit.
Pour l’instant nous allons commencer par quelques commandes de base. Coté Exploit : Comment afficher tous les exploits disponibles sur Metasploit : Show exploits Pour chercher un exploit : Search nom_exploit Pour sélectionner un exploit : Use nom_exploit Avoir des informations sur un exploit : Info nom_exploit Voir les options d’un exploit : Show options
Coté Payload : Afficher tous les payloads disponibles disponibl sur Metasploit : Show payload Choisir le payload que l’on va utiliser : set PAYLOAD nom_payload Voir les options du payload pour une configuration : Show options
En général : Pour obtenir de l’aide : help Si vous voulez connaître la version de Metasploit : version Si l’on veut lister l’intégralité des exploits, modules, payloads : search Pour quitter Metasploit : quit
3. Smartphone Android : Un Smartphone, ordi phon ne, ordinateur de poche ou téléphone intelligent, esst un téléphone mobile évolué disposant d des fonctions. Selon le principe d'un ordin nateur, il peut exécuter divers logiciel iciels/applications grâce à un système d'exploitation spécialement conçu pour mobiles, mo et donc en particulier fournir des fonctionn nnalités en plus de celles des téléphon nes mobiles classiques. Ce système d’exploitation n spécifique aux Smartphones, tablettes…. Est l’ANDROID ROID c’est un système open source, utilisant util 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 m sur Google système d'exploitation Andrroid. Pour créer un fichier APK, un prrogramme pour Android est d'abord compilé, puis l'ens ensemble de ses pièces sont emballé ées dans un seul fichier.
6
Mobile Exploitation | SECURILIGHT 2014
III.
Architecture/Topologie du réseau :
Durant cet atelier on va essayer deux types d’attaques : Attaque en locale : Laa victime (mobile utilisant un A Android ndroid comme OS) est dans le même réseau local que l’attaquant
Attaque Over Internet (Distante): La victime est connectée sur Internet (Pas nécessairement dans le même réseau local)
7
Mobile Exploitation | SECURILIGHT 2014
IV. Configuration des outils Etape1 : Tout d’abord, on installe Kali soit sur une partition soit sur une machine virtuelle. Une fois Kali est installé sur le Pc, On démarrer le service PostgreSQL sur Kali en suivant ces étapes :
Remarque : PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO). C’est un outil libre disponible selon les termes d’une licence de type BSD. Ce système est concurrent d'autres systèmes de gestion de base de données, qu'ils soient libres (comme MariaDB, MariaDB MySQL et Firebird), ou propriétaires (comme Oracle,Sybase, DB2, DB2 Informix et Microsoft SQL Server). Comme les projets libres Apache et Linux, PostgreSQL n'est pas contrôlé par ar une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises. Vérifiez que PostgreSQL est bien en fonction en utilisant la commande ss – ant et assurez-vous vous que le port 5432 soit bien ouvert et à l’écoute.
8
Mobile Exploitation | SECURILIGHT 2014 Etape 2 : Démarrer le Service Metasploit sur Kali Avec PostgreSQL démarré, nous lançons le service Metasploit. Lors du premier démarrage, le service construira et populera une base de données “msf3” ainsi qu’un utilisateur “msf3”. Ce service va aussi lancer le RPC de Metasploit et les serveurs Web dont il a besoin.
Etape 3 : Maintenant, que le service PostgreSQL et Metasploit sont en marche, vous pouvez lancer la commande msfconsole. msfconsole Une fois dans la console, vérifiez la connectivité avec la base de données à l’aide la commande db_status.
Remarque : Configurer Metasploit au démarrage : Si vous préférez avoir Pros ProstgreSQL greSQL et Metasploit disponibles lors du démarrage de Kali, utilisez la commande update-rcd update pour activer ces services.
9
Mobile Exploitation | SECURILIGHT 2014
V. Un scénario de test : Pour commencer, il faut connaître l’adresse l’ IP de notre machine, pour cela on tape la commande ifconfig qui permet d'afficher les informations des interfaces réseau IP
On remarque arque que l’adresse IP de la machine est 192.168.44.137. On commence mmence maintenant notre attaque Etape1 : Au préalable n'oubliez pas de mettre la liste des exploits à jours en utilisant la commande msfupdate.
Maintenant, vous aurez tous les derniers exploits de Metasploit, y compris Android / Meterpreter / reverse_tcp Android / shell / reverse_tcp. Etape2 : Msfpayload est une instance de ligne de commande de Metasploit qui est utilisé pour générer et sortirr tous les différents types de Shellcode S qui sont disponibles dans Metasploit. L'utilisation la plus courante de cet outil est pour la génération de shellcode ode pour un exploit qui n’ n’est est pas actuellement dans le Framework Metasploit ou pour tester différents types de shellcode et les options avant de finaliser finaliser un module.
10
Mobile Exploitation | SECURILIGHT 2014 Il faut donc choisir un Payload qui marche avec une attaque d’une interface Android. Pour lister les Payloads disponibles on tape la commande msfpayload –l. Une fois que vous avez sélectionné un Payload,, il ya deux interrupteurs qui so sont utilisés le plus souvent lors de l'élaboration du Payload pour l'exploit que vous créez. Dans la figure ci-dessous, dessous, nous avons sélectionné un simple shell Android.. Lorsque nous ajoutons la ligne de commande argument "O" avec cette charge, nous obtenons toutes les options configurables disponibles pour ce Payload.
Comme nous pouvons le voir à partir de la sortie, nous pouvons configurer quatre options différentes avec cette charge spécifique, si elles sont nécessaires, s’ils viennent avec des paramètres paramètre par défaut, et une courte description:
AutoLoadAndroid Requis Réglage par défaut : true Description : charger er automatiquement l'extension Android. A
LHOST Requis Réglage par défaut : 192.168.44.137 Description : l’adresse d’écoute
LPORT Requis 11
Mobile Exploitation | SECURILIGHT 2014 Réglage par défaut: 4444 Description : le port d’écoute
RetryCount Requis Réglage par défaut: 10 Description : nombre d'essais à effectuer si la connexion a échoué En cas ou on veut changer le réglage des options o de msfpayload, c’est est très simple. Un exemple est présenté ci-dessous dessous qui permet de changer le port d'écoute du shell shell:
A propos de notre attaque on laisse les paramètres par défaut sans rien changer. Maintenant que tout cela est configuré, la seule option qui reste est de spécifier le type de sorties telles que C, Perl, Raw, etc. Ce qui suit est le format d'options que la commande msfpayload accepte: Types de sortie: S: Résumé et les options de la charge utile C: langage C P : Perl Y : Ruby R : Raw, permet à Pyload à être canalisé dans msfencode et d'autres outils. J: JavaScript X: executable Windows 12
Mobile Exploitation | SECURILIGHT 2014 V: VBA Pour cette attaque, nous allons output notre Shellcode à R. En résumant, on va taper cette commande :
La commande ci-dessus dessus va créer c un fichier exécutable Android avec le nom "security.apk"" et sera enregistré sur votre dossier personnel.
Ce fichier doit être installé sur l’appareil android de test. Etape 3: Maintenant commencer Metasploit et commencer un gestionnaire multiple sur votre machine pour obtenir une connexion TCP inverse de victime en utilisant les commandes suivantes :
13
Mobile Exploitation | SECURILIGHT 2014
On tape tout d’abord la commande « msfconsole » pour accéder à l’interface de metasploit.
Le msfconsole est probablement l'interface la plus populaire à la MSF. Il fournit ournit une console centralisée « tout-en-un» tout un» et vous permet un accès efficace à la quasi quasi-totalité des options disponibles dans le Framework Metasploit. Msfconsole peut sembler intimidant au début, mais une fois que vous apprendre la syntaxe des des commandes vous apprendrez à apprécier la puissance de l'utilisation de cette interface. o
Les avantages : -C’est C’est la seule façon soutenue pour accéder à la plupart des fonctions au sein de Metasploit. -Fournit Fournit une interface basée sur la console au cadre cadre. -Contient Contient le plus de fonctionnalités et est l'interface de MSF le plus stable -Plein Plein readline soutien, tabulation et la complétion des commandes -Exécution Exécution de commandes externes dans msfconsole est possible.
Maintenant, on va utiliser le metasploit handler comme exploit. Puis sélectionner un payload parmi les payloads disponibles pour l’exploit. Ce dernier sert à ouvrir une connexion (reverse_tcp) entre la machine attaquante et la machine cible. Une fois l’exploit lancé ett le payload envoyé, cette machine va ouvrir une connexion TCP sur notre machinee (192.168.44.137), (192.168.44 sur le port 4444. Enfin, commence le handler en tapant « exploit ».
14
Mobile Exploitation | SECURILIGHT 2014
Maintenant nous allons voir ce que l’on peut faire avec ce meterpreter. Vous êtes maintenant en train de l’utiliser. Mais exploiter une machine ne suffit pas, il faut en faire quelque chose, exécuter un code, nous donner un shell, installer un backdoor, ces actions sont appelées charges, ou payloads en anglais.
En exécutant l’application ication dans le téléphone, on peut obtenir des informations concernant le système d’exploitation utilisé par la victime en tapant :
Le meterpreter est un payload amélioré qui permet d’uploader ou de downloader n’importe quel fichier entre la machine attaquante et cible. Ainsi on peut accéder à tous les fichiers de la machine victime. On va essayer de télécharger une photo depuis le téléphone. On commence par se déplacer vers le dossier qui contient des photos à l’aide de la commande « cd ». Puis , on affiche son contenu « ls ». on observe ainsi une liste du contenu du dossier courant :
15
Mobile Exploitation | SECURILIGHT 2014
On choisit, par exemple, de télécharger la photo 20140928_225838.jpg
On sait que l’opération s’est effectuée avec succès lorsqu’on obtient le message suivant :
On peut aussi vérifier l’existence de cette photo dans le dossier HOME de notre machine pirate. D’autres opérations sont possibles à savoir :
16
Mobile Exploitation | SECURILIGHT 2014
Connaitre son emplacement : getlwd (Machine de l’attaquant) getwd (Machine victime)
Supprimer des fichiers/dossiers : fichiers => rm dossier => rmdir
Trouver un fichier : find -f -
Créer un dossier : mkdir
Envoyer des fichiers a la cible : upload
Lire un fichier : cat
Editer un fichier : edit
Prendre une photo avec la webcam : webcam_snap
Prendre un screenshot de l’ecran : screenshoot
Etape 4: Maintenant, on veut aller plus loin. On va dans cette partie expliquer comment exploiter un mobile android qui n’est pas connecté à notre réseaux local, l’attaque se passera plutôt via internet. Il faut comprendre tout d’abord la notion d’adressage privé et publique. Notion otion d’adressage privé et publique publiqu : L'adresse IP est attribuée à chaque interface avec le réseau de tout matériel informatique (routeur, ordinateur, ordinateur modem ADSL, imprimante réseau,, etc.) co connecté à un réseau informatique utilisant l’Internet Protocol comme protocole de communication entre ses nœuds. Cette adresse est assignée soit individuellement par l'administrateur du réseau local dans le sous-réseau correspondant, soit automatiquement tomatiquement via le protocole DHCP.. Si l'ordinateur dispose de plusieurs interfaces, chacune dispose d'une adresse IP spécifique, une interface interface peut également disposer de plusieurs adresses IP Les adresses IPv4 sont dites publiques si elles sont enregistrées et routables sur Internet, elles sont donc uniques mondialement. À l'inverse, les adresses privées ne sont utilisables que dans un réseau local, et ne doivent être uniques que dans ce réseau. La traduction ction d'adresse réseau permet de transformer des adresses privées en adresses publiques et d’accéder à Internet à partir d'un poste d'un réseau privé. D’une façon plus simple, une adresse publique c’est celle visible par tous sur internet, une adresse privée vée c’est celle de tes ordinateurs sur un réseaux et qui ne sont pas accessible depuis internet . L’équipement ’équipement qui va faire la frontière entre l’adressage IP privé et publique, c’est le routeur. le routeur va intercepter les paquets IP qui aimeraient sortir ir sur Internet. Par 17
Mobile Exploitation | SECURILIGHT 2014 exemple en ouvrant un browser avec http://www.google http://www.google.tn , le routeur va modifier le champ « adresse IP source » de votre paquet IP en mettant son adresse IP, IP qui est publique et donc unique! unique 1. Premièrement, l’opérateur ne supprimera pas le paquet car il contient une adresse publique et non privée 2. Deuxièmement le destinataire (dans mon exemple Google) pourra vous répondre car cette adresse IP est unique car publique. On saura saura retrouver l’émetteur (le routeur routeur)! Lorsque le paquet retour arrivera arri à votre routeur, le dernier va faire l’opération inverse en remplaçant dans le paquet IP son adresse IP publique par votre adresse IP privée.
La question qui se pose donc comment une machine victime connecté sur internet va-t-elle être directement liée à votre machine situé à un réseau local quelconque? Port forward : Heureusement pour nous, nous pouvons configurer notre routeur pour rediriger les ports. Cela signifie que, selon le numéro de port que la requête est envoyée sur, le routeur peut transmettre à des adresses IP différentes.
18
Mobile Exploitation | SECURILIGHT 2014
Passons maintenant à la réalisation ! Configuration du routeur : Nous allons configurer dans notre exemple un routeur Huawei E5151. Nous allons acceder à l’interface de notre routeur > par amértre > serveur virtuel
19
Mobile Exploitation | SECURILIGHT 2014
Nous allons ajouter une ligne dans la table qui redirigera les paquets reçus par le routeur sur le port 4444 vers l’adresse IP de notre machine connecté (192.168.1.106).
De cette manière le routeur assurera, en tant qu’intermédiaire entre la machine attaquante et l’internet, la redirection de tous les paquets reçus de la machine victime vers la première. Lors de l’ouverture de session entre la machine attaquante et la machine machine victime nous allons recevoir l’adresse publique utilisé par le routeur lié à la machine victime et non pas son adresse privée bien sûr. La connexion s’établie entre la machine attaquante el le mobile Android attaqué et nous aurons un accès total à tous tous les données que contient le mobile.
VI. CONCLUSION : Tout d’abord, nous vous remercions pour votre attention. attention On souhaite préciser que ce tutoriel est destiné aux vrais débutants qui veulent avoir une petite introduction à Metasploit, les choses sont simplifiées, n’allez pas croire qu’un exploit se passe ainsi sur les serveurs d’une banque nationale ! Il ne faut pas oublier qu’on qu’ 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...
20
Mobile Exploitation | SECURILIGHT 2014
Pour éviter de se faire casser son petit Windows mais en gardant Java il faut prendre quelques dispositions. Installer un bon antivirus, par exemple j’utilise Kaspersky qui est assez bon contre ce type d’attaques. Et surtout ne pas cliquer sur des liens suspicieux et arrêter de cliquer sur « oui » ou « suivant » sans prendre la peine de lire la pop up !
21