L'objectif de cet atelier est de se familiariser avec les outils techniques
célèbres proposés par le système d'exploitation Kali Linux pour réaliser un test de pénétration (penetration testing), tels que: Maltego, Crunch, John the Ripper, Hydra et Nmap. Remarque : Il est important de noter que l'utilisation de ces outils de test sans autorisation est illégale et peut entraîner des conséquences graves. Il est fortement recommandé d'utiliser ces outils uniquement à des fins éducatives et de test dans un environnement contrôlé. Partie I : Reconnaissance La reconnaissance est la première étape d'une attaque informatique, au cours de laquelle l'attaquant collecte des informations pertinentes sur la cible. Cela se fait dans le but d'identifier les vulnérabilités et de déterminer les moyens d'attaque possibles. Cette collecte d'informations permet de mieux comprendre la cible, de recueillir des données sur l'hôte, le réseau et les personnes associées à l'organisation. Maltigo Maltego est un outil de collecte d'informations qui facilite la recherche et la visualisation de données telles que: les adresses e-mail, potentielles d'une personne, les numéros de téléphone associés, les adresses IP, les enregistrements DNS, les serveurs de courrier, les hébergeurs, les employés d'une entreprise, et bien plus encore. Les transformations sont des méthodes de recherche pour chaque entité, qui servent à trouver les informations correspondantes. Dans la liste d'entités et la liste de transformations par défaut, il existe déjà plusieurs types, tels que l’infrastructure et le personnel… 1. Créer votre compte Maltigo sur le site https://www.maltego.com/ceregistration/ 2. Cliquez sur "Ajouter une nouvelle entité" pour ajouter un nouveau domaine à analyser 3. Sélectionnez "Domaine" dans la liste des entités. 4. Entrez le nom de domaine (par exemple, https://www.kali.org/). 5. Extraire tous les sous-domaines à partir d'un nom de domaine (par exemple, https://www.kali.org/). 6. Effectuer une requête récursive sur le domaine fourni et analyser la sortie d'adresse e-mail. 7. De la même façon, chercher votre adresse e-mail et montrer les sites où elle existe. Partie II : Tester la sécurité des mots de passes A. Crunch Crunch est un générateur de mots de passe. Il est généralement utilisé pour tester la sécurité des réseaux et des systèmes. Il permet de créer des listes de mots de passe à partir de caractères et de règles spécifiques. Pour une taille de mots allant de « a » à « b » caractères on utilise la commande: « crunch a b » Ensuite nous allons indiquer, soit les symboles, chiffres lettres, ou indiquer les Charest déjà compléter, par exemple : hex-lower [0123456789abcdef] hex-upper [0123456789ABCDEF] numeric [0123456789] mixalpha-numeric-all-space: [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234 56789!@#$%^&*()-_+=~`[]{}|\:; »‘<>,.?/ ] Pour optimiser le dictionnaire de mots de passes on peut utiliser d’autres paramètres tels que : -o pour nommer et enregistrer votre fichier. -d : permet donc de spécifier le nombre de lettres, symboles par répétitions. @ : pour représenter les caractères minuscules , : pour représenter les caractères majuscules % : pour représenter les nombres ^ : pour représenter les symboles Créer une liste de mots de passe composée au maximum de 3 caractères minuscules consécutifs, 2 majuscules, 2 chiffres et 2 symboles, et enregistrer les résultats dans un fichier nommé "liste.txt". B. John the ripper John the Ripper est un outil de sécurité open source utilisé pour tester la robustesse des mots de passe en effectuant des attaques de dictionnaire et de force brute. 1. Créez un fichier protégé par un mot de passe "SMI.zip". 2. Sauvegarder le hach du fichier « SMI.zip » dans un fichier « hash.txt » Zip2john SMI.zip >hash.txt 3. Utilisez la commande "john" suivie du nom du fichier hash pour lancer l'attaque. 4. Utilisez la commande "john --show" pour afficher les mots de passe qui ont été crackés C. Hydra Hydra est un outil de qui permet de tester la sécurité des systèmes en tentant de deviner des mots de passe utilisateur. Il est capable de tester des dizaines de mots de passe à la fois 1. Utilisez la commande « hydra -h » sur le terminal et lisez attentivement le contenu affiché Pour faire fonctionner Hydra avec un protocole, nous aurons besoin de certains paramètres tels que : un nom d’utilisateur (-l) ou une liste de noms d’utilisateur (-L), un mot de passe (-p) ou d’une liste de mots de passe (-P) une adresse IP cible associée au protocole. La syntaxe générale est : "hydra <serveur> <service> -l <utilisateur> -p <mot de passe>". Pour lancer un test d'attaque sur un protocole, utilisez la syntaxe suivante : hydra -l < nom d'utilisateur > -P < mot de passe > < protocole > : // < ip > 2. Pour un nom d’utilisateur « root » et se basant sur la liste rockyou.txt donner la commande pour tester le protocole ssh. Partie III : Le balayage réseau (Scanning) Cela consiste à utiliser un ensemble de procédures utilisées pour identifier des hôtes, des ports et des services qui tournent derrière ces ports. Network Mapper (Nmap) Nmap est un outil open source pour la cartographie de réseau et la sécurité des systèmes d'exploitation. Il peut être utilisé pour scanner des hôtes et des services sur un réseau pour déterminer leurs adresses IP, les services en cours d'exécution et d'autres informations liées à la sécurité. Nmap reconnaît 7 états de ports différents : ouvert (open) fermé (closed) filtré (filtered) ouvert/filtré (open|filtered) fermé/filtré (closed|filtered) sans réponse (unresponsive) déterminé (determined) 1 Exécution de la commande Nmap: Pour effectuer un scan simple, vous pouvez exécuter la commande suivante en remplaçant <target> par l'adresse IP ou le nom de domaine de l'hôte que vous souhaitez scanner : nmap <target> 2 Une fois que Nmap a terminé le scan, les résultats seront affichés dans le terminal. Les résultats incluent des informations sur les hôtes tels que l'adresse IP, les noms d'hôte et les services en cours d'exécution. Interpréter les résultats obtenus. 3 Analyser le port de connexion « TCP » : nmap @ip_cible –sT 4 Déterminer la version du service en cours d'exécution sur le port : nmap @ip_cible –sV NOTE !! API UTILISE DANS CETTE SERIE EST SWING EXERCICE 1 Pour des questions de santé on recommande que la nourriture que vous mangez ait moins de 30% de ses calories totales provenant de matières grasses. Développez une application avec interface graphique qui calcule le pourcentage de calories qui proviennent de matières grasses, pour cela il faut savoir le nombre de grammes de matières grasses et le nombre des calories provenant de la nourriture en question. Sachant que la matière grasse contient 9 calories par gramme. Entrée : ➢ Calories servis dans la nourriture ➢ Quantité de matières grasses servis. Calcul : pourcentage = ( (MG * 9) / CAL ) * 100 Sortie : Pourcentage de calories provenant de matières grasses. Combien de composants seront utilisés dans GUI? Quelles seront les composants reliés au listener? Ecrire un programme implémentant une interface ci-dessous Démarche 1- Suggérez une disposition des panneaux pour créer cette interface utilisateur 2- Ecrire un programme Java réalisant cette interface EXERCICE 2 Soit une application qui calcule le poids idéal d'une personne à partir de son sexe et sa taille (en cm). L'interface graphique utilise des boutons radio. Les boutons radio produisent des événements, comme le font les boutons normaux. Une application complète exige un listener pour répondre aux actions sur les boutons radios. Pour cela il faut utiliser la méthode setActionCommand () pour assigner une commande à chaque bouton radio, et la méthode getActionCommand() dans le listener pour déterminer quel bouton a été activé. 1- Combien de groupes de boutons sont utilisés dans cette interface graphique? 2- Ecrire un programme Java réalisant cette interface 3- Utilisez la stratégie d’emplacement de BorderLayout ci-contre pour réaliser l’interface Sachant que le poids idéal est : 0.45359237*(H*H)/28.0 pour un homme 0.45359237*(H*H)/30.0 pour une femme Avec H est la valeur associée à chaque intervalle de taille ci-contre : soient 60 ; 64, 68, 72 et 76 EXERCICE 3 : On souhaite Ecrire un programme Java effectuant la conversion du dirham en diverses devises : Dollars, Franc Swiss, yen japonais et en Euro. L’interface de cette application est présentée dans la figure 1 2 Figure 1 Figure 2 Sachant qu’ 1DH = 0.0891 USD = 0.1229 EUR = 0.1102 CHF= 0.078 GBP = 9.4746 JPY 1- Ecrire une méthode convert() permettant de convertir le dirham en diverses devises 2- Combien de composantes contenues dans cette fenêtre de la figure 1. 3- Lesquelles seront reliées à un listener? 4- Ecrire le programme java réalisant l’interface de la figure 1 et qui permet cette conversion L’interface de la figure 1 présente un sérieux problème. Lorsque l’utilisateur redimensionne la fenêtre les composantes ne restent pas appariées et changent de place (voir figure 2). On peut empêcher l’utilisateur de redimensionner la fenêtre en utilisant la méthode : frm.setResizable(false), comme on peut aussi utiliser des gestionnaires d’agacement et des panneaux. 5- Proposez une solution basée sur l’utilisation des panneaux (Panel) et les gestionnaires d’agacement pour réaliser l’interface figure3 Figure 3 EXERCICE 4: 1- Suggérer une disposition des panneaux pour créer cette interface utilisateur 2- Ecrire un programme Java réalisant cette interface EXERCISE 5 : 1- Ecrire un programme Java réalisant cet interface en utilisant Menu