Aller au contenu principal

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​

  1. Clic droit sur un fichier ou dossier
  2. Proprietes
  3. Onglet "Versions precedentes"
  4. 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:

  1. Recuperer des fichiers supprimes (credentials, configs)
  2. Contourner les protections (fichiers verrouilles)
  3. 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​

  1. Reponses aux 2 questions

  2. Captures d'ecran:

    • Liste des Shadow Copies
    • Acces aux versions precedentes
    • Demonstration de recuperation
  3. Rapport (1 page):

    • Fonctionnement des Shadow Copies
    • Risques de securite identifies
    • Recommandations de protection

Criteres d'Evaluation​

CriterePoints
Creation Shadow Copy25%
Acces aux donnees30%
Comprehension securite25%
Recommandations20%

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