Test d'applications avec Kali Linux
Introduction
Dans ce chapitre, nous allons tester la sécurité des applications Android avec Kali Linux, que beaucoup d’utilisateurs connaissent très bien. Il s’agit d’une plateforme assez complète regroupant les outils nécessaires pour réaliser des test de sécurité, et notamment des tests d’intrusion. Kali Linux est open source et donc totalement gratuit, il est développé par Offensive Security, qui dispose d’une équipe très sérieuse et compétente et est très présent dans le milieu de la sécurité, proposant même des certifications dans le domaine de la sécurité offensive. Kali Linux est basée sur une distribution Debian et a remplacé BackTrack, également très connu des testeurs dans ce domaine mais qui n’est plus maintenu à jour.
Kali Linux va nous aider à mener à bien nos tests de sécurité sur les applications Android. Nous aurons cependant parfois besoin d’installer d’autres outils pour effectuer nos tests sur la plateforme Android.
Kali est maintenant préinstallé avec de nombreux environnements de bureau pour les utilisateurs souhaitant un environnement différent et est plus convivial par rapport à ses anciennes versions. Nous allons installer Kali Linux dans un environnement virtuel avec...
Pourquoi Kali Linux ?
Pourquoi Kali Linux ? La première raison est simplement parce qu’elle est une référence et un incontournable dans le monde du hacking éthique. La seconde raison est qu’effectuer des tests sur un environnement différent relève d’une bonne pratique. L’environnement devrait toutefois se rapprocher le plus possible du système initial à tester, et comme dit dans le premier chapitre, Android est basé sur le noyau Linux (tout comme Kali Linux).
Préparation et installation de l’environnement de test
Nous allons maintenant installer et configurer notre environnement de test sous Kali Linux. Pour ce faire, nous aurons besoin de VirtualBox (nous utilisons ici la dernière version en date, qui est la version 6.0), que nous avons déjà installé (cette procédure ne sera à réaliser qu’une seule fois). Nous devons cependant nous assurer que le pack d’extension de VirtualBox est bien installé, dans le cas contraire cela risquerait de poser des problèmes de contrôleur USB et le mode plein écran serait indisponible.
Rendons-nous sur le site officiel de VirtualBox : https://www.virtualbox.org/wiki/Downloads
et téléchargeons le pack d’extension suivant :
Une fois cela fait, paramétrons quelques options dans VirtualBox en nous rendant dans l’onglet Réseau où nous sélectionnons Accès par pont, puis dans l’onglet Stockage, où nous allons augmenter un peu la taille de la mémoire jusqu’à 2048 Mo (ou plus si nous avons de l’espace disponible).
1. Installation de Kali Linux
Il faut ensuite installer notre framework de test.
Pour ce faire, nous aurons besoin de l’image de Kali Linux, à télécharger sur le site officiel disponible à cette adresse : https://www.kali.org/downloads/
La dernière version, à l’heure où nous écrivons ces lignes, est la version Kali Linux Vbox 64 bits Ova, qui est la version 2019.1. Nous devons alors cliquer sur le lien qui nous redirigera directement sur la page de téléchargement :
Nous vérifions que nous sommes bien dans l’onglet Kali Linux VirtualBox Images comme ci-dessous. Avant de télécharger l’image, nous préférons créer un dossier spécifique contenant uniquement nos machines virtuelles, pour enregistrer l’image dans ce dossier. Téléchargeons ensuite l’image qui nous convient. Dans notre cas, nous allons télécharger la version Kali-Linux Vbox 64 bits Ova en cliquant sur le lien Torrent :
Démarrons maintenant VirtualBox pour faire quelques réglages en nous rendant dans l’onglet Outils en haut à gauche et en cliquant...
Simulation de test
Dans cette section, nous allons simuler un test avec les outils faisant partie intégrante de Kali Linux, tels que Nmap et Metasploit. Nous n’allons pas couvrir la totalité des outils de Kali Linux, néanmoins, tout en respectant une certaine éthique, nous utiliserons les outils les plus populaires, qui nous aideront à détecter et exploiter certaines vulnérabilités dans notre service Android virtuel.
1. Scan Android avec Nmap
Nmap est un incontournable dans le monde du hacking éthique. Cet outil est un scanner de ports open source créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le système d’exploitation d’un ordinateur local ou distant. Dans notre cas, nous savons très bien que nous scannons un service Android, mais nous verrons quand même quelques commandes utiles pour affiner un peu le scan ainsi que la détection du système d’exploitation.
Commençons sans plus tarder en ouvrant le terminal et en tapant simplement la commande nmap pour consulter les différentes commandes disponibles sans les détailler.
Nous vous invitons à consulter ces différentes options avec attention, car nous n’allons pas toutes les voir ici. Pour commencer, nous allons simplement taper nmap suivie de l’adresse IP de notre machine. Comme vous pouvez le constater, le scan est peu pertinent et ne retourne pas grand-chose, ce qui est tout à fait normal car Android nous empêche de lister tous les ports.
Nous allons alors voir quelques scans qui pourraient s’avérer intéressants lors d’un test. Comme le scan que vous avez exécuté précédemment n’est pas pertinent, il est alors bien d’essayer différentes commandes, par exemple : nmap -vv -A -n 192.168.56.101
Nous pouvons constater cette fois que l’outil indique qu’il y a deux ports ouverts et donne également le service fonctionnant sur chacun de ces ports : le port 5555 ouvert avec le service freeciv et le port 24800 avec un service inconnu tournant sur ce port. Une rapide recherche Internet donne quelques informations : le service freeciv est un service faisant partie du Google...
Qu’est-ce que le fuzzing ?
Le fuzzing est moins connu, car il s’agit d’une technique plus récente que quelques testeurs utilisent de plus en plus. Le test de fuzzing ou fuzz testing, est une méthode de test automatisée conçue pour tester des programmes (ou applications) qui consiste à fournir des données non valides, inattendues ou aléatoires en tant qu’entrées d’un programme informatique. Le programme est ensuite testé à la recherche d’exceptions telles que les plantages (les bugs), les insertions de code intégrées provoquant les fuites de mémoire potentielles et autres anomalies.
Généralement, les fuzzers sont utilisés pour tester des programmes prenant des entrées structurées. Cette structure est spécifiée, par exemple, dans un format de fichier ou un protocole et distingue les entrées valides des entrées non valides. Un fuzzer efficace génère des entrées semi-valides qui sont suffisamment valides dans le sens où elles ne sont pas directement rejetées par l’analyseur, mais créent des comportements inattendus plus en profondeur dans le programme et sont suffisamment invalides pour exposer les cas les plus douteux qui n’ont pas été traités et interprétés correctement avec l’outil.
Dans un test...
Santoku-Linux
Santoku-Linux est sans doute moins connu dans le monde du hacking éthique, mais peut être très pratique, car il contient certains outils préinstallés déjà utilisés précédemment. Nous allons le présenter et l’installer dans une machine virtuelle VirtualBox pour les utilisateurs souhaitant utiliser ce framework.
Cet outil est utile, non seulement pour tester des applications, mais également pour mener par exemple des analyses forensiques afin de rechercher d’éventuelles preuves d’une quelconque intrusion, ce qui se fait beaucoup en entreprise et aussi pour analyser un malware ou autre logiciel malveillant afin de vérifier son code source et voir exactement ce que le malware a pu faire comme dégâts dans le système. Il dispose de différents utilitaires servant à simuler des services réseau pour permettre d’effectuer une analyse dynamique de malwares et dispose d’un accès aux bases de données de logiciels malveillants. Il possède certaines versions gratuites des outils d’analyse forensique commerciaux connus et moins connus ainsi que des scripts spécialement conçus pour ce type d’analyse et pouvant s’avérer très utiles.
Santoku-Linux dispose d’un environnement complet Linux bootable, c’est-à-dire que nous pouvons facilement l’installer avec un outil comme VirtualBox et l’utiliser comme un système d’exploitation sous Linux. Il dispose également d’un kit de développement logiciel (SDK - Software Development Kit), de pilote et d’utilitaires préinstallés comme des structures d’interface graphique préconfigurées...
Conclusion
Dans ce chapitre nous avons vu comment préparer un environnement de test et installer les outils nécessaires dans un environnement se rapprochant le plus possible d’Android. Nous avons vu divers outils intégrés à Kali Linux et des outils n’en faisant pas encore partie. Il existe bien évidemment d’autres outils, mais là encore nous avons fait le choix d’utiliser les outils les plus connus, qui ont fait leurs preuves par leur puissance. Il est parfois long et fastidieux de préparer un environnement de test fonctionnel dans divers environnements, mais cela en vaut la peine. Nous conseillons fortement de vous entraîner sous diverses plateformes et de ne pas hésiter à utiliser plusieurs outils, même ceux que nous n’avons pas couverts dans l’ouvrage. Un hacker est toujours curieux.