INTRODUCTION
Microsoft a publié le Bulletin de sécurité MS14-025. Pour en savoir plus sur ce bulletin de sécurité :
Utilisateurs à domicile :
https://www.microsoft.com/security/pc-security/updates.aspx Passez les détails : téléchargez maintenant les mises à jour pour votre ordinateur personnel ou portable à partir du site web Microsoft Update :
Professionnels de l’informatique :
Procédure pour obtenir de l’aide et un support pour cette mise à jour de sécurité
Aide à l'installation des mises à jour :
Support pour Microsoft Update
Solutions de sécurité pour professionnels de l’informatique :
Résolution des problèmes de sécurité et support TechNet
Protégez votre ordinateur Windows contre les virus et les logiciels malveillants :
Aide et Support pour les problèmes de virus et de sécurité
Support local selon votre pays/région :
International Support
Informations supplémentaires
Problèmes connus et informations supplémentaires relatives à cette mise à jour de sécurité
Les articles suivants contiennent plus d’informations sur cette mise à jour de sécurité, car elle concerne des versions de produit individuelles. Les articles peuvent contenir des informations sur les problèmes connus. Si c’est le cas, le problème connu est répertorié sous chaque lien d’article.
-
MS14-025 : Description de la mise à jour de sécurité des outils d’administration de serveur distant Windows pour les systèmes sur lesquels des 2919355 de mise à jour sont installées en date du 13 mai 2014
-
MS14-025 : Description de la mise à jour de sécurité des outils d’administration de serveur distant Windows pour les systèmes sur lesquels aucune 2919355 de mise à jour n’est installée datée du 13 mai 2014
Préférences en matière de stratégie de groupe
Présentation
Certaines préférences de stratégie de groupe peuvent stocker un mot de passe. Cette fonctionnalité est supprimée, car le mot de passe a été stocké de manière non sécurisée. Cet article décrit les modifications apportées à l’interface utilisateur et les solutions de contournement disponibles.
La stratégie de groupe Préférences suivante n’autorise plus l’enregistrement des noms d’utilisateur et des mots de passe :
- Cartes de lecteur
- Utilisateurs et groupes locaux
- Tâches planifiées
- Services
- Sources de données
Cela affectera le comportement de tous les objets de stratégie de groupe (GPO) existants dans votre environnement qui s’appuient sur des mots de passe contenus dans ces préférences. Elle empêche également la création de préférences de stratégie de groupe à l’aide de cette fonctionnalité.
Pour les cartes de lecteurs, les utilisateurs et groupes locaux, ainsi que les services, vous pourrez peut-être atteindre des objectifs similaires avec d’autres fonctionnalités plus sécurisées dans Windows.
Pour les tâches planifiées et les sources de données, vous ne pourrez pas atteindre les mêmes objectifs que ceux qui étaient disponibles avec la fonctionnalité non sécurisée des mots de passe de préférences de stratégie de groupe.
Scénarios
Les préférences de la stratégie de groupe suivantes sont affectées par cette modification. Chaque préférence est traitée brièvement, puis plus en détail. De plus, des solutions de contournement vous sont fournies pour vous permettre d’effectuer les mêmes tâches.
| Préférence affectée | S’applique à l’utilisateur |
S’applique à l’ordinateur |
|---|---|---|
| Gestion des utilisateurs locaux | Oui | Oui |
| Lecteurs mappés | Oui | Non |
| Services | Non | Oui |
| Tâches planifiées (niveau supérieur) | Oui | Oui |
| Tâches planifiées (niveau inférieur) | Oui | Oui |
| Tâches immédiates (niveau supérieur) | Oui | Oui |
| Tâches immédiates (niveau inférieur) | Oui | Oui |
| Sources de données | Oui | Oui |
Récapitulatif des changements
- Les champs de mot de passe de toutes les préférences concernées sont désactivés. Les administrateurs ne peuvent pas créer de préférences à l’aide de ces champs de mot de passe.
- Le champ du nom d’utilisateur est désactivé dans certaines préférences.
- Les préférences existantes qui contiennent un mot de passe ne peuvent pas être mises à jour. Ils ne peuvent être supprimés ou désactivés qu’en fonction des préférences spécifiques.
- Le comportement des actions de suppression et de désactivation n’a pas changé pour les préférences.
- Lorsqu’un administrateur ouvre une préférence qui contient l’attribut CPassword, la boîte de dialogue d’avertissement suivante s’affiche pour l’informer de la récente obsolescence. Les tentatives d’enregistrement des modifications apportées aux préférences nouvelles ou existantes qui nécessitent l’attribut CPassword déclencheront la même boîte de dialogue. Seules les actions Supprimer et Désactiver ne déclencheront pas de boîtes de dialogue d’avertissement.
Scénario 1 : Gestion des utilisateurs locaux
La préférence Gestion des utilisateurs locaux est souvent utilisée pour créer des administrateurs locaux qui ont un mot de passe connu sur un ordinateur. Cette fonctionnalité n’est pas sécurisée en raison de la manière dont les préférences de stratégie de groupe stockent les mots de passe. Par conséquent, cette fonctionnalité n’est plus disponible. Les préférences suivantes sont concernées :
- Configuration ordinateur -> Paramètres du panneau de configuration -> Utilisateurs et groupes locaux -> Nouveau -> Utilisateur local
- Configuration utilisateur -> Paramètres du panneau de configuration -> Utilisateurs et groupes locaux -> Nouveau -> Utilisateur local
Modifications importantes
Action : Créer ou remplacer
- Les champs Nom d’utilisateur, Mot de passe et Confirmer le mot de passe sont désactivés.
- La boîte de dialogue d’avertissement s’affiche lorsque l’administrateur ouvre ou essaie d’enregistrer les modifications apportées à une préférence existante contenant un mot de passe.
Action : mettre à jour
- Les champs Mot de passe et Confirmer le mot de passe sont désactivés.
- La boîte de dialogue d’avertissement s’affiche lorsque l’administrateur ouvre ou essaie d’enregistrer les modifications apportées à une préférence existante contenant un mot de passe.
Action : Supprimer
- Aucun changement de comportement
Solutions de contournement
Pour ceux qui se sont précédemment appuyés sur la préférence de stratégie de groupe pour définir des mots de passe d’administrateur local, le script suivant est fourni en tant qu’alternative sécurisée à CPassword. Copiez et enregistrez le contenu dans un nouveau fichier Windows PowerShell, puis exécutez le script comme indiqué dans son . EXEMPLE de section.
Microsoft fournit des exemples de programmation à des fins d’illustration uniquement, sans garantie exprimée ou implicite. Cela inclut, sans s’y limiter, les garanties implicites de qualité commerciale ou d’adéquation à un usage particulier. Cet article part du principe que vous êtes familiarisé avec le langage de programmation présenté et avec les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support Microsoft peuvent vous aider à expliquer les fonctionnalités d’une procédure particulière. Toutefois, ils ne modifient pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures pour répondre à vos besoins spécifiques.
fonction Invoke-PasswordRoll
{
<#
. SYNOPSIS
Ce script peut être utilisé pour définir les mots de passe des comptes locaux sur les ordinateurs distants sur des mots de passe aléatoires. La combinaison nom d’utilisateur/mot de passe/serveur sera enregistrée dans un fichier CSV.
Les mots de passe de compte stockés dans le fichier CSV peuvent être chiffrés à l’aide d’un mot de passe des administrateurs qui choisissent de s’assurer que les mots de passe de compte en texte clair ne sont pas écrits sur le disque.
Les mots de passe chiffrés peuvent être déchiffrés à l’aide d’une autre fonction dans ce fichier : ConvertTo-CleartextPassword
Fonction : Invoke-PasswordRoll
Auteur : Microsoft
Version : 1.0
. DESCRIPTIF
Ce script peut être utilisé pour définir les mots de passe des comptes locaux sur les ordinateurs distants sur des mots de passe aléatoires. La combinaison nom d’utilisateur/mot de passe/serveur sera enregistrée dans un fichier CSV.
Les mots de passe de compte stockés dans le fichier CSV peuvent être chiffrés à l’aide d’un mot de passe des administrateurs qui choisissent de s’assurer que les mots de passe de compte en texte clair ne sont pas écrits sur le disque.
Les mots de passe chiffrés peuvent être déchiffrés à l’aide d’une autre fonction dans ce fichier : ConvertTo-CleartextPassword
. PARAMETER ComputerName
Tableau d’ordinateurs sur lesquels exécuter le script à l’aide de la communication à distance PowerShell.
. PARAMETER LocalAccounts
Tableau de comptes locaux dont le mot de passe doit être modifié.
. PARAMETER TsvFileName
Fichier vers lequel envoyer les combinaisons nom d’utilisateur/mot de passe/serveur.
. PARAMETER EncryptionKey
Mot de passe pour chiffrer le fichier TSV. Utilise le chiffrement AES. Seuls les mots de passe stockés dans le fichier TSV seront chiffrés, le nom d’utilisateur et le nom du serveur seront en texte clair.
. PARAMETER PasswordLength
Longueur des mots de passe qui seront générés de façon aléatoire pour les comptes locaux.
. PARAMETER NoEncryption
Ne chiffrez pas les mots de passe des comptes stockés dans le fichier TSV. Cela entraîne l’écriture des mots de passe en texte clair sur le disque.
. EXEMPLE
. .\Invoke-PasswordRoll.ps1 #Loads les fonctions dans ce fichier de script
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @(« administrator »,"CustomLocalAdmin ») -TsvFileName « LocalAdminCredentials.tsv » -EncryptionKey « Password1 »
Se connecte à tous les ordinateurs stockés dans le fichier « computerlist.txt ». Si le compte local « administrateur » et/ou « CustomLocalAdmin » sont présents sur le système, leur mot de passe est modifié
à un mot de passe généré de façon aléatoire de longueur 20 (valeur par défaut). Les combinaisons nom d’utilisateur/mot de passe/serveur sont stockées dans LocalAdminCredentials.tsv, et les mots de passe des comptes sont chiffrés AES à l’aide du mot de passe « Password1 ».
. EXEMPLE
. .\Invoke-PasswordRoll.ps1 #Loads les fonctions dans ce fichier de script
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @(« administrator ») -TsvFileName « LocalAdminCredentials.tsv » -NoEncryption -PasswordLength 40
Se connecte à tous les ordinateurs stockés dans le fichier « computerlist.txt ». Si le compte local « administrateur » est présent sur le système, son mot de passe est remplacé par un mot de passe généré de façon aléatoire
mot de passe de longueur 40. Les combinaisons nom d’utilisateur/mot de passe/serveur sont stockées dans LocalAdminCredentials.tsv non chiffrées.
. REMARQUES
Configuration requise :
- PowerShellv2 ou version ultérieure doit être installé
- La communication à distance PowerShell doit être activée sur tous les systèmes sur lesquels le script sera exécuté
Comportement du script :
-Si un compte local est présent sur le système, mais non spécifié dans le paramètre LocalAccounts, le script écrit un avertissement à l’écran pour vous avertir de la présence de ce compte local. Dans ce cas, le script continue de s’exécuter.
-Si un compte local est spécifié dans le paramètre LocalAccounts, mais que le compte n’existe pas sur l’ordinateur, rien ne se passera (aucun compte ne sera PAS créé).
- La fonction ConvertTo-CleartextPassword, contenue dans ce fichier, peut être utilisée pour déchiffrer les mots de passe stockés chiffrés dans le fichier TSV.
- Si un serveur spécifié dans ComputerName ne peut pas être connecté, PowerShell affiche un message d’erreur.
-Microsoft conseille aux entreprises de renouveler régulièrement tous les mots de passe des comptes locaux et de domaine.
#>
[CmdletBinding(DefaultParameterSetName="Encryption »)]
param(
[Parameter(Mandatory=$true)]
[chaîne[]]
$ComputerName,
[Parameter(Mandatory=$true)]
[chaîne[]]
$LocalAccounts,
[Parameter(Mandatory=$true)]
[chaîne]
$TsvFileName,
[Parameter(ParameterSetName="Encryption », Mandatory=$true)]
[chaîne]
$EncryptionKey,
[Parameter()]
[ValidateRange(20,120)]
[Int]
$PasswordLength = 20,
[Parameter(ParameterSetName="NoEncryption », Mandatory=$true)]
[Basculer]
$NoEncryption
)
#Load toutes les classes .NET nécessaires
Add-Type -AssemblyName « System.Web » -ErrorAction Stop
#This est le bloc de script qui sera exécuté sur chaque ordinateur spécifié dans ComputerName
$RemoteRollScript = {
param(
[Parameter(Mandatory=$true, Position=1)]
[chaîne[]]
$Passwords,
[Parameter(Mandatory=$true, Position=2)]
[chaîne[]]
$LocalAccounts,
#This est ici pour que je puisse enregistrer le nom du serveur auquel le script s’est connecté, parfois les enregistrements DNS sont foirés, cela peut être agréable d’avoir ça.
[Parameter(Mandatory=$true, Position=3)]
[chaîne]
$TargettedServerName
)
$LocalUsers = Get-WmiObject Win32_UserAccount -filtre « LocalAccount=true » | Foreach {$_. Nom}
#Check si l’ordinateur comporte des comptes d’utilisateurs locaux dont les mots de passe ne seront pas roulés par ce script
foreach ($User dans $LocalUsers)
{
if ($LocalAccounts -inotcontains $User)
{
Write-Warning « Le serveur : '$($TargettedServerName)' a un compte local '$($User)' dont le mot de passe n’est PAS modifié par ce script »
}
}
#For chaque compte local spécifié qui existe sur ce serveur, modifiez le mot de passe
$PasswordIndex = 0
foreach ($LocalAdmin dans $LocalAccounts)
{
$Password = $Passwords[$PasswordIndex]
if ($LocalUsers -contient $LocalAdmin)
{
essai
{
$objUser = [ADSI]"WinNT ://localhost/$($LocalAdmin), user »
$objUser.psbase.Invoke(« SetPassword », $Password)
$Properties = @{
TargettedServerName = $TargettedServerName
Nom d’utilisateur = $LocalAdmin
Mot de passe = $Password
RealServerName = $env :computername
}
$ReturnData = New-Object PSObject -Property $Properties
Write-Output $ReturnData
}
piège
{
Write-Error « Erreur lors de la modification du mot de passe de l’utilisateur :$($LocalAdmin) sur le serveur :$($TargettedServerName) »
}
}
$PasswordIndex++
}
}
#Generate le mot de passe sur le client exécutant ce script, et non sur l’ordinateur distant. System.Web.Security n’est pas disponible dans le profil client .NET. Effectuer cet appel
# sur le client, l’exécution du script garantit qu’un seul ordinateur a besoin de l’intégralité du runtime .NET (par opposition à chaque système ayant le mot de passe déployé).
fonction Create-RandomPassword
{
param(
[Parameter(Mandatory=$true)]
[ValidateRange(20,120)]
[Int]
$PasswordLength
)
$Password = [System.Web.Security.Membership] ::GeneratePassword($PasswordLength, $PasswordLength / 4)
#This ne devrait jamais échouer, mais je mets un case activée de bon sens ici quand même
if ($Password.Length -ne $PasswordLength)
{
throw new Exception("Le mot de passe renvoyé par GeneratePassword n’est pas de la même longueur que celle requise. Longueur requise : ($PasswordLength $). Generated length : $($Password.Length)")
}
Retour $Password
}
#Main fonctionnalité : générez un mot de passe et connectez-vous à distance aux machines pour modifier le mot de passe des comptes locaux spécifiés
if ($PsCmdlet.ParameterSetName -ieq « Encryption »)
{
essai
{
$Sha 256 = nouvel objet System.Security.Cryptography.SHA256CryptoServiceProvider
$SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding] ::Unicode.GetBytes($EncryptionKey))
}
piège
{
Write-Error « Erreur lors de la création de la clé de chiffrement TSV » -ErrorAction Stop
}
}
foreach ($Computer dans $ComputerName)
{
#Need générer 1 mot de passe pour chaque compte qui peut être modifié
$Passwords = @()
for ($i = 0 ; $i -lt $LocalAccounts.Length ; $i++)
{
$Passwords += Create-RandomPassword -PasswordLength $PasswordLength
}
Write-Output « Connexion au serveur '$($Computer)' pour cumuler les mots de passe d’administrateur locaux spécifiés »
$Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer
#If le chiffrement est utilisé, chiffrez le mot de passe à l’aide de la clé fournie par l’utilisateur avant d’écrire sur le disque
if ($Result -ne $null)
{
if ($PsCmdlet.ParameterSetName -ieq « NoEncryption »)
{
$Result | Select-Object nom d’utilisateur,mot de passe,nom_serveurcible ;nom de serveur réel | Export-Csv -append -path $TsvFileName -NoTypeInformation
}
else
{
#Filters les entrées $null renvoyées
$Result = $Result | Select-Object Username,Password,TargettedServerName,RealServerName
foreach ($Record dans $Result)
{
$PasswordSecureString = ConvertTo-SecureString -AsPlainText -Force -string ($Record.Password)
$Record | Add-Member -MemberType NoteProperty -Name EncryptedPassword -value (ConvertFrom-SecureString -Key $SecureStringKey -SecureString $PasswordSecureString)
$Record.PSObject.Properties.Remove(« Password »)
$Record | Select-Object nom d’utilisateur,mot de passecrypté,nom_serveurcible ;nom de serveur réel | Export-Csv -append -path $TsvFileName -NoTypeInformation
}
}
}
}
}
fonction ConvertTo-CleartextPassword
{
<#
. SYNOPSIS
Cette fonction peut être utilisée pour déchiffrer les mots de passe qui ont été stockés chiffrés par la fonction Invoke-PasswordRoll.
Fonction : ConvertTo-CleartextPassword
Auteur : Microsoft
Version : 1.0
. DESCRIPTIF
Cette fonction peut être utilisée pour déchiffrer les mots de passe qui ont été stockés chiffrés par la fonction Invoke-PasswordRoll.
. PARAMETER EncryptedPassword
Mot de passe chiffré stocké dans un fichier TSV.
. PARAMETER EncryptionKey
Mot de passe utilisé pour effectuer le chiffrement.
. EXEMPLE
. .\Invoke-PasswordRoll.ps1 #Loads les fonctions dans ce fichier de script
ConvertTo-CleartextPassword -EncryptionKey « Password1 » -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGI amabiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA »
Déchiffre le mot de passe chiffré qui a été stocké dans le fichier TSV.
#>
param(
[Parameter(Mandatory=$true)]
[chaîne]
$EncryptedPassword,
[Parameter(Mandatory=$true)]
[chaîne]
$EncryptionKey
)
$Sha 256 = nouvel objet System.Security.Cryptography.SHA256CryptoServiceProvider
$SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding] ::Unicode.GetBytes($EncryptionKey))
[SecureString]$SecureStringPassword = ConvertTo-SecureString -string $EncryptedPassword -key $SecureStringKey
Write-Output ([System.Runtime.InteropServices.Marshal] ::P trToStringAuto([System.Runtime.InteropServices.Marshal] ::SecureStringToCoTaskMemUnicode($SecureStringPassword)))
}
Les administrateurs peuvent ajouter des comptes d’administrateur locaux aux ordinateurs en créant un groupe Active Directory et en l’ajoutant au groupe Administrateurs local via la fonctionnalité Préférences de stratégie de groupe -> Groupe local. Cette action ne met pas en cache les informations d’identification. La boîte de dialogue ressemble à ce qui suit. Cette solution de contournement nécessite une connexion aux services de domaine Active Directory lorsque l’utilisateur est connecté à l’aide de ces informations d’identification.
Scénario 2 : Lecteurs mappés
Les administrateurs utilisent des cartes de lecteurs pour allouer des emplacements réseau aux utilisateurs. La fonction de protection par mot de passe est utilisée pour garantir l’accès autorisé au lecteur. Les préférences suivantes sont concernées :
- Configuration utilisateur -> Paramètres Windows -> Cartes de lecteur -> Nouveau -> Lecteur mappé
Modifications importantes
Action : créer, mettre à jour ou remplacer
- Les champs Nom d’utilisateur, Mot de passe et Confirmer le mot de passe sont désactivés.
Action : Supprimer
- Aucun changement de comportement
Solutions de contournement
Au lieu d’utiliser la méthode par mot de passe pour l’authentification, vous pouvez utiliser l’Explorateur Windows pour gérer les autorisations de partage et attribuer les droits aux utilisateurs. Vous pouvez utiliser des objets Active Directory pour contrôler les autorisations sur le dossier.
Scénario 3 : Services
Vous pouvez utiliser la préférence Services pour modifier les propriétés du service de sorte qu’elles s’exécutent dans un contexte autre que leur contexte de sécurité d’origine. Les préférences suivantes sont concernées :
- Configuration ordinateur -> Paramètres du Panneau de configuration -> Services -> Nouveau -> Service
Modifications importantes
Démarrage : Aucun changement, automatique ou manuel
- Les champs Mot de passe et Confirmer le mot de passe sont désactivés.
- L’administrateur ne peut utiliser que des comptes intégrés.
Démarrage : désactiver
- Aucun changement de comportement
Nouvelle boîte de dialogue
- Les administrateurs qui essaient d’utiliser des utilisateurs non intégrés pour ce compte » reçoivent l’avertissement suivant :
Solutions de contournement
Les services peuvent toujours s’exécuter en tant que compte système local. Les autorisations de service peuvent être modifiées comme indiqué dans l’article suivant de la Base de connaissances Microsoft :
256345 Procédure pour configurer les paramètres stratégie de groupe de sécurité des services système
Remarque Si le service que vous souhaitez configurer n’est pas présent, vous devez configurer les paramètres sur un ordinateur sur lequel le service est en cours d’exécution.
Scénario 4 : Tâches planifiées et immédiates (niveau supérieur)
Ils sont utilisés pour exécuter des tâches planifiées dans un contexte de sécurité spécifique. La possibilité de stocker les informations d’identification pour des tâches planifiées à exécuter en tant qu’utilisateur arbitraire lorsque cet utilisateur n’est pas connecté n’est plus disponible. Les préférences suivantes sont affectées. (Veuillez noter que sur certaines plateformes, « Au moins Windows 7 » est remplacé par « Windows Vista et versions ultérieures ».)
- Configuration ordinateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche planifiée (Windows 7 au minimum)
- Configuration ordinateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche immédiate (Windows 7 au minimum)
- Configuration utilisateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche planifiée (Windows 7 au minimum)
- Configuration utilisateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche immédiate (Windows 7 au minimum)
Modifications importantes
Action : créer, mettre à jour ou remplacer
- Lorsque vous sélectionnez l’option Exécuter, que l’utilisateur soit connecté ou non , une boîte de dialogue ne demande plus à l’administrateur d’entrer des informations d’identification.
- La case à cocher Ne pas stocker le mot de case activée est désactivée. Par défaut, la case est également cochée.
Action : Supprimer
Aucun changement de comportement
Solutions de contournement
Pour les tâches « Tâche planifiée (Windows 7 au moins) » et « Tâche immédiate (Windows 7 au moins) », les administrateurs peuvent utiliser des comptes d’utilisateur spécifiques lorsque l’utilisateur concerné est connecté. Ou bien, il peut uniquement avoir accès aux ressources locales en tant qu’utilisateur. Ces tâches peuvent toujours s’exécuter dans le contexte du service local.
Scénario 5 : Tâches planifiées et immédiates (niveau inférieur) Il s’agit de la version de niveau inférieur des préférences utilisées pour exécuter des tâches planifiées dans un contexte de sécurité spécifique. La possibilité de stocker les informations d’identification pour des tâches planifiées à exécuter en tant qu’utilisateur arbitraire lorsque cet utilisateur n’est pas connecté n’est plus disponible. Les préférences suivantes sont concernées :
- Configuration ordinateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche planifiée
- Configuration ordinateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche immédiate (Windows XP)
- Configuration utilisateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche planifiée
- Configuration utilisateur -> Paramètres du Panneau de configuration -> Tâches planifiées -> Nouveau -> Tâche immédiate (Windows XP)
Modifications importantes
Action : créer, mettre à jour ou remplacer
- La case à cocher Exécuter en tant que case activée est désactivée. Par conséquent, les champs Nom d’utilisateur, Mot de passe et Confirmer le mot de passe sont tous désactivés.
Action : Supprimer
Aucun changement de comportement
Solutions de contournement
Pour les éléments « Tâche planifiée » et « Tâche immédiate (Windows XP) », les tâches planifiées s’exécutent en utilisant les autorisations actuellement disponibles pour le service local.
Scénario 6 : Sources de données
La préférence Sources de données est utilisée pour associer une source de données à un ordinateur ou à un utilisateur. Cette fonctionnalité ne stocke plus les informations d’identification pour permettre l’accès aux sources de données protégées par un mot de passe. Les préférences suivantes sont concernées :
- Configuration ordinateur -> Paramètres du panneau de configuration -> Sources de données
- Configuration utilisateur -> Paramètres du panneau de configuration -> Sources de données
Changements importants
Action : créer, mettre à jour ou remplacer
- Les champs Nom d’utilisateur, Mot de passe et Confirmer le mot de passe sont désactivés :
Action : Supprimer
- Aucun changement de comportement
Solutions de contournement
Aucune solution de contournement n’est disponible. Cette préférence ne stocke plus les informations d’identification pour permettre l’accès aux sources de données protégées par un mot de passe.
Dépréciation de CPassword
Suppression de CPassword
Le script Windows PowerShell inclus dans cet article de la Base de connaissances Microsoft détecte si un domaine contient des préférences de stratégie de groupe susceptibles d’utiliser CPassword. Si le XML CPassword est détecté dans une préférence donnée, il est affiché dans cette liste.
Détection des préférences de CPassword
Ce script doit être exécuté à partir d’un répertoire local sur le contrôleur de domaine que vous souhaitez propre. Copiez et enregistrez le contenu dans un nouveau fichier Windows PowerShell, déterminez votre lecteur système, puis exécutez le script comme indiqué dans l’utilisation suivante.
<#
. SYNOPSIS
Les objets de stratégie de groupe de votre domaine peuvent avoir des préférences qui stockent les mots de passe pour différentes tâches, par exemple :
1. Sources de données
2. Cartes de lecteur
3. Utilisateurs locaux
4. Tâches planifiées (XP et niveau supérieur)
5. Services
Ces mots de passe sont stockés dans SYSVOL dans le cadre des préférences de la stratégie de groupe et ne sont pas sécurisés en raison de la faiblesse du chiffrement (AES 32 octets).
Par conséquent, nous vous recommandons de ne pas déployer de telles préférences dans votre environnement de domaine et de supprimer les préférences existantes
préférences. Ce script permet aux administrateurs de trouver les préférences de la stratégie de groupe dans le SYSVOL de leur domaine qui contient les mots de passe.
. DESCRIPTIF
Ce script doit être exécuté sur un contrôleur de domaine ou un ordinateur client installé avec les outils RSAT pour imprimer toutes les préférences qui contiennent
mot de passe avec des informations telles que GPO, nom de préférence, chemin GPEdit sous lequel cette préférence est définie.
Une fois que vous disposez d’une liste de préférences affectées, ces préférences peuvent être supprimées à l’aide de l’éditeur dans la console de gestion de la stratégie de groupe.
. SYNTAXE
Get-SettingsWithCPassword.ps1 [-path <string>]
. EXEMPLE
Get-SettingsWithCPassword.ps1 -Path %WinDir %\SYSVOL\domain
Get-SettingsWithCPassword.ps1 -Path <Chemin d’accès du dossier de sauvegarde de l’objet de stratégie de groupe>
. REMARQUES
Si le module PS de la stratégie de groupe est introuvable, la sortie contiendra les GUID des objets de stratégie de groupe au lieu des noms des objets de stratégie de groupe. Vous pouvez exécuter
ce script sur un contrôleur de domaine ou réexécutez le script sur le client après avoir installé RSAT et
activation du module de stratégie de groupe.
Vous pouvez également utiliser les GUID d’objet de stratégie de groupe pour obtenir des noms d’objet de stratégie de groupe à l’aide de l’applet de commande Get-GPO.
. LIEN
http://go.microsoft.com/fwlink/?LinkID=390507
#>
#----------------------------------------------------------------------------------------------------------------
# Paramètres d’entrée #--------------------------------------------------------------------------------------------------------------
param(
[string]$Path = $(throw « -Path is required. ») # Chemin d’accès du répertoire où se trouvent les GPP.
)
#---------------------------------------------------------------------------------------------------------------
$isGPModuleAvailable = $false
$impactedPrefs = { « Groups.xml », « ScheduledTasks.xml »,"Services.xml », « DataSources.xml », « Drives.xml » }
#----------------------------------------------------------------------------------------------------------------
# import Group olicy module if available #----------------------------------------------------------------------------------------------------------------
if (-not (Get-Module -name « GroupPolicy »))
{
if (Get-Module -ListAvailable |
Where-Object { $_. Name -ieq « GroupPolicy » })
{
$isGPModuleAvailable = $true
Import-Module « GroupPolicy »
}
else
{
Write-Warning « Impossible d’importer stratégie de groupe module pour PowerShell. Par conséquent, les GUID GPO seront signalés.
Exécutez ce script sur le contrôleur de domaine pour obtenir les noms des objets de stratégie de groupe, ou utilisez l’applet de commande Get-GPO (sur le contrôleur de domaine) pour obtenir le nom de l’objet GPO à partir du GUID de l’objet GPO. »
}
}
else
{
$isGPModuleAvailable = $true
}
Function Enum-SettingsWithCpassword ( [string]$sysvolLocation )
{
# Chemins d’arborescence GPMC
$commonPath = " -> Préférences -> Paramètres Panneau de configuration -> »
$driveMapPath = " -> Préférences -> Paramètres Windows -> »
# Obtenir récursivement tous les fichiers xml dans l’emplacement SYVOL
$impactedXmls = Get-ChildItem $sysvolLocation -récurse -filtre « *.xml » | Where-Object { $impactedPrefs -cmatch $_. Nom }
# Chaque fichier XML contient plusieurs préférences. Itérez sur chaque préférence pour vérifier si sa case activée
# contient l’attribut cpassword et l’affiche.
foreach ( $file in $impactedXmls )
{
$fileFullPath = $file. Nom complet
# Définissez la catégorie GPP. Si le fichier se trouve sous le dossier Machine dans SYSVOL
# le paramètre est défini sous configuration de l’ordinateur, sinon
# Le paramètre est destiné à la configuration utilisateur
if ( $fileFullPath.Contains(« Machine ») )
{
$category = « Configuration de l’ordinateur »
}
elseif ( $fileFullPath.Contains(« User ») )
{
$category = « Configuration Utilisateur »
}
else
{
$category = « Inconnu »
}
# Obtenir le contenu du fichier au format XML
essai
{
[xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue
}
catch [Exception]{
Write-Host $_. Exception.Message
}
if ($xmlFile -eq $null)
{
continuer
}
switch ( $file. BaseName )
{
Groupes
{
$gppWithCpassword = $xmlFile.SelectNodes(« Groups/User ») | where-Object { [String] ::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = « Utilisateurs locaux »
}
ScheduledTasks
{
$gppWithCpassword = $xmlFile.SelectNodes(« ScheduledTasks/* ») | where-Object { [String] ::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = « Tâches planifiées »
}
DataSources
{
$gppWithCpassword = $xmlFile.SelectNodes(« DataSources/DataSource ») | where-Object { [String] ::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = « Sources de données »
}
Lecteurs
{
$gppWithCpassword = $xmlFile.SelectNodes(« Drives/Drive ») | where-Object { [String] ::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = « Drive Maps »
}
Services
{
$gppWithCpassword = $xmlFile.SelectNodes(« NTServices/NTService ») | where-Object { [String] ::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = « Services »
}
par défaut
{ # effacez gppWithCpassword et preferenceType pour l’élément suivant.
essai
{
Clear-Variable -Name gppWithCpassword -ErrorAction SilentlyContinue
Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue
}
catch [Exception]{}
}
}
if ($gppWithCpassword -ne $null)
{
# Générer le nom GPO à partir du GUID extrait de filePath
$guidRegex = [regex]"\{(.*)\} »
$match = $guidRegex.match($fileFullPath)
if ($match. Opération réussie)
{
$gpoGuid = $match.groups[1].value
$gpoName = $gpoGuid
}
else
{
$gpoName = « Inconnu »
}
if($isGPModuleAvailable -eq $true)
{
essai
{
$gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue
$gpoName = $gpoInfo.DisplayName
}
catch [Exception] {
Write-Host $_. Exception.Message
}
}
# Afficher les préférences qui contiennent cpassword
foreach ( $gpp in $gppWithCpassword )
{
if ( $preferenceType -eq « Drive Maps » )
{
$prefLocation = $category + $driveMapPath + $preferenceType
}
else
{
$prefLocation = $category + $commonPath + $preferenceType
}
$obj = New-Object -typeName PSObject
$obj | Add-Member –membertype NoteProperty –name GPOName –value ($gpoName) –passthru |
Add-Member -MemberType NoteProperty -name Preference -value ($gpp. Name) -passthru |
Add-Member -MemberType NoteProperty -name Path -value ($prefLocation)
Write-Output $obj
}
} # end if $gppWithCpassword
} # end for each $file
} # Fonctions END Enum-PoliciesWithCpassword
#-----------------------------------------------------------------------------------
# Vérifiez si le chemin d’accès est valide. Énumérez tous les paramètres qui contiennent cpassword.
#-----------------------------------------------------------------------------------
if (Test-Path $Path )
{
Enum-SettingsWithCpassword $Path
}
else
{
Write-Warning « Répertoire non $Path »
}
Exemple d’utilisation (suppose que le lecteur système est C)
.\Get-SettingsWithCPassword.ps1 –path « C :\Windows\SYSVOL\domain » | Format-List
Remarque : vous pouvez également cibler n’importe quel GPO de sauvegarde pour le chemin d’accès au lieu du domaine.
Le script de détection génère une liste semblable à ce qui suit :
Pour les listes plus longues, envisagez d’enregistrer la sortie dans un fichier :
.\Get-SettingsWithCPassword.ps1 –path « C :\Windows\SYSVOL\domain » | > ConvertTo-Html gpps.html
Suppression des préférences de CPassword
Pour supprimer les préférences qui contiennent des données CPassword, nous vous recommandons d’utiliser la console de gestion de la stratégie de groupe (GPMC) sur le contrôleur de domaine ou à partir d’un client sur lequel les outils d’administration de serveur distant sont installés. Vous pouvez supprimer une préférence en cinq étapes sur ces consoles. Pour ce faire, procédez comme suit :
- Dans GPMC, ouvrez la préférence qui contient des données CPassword.
- Modifiez l’action sur Supprimer ou Désactiver, selon la préférence.
- Cliquez sur OK pour enregistrer vos modifications.
- Attendez un ou deux cycles d’actualisation de la stratégie de groupe pour permettre aux modifications de se propager aux clients.
- Une fois les modifications appliquées sur tous les clients, supprimez la préférence.
- Répétez les étapes 1 à 5 autant de fois que nécessaire pour propre l’ensemble de votre environnement. Lorsque le script de détection ne renvoie aucun résultat, vous avez terminé.
Informations sur le hachage de fichier
| Nom de fichier | Hachage SHA-1 | Hachage SHA-256 |
|---|---|---|
| Windows6.0-KB2928120-ia64.msu | B2A74305CB56191774BFCF9FCDEAA983B26DC9A6 | DCE8C0F9CEB97DBF1F7B9BAF76458B3770EF01C0EDC581621BC8C3B2C7FD14E7 |
| Windows6.0-KB2928120-x64.msu | 386457497682A2FB80BC93346D85A9C1BC38FBF7 | 1AF67EB12614F37F4AC327E7B5767AFA085FE676F6E81F0CED95D20393A1D38D |
| Windows6.0-KB2928120-x86.msu | 42FF283781CEC9CE34EBF459CA1EFE011D5132C3 | 016D7E9DBBC5E487E397BE0147B590CFBBB5E83795B997894870EC10171E16D4 |
| Windows6.1-KB2928120-ia64.msu | 5C2196832EC94B99AAF9B074D3938525B7219690 | 9958FA58134F55487521243AD9740BEE0AC210AC290D45C8322E424B3E5EBF16 |
| Windows6.1-KB2928120-x64.msu | EA5332F4E289DC799611EAB8E3EE2E86B7880A4B | 417A2BA34F8FD367556812197E2395ED40D8B394F9224CDCBE8AB3939795EC2A |
| Windows6.1-KB2928120-x86.msu | 7B7B6EE24CD8BE1AB3479F9E1CF9C98982C8BAB1 | 603206D44815EF2DC262016ED13D6569BE13D06E2C6029FB22621027788B8095 |
| Windows8-RT-KB2928120-x64.msu | E18FC05B4CCA0E195E62FF0AE534BA39511A8593 | FCAED97BF1D61F60802D397350380FADED71AED64435D3E9EAA4C0468D80141E |
| Windows8-RT-KB2928120-x86.msu | A5DFB34F3B9EAD9FA78C67DFC7ACACFA2FBEAC0B | 7F00A72D8A15EB2CA70F7146A8014E39A71CFF5E39596F379ACD883239DABD41 |
| Windows8.1-KB2928120-x64.msu | A07FF14EED24F3241D508C50E869540915134BB4 | 6641B1A9C95A7E4F0D5A247B9F488887AC94550B7F1D7B1198D5BCBA92F7A753 |
| Windows8.1-KB2928120-x86.msu | DE84667EC79CBA2006892452660EB99580D27306 | 468EE4FA3A22DDE61D85FD3A9D0583F504105DF2F8256539051BC0B1EB713E9C |
| Windows8.1-KB2961899-x64.msu | 10BAE807DB158978BCD5D8A7862BC6B3EF20038B | EC26618E23D9278FC1F02CA1F13BB289E1C6C4E0C8DA5D22E1D9CDA0DA8AFF51 |
| Windows8.1-KB2961899-x86.msu | 230C64447CC6E4AB3AD7B4D4655B8D8CEFBFBE98 | E3FAD567AB6CA616E42873D3623A777185BE061232B952938A8846A974FFA7AF |