Gema
Gema
Gema
1
REDIGE PAR SIMPLICE DJANKOU
Penetration test / Pentest / Test d’intrusion
Un test d’intrusion est une méthode d’évaluation de la sécurité d’un système ou d’un réseau
informatique.
● Simulation d’un utilisateur (ou logiciel) malveillant.
● Le testeur adopte la position d’un attaquant potentiel.
● Le testeur analyse les risques potentiels du a :
○ Une mauvaise configuration d’un système
○ Un défaut de programmation Objectif : Trouver des vulnérabilités exploitables en vue de proposer
un plan d’actions permettant d’améliorer la sécurité d’un système.
2
Compétences requises
Nombreuses et étendues
Curieux
Créatif, Astucieux et Méthodique
Aimer le challenge
Psychologue et éthique
Pratiquer, pratiquer, pratiquer (CTF, walkthrough)
Ce domaine est trop vaste pour être entièrement
maîtrisé...
(programmation, système (*nix/windows), réseau,
web client ou serveur, base de données, exploitation
binaire, cryptanalyse, stéganographie, forensic,...)
3
Trois types d’analyse
4
Types de Pentesting
Réseau
○ Interne
○ Externe
Web
Réseaux sans fil (WiFi)
Social-engineering (ingénierie sociale)
Physique (Red team)
5
Les tests « Red Team/Blue Team »
Test d’intrusion :
● Sans limite de temps
(2 à 3 mois au lieu d’une ou deux semaines),
● Pas de périmètre précis défini par le
commanditaire (le nom de l’entreprise seulement).
En complément les testeurs peuvent user de techniques
alternatives
(ex: Social engineering, Intrusion physique,…)
6
L’approche Juridique
7
Le périmètre
L’idéal est de décrire le coût temps/charge de travail dans le périmètre afin d’éviter
le surfacturation ou le dépassement de charges pour l’auditeur
8
PTES (The Penetration Testing Execution Standard)
OSSTMM (Open Source Security Testing Methodology Manual)
OWASP Testing Guide ….
9
Méthodologie
10
Méthodologie
11
Méthodologie
12
Les différentes phases
1. Pré-engagement
2. Collecte de renseignements
3. Détermination de la menace
4. Analyse des vulnérabilités
5. L’exploitation
6. Post exploitation
7. Le rapport
13
Règles de pré-engagement
14
Collecte de renseignements
16
Phase de recherche de vulnérabilités :
19
Maintien d’accès
21
CleanUp
22
Appréhender la criticité du reporting
Le reporting
Représente la pierre angulaire de votre Ce qui suit est une structure de rapport :
travail - Contrat pré-engagement
Reflète la qualité de votre prestation - Résumé sur la méthodologie
Sans un reporting bien fait… votre - Résumé technique
travail ne vaut « rien »
Nous allons découvrir comment
l’effectuer dans le prochain chapitre
23
Rédiger un rapport de Pentesting
24
Le rapport global est un document (le plus souvent au format PDF non modifiable), rédigé en
anglais ou en français et mentionnant en filigrane le statut ‘Confidentiel’ puisque le rapport
contient des informations susceptibles de s’introduire dans le système informatique de
l’entreprise visée. De plus, un rapport cohérent doit inclure à la fois un sommaire exécutif
explicite, appelé rapport d’exécution, mais aussi un rapport technique détaillé. Le rapport
d’exécution doit contenir les rubriques suivantes :
•Background : description du but des tests et les définitions de tout terme non explicite à un
exploitant. Par exemple, définir les termes suivants : vulnérabilité et contre-mesure.
•Posture globale : vue d’ensemble de l’efficacité des tests, les solutions trouvées (par exemple,
l’exploitation de la vulnérabilité Microsoft MS08-056) et les cas généraux permettant
l’exploitation de vulnérabilités (cas du manque de mise à jour ou de patch).
•Profil du risque : classification générale de la posture sécuritaire de l’organisation en la
comparant à des sites similaires en les mesurant avec des indicateurs explicites du type ‘high’,
‘medium’, ‘low’. On peut introduire une description de la classification en question.
25
REMARQUE : il peut être intéressant de résumer le nombre de failles trouvées dans un
format tabulaire de synthèse, de trier par sévérité, priorité et difficulté de correction. Par
exemple, on pourrait classer les lignes du document de la façon suivante :
29
Quelques outils
30
Metasploit
Le framework Metasploit (MSF) est très utilisé par les professionnels
de la sécurité de l’information.
31
● Exploit : c’est le moyen par lequel le pentester profite d’un défaut dans
un système, une application ou un service. On l’utilise pour attaquer et
produire un résultat que les développeurs ou admin n’avaient pas
envisagé (injection sql, buffer overflow, …).
● Payload : code que l’on veut faire exécuter sur la cible (ex:
reverse_shell)
● Shellcode : suite d’instructions utilisées par un payload qui fournit
généralement un shell (ou meterpreter shell).
● Listener : composant qui attend une connexion entrante.
● Encodeurs
● Outils de reconnaissances
32
SET (Social-Engineer Toolkit)
La boîte à outils open source pour l’ingénierie
social. Fait parti intégrante de l’arsenal du
pentester.
Propose des attaques spécifiquement contre
l’élément humain.
Permet entre autre de : générer des payloads,
infecter des fichiers ou une clé USB, répliquer
une page web d’authentification, préparer un
émulateur de clavier (Teensy), SMS spoofing,
Wireless DNS spoof, générer des QRcode,...
https://github.com/trustedsec/social-engineer-toolkit
33
NMap - Super Port Scanner
Nmap (Network Mapper) est un scanner de réseau
gratuit et open-source
● un des meilleurs outils d'exploration de réseau
● découvre des hôtes et des services en envoyant
des paquets et en analysant les réponses
● détection d’OS, détection des versions, évasion de
pare-feu...
● inclut un moteur de script puissant (NSE)
34
Burp Suite
35
Surface d'attaque
36