MS14-025: Possibile elevazione dei privilegi a causa di una vulnerabilità in Preferenze di criteri di gruppo: 13 maggio 2014

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2962486
INTRODUZIONE
Microsoft ha rilasciato il Bollettino Microsoft sulla sicurezza MS14-025. Per ulteriori informazioni su questo bollettino sulla sicurezza:

Come ottenere la Guida in linea e supporto tecnico per questo aggiornamento della protezione

Guida all'installazione di aggiornamenti:Supporto per Microsoft Update

Soluzioni di protezione per i professionisti IT:Supporto e risoluzione dei problemi di sicurezza TechNet

Per proteggere il computer basato su Windows di Windows da virus e malware:Virus e Centro sicurezza PC

Supporto tecnico locale in base al proprio paese:Supporto internazionale

Informazioni

Problemi noti e ulteriori informazioni su questo aggiornamento della protezione

Gli articoli seguenti contengono ulteriori informazioni su questo aggiornamento della protezione in relazione a singole versioni del prodotto. Gli articoli possono contenere informazioni sui problemi noti. In questo caso, il problema noto è elencato in ogni collegamento dell'articolo.
  • 2928120 MS14-025: Descrizione dell'aggiornamento della protezione per strumenti di amministrazione Server remota Windows per i sistemi che dispongono di aggiornamento installato 2919355: il 13 maggio 2014.
  • 2961899 MS14-025: Descrizione dell'aggiornamento della protezione per strumenti di amministrazione Server remota Windows per i sistemi che non dispongono di aggiornamento installato 2919355: il 13 maggio 2014.
Preferenze di criteri di gruppo

Cenni preliminari

Alcune preferenze di criteri di gruppo è possibile memorizzare la password. Questa funzionalità è stato rimosso perché la password è stata memorizzata sicuro. In questo articolo vengono descritte le modifiche all'interfaccia utente e le soluzioni disponibili.

Le seguenti preferenze di criteri di gruppo non consente nomi utente e password da salvare:
  • Esegue il mapping di unità
  • Utenti e gruppi locali
  • Operazioni pianificate
  • Servizi
  • Origini dati
Ciò riguarda il comportamento di qualsiasi oggetto di criteri di gruppo (GPO) esistente nell'ambiente che si basano sulle password contenute in queste preferenze. Impedirà inoltre la creazione di nuove preferenze di criteri di gruppo utilizzando questa funzionalità.

Per mapping unità, gli utenti locali e gruppi e servizi, potrebbe essere possibile realizzare obiettivi simili tramite la funzionalità più protetti in Windows.

Per operazioni pianificate e origini dati, è in grado di raggiungere gli stessi obiettivi che erano disponibili tramite la funzionalità di password di preferenze di criteri di gruppo non protetta.
Scenari
Le seguenti preferenze di criteri di gruppo sono interessate da questa modifica. Ogni preferenza è brevemente e quindi in modo più dettagliato. Non sono, inoltre, soluzioni alternative che consentono di eseguire le stesse operazioni.
Preferenza interessatoSi applica all'utenteSi applica a computer
Gestione locale dell'utente
Unità mappate
No
Servizi
No
Operazioni pianificate (di livello superiore)
Operazioni pianificate (livello inferiore)
Attività immediate (di livello superiore)
Attività immediate (livello inferiore)
Origini dati

Riepilogo delle modifiche

  • Campi di password in tutte le preferenze interessati sono disattivati. Gli amministratori non possono creare nuove preferenze utilizzando questi campi di password.
  • Il campo nome utente è disattivato in alcune preferenze.
  • Impossibile aggiornare le preferenze esistenti che contengono una password. Possono solo essere eliminato o disabilitato, se del caso per la preferenza specifica.
  • Non è cambiato il comportamento di eliminazione e disabilitare le azioni per le preferenze.
  • Quando un amministratore apre qualsiasi preferenza che contiene l'attributo CPassword, l'amministratore riceve di finestra di dialogo avviso seguente per comunicare all'utente di questa deprecazione di recente. Tenta di salvare le modifiche apportate alle preferenze di nuove o esistenti che richiedono l'attributo CPassword attiverà la stessa finestra di dialogo. Eliminare solo e azioni di disattivazione non attiveranno le finestre di dialogo di avviso.

Avviso di protezione CPassword



Scenario 1: Gestione locale dell'utente

La preferenza di gestione degli utenti locali viene spesso utilizzata per creare gli amministratori locali che dispongono di una password nota in un computer. Questa funzionalità non è sicura a causa del modo che le preferenze di criteri di gruppo vengono memorizzate le password. Pertanto, questa funzionalità non è più disponibile. Sono interessate le seguenti preferenze:
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> utenti locali e gruppi-> nuova-> utente locale
  • Configurazione utente-> le impostazioni del Pannello di controllo-> utenti locali e gruppi-> nuova-> utente locale

Modifiche importanti

Azione: creare o sostituire
  • I campi nome utente, Passworde Conferma Password sono disattivati.
  • Quando si apre o tenta di salvare le modifiche apportate a una preferenza esistente che contiene una password di amministratore, verrà visualizzata la finestra di dialogo di avviso.


Utente locale - creare o sostituire

Azione: aggiornamento
  • I campi Password e Conferma Password sono disattivati.
  • Boxappears finestra di dialogo di avviso quando si apre o tenta di salvare le modifiche apportate a una preferenza esistente che contiene una password di amministratore.


Utente locale - aggiornamento

Azione: eliminare
  • Nessuna modifica nel comportamento

Soluzioni alternative

Per coloro che già utilizzavano le preferenze di criteri di gruppo per impostare password di amministratore locale, lo script seguente viene fornito un'alternativa sicura a CPassword. Copiare e salvare il contenuto in un nuovo file di Windows PowerShell e quindi eseguire lo script come indicato nella relativa. Sezione di esempio.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, ma non limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire la procedura di debug. Tecnici del supporto Microsoft consentono di spiegare la funzionalità di una particolare procedura. Tuttavia, essi non modificherà questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze.

 function Invoke-PasswordRoll{<#.SYNOPSISThis script can be used to set the local account passwords on remote machines to random passwords. The username/password/server combination will be saved in a CSV file.The account passwords stored in the CSV file can be encrypted using a password of the administrators choosing to ensure clear-text account passwords aren't written to disk.The encrypted passwords can be decrypted using another function in this file: ConvertTo-CleartextPasswordFunction: Invoke-PasswordRollAuthor: MicrosoftVersion: 1.0.DESCRIPTIONThis script can be used to set the local account passwords on remote machines to random passwords. The username/password/server combination will be saved in a CSV file.The account passwords stored in the CSV file can be encrypted using a password of the administrators choosing to ensure clear-text account passwords aren't written to disk.The encrypted passwords can be decrypted using another function in this file: ConvertTo-CleartextPassword.PARAMETER ComputerNameAn array of computers to run the script against using PowerShell remoting..PARAMETER LocalAccountsAn array of local accounts whose password should be changed..PARAMETER TsvFileNameThe file to output the username/password/server combinations to..PARAMETER EncryptionKeyA password to encrypt the TSV file with. Uses AES encryption. Only the passwords stored in the TSV file will be encrypted, the username and servername will be clear-text..PARAMETER PasswordLengthThe length of the passwords which will be randomly generated for local accounts..PARAMETER NoEncryptionDo not encrypt the account passwords stored in the TSV file. This will result in clear-text passwords being written to disk.	.EXAMPLE. .\Invoke-PasswordRoll.ps1    #Loads the functions in this script fileInvoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Password1"Connects to all the computers stored in the file "computerlist.txt". If the local account "administrator" and/or "CustomLocalAdmin" are present on the system, their password is changedto a randomly generated password of length 20 (the default). The username/password/server combinations are stored in LocalAdminCredentials.tsv, and the account passwords are AES encrypted using the password "Password1"..EXAMPLE. .\Invoke-PasswordRoll.ps1    #Loads the functions in this script fileInvoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40Connects to all the computers stored in the file "computerlist.txt". If the local account "administrator" is present on the system, its password is changed to a random generatedpassword of length 40. The username/password/server combinations are stored in LocalAdminCredentials.tsv unencrypted..NOTESRequirements: -PowerShellv2 or above must be installed-PowerShell remoting must be enabled on all systems the script will be run againstScript behavior:-If a local account is present on the system, but not specified in the LocalAccounts parameter, the script will write a warning to the screen to alert you to the presence of this local account. The script will continue running when this happens.-If a local account is specified in the LocalAccounts parameter, but the account does not exist on the computer, nothing will happen (an account will NOT be created).-The function ConvertTo-CleartextPassword, contained in this file, can be used to decrypt passwords that are stored encrypted in the TSV file.-If a server specified in ComputerName cannot be connected to, PowerShell will output an error message.-Microsoft advises companies to regularly roll all local and domain account passwords.#>    [CmdletBinding(DefaultParameterSetName="Encryption")]    Param(        [Parameter(Mandatory=$true)]        [String[]]        $ComputerName,        [Parameter(Mandatory=$true)]        [String[]]        $LocalAccounts,        [Parameter(Mandatory=$true)]        [String]        $TsvFileName,        [Parameter(ParameterSetName="Encryption", Mandatory=$true)]        [String]        $EncryptionKey,        [Parameter()]        [ValidateRange(20,120)]        [Int]        $PasswordLength = 20,        [Parameter(ParameterSetName="NoEncryption", Mandatory=$true)]        [Switch]        $NoEncryption    )    #Load any needed .net classes    Add-Type -AssemblyName "System.Web" -ErrorAction Stop    #This is the scriptblock that will be executed on every computer specified in ComputerName    $RemoteRollScript = {        Param(            [Parameter(Mandatory=$true, Position=1)]            [String[]]            $Passwords,            [Parameter(Mandatory=$true, Position=2)]            [String[]]            $LocalAccounts,            #This is here so I can record what the server name that the script connected to was, sometimes the DNS records get messed up, it can be nice to have this.            [Parameter(Mandatory=$true, Position=3)]            [String]            $TargettedServerName        )        $LocalUsers = Get-WmiObject Win32_UserAccount -Filter "LocalAccount=true" | Foreach {$_.Name}        #Check if the computer has any local user accounts whose passwords are not going to be rolled by this script        foreach ($User in $LocalUsers)        {            if ($LocalAccounts -inotcontains $User)            {                Write-Warning "Server: '$($TargettedServerName)' has a local account '$($User)' whos password is NOT being changed by this script"            }        }        #For every local account specified that exists on this server, change the password        $PasswordIndex = 0        foreach ($LocalAdmin in $LocalAccounts)        {            $Password = $Passwords[$PasswordIndex]            if ($LocalUsers -icontains $LocalAdmin)            {                try                {                    $objUser = [ADSI]"WinNT://localhost/$($LocalAdmin), user"                    $objUser.psbase.Invoke("SetPassword", $Password)                    $Properties = @{                        TargettedServerName = $TargettedServerName                        Username =  $LocalAdmin                        Password = $Password                        RealServerName = $env:computername                    }                    $ReturnData = New-Object PSObject -Property $Properties                    Write-Output $ReturnData                }                catch                {                    Write-Error "Error changing password for user:$($LocalAdmin) on server:$($TargettedServerName)"                }            }            $PasswordIndex++        }    }    #Generate the password on the client running this script, not on the remote machine. System.Web.Security isn't available in the .NET Client profile. Making this call    #    on the client running the script ensures only 1 computer needs the full .NET runtime installed (as opposed to every system having the password rolled).    function Create-RandomPassword    {        Param(            [Parameter(Mandatory=$true)]            [ValidateRange(20,120)]            [Int]            $PasswordLength        )        $Password = [System.Web.Security.Membership]::GeneratePassword($PasswordLength, $PasswordLength / 4)        #This should never fail, but I'm putting a sanity check here anyways        if ($Password.Length -ne $PasswordLength)        {            throw new Exception("Password returned by GeneratePassword is not the same length as required. Required length: $($PasswordLength). Generated length: $($Password.Length)")        }        return $Password    }    #Main functionality - Generate a password and remote in to machines to change the password of local accounts specified    if ($PsCmdlet.ParameterSetName -ieq "Encryption")    {        try        {            $Sha256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider            $SecureStringKey = $Sha256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))        }        catch        {            Write-Error "Error creating TSV encryption key" -ErrorAction Stop        }    }    foreach ($Computer in $ComputerName)    {        #Need to generate 1 password for each account that could be changed        $Passwords = @()        for ($i = 0; $i -lt $LocalAccounts.Length; $i++)        {            $Passwords += Create-RandomPassword -PasswordLength $PasswordLength        }        Write-Output "Connecting to server '$($Computer)' to roll specified local admin passwords"        $Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer        #If encryption is being used, encrypt the password with the user supplied key prior to writing to disk        if ($Result -ne $null)        {            if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")            {                $Result | Select-Object Username,Password,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation            }            else            {                #Filters out $null entries returned                $Result = $Result | Select-Object Username,Password,TargettedServerName,RealServerName                foreach ($Record in $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 Username,EncryptedPassword,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation                }            }        }    }}function ConvertTo-CleartextPassword{<#.SYNOPSISThis function can be used to decrypt passwords that were stored encrypted by the function Invoke-PasswordRoll.Function: ConvertTo-CleartextPasswordAuthor: MicrosoftVersion: 1.0.DESCRIPTIONThis function can be used to decrypt passwords that were stored encrypted by the function Invoke-PasswordRoll..PARAMETER EncryptedPasswordThe encrypted password that was stored in a TSV file..PARAMETER EncryptionKeyThe password used to do the encryption..EXAMPLE. .\Invoke-PasswordRoll.ps1    #Loads the functions in this script fileConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMABiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"Decrypts the encrypted password which was stored in the TSV file.#>    Param(        [Parameter(Mandatory=$true)]        [String]        $EncryptedPassword,        [Parameter(Mandatory=$true)]        [String]        $EncryptionKey    )    $Sha256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider    $SecureStringKey = $Sha256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))    [SecureString]$SecureStringPassword = ConvertTo-SecureString -String $EncryptedPassword -Key $SecureStringKey    Write-Output ([System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($SecureStringPassword)))}
Gli amministratori possono aggiungere gli account di amministratore locale al computer mediante la creazione di un gruppo di Active Directory e averlo aggiunto al gruppo Administrators locale tramite le preferenze di criteri di gruppo-> gruppo locale. Questa azione non memorizzare nella cache le credenziali. La finestra di dialogo simile al seguente. Questa soluzione richiede una connessione a servizi di dominio Active Directory quando l'utente è connesso utilizzando le credenziali di onby.


Gruppo locale - soluzione


Scenario 2: Le unità mappate

Gli amministratori di utilizzare mappe unità per allocare i percorsi di rete agli utenti. Password di protezione viene utilizzata per assicurarsi di accesso autorizzato all'unità. Sono interessate le seguenti preferenze:
  • Configurazione utente-> le impostazioni di Windows-> mappe unità-> nuova-> unità mappata

Modifiche importanti

Azione: Creazione, aggiornamento o sostituzione
  • I campi nome utente, Passworde Conferma password sono disattivati.

Unità mappata - creazione/aggiornamento/sostituzione

Azione: eliminare
  • Nessuna modifica nel comportamento

Soluzioni alternative

Anziché utilizzare il metodo di password per l'autenticazione, è possibile utilizzare Esplora risorse per gestire le autorizzazioni di condivisione e assegnare diritti agli utenti. È possibile utilizzare gli oggetti di Active Directory per controllare le autorizzazioni per la cartella.


Scenario 3: servizi

È possibile utilizzare la preferenza di servizi per modificare le proprietà del servizio ad un modo in cui sono eseguite in un altro contesto di protezione originale. Sono interessate le seguenti preferenze:
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> servizi-> nuova-> servizio

Modifiche importanti

Avvio: Nessuna modifica, automatico o manuale
  • I campi Password e Conferma password sono disattivati.
  • L'amministratore può utilizzare solo account incorporati.

Servizio - invariato, automatico/manuale

Avvio: disattivare
  • Nessuna modifica nel comportamento
Nuova finestra di dialogo
  • Gli amministratori che tentano di utilizzare non compilati, gli utenti per questo account "venga visualizzato il seguente avviso:

Avviso agli utenti non incorporato


Soluzioni alternative

Possono essere comunque eseguiti come account di sistema locale. Autorizzazioni del servizio possono essere modificate, come documentato nel seguente articolo della Microsoft Knowledge Base:
256345 Come configurare criteri di gruppo per impostare la protezione per servizi di sistema

Nota
se il servizio che si desidera configurare non è presente, è necessario configurare le impostazioni in un computer che ha il servizio in esecuzione.


Scenario 4: Pianificata e immediata attività (di livello superiore)

Che vengono utilizzati per eseguire le operazioni pianificate in un contesto di protezione specifiche. La possibilità di memorizzare le credenziali per le attività programmate per l'esecuzione come utente non autorizzato quando l'utente è connesso non è più disponibile. Sono interessate le seguenti preferenze. (Tenere presente che su alcune piattaforme, "almeno Windows 7" viene sostituito con "Windows Vista e versioni successive.")
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> pianificate-> nuovo-> attività pianificata (almeno Windows 7)
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> pianificate-> nuovo-> attività immediata (almeno Windows 7)
  • Configurazione utente-> le impostazioni del Pannello di controllo-> pianificate-> nuovo-> attività pianificata (almeno Windows 7)
  • Configurazione utente-> le impostazioni del Pannello di controllo-> pianificate-> nuovo-> attività immediata (almeno Windows 7)

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione
  • Quando si seleziona l'opzione Esegui anche se l'utente non è connesso , non è più richiesto per le credenziali di amministratore.
  • La casella di controllo non memorizzare la password è disattivata. Per impostazione predefinita, è possibile che anche la casella è selezionata.

Attività Immediate o pianificate nuovi (di livello superiore)

Azione: eliminare

Nessuna modifica nel comportamento

Soluzioni alternative

Per le "attività pianificata (almeno Windows 7)" e "attività immediata (almeno Windows 7)" attività, gli amministratori possono utilizzare gli account utente specifico quando è connesso l'utente specificato. In alternativa, possono avere solo accesso alle risorse locali come tale utente. Questi tasksstillcan eseguito nel contesto del servizio locale.



Scenario 5: Immediate e pianificate le attività (livello inferiore)

Questa è la versione di livello inferiore delle preferenze utilizzato per eseguire operazioni pianificate in un contesto di protezione specifiche. La possibilità di memorizzare le credenziali per le attività programmate per l'esecuzione come utente non autorizzato quando l'utente è connesso non è più disponibile. Sono interessate le seguenti preferenze:
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> pianificate-> nuovi-> attività pianificata
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> pianificate-> nuovi-> attività immediata (Windows XP)
  • Configurazione utente-> le impostazioni del Pannello di controllo-> pianificate-> nuovi-> attività pianificata
  • Configurazione utente-> le impostazioni del Pannello di controllo-> pianificate-> nuovi-> attività immediata (Windows XP)

Modifiche importanti

Azione: Creazione, aggiornamento o sostituzione
  • La casella di controllo Esegui come è disattivata. Di conseguenza, i campi Nome utente, Passworde Conferma Password sono tutte disattivati.

Nuova attività - creazione/aggiornamento/sostituzione (livello inferiore)

Azione: eliminare

Nessuna modifica nel comportamento

Soluzioni alternative

Per gli elementi "Attività immediata (Windows XP)" e "Operazione pianificata", operazioni pianificate eseguite utilizzando le autorizzazioni che sono attualmente disponibili per il servizio locale.


Scenario 6: Origini

La preferenza delle origini dati viene utilizzata per associare un'origine dati a un computer o utente. Questa funzionalità non memorizza le credenziali per accedere alle origini dati che sono protetti da password. Sono interessate le seguenti preferenze:
  • Configurazione di computer-> le impostazioni del Pannello di controllo-> origini dati
  • Configurazione utente-> le impostazioni del Pannello di controllo-> origini dati

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione
  • Sono disattivati i campi Nome utente, Passworde Conferma Password :

Origini dati, creazione, aggiornamento/sostituzione

Azione: eliminare
  • Nessuna modifica nel comportamento

Soluzioni alternative

Nessun soluzioni alternative disponibili. Questa preferenza non memorizza le credenziali per consentire l'accesso a origini dati che sono protetti da password.


Deprecazione di CPassword

Rimozione di CPassword

Lo script di Windows PowerShell che è incluso in questo articolo della Microsoft Knowledge Base rileva se un dominio contiene le preferenze di criteri di gruppo che potrebbero utilizzare CPassword. Se viene rilevata una determinata preferenza CPassword XML, viene visualizzato in questo elenco.


Rilevare le preferenze di CPassword

Questo script deve essere eseguito da una directory locale sul controller di dominio che si desidera pulire. Copiare e salvare il contenuto in un nuovo file di Windows PowerShell, determinare l'unità di sistema e quindi eseguire lo script come indicato nell'utilizzo del seguente.

 <#.SYNOPSISGroup Policy objects in your domain can have preferences that store passwords for different tasks, such as the following:    1. Data Sources    2. Drive Maps    3. Local Users    4. Scheduled Tasks (both XP and up-level)    5. ServicesThese passwords are stored in SYSVOL as part of GP preferences and are not secure because of weak encryption (32-byte AES). Therefore, we recommend that you not deploy such preferences in your domain environment and remove any such existing preferences. This script is to help administrator find GP Preferences in their domain's SYSVOL that contains passwords. .DESCRIPTIONThis script should be run on a DC or a client computer that is installed with RSAT to print all the preferences that contain password with information such as GPO, Preference Name, GPEdit path under which this preference is defined.After you have a list of affected preferences, these preferences can be removed by using the editor in the Group Policy Management Console. .SYNTAXGet-SettingsWithCPassword.ps1 [-Path  <String>] .EXAMPLEGet-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domainGet-SettingsWithCPassword.ps1 -Path  <GPO Backup Folder Path> .NOTESIf Group Policy PS module is not found the output will contain GPO GUIDs instead of GPO names. You can either run this script on a domain controller or rerun the script on the client after you have installed RSAT and enabled the Group Policy module.Or, you can use GPO GUIDs to obtain GPO names by using the Get-GPO cmdlet. .LINKhttp://go.microsoft.com/fwlink/?LinkID=390507 #>#----------------------------------------------------------------------------------------------------------------# Input parameters#--------------------------------------------------------------------------------------------------------------param(    [string]$Path = $(throw "-Path is required.") # Directory path where GPPs are located. )#---------------------------------------------------------------------------------------------------------------$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 "Unable to import Group Policy module for PowerShell. Therefore, GPO guids will be reported.                        Run this script on DC to obtain the GPO names, or use the Get-GPO cmdlet (on DC) to obtain the GPO name from GPO guid."    }}else{    $isGPModuleAvailable = $true}Function Enum-SettingsWithCpassword ( [string]$sysvolLocation ){    # GPMC tree paths    $commonPath = " -> Preferences -> Control Panel Settings -> "    $driveMapPath = " -> Preferences -> Windows Settings -> "        # Recursively obtain all the xml files within the SYVOL location    $impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_.Name }            # Each xml file contains multiple preferences. Iterate through each preference to check whether it    # contains cpassword attribute and display it.    foreach ( $file in $impactedXmls )    {        $fileFullPath = $file.FullName                # Set GPP category. If file is located under Machine folder in SYSVOL        # the setting is defined under computer configuration otherwise the         # setting is a to user configuration          if ( $fileFullPath.Contains("Machine") )        {            $category = "Computer Configuration"        }        elseif ( $fileFullPath.Contains("User") )        {            $category = "User Configuration"        }        else        {            $category = "Unknown"        }        # Obtain file content as XML        try        {            [xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue        }        catch [Exception]{            Write-Host $_.Exception.Message        }        if ($xmlFile -eq $null)        {            continue        }        switch ( $file.BaseName )        {            Groups             {                 $gppWithCpassword = $xmlFile.SelectNodes("Groups/User") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Local Users"            }            ScheduledTasks            {                $gppWithCpassword  = $xmlFile.SelectNodes("ScheduledTasks/*") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Scheduled Tasks"            }            DataSources            {                $gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Data sources"            }            Drives            {                $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"            }            default            {   # clear gppWithCpassword and preferenceType for next item.                try                {                    Clear-Variable -Name gppWithCpassword -ErrorAction SilentlyContinue                    Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue                }                catch [Exception]{}            }        }        if ($gppWithCpassword -ne $null)        {            # Build GPO name from GUID extracted from filePath             $guidRegex = [regex]"\{(.*)\}"            $match = $guidRegex.match($fileFullPath)            if ($match.Success)            {               $gpoGuid = $match.groups[1].value               $gpoName = $gpoGuid            }            else            {               $gpoName = "Unknown"            }            if($isGPModuleAvailable -eq $true)            {                try                 {                       $gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue                    $gpoName = $gpoInfo.DisplayName                }                catch [Exception] {                    Write-Host $_.Exception.Message                }            }            # display prefrences that contain 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 foreach $file} # end functions Enum-PoliciesWithCpassword#-----------------------------------------------------------------------------------# Check whether Path is valid. Enumerate all settings that contain cpassword. #-----------------------------------------------------------------------------------if (Test-Path $Path ){    Enum-SettingsWithCpassword $Path}else{    Write-Warning "No such directory: $Path"}  


Esempio di utilizzo (si presuppone che l'unità di sistema è C)

.\Get-SettingsWithCPassword.ps1 –path “C:\Windows\SYSVOL\domain” | Format-List

Nota Tenere presente che è inoltre possibile scegliere qualsiasi backup oggetto Criteri di gruppo per il percorso anziché al dominio.

Lo script di rilevamento genera un elenco analogo al seguente:

Inserisci immagine

Per gli elenchi più lunghi, si consiglia di salvare l'output in un file:

.\Get-SettingsWithCPassword.ps1 –path “C:\Windows\SYSVOL\domain” | ConvertTo-Html > gpps.html

Rimuovere le preferenze di CPassword

Per rimuovere le preferenze che contengono dati di CPassword, si consiglia di utilizzare Console Gestione criteri di gruppo (GPMC) sul controller di dominio o da un client con strumenti di amministrazione Server remoto è installato. È possibile rimuovere qualsiasi preferenza in cinque passaggi su tali console. A tale scopo, attenersi alla seguente procedura:
  1. In Gestione criteri di gruppo, aprire la preferenza che contiene i dati di CPassword.
  2. Modificare l'azione di eliminare o disattivare, come applicabile per la preferenza.
  3. Fare clic su OK per salvare le modifiche.
  4. Attendere uno o due cicli di aggiornamento di criteri di gruppo consentire le modifiche apportate a propagare ai client.
  5. Dopo le modifiche sono applicate a tutti i client, eliminare la preferenza.
  6. Ripetere i passaggi da 1 a 5 in base alle esigenze per pulire l'intero ambiente. Quando lo script di rilevamento restituisce zero risultati, si è finito.

Informazioni di hash file

Nome del fileHash SHA1Hash SHA256
Windows 6.0-KB2928120-IA64.B2A74305CB56191774BFCF9FCDEAA983B26DC9A6DCE8C0F9CEB97DBF1F7B9BAF76458B3770EF01C0EDC581621BC8C3B2C7FD14E7
Windows 6.0-KB2928120-x64. msu386457497682A2FB80BC93346D85A9C1BC38FBF71AF67EB12614F37F4AC327E7B5767AFA085FE676F6E81F0CED95D20393A1D38D
Windows 6.0-KB2928120-x86. msu42FF283781CEC9CE34EBF459CA1EFE011D5132C3016D7E9DBBC5E487E397BE0147B590CFBBB5E83795B997894870EC10171E16D4
File Windows 6.1-KB2928120-IA64.5C2196832EC94B99AAF9B074D3938525B72196909958FA58134F55487521243AD9740BEE0AC210AC290D45C8322E424B3E5EBF16
File Windows 6.1-KB2928120-x64. msuEA5332F4E289DC799611EAB8E3EE2E86B7880A4B417A2BA34F8FD367556812197E2395ED40D8B394F9224CDCBE8AB3939795EC2A
File Windows 6.1-KB2928120-x86. msu7B7B6EE24CD8BE1AB3479F9E1CF9C98982C8BAB1603206D44815EF2DC262016ED13D6569BE13D06E2C6029FB22621027788B8095
Windows8-RT-KB2928120-x64. msuE18FC05B4CCA0E195E62FF0AE534BA39511A8593FCAED97BF1D61F60802D397350380FADED71AED64435D3E9EAA4C0468D80141E
Windows8-RT-KB2928120-x86. msuA5DFB34F3B9EAD9FA78C67DFC7ACACFA2FBEAC0B7F00A72D8A15EB2CA70F7146A8014E39A71CFF5E39596F379ACD883239DABD41
Windows8.1-KB2928120-x64. msuA07FF14EED24F3241D508C50E869540915134BB46641B1A9C95A7E4F0D5A247B9F488887AC94550B7F1D7B1198D5BCBA92F7A753
Windows8.1-KB2928120-x86. msuDE84667EC79CBA2006892452660EB99580D27306468EE4FA3A22DDE61D85FD3A9D0583F504105DF2F8256539051BC0B1EB713E9C
Windows8.1-KB2961899-x64. msu10BAE807DB158978BCD5D8A7862BC6B3EF20038BEC26618E23D9278FC1F02CA1F13BB289E1C6C4E0C8DA5D22E1D9CDA0DA8AFF51
Windows8.1-KB2961899-x86. msu230C64447CC6E4AB3AD7B4D4655B8D8CEFBFBE98E3FAD567AB6CA616E42873D3623A777185BE061232B952938A8846A974FFA7AF
aggiornamento delle patch di protezione security_update protezione bug difetto vulnerabilità malintenzionato exploit non autenticato buffer overrun overflow ambito appositamente predisposto appositamente un denial of service DoS TSE

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2962486 - Ultima revisione: 10/02/2015 00:06:00 - Revisione: 5.0

Windows RT 8.1, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows Server 2012 R2 Standard, Windows 8, Windows 8 Enterprise, Windows 8 Pro, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2012 Standard, Windows 7 Service Pack 1, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB2962486 KbMtit
Feedback