Slides Intru m1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 64

Test d’intrusion

whoami /all

● Guillaume Schreiber

● Auditeur Pentester Senior à Orange


Cyberdefense
● Formateur principal pour les
entreprises (débutant et expert)
● Certifié OSCP, CRTP, AZ-900
● Pseudo infosec : beorn
● Twitter : @beeorn
Ma boite (instant pub)

● Filiale d’Orange spécialisée en cybersécurité


● Plusieurs unités dédiées aux métiers de la cyber
● Une vingtaine d’experts offensifs sur Paris
● Une des plus grosses team de pentesters au monde
● On recrute ! Venez me voir
Game plan
Game plan
● Fondamentaux, méthodologies, premières attaques
● Rappels et fondamentaux
● Définition et objectifs
● Etapes d'un test d'intrusion
● Ethique, mindset et légalité
● Engagements mutuels
● Référentiels, risques et impacts
● OSINT & Chill
● Reconnaissance passive
● Reconnaissance active
● Intrusion
● Injections, misconfig, bruteforcing & co.
● Attaques web
● Attaques système
● Toujours plus loin, toujours plus haut, toujours plus fort
● Elévation de privilèges
● Credential Mining
● Hacking en autonomie (évalué)
Evaluation et notation
● Fichier PDF comprenant (50%) :

○ Rapport complet de vos attaques du dernier jour (texte, captures,


etc.)
○ Pour chaque vulnérabilité identifiée, préciser :
■ Les impacts tels que vus en cours
■ La criticité globale
■ Des solutions de correction

● Examen (fin de semestre, 50%)


Rappels et fondamentaux – Définition et objectifs

● Expert chargé de définir le niveau de sécurité d’un SI, réseau,


application, infrastructure, équipement, etc.

● Découverte et exploitation de vulnérabilités

● Classification des vulnérabilités (type, risque, impact)

● Objectif : aider le client a sécuriser son SI et à éviter de futures


attaques
Rappels et fondamentaux – Etapes d’un test d’intrusion
Rappels et fondamentaux – Ethique, mindset et légalité

● Accords et règles entre prestataire (pentester) et client

○ Mandat d’audit datée et signée


○ Périmètre d’attaque
○ Horaires d’attaques

○ Contacts en cas d’urgence

● Hacker éthique : white/grey/black hat et état d’ésprit


Rappels et fondamentaux – Engagements mutuels

● Le client s’engage à :

○ Mettre à disposition la ressource


○ Fournir les prérequis pour l’audit (hein ?)

● Le prestataire s’engage à :
○ Réaliser l’audit sur une date et un périmètre donné

○ Ne pas altérer la ressource ciblée par l’audit


○ Fournir un rapport d’audit complet
Rappels et fondamentaux – Référentiels, risques et impacts

● Chaque vulnérabilité doit être catégorisée et estimée :

○ Type de vulnérabilité (code source, configuration, social, etc.)


○ Risque associé (mineur, modéré, majeur, critique)
○ Impacts liés (confidentialité, disponibilité, financier, etc.)

● Plusieurs référentiels utilisés : OWASP, CIS, etc.

● Objectifs : estimation du niveau de risque global de la cible


Rappels et fondamentaux – DICT et impacts métiers

● Critères fondamentaux :

○ Disponibilité
○ Intégrité
○ Confidentialité

○ Traçabilité ou preuve

● Critères métiers possibles (optionnels) :


image de la marque, impact financier,
impact RGPD, etc.
OSINT & Chill – Reconnaissance passive (situationnel)

● Obtenir un maximum d’informations de manière indirecte sur la cible


● Avantages :

○ Furtivité
○ Peu de risques pour l’attaquant
○ Facilite le travail d’exploitation qui suit

● Inconvénients :

○ Analyse exhaustive longue et fastidieuse


○ Aucune garantie de résultat
OSINT & Chill – Reconnaissance passive (exos)

EXERCICES

Vous familiariser avec les éléments suivants :


whois, dig, Google Dorks, Shodan, Pastebin, crt.sh, TheHarvester, subfinder

Retrouver le plus d’informations publiques possibles sur une entreprise de votre choix (20-25min.)

Tips : serveurs DNS, plages d’IP publiques, adresses mail, sous domaines, hébergeur, etc.
OSINT & Chill – Reconnaissance passive (situationnel)

● Certaines entreprises disposent d’outils internes non proposés au


grand public

● Exemple : fuites publiques (data leak)

● Démonstration outil Orange Cyberdefense


OSINT & Chill – Reconnaissance active

● Obtenir un maximum d’informations de manière directe sur la cible


● Avantages :

○ Exhaustivité
○ Permet l’identification de failles
○ Permet de réduire la surface d’attaque

● Inconvénients :

○ Bruyant (détection WAF, IDS, IPS, etc.)


○ Risques sur la disponibilité des ressources
OSINT & Chill – Reconnaissance active (scan)

● Scan de ports TCP/UDP

○ Découverte de services en écoute


○ Exemple de ports communs :
■ HTTP
■ FTP
■ SSH
■ SMB
OSINT & Chill – Reconnaissance active (scan)

● Outil banger : nmap (Windows et Linux)

COMMANDE NMAP - SCAN PRECIS

nmap -sS -sV --version-all -sC -O -p- -vv -Pn <IP_cible>

-sS : SYN scan -p- : Scan de tous les ports

-sV : Détection de version -vv : Verbosité intermédiaire

-sC : Lancement des scripts par défaut -Pn : Scan forcé

-O : Détection du système d’exploitation


--version-all : Argument supplémentaire à -sV
spécifiant l’intensité de la détection de version
OSINT & Chill – Reconnaissance active (exos)

EXERCICES

Vous familiariser avec nmap

Scanner le serveur « scanme.nmap.org » de manière aussi exhaustive que possible


OSINT & Chill – Reconnaissance active (autre)

● Quoi d’autre selon vous ?

○ Crawling/spidering
○ Directory bruteforcing (heavy !)
OSINT & Chill – Reconnaissance active (exos)

EXERCICES

Installer le package DVWA sur votre machine virtuelle Kali

Identifier le port sur lequel tourne le service DVWA

Effectuer un directory bruteforcing afin d’obtenir une liste de dossiers applicatifs


Intrusion – Ok mais je tape qui ?

● Intrusion web (simples ou complexe)


● Intrusion système (SQL, SMB, FTP, SSH, etc.)
● Intrusion réseau (802.X bypass, VLAN Hopping, mouvements latéraux,
rebonds, etc.)
● Intrusion Active Directory (Null Session, spraying, Kerberos attacks,
ACL abuse, etc.)
● Intrusion Wi-Fi (OPN, WPA2-PSK, WPA2-Enterprise, attaques RADIUS)
● Intrusion physique (tailgating, cloning de badges, installation
d’implants, caméra de surveillance, etc.)
● Intrusion poste (BIOS abuse, TPM Sniffing, IAMT, PXE, etc.)
● Intrusion cloud (Buckets/instances misconfig, services vulnérables)
● Intrusion mobile (Root detection/SSL Pinning bypass, activities, etc.)
Intrusion web – Failles les plus communes

● Fuite d’informations techniques


● Injections de commande
● File inclusion (LFI, RFI, Path Traversal)
● File upload
● Cross-Site Scripting (XSS)
● Injection SQL (SQLi)

● Outil vital : proxy HTTP


Intrusion web – Proxy HTTP
● Permet l’interception, l’analyse et la modification du flux HTTP en
transit
● Se configure sur la machine et sur le navigateur
● Souvent utilisé en entreprise pour filtrer le flux sortant (Netflix, Twitch,
YouTube, etc.)
● Proxy HTTP axé offensif : Burp Suite

Utilisateur Navigateur Site web

Utilisateur Navigateur Site web

BURP suite
Intrusion web – Proxy HTTP – Mise en place (VM Kali)

● Agent intercepteur sur le navigateur de votre choix (extension) :


FoxyProxy

○ Création d’un nouveau proxy HTTP :


■ Type : HTTP
■ Adresse IP : 127.0.0.1
■ Port : 8080

● Activer le mode « Interception » sur outil Burp Suite


Intrusion web – Fuite d’informations techniques

● Récupération d’informations techniques depuis l’application web :

○ Provoquant volontairement des erreurs


○ En accédant à des répertoires sensibles ou cachés
○ En analysant les réponses du serveur

● Ces informations sont utilisées pour affiner ses attaques


○ Comment selon vous ?
Intrusion web – Fuite d’informations techniques
Intrusion web – Fuite d’informations techniques
Intrusion web – Fuite d’informations techniques

Google Dork Directory Listing – ‘intitle: «Index of »’ Essayez !


Intrusion web – Injection de commandes

● Use case :

○ Fonctionnalité légitime de l’application qui exécute une


commande système (ex : afficher la date du système)
○ Si c’est codé avec les pieds : fin du game

CODE VULNÉRABLE

<?php system("ping $_POST[‘entree_utilisateur’]"); ?>


Intrusion web – Injection de commandes (pown)

EXERCICES

Obtenir le nom de la machine hébergeant DVWA

Lister le contenu du dossier courant

Obtenir la liste des utilisateurs du système

Lire le fichier PHP source et comprendre où se situe la faille (le fichier s’appelle « low.php »)

Lire le contenu du fichier « /etc/shadow »


Intrusion web – File inclusion

● Use case :

○ Développeurs utilisent des fonctions d’inclusions pour segmenter


et réutiliser le code ailleurs dans l’application
○ Si on peut modifier le chemin du fichier inclus : fin du game

CODE VULNÉRABLE

<?php include($_GET[‘entree_utilisateur’]); ?>


Intrusion web – File inclusion

● 3 variantes principales :

○ Path Traversal : exploitation de l’inclusion de fichier afin de lire un


fichier local
○ LFI (Local File Inclusion) : exploitation de l’inclusion de fichier afin
de lire ou d’exécuter un fichier local
○ RFI (Remote File Inclusion) : exploitation de l’inclusion de fichier
afin de lire ou d’exécuter un fichier distant
Intrusion web – File inclusion (pown)

EXERCICE

Obtenir la liste des utilisateurs du système

Exploiter l’inclusion afin d’obtenir un accès stable sur la machine (difficile)


Intrusion web – File upload

● Use case :

○ Fonctionnalité légitime
permettant de déposer
un fichier (ex: avatar de
profil)
○ Si pas suffisamment de
contrôle sur le fichier
déposé : fin du game
Intrusion web – File upload (pown)

EXERCICE

Déposer un fichier permettant d’exécuter directement des commandes sur le système


(webshell)
Intrusion web – Cross-Site Scripting (XSS)

● Use case :

○ L’application utilise les entrées utilisateurs afin de modifier


dynamiquement l’affichage (client-side attack)
○ Si pas suffisamment de contrôle sur les entrées utilisateurs : fin du
game

CODE VULNÉRABLE

<?php echo("Bienvenue " . $_GET['entree_utilisateur'] . " !"); ?>


Intrusion web – Cross-Site Scripting (XSS)

● Trois grands types :

○ XSS réfléchie : la modification d’affichage (injection) est non


permanente et nécessite souvent une phase d’ingénierie sociale
○ XSS stockée : la modification d’affichage (injection) est
permanente et est stockée en base de données, touchant ainsi de
nombreux utilisateurs
○ XSS DOM-Based : la modification d’affichage (injection) est
générée en modifiant la structure DOM de la page
Intrusion web – Cross-Site Scripting (pown)

EXERCICE

Exploiter la XSS pour faire apparaître une pop-up contenant le message « Hello World »

Exploiter la XSS pour afficher (voler ?) un cookie de session

Réfléchir aux risques associés à cette vulnérabilité


Intrusion web – Injection SQL (SQLi)

● Use case :
○ L’application utilise les données applicatives afin de requêter une
base de données
○ Si pas suffisamment de contrôle sur les données utilisées pour
créer la requête SQL : fin du game
Intrusion web – Injection SQL (SQLi)

● 5 types principaux :
○ Blind : en aveugle, utilisation de booléen pour extraire les données
○ Error : les données extraites sont retournées au sein de messages
d’erreurs
○ Union : les données extraites sont concaténées aux données
d’origine

○ Stack : l’extraction est effectuée à la suite de la requête initiale


○ Time : utilisation du temps comme moyen d’extraction
Intrusion web – Injection SQL (SQLi)

● Exemple complexe :

INJECTION SQL

1 UNION SELECT IF(SUBSTRING(user_password,1,1) = CHAR(97),


BENCHMARK(5000000,ENCODE('MSG','by 5 seconds')),null) FROM users WHERE user_id
= 1;

● Hein ? :
○ Si la 1ere lettre du mot de passe est un « a », alors on encode
5,000,000 de fois le message
○ La partie rouge restreint l’injection au user d’ID=1 (admin)
Intrusion web – Injection SQL (pown)

EXERCICE

Exploiter l’injection SQL afin de trouver quel système de gestion de base de données (DBMS) est
utilisé

Exploiter l’injection SQL pour lister les utilisateurs de la table users

Exploiter l’injection automatiquement via l’outil sqlmap


Intrusion web – Erreurs humaines (fréquent !)

● Use case :
○ Version de service vulnérable à une faille rendue publique
○ Mots de passe par défaut (admin:admin, guest:guest, etc.)
○ Fichiers sensibles accessibles à tous
○ Etc.
Intrusion système – Principe et exemples

● Attaquer les services exposés sur la machine (hors web)


● Services les plus souvent ciblés :

○ Bases de données
○ Accès à distance
○ Partage de ressources

○ Appels de méthodes distantes


Intrusion système – Principe et exemples

● Exemples d’attaques:
○ Mots de passe faibles ou triviaux sur les services
○ Bruteforcing d’authentification
○ FTP/RPC/SMB anonyme (misconfig)

○ Overflows (SMBv1, Wannacry ?)


○ Déserialisation
Intrusion système – Bruteforcing d’authentification
Intrusion système – Anonymous/null access
Intrusion système – MS17-010
Elévation de privilèges – Principe

● Une fois dans le système, un attaquant va chercher à obtenir le


maximum de privilèges (administrateur)

● Elévation de privilèges :

○ Windows
○ Unix
○ MacOS
○ Android/iOS
Elévation de privilèges - Exemples

● Windows :

○ AlwaysInstallElevated
○ Unquoted Path
○ Executable hijacking

○ DLL hijacking
○ Taches planifiées
○ Services lancés as NT/SYSTEM
Elévation de privilèges - Exemples

● Unix :
○ sudoers
○ SUID/SGID
○ CRON jobs

○ PATH hijacking
○ Services lancés as root
Post exploitation - Exemples

● Une fois administrateur, un attaquant va chercher à étendre sa


compromission vers d’autres systèmes

● Windows & Unix & MacOS & Android & iOS & cloud & … :

○ Credential Mining (on siphonne tout)


Fondamentaux – Credential Mining (Windows)
● Accès à une machine en tant qu’administrateur
○ Utilisateurs locaux
○ Mots de passe en clairs
○ Données en mémoire vive
○ Identifiants du domaine en cache
○ Hash LM:NT
○ Sessions actives

○ Clés de chiffrements
Fondamentaux – Credential Mining (Windows)

● Ce que ça permet

○ Usurpation de comptes
○ Usurpation de session actives
○ Identifiants d’accès (applications pro/perso)

○ Rejeu de comptes

● Utilisé principalement pour compromettre des comptes/applications


privilégiés et rebondir sur d’autres systèmes (mouvement latéral)
Credential Mining - Base SAM

● Fichier chiffré contenant tous les utilisateurs Windows locaux et leurs


hash LM:NT (HKLM\SAM)

○ Cassage de condensat LM ou NT
○ Réutilisation du condensat tel quel (Pass-the-Hash)
Credential Mining - Secrets LSA

● Fichier chiffré contenant de nombreux secrets (HKLM\SECURITY)

○ Hash LM:NT du compte machine


○ Mot de passe hexadécimal du compte machine
○ Clé de chiffrement système
○ Utilisateurs du domaine en cache (DCC)
○ Mots de passe en clair de certains services
Credential Mining - Processus lsass.exe

● Processus principal pour l’authentification locale et du domaine

○ Hash NT ou hash LM des utilisateurs actifs


○ Mots de passe en clair des utilisateurs actifs dans certains cas
Credential Mining - Jetons Windows

● Objet Windows permettant de définir le contexte d’un processus


(cad. sous quelle autorité est exécutée le processus)

○ Objet usurpable
○ 1 jeton = 1 contexte local ou du domaine
○ Actions limitées selon le type du jeton
Credential Mining - Data Protection API

● Mécanisme de chiffrement/déchiffrement interne à Windows pour la


gestion de certains secrets
○ Mots de passe enregistré en navigateur (Firefox, Edge, Chrome)
○ Mots de passe Wi-Fi
○ Tâches planifiées
○ Credential Vault
Credential Mining – Pown
(Wifi : BEORN_LAB, Pass : PentestLab456!?)

Exploitation Credential Mining : machines Windows (192.168.130.122/135)


Compte administrateur 192.168.130.122 ➔ stagiaire:capbreton

Objectif : fichier « C:\Users\Administrateur\root.txt » sur 192.168.130.135

Bonus : obtenir un accès stable et interactif aux serveurs en tant que


* NT AUTHORITY/SYSTEM (Windows)

Unique outil : netexec


Hacking en autonomie
A vous de jouer ! (Wifi : BEORN_LAB, Pass : PentestLab456!?)
Exploitation web & système : machine Linux (192.168.130.85)
Exploitation système : machine Windows (192.168.130.110)

Objectifs :

○ Fichiers « C:\Users\Administrateur\root.txt » ou « /root/root.txt »


○ Mots de passe des comptes locaux

Bonus : obtenir un accès stable et interactif aux serveurs en tant que


* NT AUTHORITY/SYSTEM (Windows)
* root (Linux)

Outils principaux : nmap, Burp Suite Community, msfconsole, netexec


Outils situationnels : searchsploit, sqlmap, dirbuster, hashcat, hydra…
Merci !

● Guillaume Schreiber

● Auditeur Pentester Senior à Orange


Cyberdefense
● Formateur principal pour les
entreprises (débutant et expert)
● Certifié OSCP, CRTP, AZ-900
● Pseudo infosec : beorn
● Twitter : @beeorn

Vous aimerez peut-être aussi