Pen Test - Test d'intrusion Le Pen Test : Le test d'intrusion peut être employé pour différentes cibles :  Une adresse IP Une application Un serveur Web Un réseau complet Les objectifs d'un test d'intrusion sont : Identifier les vulnérabilités de son système d'information ou de son application  Évaluer le degré de risque de chaque faille identifiée Proposer des correctifs de manière priorisée Le test d'intrusion permet donc de qualifier :  La sévérité de la vulnérabilité La complexité de la correction L'ordre de priorité qu’il faut donner aux corrections Quand faire un test d'intrusion  : Durant la conception du projet Pendant la phase d'utilisation du composant ou du réseau (à intervalle régulier) Suite à une cyberattaque  Deux type de test :  Interne Test d'intrusion depuis le réseau local Externe  Test d'intrusion depuis internet Il existe trois types de test :  Le test en boite noir  Le testeur n'as aucune information sur le réseau au début du test, il ne connait pas non-plus de mots de passes ou d'identifiants. Il va donc rechercher des informations sur l'entreprise en général pour l'aider à trouver des vulnérabilités.    Le test en boite grise Le testeur dispose uniquement d'un couple identifiant/mot de passe que l'entreprise cible lui a fourni avant de démarrer la phase de test.  L'objectif de ce test c'est de se mettre dans la peau d'un utilisateur "normal" au sein de l'entreprise cible. Le test en boite blanche Le testeur dispose de nombreuses informations comme des schémas d'infrastructure, le code source de l'application. La recherche de faille est donc très approfondie et très compète. Les systèmes d'exploitations pour le Pen Test : Linux Kali Linux (regroupe l'ensemble des outils nécessaires pour procéder au test de sécurité d'un système d'information) Nmap (détecte les ports ouverts) Wireshark (analyse les trames réseau) Metasploit (fourni des informations sur les vulnérabilités des systèmes d'information et qui les exploites) Burp suite (sécurisation ou test d'intrusion des applications web) Windows De nombreux logiciels similaires à ceux évoqués ci-dessus sont disponible sur Windows. Android Des outils très performants sont disponibles sur Android zANTI FaceNiff AndroRAT cSploit Préparer le Pen Test : Premièrement, il faut définir un périmètre de test :  Un Serveur Une partie d'un réseau Une IP publique Plusieurs IP publiques L'ensemble du réseau Interne Avant de faire quoi que ce soit, il faut s'assurer de contracter avec l'entreprise cible pour ne pas avoir de problèmes juridiques ! Le document se nomme "mandat d'autorisation de test de pénétration" Différentes attaques :  DOS DDOS WEB Utilisation de failles connues Technique de l'homme du milieu L'utilisation de la technique de l'homme du milieu ou man-in-the-middle attack. Cette attaque consiste à se positionner au milieu dans la communication entre un client et un serveur pour intercepter et modifier les paquets échangés entre les deux machines. Le logiciel « Burp suite » permet de le faire. Forge de paquets HTTP Cette technique consiste à écrire manuellement des requêtes HTTP, qui vont ensuite être envoyées au serveur. Ces requêtes seront non standards, avec des malformations qui peuvent générer des plantages sur le serveur Web. Le logiciel Wfetch intégré à Microsoft IIS permet de le faire. Intégration de paramètres Ici, nous pouvons ajouter ou modifier des paramètres dans les chemins HTTP qui seront mal interprétés par le serveur et qui permettront de l'exploiter. Aucun logiciel n'est nécessaire car c'est faisable manuellement. Cross-site scripting ou XSS Le cross-site scripting ou XSS. C’est un type de faille de sécurité de sites Web permettant d'injecter du contenu dans une page, provoquant ainsi des actions sur les navigateurs Web visitant la page. Par exemple, sur un serveur vulnérable, dans une zone où les utilisateurs peuvent poster un commentaire, si l'on rajoute la suite de caractères au prochain affichage de la page, un script s’exécutera à la place d’afficher le commentaire. Injection SQL Outil sur Kali : BSQL Ingénierie Sociale Création de site clone via Kali : social engineering toolkit Test des réseaux sans-fils :  Scan : insider, wifi analyser, Lnissid. Injection de trafique : AiroDump, Rmon Écoute et enregistrement du trafique : WireShark  Décryptage de clés : Cain&abel, Aircrack-ng Équipements  de protection :  Pare-feu IDS IPS Honeypot = Simule des machines d'un réseau informatique (c'est un leurre) KFsensor Snort Outils pour contourner ces protections :  Nmap et Hping3 (gestion de fragmentation d'une attaque pour ne pas qu'elle soit identifiée) HTTP Host (côté serveur) et HTTP Port (côté client) = Établie un tunnel HTTP DNS2TCP = Établie un tunnel DNS Métasploit = Optenir et maintenir l'accès à distance sur une machine à l'intérieur d'un réseau cible Partie Pratique : Utiliser NMAP pour scanner un réseau : nmap -sn 10.0.2.0 /24 Utiliser NESSUS pour scanner un réseau : On va chercher la dernière version de NESSUS : https://www.tenable.com/downloads/nessus?loginAttempted=true Puis on va installer le packer :  dpkg -i PAQUET.deb Puis nous démarrons le service :  /etc/init.d/nessusd start Définition du démarrage automatique :  update-rc.d nessusd enable Puis on met à jour metasploit :  msfconsole aptupdate;aptinstallmetasploit-framework Puis, nous accédons au site https://kali:8834 :  On constate, après le scan, que le système n'a pas trouvé de vulnérabilités : Si il y avait eu des vulnérabilités, on aurait été informés sur la façon de résoudre les problèmes de sécurité.  Utiliser The social engineering toolkit : Pour lancer cette applications nous allons dans l'outils recherche, 13 - Social Enginering Tools.  En suite, nous devons accepter les termes du contrat : Puis nous allons sélectionner l'option une : Et puis, l'option 2 : Puis, l'option 3 : Et enfin l'option 2 :  Et puis on spécifie l'url à cloner :  Pour ne pas avoir de problème j'ai choisi un site qui m'appartient personnellement ! Résultat :  Utiliser MSFConsole pour accéder au Shell via une vulnérabilité : service postgresql start msfconsole On recherche un exploit : search distcc On utilise l'exploit :  On va ensuite lister les payloads :  show payloads On choisie un payload : On affiche les paramètres :  Je définie l'adresse cible : Dans cette exemple je me choisi moi-même ! Lancement de l'exploit :  exploit Rapport de Pen Test : Critères d'évaluations : Sévérité Standard CVSS   Complexité Facile Modérée Complexe Priorité Urgente Standard Basse On peux chercher les détailles d'une faille via les numéros CVEC (numéro attribué à chaque faille rendue publique). Le rapport du Pentest peut-être adressé au :  DSI Responsable système et réseau Équipes d'informatiques Prestataires Le rapport doit donc être rédigé de telle façon à ce qu'une personne ne possédant pas de capacité techniques poussée comprenne son contenu ! Structure :  Format = PDF 10 pages Document confidentiel Rédigé en français ou en anglais Sommaire Contexte et périmètre Conditions du test internet / externe  Méthodologie de test Axes d'évaluations Résultats Synthèses   Présenté le travail réalisé : Il est préférable de faire une réunion avec le client pour revoir avec lui le rapport et les vulnérabilités trouvées. Il faut faire attention à la forme de la présentation. Il est important que le client comprenne vos travaux pour apporter une correction adéquate.