Lab 4.3: Shadow Copies Windows
Objectifs d'Apprentissage
A la fin de ce laboratoire, vous serez capable de:
- Comprendre le fonctionnement des Shadow Copies
- Creer et gerer des points de restauration
- Acceder aux versions precedentes des fichiers
- Comprendre les implications de securite (recuperation de donnees sensibles)
Duree Estimee
40 minutes
Prerequis
- VM Windows 10/11
- Droits administrateur
- Espace disque disponible (~2 Go minimum)
Contexte Professionnel
Les Shadow Copies sont utilisees pour:
- Recuperation de fichiers supprimes/modifies
- Sauvegarde sans interruption de service
- Forensics: Recuperation de donnees historiques
- Securite: Les attaquants peuvent y trouver des informations sensibles
Partie 1: Comprendre les Shadow Copies
Etape 1.1: Qu'est-ce que Shadow Copy?
Shadow Copy (ou VSS - Volume Shadow Copy Service) est un service Windows qui cree des "instantanes" du systeme de fichiers a un moment donne.
Caracteristiques:
- Sauvegarde au niveau du bloc
- Fonctionne meme avec des fichiers ouverts
- Utilise pour System Restore et sauvegardes Windows
- Stocke dans un espace reserve sur le volume
Etape 1.2: Verifier le service VSS
# Statut du service
Get-Service VSS
# Demarrer si necessaire
Start-Service VSS
Etape 1.3: Lister les Shadow Copies existantes
# Methode 1: vssadmin
vssadmin list shadows
# Methode 2: WMI
Get-WmiObject Win32_ShadowCopy | Select-Object ID, InstallDate, VolumeName
Question 1: Combien de Shadow Copies existent sur votre systeme?
Partie 2: Creer des Shadow Copies
Etape 2.1: Activer la protection systeme
# Verifier si la protection est activee pour C:
Get-ComputerRestorePoint -ErrorAction SilentlyContinue
# Activer via GUI
# Panneau de configuration > Systeme > Protection du systeme
Via PowerShell (necessite elevation):
# Activer la protection sur C:
Enable-ComputerRestore -Drive "C:\"
# Verifier
vssadmin list shadowstorage
Etape 2.2: Creer un point de restauration
# Creer un point de restauration
Checkpoint-Computer -Description "Lab Shadow Copy Test" -RestorePointType MODIFY_SETTINGS
# Verifier
Get-ComputerRestorePoint | Select-Object -Last 3
Etape 2.3: Creer une Shadow Copy directement
# Creer une Shadow Copy via WMI
$class = [WMICLASS]"root\cimv2:Win32_ShadowCopy"
$shadow = $class.Create("C:\", "ClientAccessible")
if ($shadow.ReturnValue -eq 0) {
Write-Host "Shadow Copy creee avec succes" -ForegroundColor Green
Write-Host "ID: $($shadow.ShadowID)"
} else {
Write-Host "Erreur: $($shadow.ReturnValue)" -ForegroundColor Red
}
# Lister pour verifier
vssadmin list shadows
Partie 3: Acceder aux Shadow Copies
Etape 3.1: Methode GUI - Versions precedentes
- Clic droit sur un fichier ou dossier
- Proprietes
- Onglet "Versions precedentes"
- Selectionner une version et "Restaurer" ou "Ouvrir"
Etape 3.2: Methode ligne de commande
# Lister les Shadow Copies avec leurs chemins
$shadows = Get-WmiObject Win32_ShadowCopy
foreach ($shadow in $shadows) {
Write-Host "Date: $($shadow.InstallDate)" -ForegroundColor Yellow
Write-Host "Path: $($shadow.DeviceObject)"
Write-Host ""
}
Etape 3.3: Monter une Shadow Copy
# Obtenir le chemin de la shadow copy
$shadow = Get-WmiObject Win32_ShadowCopy | Select-Object -Last 1
$shadowPath = $shadow.DeviceObject
# Creer un lien symbolique
$linkPath = "C:\ShadowMount"
cmd /c mklink /d $linkPath "$shadowPath\"
# Explorer la shadow copy
Get-ChildItem $linkPath
# Acceder aux fichiers
Get-ChildItem "$linkPath\Users" -ErrorAction SilentlyContinue
Etape 3.4: Explorer via chemin UNC
Les Shadow Copies sont accessibles via un chemin special:
# Format: \\localhost\C$\@GMT-YYYY.MM.DD-HH.MM.SS\
# Mais plus facile via le DeviceObject
# Lister un dossier specifique dans la shadow
$shadowPath = (Get-WmiObject Win32_ShadowCopy | Select-Object -Last 1).DeviceObject
cmd /c dir "$shadowPath\Windows\System32\config\" 2>$null
Partie 4: Implications Securite
Etape 4.1: Risques de securite
Donnees sensibles dans les Shadow Copies:
- Fichiers de configuration avec mots de passe
- Bases de donnees
- Fichiers supprimes "definitivement"
- Historique de modifications
Etape 4.2: Demonstration - Recuperer un fichier supprime
# 1. Creer un fichier "sensible"
$testFile = "C:\Temp\fichier_secret.txt"
New-Item -Path "C:\Temp" -ItemType Directory -Force | Out-Null
"Mot de passe: SuperSecret123!" | Out-File $testFile
Write-Host "Fichier cree: $testFile" -ForegroundColor Green
# 2. Creer une Shadow Copy
$class = [WMICLASS]"root\cimv2:Win32_ShadowCopy"
$shadow = $class.Create("C:\", "ClientAccessible")
Start-Sleep -Seconds 2
Write-Host "Shadow Copy creee" -ForegroundColor Green
# 3. Supprimer le fichier
Remove-Item $testFile -Force
Write-Host "Fichier supprime" -ForegroundColor Yellow
# 4. Verifier qu'il est vraiment supprime
if (-not (Test-Path $testFile)) {
Write-Host "Fichier confirme supprime" -ForegroundColor Yellow
}
# 5. Recuperer depuis la Shadow Copy
$latestShadow = Get-WmiObject Win32_ShadowCopy | Select-Object -Last 1
$shadowPath = $latestShadow.DeviceObject
# Acceder au fichier dans la shadow
$recoveredPath = "$shadowPath\Temp\fichier_secret.txt"
$content = cmd /c type "$recoveredPath" 2>$null
if ($content) {
Write-Host "`nFichier RECUPERE depuis Shadow Copy:" -ForegroundColor Red
Write-Host $content -ForegroundColor Red
} else {
Write-Host "Note: Le fichier doit avoir ete cree AVANT la shadow copy"
}
Question 2: Pourquoi est-ce un risque de securite?
Etape 4.3: Implications pour les attaquants
Les attaquants peuvent utiliser les Shadow Copies pour:
- Recuperer des fichiers supprimes (credentials, configs)
- Contourner les protections (fichiers verrouilles)
- Extraire des donnees historiques (anciennes versions de fichiers)
Etape 4.4: Acces aux fichiers systeme sensibles
# Les fichiers SAM/SYSTEM sont normalement verrouilles
# Mais accessibles via Shadow Copy!
$shadow = (Get-WmiObject Win32_ShadowCopy | Select-Object -Last 1).DeviceObject
# Verifier si on peut lister les fichiers de config
$configPath = "$shadow\Windows\System32\config"
Write-Host "Fichiers dans la Shadow Copy:" -ForegroundColor Yellow
cmd /c dir "$configPath" 2>$null
# Note: Copier ces fichiers permettrait d'extraire les hash
# C'est utilise par des outils comme secretsdump
Partie 5: Protection et Nettoyage
Etape 5.1: Supprimer les Shadow Copies
Attention: A utiliser avec precaution en production!
# Supprimer TOUTES les shadow copies (DANGEREUX!)
# vssadmin delete shadows /all /quiet
# Supprimer la plus ancienne
# vssadmin delete shadows /for=C: /oldest /quiet
# Supprimer par ID
$shadowId = (Get-WmiObject Win32_ShadowCopy | Select-Object -First 1).ID
# Get-WmiObject Win32_ShadowCopy | Where-Object {$_.ID -eq $shadowId} | Remove-WmiObject
Etape 5.2: Limiter l'espace des Shadow Copies
# Voir l'espace utilise
vssadmin list shadowstorage
# Limiter l'espace (ex: 10% du volume)
# vssadmin resize shadowstorage /for=C: /maxsize=10%
Etape 5.3: Script de securisation
# Script de verification des Shadow Copies
Write-Host "=== AUDIT SHADOW COPIES ===" -ForegroundColor Cyan
# Compter les shadow copies
$shadows = Get-WmiObject Win32_ShadowCopy
Write-Host "`nNombre de Shadow Copies: $($shadows.Count)"
# Espace utilise
Write-Host "`nEspace Shadow Storage:" -ForegroundColor Yellow
vssadmin list shadowstorage 2>$null
# Lister les dates
if ($shadows) {
Write-Host "`nShadow Copies disponibles:" -ForegroundColor Yellow
foreach ($s in $shadows) {
$date = [Management.ManagementDateTimeConverter]::ToDateTime($s.InstallDate)
Write-Host " - $date"
}
}
# Recommandations
Write-Host "`n=== RECOMMANDATIONS ===" -ForegroundColor Cyan
Write-Host "1. Limiter l'espace de stockage VSS"
Write-Host "2. Supprimer regulierement les anciennes copies"
Write-Host "3. Ne pas stocker de donnees sensibles en clair"
Write-Host "4. Surveiller l'acces aux Shadow Copies"
Etape 5.4: Nettoyage du lab
# Supprimer le lien symbolique
if (Test-Path "C:\ShadowMount") {
cmd /c rmdir "C:\ShadowMount"
}
# Supprimer les fichiers de test
Remove-Item "C:\Temp\fichier_secret.txt" -Force -ErrorAction SilentlyContinue
Write-Host "Nettoyage termine" -ForegroundColor Green
Livrables
-
Reponses aux 2 questions
-
Captures d'ecran:
- Liste des Shadow Copies
- Acces aux versions precedentes
- Demonstration de recuperation
-
Rapport (1 page):
- Fonctionnement des Shadow Copies
- Risques de securite identifies
- Recommandations de protection
Criteres d'Evaluation
| Critere | Points |
|---|---|
| Creation Shadow Copy | 25% |
| Acces aux donnees | 30% |
| Comprehension securite | 25% |
| Recommandations | 20% |
Commandes de Reference
# Service
Get-Service VSS
Start-Service VSS
# Lister
vssadmin list shadows
Get-WmiObject Win32_ShadowCopy
# Creer
Checkpoint-Computer -Description "Test"
([WMICLASS]"root\cimv2:Win32_ShadowCopy").Create("C:\", "ClientAccessible")
# Supprimer
vssadmin delete shadows /for=C: /oldest
# Espace
vssadmin list shadowstorage
vssadmin resize shadowstorage /for=C: /maxsize=10%
Ressources
Lab developpe dans le cadre du cours Systemes d'Exploitation - MODULE 4