Skip to main content

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 <script>alert("This Website has been hacked")</script> 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

image-1635197207503.png

On constate, après le scan, que le système n'a pas trouvé de vulnérabilités :

image-1635197472869.png

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. 

image-1635198035390.png

En suite, nous devons accepter les termes du contrat :

image-1635198088150.png

Puis nous allons sélectionner l'option une :

image-1635198163646.png

Et puis, l'option 2 :

image-1635198199454.png

Puis, l'option 3 :

image-1635198247646.png

Et enfin l'option 2 : 

image-1635198272113.png

Et puis on spécifie l'url à cloner : 

image-1635198921298.png

Pour ne pas avoir de problème j'ai choisi un site qui m'appartient personnellement !

Résultat : 

image-1635198933163.png

Utiliser MSFConsole pour accéder au Shell via une vulnérabilité :

service postgresql start
msfconsole

On recherche un exploit :

image-1635200830087.png

search distcc

On utilise l'exploit : 

image-1635200911086.png

On va ensuite lister les payloads : 

show payloads

image-1635200962379.png

On choisie un payload :

image-1635201084576.png

On affiche les paramètres : 

image-1635201122326.png

Je définie l'adresse cible :

image-1635201178280.png

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).

image-1635206278767.png

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.