Share via


WinRM kullanarak PowerShell Uzaktan İletişimi için GüvenlikLe İlgili Dikkat Edilmesi Gerekenler

PowerShell Uzaktan İletişimi, Windows sistemlerini yönetmek için önerilen yoldur. PowerShell Uzaktan İletişimi, Windows Server 2012 R2 ve üzeri sürümlerde varsayılan olarak etkindir. Bu belge PowerShell uzaktan iletişimini kullanırken güvenlikle ilgili endişeleri, önerileri ve en iyi yöntemleri kapsar.

PowerShell Uzaktan İletişimi nedir?

PowerShell Uzaktan İletişimi, kullanıcıların uzak bilgisayarlarda PowerShell komutlarını çalıştırmasına izin vermek için Windows Uzaktan Yönetimi 'nı (WinRM) kullanır. WinRM, Yönetim için Web Hizmetleri (WS-Management) protokolünün Microsoft uygulamasıdır. PowerShell uzaktan iletişimini kullanma hakkında daha fazla bilgiyi Uzak Komutları Çalıştırma bölümünde bulabilirsiniz.

PowerShell Uzaktan İletişimi, cmdlet'in ComputerName parametresini kullanarak bunu temel protokol olarak Uzaktan Yordam Çağrısı (RPC) kullanan uzak bir bilgisayarda çalıştırmakla aynı değildir.

PowerShell Uzaktan İletişimi varsayılan ayarları

PowerShell Uzaktan İletişimi (ve WinRM) aşağıdaki bağlantı noktalarını dinler:

  • HTTP: 5985
  • HTTPS: 5986

Varsayılan olarak, PowerShell Uzaktan İletişimi yalnızca Yönetici istrators grubunun üyelerinden gelen bağlantılara izin verir. Oturumlar kullanıcının bağlamı altında başlatılır, bu nedenle tek tek kullanıcılara ve gruplara uygulanan tüm işletim sistemi erişim denetimleri, PowerShell Uzaktan İletişimi üzerinden bağlanırken bunlara uygulanmaya devam eder.

Özel ağlarda, PowerShell Uzaktan İletişimi için varsayılan Windows Güvenlik Duvarı kuralı tüm bağlantıları kabul eder. Genel ağlarda, varsayılan Windows Güvenlik Duvarı kuralı PowerShell Uzaktan İletişim bağlantılarına yalnızca aynı alt ağ içinden izin verir. PowerShell Uzaktan İletişimi'ni genel ağdaki tüm bağlantılarla açmak için bu kuralı açıkça değiştirmeniz gerekir.

Uyarı

Genel ağlar için güvenlik duvarı kuralı, bilgisayarı kötü amaçlı olabilecek dış bağlantı girişimlerine karşı korumaya yöneliktir. Bu kuralı kaldırırken dikkatli olun.

İşlem yalıtımı

PowerShell Uzaktan İletişimi, bilgisayarlar arasındaki iletişim için WinRM kullanır. WinRM, Ağ Hizmeti hesabı altında bir hizmet olarak çalışır ve PowerShell örneklerini barındırmak için kullanıcı hesabı olarak çalışan yalıtılmış işlemler oluşturur. Bir kullanıcı olarak çalışan bir PowerShell örneğinin, PowerShell örneğini başka bir kullanıcı olarak çalıştıran bir işleme erişimi yoktur.

PowerShell Uzaktan İletişimi tarafından oluşturulan olay günlükleri

FireEye, PowerShell Uzaktan İletişimi oturumları tarafından oluşturulan olay günlüklerinin ve diğer güvenlik kanıtlarının iyi bir özetini PowerShell Saldırılarını Araştırma sayfasından sağlamıştır.

Şifreleme ve aktarım protokolleri

PowerShell Uzaktan İletişim bağlantısının güvenliğini iki açıdan ele almak yararlı olur: ilk kimlik doğrulaması ve sürekli iletişim.

Kullanılan aktarım protokolünden (HTTP veya HTTPS) bağımsız olarak, WinRM ilk kimlik doğrulamasından sonra her zaman tüm PowerShell uzaktan iletişim iletişimini şifreler.

İlk kimlik doğrulaması

Kimlik doğrulaması, istemcinin kimliğini sunucuya ve ideal olarak istemciye doğrular.

İstemci, bilgisayar adını kullanarak bir etki alanı sunucusuna bağlandığında, varsayılan kimlik doğrulama protokolü Kerberos'tır. Kerberos, yeniden kullanılabilir herhangi bir kimlik bilgisi göndermeden hem kullanıcı kimliğini hem de sunucu kimliğini garanti eder.

İstemci IP adresini kullanarak bir etki alanı sunucusuna bağlandığında veya bir çalışma grubu sunucusuna bağlandığında, Kerberos kimlik doğrulaması mümkün değildir. Bu durumda, PowerShell Uzaktan İletişimi NTLM kimlik doğrulama protokolüne dayanır. NTLM kimlik doğrulama protokolü, temsilci seçilebilir herhangi bir kimlik bilgisi göndermeden kullanıcı kimliğini garanti eder. NtLM protokolü, kullanıcı kimliğini kanıtlamak için hem istemcinin hem de sunucunun parolanın kendisini değiştirmeden kullanıcının parolasından bir oturum anahtarı hesaplamasını gerektirir. Sunucu genellikle kullanıcının parolasını bilmez, bu nedenle kullanıcının parolasını bilen ve sunucu için oturum anahtarını hesaplayan etki alanı denetleyicisiyle iletişim kurar.

Ancak NTLM protokolü sunucu kimliğini garanti etmez. Kimlik doğrulaması için NTLM kullanan tüm protokollerde olduğu gibi, etki alanına katılmış bir bilgisayarın makine hesabına erişimi olan bir saldırgan, bir NTLM oturum anahtarını hesaplamak ve böylece sunucunun kimliğine bürünmek için etki alanı denetleyicisini çağırabilir.

NTLM tabanlı kimlik doğrulaması varsayılan olarak devre dışıdır, ancak hedef sunucuda SSL yapılandırılarak veya istemcide WinRM TrustedHosts ayarı yapılandırılarak izin verilebilir.

NTLM tabanlı bağlantılar sırasında sunucu kimliğini doğrulamak için SSL sertifikaları kullanma

NTLM kimlik doğrulama protokolü hedef sunucunun kimliğini (yalnızca parolanızı zaten biliyor) sağlayabildiği için, hedef sunucuları PowerShell Uzaktan İletişimi için SSL kullanacak şekilde yapılandırabilirsiniz. Hedef sunucuya SSL sertifikası atamak (istemcinin de güvendiği bir Sertifika Yetkilisi tarafından verildiyse), hem kullanıcı kimliğini hem de sunucu kimliğini garanti eden NTLM tabanlı kimlik doğrulamasını etkinleştirir.

NTLM tabanlı sunucu kimliği hatalarını yoksayma

NTLM bağlantıları için bir sunucuya SSL sertifikası dağıtmak mümkün değilse, sunucuyu WinRM TrustedHosts listesine ekleyerek ortaya çıkan kimlik hatalarını gizleyebilirsiniz. NtLM kimlik doğrulama protokolü aslında bağlanmak istediğiniz konağa bağlandığınızdan emin olabildiği için, TrustedHosts listesine bir sunucu adı eklemenin konakların güvenilirlik bildiriminin herhangi bir biçimi olarak kabul edilmemesi gerektiğini lütfen unutmayın. Bunun yerine, TrustedHosts ayarını sunucunun kimliğini doğrulayamadıktan sonra oluşturulan hatayı engellemek istediğiniz konakların listesi olarak düşünmelisiniz.

Devam Eden İletişim

İlk kimlik doğrulaması tamamlandıktan sonra WinRM devam eden iletişimi şifreler. HTTPS üzerinden bağlanırken, verileri taşımak için kullanılan şifrelemeyi anlaşmak için TLS protokolü kullanılır. HTTP üzerinden bağlanırken, ileti düzeyinde şifreleme kullanılan ilk kimlik doğrulama protokolü tarafından belirlenir.

  • Temel kimlik doğrulaması şifreleme sağlamaz.
  • NTLM kimlik doğrulaması, 128 bit anahtara sahip bir RC4 şifrelemesi kullanır.
  • Kerberos kimlik doğrulaması şifrelemesi, TGS anahtarındaki tarafından etype belirlenir. Bu, modern sistemlerde AES-256'dır.
  • CredSSP şifrelemesi, el sıkışmada anlaşmaya varılan TLS şifreleme paketini kullanır.

İkinci atlamanın yapılması

PowerShell Uzaktan İletişimi varsayılan olarak kimlik doğrulaması için Kerberos (varsa) veya NTLM kullanır. Bu protokollerin her ikisi de kimlik bilgilerini göndermeden uzak makinede kimlik doğrulaması yapar. Kimlik doğrulamasının en güvenli yolu budur, ancak uzak makine kullanıcının kimlik bilgilerine sahip olmadığından, kullanıcı adına diğer bilgisayarlara ve hizmetlere erişemez. Bu, "ikinci atlama sorunu" olarak bilinir.

Bu sorundan kaçınmanın çeşitli yolları vardır. Bu yöntemlerin açıklamaları ve bunların artıları ve dezavantajları için bkz . PowerShell uzaktan iletişiminde ikinci atlamayı yapma.

Başvurular