Présentation du Cours
Ce cours s'adresse aux profils hybrides - ceux qui refusent d'être soit uniquement offensifs, soit uniquement défensifs. Un bon pentester doit comprendre ce qu'un SOC voit. Un bon analyste SOC doit comprendre comment un attaquant pense. Chaque chapitre est traité sous les deux angles simultanément.
Setup & Bases
Système Windows
Attaques & AD
Énumérer, persister, escalader de privilèges, dumper des credentials depuis SAM/LSASS/DPAPI, forger des tickets Kerberos, attaquer un Active Directory.
Détecter ces actions via les Event IDs Windows, Sysmon, les outils Sysinternals, la forensics PowerShell et l'analyse comportementale.
Architecture Windows - Vue d'ensemble
Les processeurs x86/x64 implémentent un modèle de niveaux de privilège matériels appelés Protection Rings. Windows n'en utilise que deux sur quatre - pour garantir la portabilité entre architectures (ARM, MIPS…).
| Critère | User Mode (Ring 3) | Kernel Mode (Ring 0) |
|---|---|---|
| Accès mémoire | Limité à l'espace VAS du processus | Accès total - RAM physique incluse |
| Instructions CPU | Restreintes (pas RDMSR, WRMSR…) | Toutes disponibles |
| Crash | Le processus meurt, l'OS survit | BSOD - crash total du système |
| Exemples | powershell.exe, notepad.exe, malwares | ntoskrnl.exe, drivers, LSASS |
| Transition | Via System Call (syscall/sysenter) | Direct |
L'escalade classique (NT AUTHORITY\SYSTEM) reste en Ring 3. Pour aller plus loin - rootkits, bypass PPL, Kernel Patch Guard - il faut passer en Ring 0, ce qui nécessite un driver signé ou une vulnérabilité kernel.
Les BSOD soudains et répétés sont un signal d'alerte. Un driver malveillant peut déclencher ce comportement. Le crashdump MEMORY.DMP est analysable avec WinDbg.
CreateFile(), ReadProcessMemory()…kernel32.dll, ntdll.dll) - traduit en appel NT natifsyscall) - transition Ring 3 → Ring 0NTOSKRNL.EXE (Ring 0) - exécute la demande et retourne le résultatMimikatz, ProcDump, et la majorité des outils offensifs passent tous par cette interface. C'est pourquoi les EDR hookent ntdll.dll et surveillent ces appels système.
Le Modèle de Sécurité Windows
Windows base toute décision d'accès sur trois éléments interagissant à chaque accès à une ressource. Comprendre ce triangle est indispensable pour analyser les misconfigurations ACL, le token impersonation, et les bypasses UAC.
- SID utilisateur
- SID des groupes
- Privilèges (SeDebug…)
- Integrity Level
- Logon SID
"Carte d'identité" du processus
- Parcourt la DACL
- Deny avant Allow
- Vérifie Integrity Level
- Génère Event IDs (SACL)
Ring 0 - incontournable
- Owner SID
- DACL - qui peut quoi
- SACL - quoi auditer
- ACEs Allow / Deny
"Règlement" de l'objet
Le Token Impersonation / Theft (Chapitres 9 & 10) consiste à voler le token d'un processus plus privilégié pour hériter de ses droits - sans son mot de passe. C'est token::elevate dans Mimikatz.
La SACL est l'outil d'audit. Sans elle, aucun Event ID d'accès fichier ne sera généré. Configurer une SACL sur SAM, NTDS.dit, lsass.exe est essentiel pour détecter les credential dumps.
Un processus ne peut pas écrire vers un objet de niveau supérieur, même si la DACL l'y autorise.
SYSTEM, kernel - cible finale de l'escaladeComposants Windows Clés
| Processus | Rôle | Importance SOC |
|---|---|---|
| System (PID 4) | Thread kernel de base - Ring 0 | PPID de la majorité des processus kernel |
| smss.exe | Session Manager - 1er processus User Mode | Lance winlogon, csrss |
| csrss.exe | Client/Server Runtime - sous-système Win32 | Une instance par session |
| winlogon.exe | Gère la séquence de logon, SAS | Charge le profil, lance explorer.exe |
| lsass.exe | Local Security Authority Subsystem | Stocke hashes & tickets Kerberos - cible de dump |
| services.exe | Service Control Manager | Lance et gère tous les services Windows |
| svchost.exe | Hôte générique de services | Plusieurs instances - une par groupe |
lsass.exe est la cible principale du Chapitre 9. Ses credentials en mémoire (hashes NT, tickets Kerberos, parfois mots de passe en clair via WDigest) sont le trésor ultime du post-exploitation.
Un lsass.exe avec PPID différent de wininit.exe est un red flag critique - Process Spoofing. Sysmon Event ID 10 avec TargetImage = lsass.exe est l'indicateur principal de credential dumping.
| Fichier | Contenu | Registre |
|---|---|---|
| SAM | Hashes NT des comptes locaux (chiffrés par SYSKEY) | HKLM\SAM |
| SYSTEM | Contient le SYSKEY - clé pour déchiffrer SAM | HKLM\SYSTEM |
| SECURITY | Cache Kerberos, DCC1/DCC2, LSA secrets | HKLM\SECURITY |
Ces fichiers sont verrouillés par le kernel en temps réel. Les VSS (Volume Shadow Copies) ou reg save permettent de les extraire. C'est l'objet du Chapitre 8.
Setup du Lab - Environnement de Travail
Utiliser exclusivement un réseau Host-Only. Ni la VM cible ni Kali n'ont accès à Internet. Ne jamais exécuter ces outils sans autorisation explicite.
- 2 cores, 4–6 Go RAM, 60 Go disque
- Windows 10/11 Pro ou Entreprise
- Compte administrateur local activé
- Defender désactivable pour les TPs
- 2 cores, 4 Go RAM, 40 Go disque
- Kali Linux (OVA prête à l'emploi)
- Impacket, NetExec, Responder préinstallés
- Wireshark pour capture réseau
Sysmon - Déployer la Télémétrie
Sysmon (System Monitor) enrichit les logs Windows avec des Event IDs avancés - accès inter-processus, connexions réseau par processus, hashes des exécutables. L'outil de télémétrie défensive le plus utilisé en entreprise.
| Event ID Sysmon | Description | Chapitres |
|---|---|---|
| 1 | Process Create - hash, PPID, ligne de commande complète | 3, 9, 10, 11 |
| 3 | Network Connection - processus source et destination | 6, 7 |
| 7 | Image Loaded - DLL chargée dans un processus | 9 |
| 10 | Process Access - accès à un autre processus (LSASS dump) | 9 |
| 11 | File Create - création de fichier | 5, 8 |
| 12/13 | Registry Create / Value Set | 4 |
| 22 | DNS Query - par processus | 7 |
Event IDs Windows - Référence Globale
| Event ID | Catégorie | Description | Chap. |
|---|---|---|---|
| 4624 | Logon | Connexion réussie | 1 |
| 4625 | Logon | Échec de connexion | 1 |
| 4648 | Logon | Connexion avec credentials explicites | 8 |
| 4656 | Object Access | Demande d'ouverture d'un handle objet | 8, 9 |
| 4657 | Registry | Modification d'une valeur de registre | 4 |
| 4663 | Object Access | Accès à un objet fichier ou registre | 5, 8 |
| 4672 | Logon | Privilèges spéciaux assignés à une session | 10 |
| 4697 | Service | Service installé | 11 |
| 4720 | Account | Compte utilisateur créé | 1 |
| 4732 | Group | Membre ajouté à un groupe local | 1 |
| 4768 | Kerberos | TGT demandé (AS_REQ) | 12 |
| 4769 | Kerberos | TGS demandé | 12 |
| 4771 | Kerberos | Pré-authentification Kerberos échouée | 12 |
| Event ID | Log | Description | Chap. |
|---|---|---|---|
| 4103 | PS/Operational | Module Logging - cmdlets exécutés | 2 |
| 4104 | PS/Operational | Script Block Logging - contenu du script | 2 |
| 7045 | System | Nouveau service installé | 11 |
| 1 | Sysmon | Process Create avec hash et cmdline | 3, 9, 10 |
| 10 | Sysmon | ProcessAccess - accès à lsass.exe | 9 |
| 13 | Sysmon | Registry Value Set | 4 |
Conventions & Bonnes Pratiques
À faire : réseau Host-Only isolé · snapshots avant chaque exercice · documenter chaque commande · analyser les Event IDs après chaque action offensive.
À ne jamais faire : exécuter ces outils sans autorisation · connecter la VM à Internet avec Defender désactivé · utiliser des credentials de lab sur des systèmes réels.
Exercice 0 - Vérification du Lab
- Vérifier la version PowerShell (requis ≥ 5.1)
- Confirmer que WinRM est actif et répond
- Vérifier l'installation de Sysmon
- Confirmer que l'audit de sécurité est activé
- Tester la connectivité réseau entre Windows et Kali (port 445)
- Valider que
C:\Tools\Sysinternalsest accessible - Générer un rapport de santé de l'environnement
Le lab est opérationnel si tous les checks retournent [OK], Test-WSMan répond sans erreur, et nmap -p 445 retourne open. Tu es prêt pour le Chapitre 1.
Ce qu'il faut retenir
Carte d'identité d'un processus (SIDs + Privilèges + Integrity Level). Cible du token theft.
DACL/SACL attaché à chaque objet. Cible des attaques d'ACL misconfiguration.
Le juge kernel Ring 0 qui compare Token et Descriptor. Incontournable sans Ring 0.
- Expliquer la différence entre User Mode (Ring 3) et Kernel Mode (Ring 0)
- Comprendre pourquoi
NT AUTHORITY\SYSTEMreste en Ring 3 - Décrire les 3 composants du modèle de sécurité Windows
- Identifier les Integrity Levels et leur règle d'écriture ascendante
- Connaître les 7 processus système critiques et leurs PPIDs légitimes
- Mettre en place un lab isolé (deux VMs en réseau Host-Only)
- Installer et configurer Sysmon avec la config SwiftOnSecurity
- Activer l'audit de sécurité complet via
auditpol - Utiliser le template
Get-SecurityEventpour requêter les Event IDs