MS14-025: Vulnerabilities in Grup İlkesigrup ilkesi Tercihler ayrıcalıkların yükseltilmesine izin verebilir: 13 Mayıs 2014

Uygulandığı Öğe
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 Datacenter Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2012 Foundation Windows Server 2012 Standard Windows Server 2012 Standard Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 Service Pack 2 Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business 64-bit Edition

GİRİŞ

Microsoft, MS14-025 güvenlik bültenini yayımladı. Bu güvenlik bülteni hakkında daha fazla bilgi edinmek için:

Bu güvenlik güncelleştirmesi için yardım ve destek alma

Güncelleştirmeleri yüklemeye yönelik yardım:
Microsoft Update desteği

BT uzmanları için güvenlik çözümleri:
TechNet Güvenliği Sorun Giderme ve Destek

Windows tabanlı bilgisayarınızın Windows'unu virüslere ve kötü amaçlı yazılımlara karşı korumaya yardımcı olun:
Virüs Çözüm ve Güvenlik Merkezi

Ülkenize göre yerel destek:
Uluslararası Destek

Daha Fazla Bilgi

Bu güvenlik güncelleştirmesiyle ilgili bilinen sorunlar ve daha fazla bilgi

Aşağıdaki makaleler, tek tek ürün sürümleriyle ilgili olarak bu güvenlik güncelleştirmesi hakkında daha fazla bilgi içerir. Makaleler bilinen sorun bilgilerini içerebilir. Böyle bir durumda, bilinen sorun her makale bağlantısının altında listelenir.

  • 2928120

    MS14-025: Güncelleştirme 2919355 yüklü olan sistemler için Windows Uzaktan Sunucu Yönetim Araçları'na yönelik güvenlik güncelleştirmesinin açıklaması: 13 Mayıs 2014

  • 2961899

    MS14-025: Güncelleştirme 2919355 yüklenmemiş sistemler için Windows Uzaktan Sunucu Yönetim Araçları'na yönelik güvenlik güncelleştirmesinin açıklaması: 13 Mayıs 2014

Grup İlkesigrup ilkesi Tercihler

Genel bakış

Bazı Grup İlkesigrup ilkesi Tercihler bir şifre saklayabilir. Parola güvenli olmayan bir şekilde depolandığı için bu işlev kaldırılıyor. Bu makalede, kullanıcı arabirimi değişiklikleri ve kullanılabilir geçici çözümler açıklanmaktadır.

Aşağıdaki Grup İlkesigrup ilkesi Tercihler artık kullanıcı adlarının ve parolaların kaydedilmesine izin vermeyecektir:

  • Sürücü Haritaları
  • Yerel Kullanıcılar ve Gruplar
  • Zamanlanmış Görevler
  • Hizmetler
  • Data Sources

Bu, ortamınızda bulunan ve bu tercihlerde yer alan parolaları kullanan mevcut tüm grup ilkesi Nesnelerinin (GPO) davranışını etkiler. Bu işlev kullanılarak yeni grup ilkesi Tercihleri oluşturulmasını da engeller.

Sürücü Haritaları, Yerel Kullanıcılar ve Gruplar ve Hizmetler için Windows'taki diğer, daha güvenli işlevler aracılığıyla benzer hedeflere ulaşabilirsiniz.

Zamanlanmış Görevler ve Veri Kaynakları için, grup ilkesi Tercihleri parolalarının güvenli olmayan işlevselliği sayesinde elde edilebilen hedeflerin aynılarını elde edemezsiniz.

Senaryolar

Aşağıdaki Grup İlkesigrup ilkesi Tercihler bu değişiklikten etkilenir. Her tercih kısaca ve ardından daha ayrıntılı olarak ele alınır. Ayrıca, aynı görevleri gerçekleştirmenizi sağlayan geçici çözümler de sağlanmaktadır.

Etkilenen tercih Kullanıcı için geçerlidir
Bilgisayar için geçerlidir
Yerel kullanıcı yönetimi Evet Evet
Eşlenen sürücüler Evet Hayır
Hizmetler Hayır Evet
Zamanlanmış görevler (üst düzey) Evet Evet
Zamanlanmış görevler (alt düzey) Evet Evet
Acil görevler (üst düzey) Evet Evet
Acil görevler (alt düzey) Evet Evet
Veri kaynakları Evet Evet

Değişikliklerin özeti

  • Etkilenen tüm tercihlerde parola alanları devre dışı bırakılır. Yöneticiler bu parola alanlarını kullanarak yeni tercihler oluşturamaz.
  • Kullanıcı adı alanı bazı tercihlerde devre dışı bırakılmıştır.
  • Parola içeren mevcut tercihler güncelleştirilemez. Bunlar yalnızca belirli tercihe uygun şekilde silinebilir veya devre dışı bırakılabilir.
  • Tercihler için Sil ve Devre Dışı Bırak eylemlerinin davranışı değişmedi.
  • Bir yönetici CPassword özniteliğini içeren herhangi bir tercihi açtığında, yönetici kendisini son kullanımdan kaldırma konusunda bilgilendirmek için aşağıdaki uyarı iletişim kutusunu alır. CPassword özniteliğini gerektiren yeni veya mevcut tercihlerde yapılan değişiklikleri kaydetme girişimleri aynı iletişim kutusunu tetikler. Yalnızca Sil ve Devre Dışı Bırak eylemleri uyarı iletişim kutularını tetiklemez.

             a0a4e39c-aa0a-936b-e086-593dfb035a8e
            
            
            
          

Senaryo 1: Yerel kullanıcı yönetimi

Yerel Kullanıcı Yönetimi tercihi, bilgisayarda bilinen bir parolası olan yerel yöneticiler oluşturmak için sıklıkla kullanılır. Bu özellik, grup ilkesi Tercihleri'nin parolaları depolama şekli nedeniyle güvenli değildir. Dolayısıyla, bu işlev artık kullanılamaz. Aşağıdaki tercihler etkilenir:

  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Yerel Kullanıcılar ve Gruplar-> Yeni-> Yerel Kullanıcı
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Yerel Kullanıcılar ve Gruplar-> Yeni-> Yerel Kullanıcı

Önemli değişiklikler

Eylem: Oluşturma veya değiştirme

  • Kullanıcı adı, Parola ve Parolayı Onayla alanları devre dışı bırakılır.
  • Yönetici parola içeren mevcut bir tercihi açtığında veya değişiklikleri kaydetmeye çalıştığında uyarı iletişim kutusu görüntülenir.

                
                 41DA12B9-527C-80AC-986C-82DE889869AB
                
İşlem: Güncelleştirme

  • Parola ve Parolayı Onayla alanları devre dışı bırakılır.
  • Yönetici parola içeren mevcut bir tercihi açtığında veya değişiklikleri kaydetmeye çalıştığında uyarı iletişim kutusu görüntülenir.

                
                 183f7c58-79e3-db1b-72e9-3144fcefc0e4
                
Eylem: Sil

  • Davranışta değişiklik yok

Geçici Çözümler

Daha önce yerel yönetici şifrelerini ayarlamak için grup ilkesi Tercihine güvenenler için, aşağıdaki komut dosyası CPassword'a güvenli bir alternatif olarak sağlanmıştır. İçeriği kopyalayıp yeni bir Windows PowerShellWindows PowerShell dosyasına kaydedin ve ardından betiği dosyasında belirtildiği gibi çalıştırın. ÖRNEK bölümü.

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir. Ancak, ek işlevsellik sağlamak veya özel gereksinimlerinizi karşılamak için prosedürler oluşturmak için bu örnekleri değiştirmeyeceklerdir.

işlev Invoke-PasswordRoll
{
<#
. ÖZET

Bu komut dosyası, uzak makinelerdeki yerel hesap parolalarını rastgele parolalara ayarlamak için kullanılabilir. Kullanıcı adı/şifre/sunucu kombinasyonu bir CSV dosyasına kaydedilecektir.
CSV dosyasında depolanan hesap parolaları, şifresiz metin hesap parolalarının diske yazılmadığından emin olmayı seçerek, yöneticilerin parolası kullanılarak şifrelenebilir.
Şifrelenmiş parolaların şifresi, bu dosyadaki başka bir işlev kullanılarak çözülebilir: ConvertTo-CleartextPassword

İşlevi: Invoke-PasswordRoll
Yazar: Microsoft
Sürüm: 1.0

. AÇIKLAMA

Bu komut dosyası, uzak makinelerdeki yerel hesap parolalarını rastgele parolalara ayarlamak için kullanılabilir. Kullanıcı adı/şifre/sunucu kombinasyonu bir CSV dosyasına kaydedilecektir.
CSV dosyasında depolanan hesap parolaları, şifresiz metin hesap parolalarının diske yazılmadığından emin olmayı seçerek, yöneticilerin parolası kullanılarak şifrelenebilir.
Şifrelenmiş parolaların şifresi, bu dosyadaki başka bir işlev kullanılarak çözülebilir: ConvertTo-CleartextPassword

. PARAMETRE ComputerName

PowerShell uzaktan iletişimi kullanılarak betiği çalıştıracak bir bilgisayar dizisi.

. PARAMETRE LocalAccounts

Parolası değiştirilmesi gereken bir dizi yerel hesap.

. PARAMETRE: tsvdosyaadı

Kullanıcı adı/parola/sunucu bileşimlerinin çıkışı alınacak dosya.

. PARAMETRE EncryptionKey

TSV dosyasını şifrelemek için kullanılan bir parola. AES şifrelemesini kullanır. Yalnızca TSV dosyasında saklanan şifreler şifrelenir, kullanıcı adı ve sunucu adı düz metin olur.

. PARAMETRE PasswordLength

Yerel hesaplar için rastgele oluşturulacak parolaların uzunluğu.

. PARAMETRE: NoEncryption

TSV dosyasında saklanan hesap parolalarını şifrelemeyin. Bunun sonucunda diske düz metin parolalar yazılır.

. ÖRNEK

. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Password1"

"computerlist.txt" dosyasında depolanan tüm bilgisayarlara bağlanır. Sistemde "administrator" ve/veya "CustomLocalAdmin" yerel hesabı varsa şifreleri değiştirilir
20 uzunluğunda rastgele oluşturulmuş bir parolaya (varsayılan). Kullanıcı adı/parola/sunucu bileşimleri LocalAdminCredentials.tsv dosyasında depolanır ve hesap parolaları "Password1" parolası kullanılarak AES şifrelenir.

. ÖRNEK

. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("yönetici") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40

"computerlist.txt" dosyasında depolanan tüm bilgisayarlara bağlanır. Sistemde yerel hesap "yönetici" mevcutsa, şifresi rastgele oluşturulmuş olarak değiştirilir
40 uzunluğunda şifre. Kullanıcı adı/parola/sunucu birleşimleri LocalAdminCredentials.tsv dosyasında şifrelenmemiş olarak depolanır.

. NOTLAR
Gereksinimler:
-PowerShellv2 veya üzeri yüklü olmalıdır
-PowerShell uzaktan iletişimi, betiğin çalıştırılacağı tüm sistemlerde etkinleştirilmelidir

Komut dosyası davranışı:
-Sistemde yerel bir hesap varsa, ancak LocalAccounts parametresinde belirtilmemişse, komut dosyası bu yerel hesabın varlığına dair sizi uyarmak için ekrana bir uyarı yazacaktır. Bu gerçekleştiğinde komut dosyası çalışmaya devam eder.
-LocalAccounts parametresinde yerel bir hesap belirtilirse, ancak hesap bilgisayarda yoksa, hiçbir şey olmaz (bir hesap oluşturulmaz).
-Bu dosyada bulunan ConvertTo-CleartextPassword işlevi, TSV dosyasında şifrelenmiş olarak depolanan şifrelerin şifresini çözmek için kullanılabilir.
-ComputerName'de belirtilen bir sunucuya bağlanılamazsa, PowerShell bir hata iletisi verir.
-Microsoft, şirketlere tüm yerel ve etki alanı hesap parolalarını düzenli olarak almalarını önerir.

#>
    [CmdletBinding(DefaultParameterSetName="Encryption")]
    Param(
        [Parametre(Zorunlu=$true)]
        [Dize[]]
        $ComputerName,

        [Parametre(Zorunlu=$true)]
        [Dize[]]
        $LocalAccounts,

        [Parametre(Zorunlu=$true)]
        [Dize]
        $TsvFileName,

        [Parameter(ParameterSetName="Encryption", Mandatory=$true)]
        [Dize]
        $EncryptionKey,

        [Parametre()]
        [GeçerliAralık(20,120)]
        [Int]
        $PasswordLength = 20,

        [Parameter(ParameterSetName="NoEncryption", Mandatory=$true)]
        [Değiştirmek]
        $NoEncryption
    )

    Gerekli .NET sınıflarını #Load
    Add-Type -AssemblyName "System.Web" -ErrorAction Stop

    #This, ComputerName'de belirtilen her bilgisayarda yürütülecek komut dosyası bloğudur
    $RemoteRollScript = {
        Param(
            [Parametre(Zorunlu=$true, Konum=1)]
            [Dize[]]
            $Passwords,

            [Parametre(Zorunlu=$true, Konum=2)]
            [Dize[]]
            $LocalAccounts,

            #This burada, böylece komut dosyasının bağlandığı sunucu adının ne olduğunu kaydedebilirim, bazen DNS kayıtları bozulur, buna sahip olmak güzel olabilir.
            [Parametre(Zorunlu=$true, Konum=3)]
            [Dize]
            $TargettedServerName
        )

        $LocalUsers = Get-WmiObject Win32_UserAccount -Filter "LocalAccount=true" | Foreach {$_. İsim}

        Bilgisayarda, parolaları bu komut dosyası tarafından yuvarlanmayacak yerel kullanıcı hesapları varsa #Check
        foreach ($LocalUsers'de $User)
        {
            if ($LocalAccounts -inotcontains $User)
            {
                Write-Warning "Sunucu: '$($TargettedServerName)', parolası bu komut dosyası tarafından DEĞİŞTİRİLMEYEN yerel bir '$($User)' hesabına sahip"
            }
        }

        Bu sunucuda bulunan belirtilen tüm yerel hesapları #For, parolayı değiştirin
        $PasswordIndex = 0
        foreach ($LocalAccounts'te $LocalAdmin)
        {
            $Password = $Passwords[$PasswordIndex]

            if ($LocalUsers -icontains $LocalAdmin)
            {
                deneyin
                {
                    $objUser = [ADSI]"WinNT://localhost/$($LocalAdmin), user"
                    $objUser.psbase.Invoke("SetPassword", $Password)

                    $Properties = @{
                        TargettedServerName = $TargettedServerName
                        Kullanıcı adı = $LocalAdmin
                        Parola = $Password
                        RealServerName = $env:computername
                    }

                    $ReturnData = New-Object PSObject -Property $Properties
                    Write-Output $ReturnData
                }
                yakalamak
                {
                    Write-Error "user:$($LocalAdmin) on server:$($TargettedServerName) için parola değiştirilirken hata oluştu)"
                }
            }

            $PasswordIndex++
        }
    }

    Parolayı uzak makinede değil, bu betiği çalıştıran istemcide #Generate. System.Web.Security, .NET İstemci profilinde kullanılamaz. Bu arama yapılıyor
    # betiği çalıştıran istemcide, yalnızca 1 bilgisayarın tam .NET çalışma zamanının yüklenmesini sağlar (parolanın yuvarlandığı her sistemin aksine).
    işlev Create-RandomPassword
    {
        Param(
            [Parametre(Zorunlu=$true)]
            [GeçerliAralık(20,120)]
            [Int]
            $PasswordLength
        )

        $Password = [System.Web.Security.Membership]::GeneratePassword($PasswordLength, $PasswordLength / 4)

        #This asla başarısız olmamalı, ama yine de buraya bir akıl sağlığı kontrolü koyuyorum
        if ($Password.Length -ne $PasswordLength)
        {
            throw new Exception("GeneratePassword tarafından döndürülen parola, gerekenle aynı uzunlukta değil. Gerekli uzunluk: $($PasswordLength). Oluşturulan uzunluk: $($Password.Length)")
        }

        return $Password
    }

    #Main işlevselliği - Belirtilen yerel hesapların parolasını değiştirmek için bir parola oluşturun ve makinelere uzaktan bağlanın
    if ($PsCmdlet.ParameterSetName -ieq "Encryption")
    {
        deneyin
        {
            $Sha 256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider
            $SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))
        }
        yakalamak
        {
            Write-Error "TSV şifreleme anahtarı oluşturma hatası" -ErrorAction Stop
        }
    }

    foreach ($ComputerName'de $Computer)
    {
        Değiştirilebilecek her hesap için 1 şifre oluşturmak #Need
        $Passwords = @()
        for ($i = 0; $i -lt $LocalAccounts.Length; $i++)
        {
            $Passwords += Create-RandomPassword -PasswordLength $PasswordLength
        }

        Write-Output "Belirtilen yerel yönetici parolalarını almak için '$($Computer)' sunucusuna bağlanılıyor"
        $Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer
        #If şifreleme kullanılıyorsa, diske yazmadan önce parolayı kullanıcı tarafından sağlanan anahtarla şifreleyin
        if ($Result -ne $null)
        {
            if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")
            {
                $Result | Select-Object Kullanıcı Adı,Parola,TargettedServerName,RealServerName | Export-Csv -Ekleme -Yol $TsvFileName -NoTypeInformation
            }
            değilse
            {
                Döndürülen $null girdileri #Filters
                $Result = $Result | Select-Object Kullanıcı Adı,Parola,TargettedServerName,RealServerName

                foreach ($Result'de $Record)
                {
                    $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 Kullanıcı Adı,ŞifreliParola,TargettedServerName,RealServerName | Export-Csv -Ekleme -Yol $TsvFileName -NoTypeInformation
                }
            }
        }
    }
}

işlev ConvertTo-CleartextPassword
{
<#
. ÖZET
Bu işlev, Invoke-PasswordRoll işlevi tarafından şifrelenmiş olarak depolanan parolaların şifresini çözmek için kullanılabilir.

İşlevi: ConvertTo-CleartextPassword
Yazar: Microsoft
Sürüm: 1.0

. AÇIKLAMA
Bu işlev, Invoke-PasswordRoll işlevi tarafından şifrelenmiş olarak depolanan parolaların şifresini çözmek için kullanılabilir.

. PARAMETER EncryptedPassword

TSV dosyasında depolanan şifrelenmiş parola.

. PARAMETRE EncryptionKey

Şifrelemeyi gerçekleştirmek için kullanılan parola.

. ÖRNEK

. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
ConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMAxAGIAMAgBiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"

TSV dosyasında saklanan şifrelenmiş parolanın şifresini çözer.

#>
    Param(
        [Parametre(Zorunlu=$true)]
        [Dize]
        $EncryptedPassword,

        [Parametre(Zorunlu=$true)]
        [Dize]
        $EncryptionKey
    )

    $Sha 256 = new-object 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)))
}
   Yöneticiler, bir Active Directory grubu oluşturup bunu Grup İlkesigrup ilkesi Preferences -> Local Group aracılığıyla yerel Administrators grubuna ekleyerek bilgisayarlara yerel yönetici hesapları ekleyebilir. Bu eylem, kimlik bilgilerini önbelleğe almaz. İletişim kutusu aşağıdakine benzer. Bu geçici çözüm, kullanıcı bu kimlik bilgilerini kullanarak oturum açtığında Active Directory Domain Services için bir bağlantı gerektirir.

6d3013b5-df8c-898a-0a22-33a829d3755f

Senaryo 2: Eşlenen sürücüler

Yöneticiler, kullanıcılara ağ konumları tahsis etmek için sürücü haritalarını kullanır. Parola koruma özelliği, sürücüye yetkili erişim olduğundan emin olmak için kullanılır. Aşağıdaki tercihler etkilenir:

  • Kullanıcı Yapılandırması -> Windows Ayarları -> Sürücü Haritaları -> Yeni -> Eşlenmiş Sürücü

Önemli değişiklikler

Eylem: Oluşturma, güncelleştirme veya değiştirme

  • Kullanıcı adı, Parola ve Parolayı onayla alanları devre dışı bırakılır.

                 78e7a904-5d9c-8655-e4b6-2d7c8dc3c3f9
                
Eylem: Sil

  • Davranışta değişiklik yok

Geçici Çözümler

Kimlik doğrulaması için parola yöntemini kullanmak yerine, paylaşım izinlerini yönetmek ve kullanıcılara hak atamak için Windows Gezgini'ni kullanabilirsiniz. Klasörün izinlerini denetlemek için Active Directory nesnelerini kullanabilirsiniz.

Senaryo 3: Hizmetler

Hizmet özelliklerini özgün güvenlik bağlamı dışında bir bağlamda çalışacak şekilde değiştirmek için Hizmetler tercihini kullanabilirsiniz. Aşağıdaki tercihler etkilenir:

  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Hizmetler -> Yeni -> Hizmet

Önemli değişiklikler

Başlangıç: Değişiklik yok, otomatik veya el ile

  • Parola ve Parolayı onayla alanları devre dışı bırakılır.
  • Yönetici yalnızca yerleşik hesapları kullanabilir.

                 BD4E263C-D8E6-E20F-B57A-9C1C5CACA355
                
Başlangıç: Devre dışı bırak

  • Davranışta değişiklik yok

Yeni iletişim kutusu

  • "Bu hesap" için yerleşik olmayan kullanıcıları kullanmaya çalışan yöneticiler aşağıdaki uyarıyı alır:

                 975f73f7-e950-ad09-d46b-b68ac9a5e4cb
                
                
              

Geçici Çözümler

                
                
Hizmetler yerel sistem hesabı olarak çalışmaya devam edebilir. Hizmet izinleri, Microsoft Bilgi Bankası'ndaki aşağıdaki makalede belgelendiği gibi değiştirilebilir:

256345 Sistem hizmetlerinin güvenliğini ayarlamak için grup ilkesi ayarlarını yapılandırma

Not Yapılandırmak istediğiniz hizmet yoksa, ayarları hizmetin çalıştığı bir bilgisayarda yapılandırmanız gerekir. 

Senaryo 4: Zamanlanan ve anlık görevler (üst düzey)

Bunlar, belirli bir güvenlik bağlamında zamanlanmış görevleri çalıştırmak için kullanılır. Kullanıcı oturum açmadığında rasgele kullanıcı olarak çalıştırılması için zamanlanmış görevlerin kimlik bilgilerini depolama özelliği artık kullanılamaz. Aşağıdaki tercihler etkilenir. (Bazı platformlarda, "En azından Windows 7" ifadesinin "Windows Vista ve üstü" ile değiştirildiğini unutmayın.)

  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev (En az Windows 7)
  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (En az Windows 7)
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev (En az Windows 7)
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (En az Windows 7)

Önemli değişiklikler

Eylem: Oluşturma, güncelleştirme veya değiştirme

  • Kullanıcı oturum açmış olsun ya da olmasın çalıştır seçeneğini belirttiğinizde, bir iletişim kutusu artık yöneticiden kimlik bilgileri istemez.
  • Parolayı saklama onay kutusu devre dışıdır. Varsayılan olarak, kutu da işaretlidir.

                 60ff2409-1c24-a2aa-466d-89afaadaf0a0
                
Eylem: Sil

Davranışta değişiklik yok

Geçici Çözümler

"Zamanlanmış Görev (en az Windows 7)" ve "Anlık Görev (en az Windows 7)" görevleri için yöneticiler, belirli bir kullanıcı oturum açtığında belirli kullanıcı hesaplarını kullanabilir. Ya da yalnızca bu kullanıcı olarak yerel kaynaklara erişebilirler. Bu görevler yine de yerel hizmet bağlamında çalıştırılabilir.

            
Senaryo 5: Zamanlanan ve anlık görevler (alt düzey) Bu, belirli bir güvenlik bağlamında Zamanlanmış Görevleri çalıştırmak için kullanılan tercihlerin alt düzey sürümüdür. Kullanıcı oturum açmadığında rasgele kullanıcı olarak çalıştırılması için zamanlanmış görevlerin kimlik bilgilerini depolama özelliği artık kullanılamaz. Aşağıdaki tercihler etkilenir:

  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev
  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (Windows XP)
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (Windows XP)

Önemli değişiklikler

Eylem: Oluşturma, güncelleştirme veya değiştirme

  • Farklı çalıştır onay kutusu devre dışıdır. Bu nedenle, Kullanıcı Adı, Parola ve Parolayı Onayla alanlarının tümü devre dışı bırakılır.

                 2baacb70-2e5a-e72d-7fd6-3e358608d76c
                
Eylem: Sil

 Davranışta değişiklik yok

Geçici Çözümler

"Zamanlanmış Görev" ve "Anlık Görev (Windows XP)" öğeleri için, zamanlanmış görevler yerel hizmetin şu anda kullanımına açık olan izinler kullanılarak çalıştırılır. 

Senaryo 6: Veri Kaynakları

Veri Kaynakları tercihi, veri kaynağını bir bilgisayar veya kullanıcıyla ilişkilendirmek için kullanılır. Bu özellik, parolayla korunan veri kaynaklarına erişimi etkinleştirmek için kimlik bilgilerini artık depolamaz. Aşağıdaki tercihler etkilenir:

  • Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Veri Kaynakları
  • Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Settings -> Data Sources

Önemli Değişiklikler

Eylem: Oluşturma, güncelleştirme veya değiştirme

  • Kullanıcı Adı, Parola ve Parolayı Onayla alanları devre dışı bırakılır:

                 92beb16c-1b15-8903-a694-f471212d4a45
                
Eylem: Sil

  • Davranışta değişiklik yok

Geçici Çözümler

Kullanılabilecek bir geçici çözüm yoktur. Bu tercih artık parolayla korunan veri kaynaklarına erişim izni vermek için kimlik bilgilerini depolamaz. 

CPassword'un kullanımdan kaldırılması

CPassword'u kaldırma

Bu Microsoft Bilgi Bankası makalesinde yer alan Windows PowerShell betiği, bir etki alanının CPassword kullanabilecek herhangi bir grup ilkesi Tercihleri içerip içermediğini algılar. Verilen bir tercihte CPassword XML algılanırsa, bu listede görüntülenir. 

CPassword tercihlerini algılama

Bu betik, temizlemek istediğiniz etki alanı denetleyicisindeki yerel bir dizinden çalıştırılmalıdır. İçeriği yeni bir Windows PowerShellWindows PowerShell dosyasına kopyalayıp kaydedin, sistem sürücünüzü belirleyin ve ardından betiği aşağıdaki kullanımda belirtildiği gibi çalıştırın.

  <#
. ÖZET
Etki alanınızdaki grup ilkesi nesnelerin, aşağıdakiler gibi farklı görevlere yönelik parolaları depolayan tercihleri olabilir:
1. Data Sources
2. Sürücü Haritaları
3. Yerel Kullanıcılar
4. Zamanlanmış Görevler (hem XP hem de üst düzey)
5. Hizmetler
Bu parolalar, GP tercihlerinin bir parçası olarak SYSVOL'de depolanır ve zayıf şifreleme (32 bayt AES) nedeniyle güvenli değildir.
Dolayısıyla, bu tür tercihleri etki alanı ortamınıza dağıtmamanızı ve var olan bu tür tercihleri kaldırmanızı öneririz.
tercihler. Bu betik, yöneticinin etki alanının parolaları içeren SYSVOL'unda GP Tercihlerini bulmasına yardımcı olmaktır.

. AÇIKLAMA
Bu komut dosyası, aşağıdakileri içeren tüm tercihlerin yazdırılabilmesi için DC'de veya RSAT yüklü bir istemci bilgisayarda çalıştırılmalıdır.
bu tercihin tanımlandığı GPO, Tercih Adı, GPEdit yolu gibi bilgileri içeren parola.
Etkilenen tercihlerin bir listesini elde ettikten sonra, bu tercihler grup ilkesi Yönetim Konsolu'ndaki düzenleyici kullanılarak kaldırılabilir.

. SÖZ DIZIMI
Get-SettingsWithCPassword.ps1 [-yol <dizesi>]
. ÖRNEK
Get-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domain
Get-SettingsWithCPassword.ps1 -Path <GPO Yedekleme Klasörü Yolu>

. NOTLAR
grup ilkesi PS modülü bulunamazsa, çıkış GPO adları yerine GPO GUID'leri içerir. Windows çalıştırabilir
veya RSAT'yi yükledikten sonra betiği istemcide yeniden çalıştırın ve
grup ilkesi modülünü etkinleştirdi.
Get-GPO cmdlet'ini kullanarak GPO adlarını almak için GPO GUID'lerini de kullanabilirsiniz.

. BAĞLANTI
http://go.microsoft.com/fwlink/?LinkID=390507

#>
#----------------------------------------------------------------------------------------------------------------

Giriş parametreleri

#--------------------------------------------------------------------------------------------------------------
param(
    [string]$Path = $(throw "-Path gerekli.") # GPP'lerin bulunduğu dizin yolu.
 )
#---------------------------------------------------------------------------------------------------------------
$isGPModuleAvailable = $false
$impactedPrefs = { "Groups.xml", "ScheduledTasks.xml","Services.xml", "DataSources.xml", "Drives.xml" }
#----------------------------------------------------------------------------------------------------------------

Varsa Group olicy modülünü içeri aktar

#----------------------------------------------------------------------------------------------------------------
if (-not (Get-Module -name "GroupPolicy"))
{
   if (Get-Module -ListAvailable |
         Where-Object { $_. Name -ieq "GroupPolicy" })
    {
        $isGPModuleAvailable = $true
        "GroupPolicy" Import-Module
    }
    değilse
    {
        Write-Warning "PowerShell için grup ilkesi modülü içeri aktarılamıyor. Bu nedenle, GPO guid'leri bildirilir.
                       GPO adlarını almak için bu betiği DC'de çalıştırın veya GPO guid'sinden GPO adını almak için Get-GPO cmdlet'ini (DC'de) kullanın."
    }
}
değilse
{
    $isGPModuleAvailable = $true
}
İşlev Enum-SettingsWithCpassword ( [dize]$sysvolLocation )
{
    # GPMC ağaç yolları
    $commonPath = " -> Tercihler -> Denetim Masası Ayarlar -> "
    $driveMapPath = " -> Tercihler -> Windows Ayarları -> "

    # SYVOL konumundaki tüm xml dosyalarını yinelemeli olarak alın
    $impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_. İsim }

    # Her xml dosyası birden çok tercih içerir. Olup olmadığını denetlemek için her tercihi yineleyin
    # cpassword özniteliğini içerir ve görüntüler.
    foreach ( $file in $impactedXmls )
    {
        $fileFullPath = $file. Tam Ad

        # GPP kategorisini ayarlayın. Dosya, SYSVOL'daki Makine klasörü altındaysa
        # Ayar, Bilgisayar Yapılandırması altında tanımlanmıştır, aksi takdirde
        # ayarı bir kullanıcı yapılandırmasıdır
        if ( $fileFullPath.Contains("Makine") )
        {
            $category = "Bilgisayar Yapılandırması"
        }
        elseif ( $fileFullPath.Contains("Kullanıcı") )
        {
            $category = "Kullanıcı Yapılandırması"
        }
        değilse
        {
            $category = "Bilinmiyor"
        }
        # Dosya içeriğini XML olarak al
        deneyin
        {
            [xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue
        }
        catch [Exception]{
            Write-Host $_. Exception.Message
        }
        if ($xmlFile -eq $null)
        {
            devam
        }
        Anahtar ( $file. Temel Adı )
        {
            Gruplar
            {
                $gppWithCpassword = $xmlFile.SelectNodes("Gruplar/Kullanıcı") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Yerel Kullanıcılar"
            }
            Zamanlanmış Görevler
            {
                $gppWithCpassword = $xmlFile.SelectNodes("ZamanlanmışGörevler/*") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Zamanlanmış Görevler"
            }
            Veri Kaynakları
            {
                $gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Veri kaynakları"
            }
            Sürücüler
            {
                $gppWithCpassword = $xmlFile.SelectNodes("Sürücüler/Sürücü") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Sürücü Haritaları"
            }
            Hizmetler
            {
                $gppWithCpassword = $xmlFile.SelectNodes("NTServices/NTService") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Hizmetler"
            }
            varsayılan
            { # sonraki öğe için gppWithCpassword ve preferenceType'ı temizle.
                deneyin
                {
                    Clear-Variable -Name gppWithCpassword -ErrorAction SessizceDevam Et
                    Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue
                }
                catch [Özel Durum]{}
            }
        }
        if ($gppWithCpassword -ne $null)
        {
            # FilePath'ten ayıklanan GUID'den GPO adı oluşturun
            $guidRegex = [normal ifade]"\{(.*)\}"
            $match = $guidRegex.match($fileFullPath)
            if ($match. Başarılı)
            {
               $gpoGuid = $match.groups[1].value
               $gpoName = $gpoGuid
            }
            değilse
            {
               $gpoName = "Bilinmiyor"
            }
            EĞER($isGPModuleAvailable -EQ $true)
            {
                deneyin
                {
                    $gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue
                    $gpoName = $gpoInfo.DisplayName
                }
                catch [Exception] {
                    Write-Host $_. Exception.Message
                }
            }
            # cPassword içeren tercihleri görüntüleyin
            foreach ( $gpp in $gppWithCpassword )
            {
                if ( $preferenceType -eq "Sürücü Haritaları" )
                {
                    $prefLocation = $category + $driveMapPath + $preferenceType
                }
                değilse
                {
                    $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. İsim) -passthru |
                       Add-Member -MemberType NoteProperty -name Path -value ($prefLocation)
                Write-Output $obj
            }
        } # end if $gppWithCpassword
    } # end foreach $file
} # End İşlevleri Enum-PoliciesWithCpassword
#-----------------------------------------------------------------------------------

Yolun geçerli olup olmadığını denetleyin. cpassword içeren tüm ayarları numaralandırın.

#-----------------------------------------------------------------------------------
if (Test-Path $Path )
{
    Enum-SettingsWithCpassword $Path
}
değilse
{
    Write-Warning "Böyle bir dizin yok: $Path"
}

Örnek kullanım (sistem sürücüsünün C olduğu varsayılmaktadır)

.\Get-SettingsWithCPassword.ps1 –path "C:\Windows\SYSVOL\domain" | Format-List
Not Etki alanı yerine yol için herhangi bir yedek GPO'yu hedefleyebileceğinizi unutmayın.

Algılama betiği aşağıdakine benzer bir liste oluşturur:

F9C1582E-A8D3-6F33-FFDD-7C143530043D

Daha uzun listeler için çıkışı bir dosyaya kaydetmeyi göz önünde bulundurun:

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

CPassword tercihlerini kaldırma

CPassword verilerini içeren tercihleri kaldırmak için, etki alanı denetleyicisinde veya Uzak Sunucu Yönetim Araçları yüklü olan bir istemcide grup ilkesi Yönetim Konsolu (GPMC) kullanmanızı öneririz. Bu konsollarda herhangi bir tercihi beş adımda kaldırabilirsiniz. Bunu yapmak için aşağıdaki adımları izleyin:

  1. GPMC'de, CPassword verilerini içeren tercihi açın.
  2. Tercihinize göre, eylemi Sil veya Devre Dışı Bırak olarak değiştirin.
  3. Yaptığınız değişiklikleri kaydetmek için Tamam'ı tıklatın.
  4. Değişikliklerin istemcilere yayılmasına izin vermek için bir veya iki Grup İlkesigrup ilkesi yenileme döngülerini bekleyin.
  5. Değişiklikler tüm istemcilere uygulandıktan sonra tercihi silin.
  6. Tüm ortamınızı temizlemek için 1 ile 5 arasındaki adımları gerektiği kadar yineleyin. Algılama betiği sıfır sonuç döndürdüğünde işiniz tamamlanmış demektir.
Dosya karması bilgileri
Dosya adı SHA1 karması SHA256 karması
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