Restricted Admin mode for RDP Remote Desktop Connection

Windows 8.1 ve Server 2012 R2 ile hayatımıza giren yeni bir güvenlik özelliği olan Restricted Admin mode sayesinde özellikle “pass the hash” olarak bildiğimiz bir işletim sisteminin hafızasındaki yönetici parolalarının çalınmasına olanak tanıyan ataklardan korunmuş oluyoruz.

Burada sadece kötü niyetli kişileri değil, bağlandığınız uzak masa üstü sunucusunu ortak kullanan diğer yönetici ve kullanıcılarında büyük bir risk taşıdığını unutmayın. Özellikle ortak kullanılan yönetim makinelerinde herhangi bir kullanıcı zafiyeti çok ciddi kötü sonuçlarla yüzleşmenize sebep olabilir.

Genellikle şirketlerde yönetici hesapları ile (örneğin kullanıcı destek ekibi) son kullanıcı bilgisayarlarına bağlanırlar. Eğer bağlandıkları makineler bir şekilde saldırganlar tarafından ele geçirilmiş ise bu durumda yönetici şifresinin ram yani hafıza veya kullandığınız bağlantı yöntemine göre ele geçirilmesi son derece kolaydır.

Yukarıdaki tabloda görebileceğiniz gibi, varsayılan olarak kullanılan yani herhangi bir sıkılaştırma yapılmamış active directory domain ortamlarında kullanılan pek çok kimlik doğrulama ve bağlantı yönteminde şifreler memory üzerinde açık bir şekilde saklanmaktadır.

Peki Restricted Admin mode for Remote Desktop Connection bize bu noktada nasıl bir koruma sağlıyor?

Temel olarak normal bağlantı yöntemindeki yönetici şifresini RDP oturumuna aktarmadığı için bu sunucu veya bu sunucu üzerinden bağlandığı bir başka sunucudan yönetici şifresi çalınamaz. Ancak RDP yapılan makineye admin şifresi taşınmadığı için admin olarak başka bir kaynağa bağlanmak isterseniz rdp yaptığınız uzak makinenin makine hesabı ile kaynaklara erişmeye çalışırsınız. Yani SSO çalışmaz. Bu nedenle bu özelliği uygun senaryolar için kullanmanız gerekli.

1 – Helpdesk gibi yöneticilerin şirket çalışanlarının bilgisayarlarına bağlanırken. Ama oradan dur bir file server’ a bağlanayım ilgili dosyayı çekeyim derseniz o olmaz, çünkü çalışan bilgisayarından file server’ a giderken çalışan bilgisayarın makine hesabı ile gidersiniz. Bunun çözümü önce yönetici hakkı ile o dosyayı istemci bilgisayarına kopyalamak veya daha doğrusu bu ve benzeri yükleme dosyaları için makine hesaplarının da erişebileceği bir ortak alan oluşturmak.

2 – Sistem yöneticilerinin yönetim amaçlı bağlandığı sunucular. Ama örnek bir makine kurup diğer tüm sunuculara bu makine üzerinden bağlanmak istiyorsanız bu da işinizi görmez.  Bu senaryo için farklı bir çözüm kullanmanız gerekli. Buna kısaca PAW diyoruz.

Privileged Access Workstation (PAW) security model

Yani kabaca MFA aktifleştirilmiş, full disk şifrelemesi olan, USB bağlantıları, network bağlantıları sınırlı, host firewall başta pek çok anti malware ve benzeri ürün ile korunan, kritik olay günlükleri için Audit veya SIEM araçları ile izlenen kapalı kutu sistemler kullanmanız önerilmektedir.

Nasıl Kullanıyoruz?

Öncelikle bu özelliği sadece uzak sistemlere bağlanacak yönetici hesapları için kullanabilirsiniz. Örneğin şirketinizin ortak terminal sunucusuna bağlanacak domain users yetkisine sahip kullanıcılar bunu kullanamaz. Zaten amacımız da yönetici hesaplarını korumak.

Güvenli bağlantı için hem bağlantı yapacağınız istemci yani yönetici bilgisayarında hem de bağlanacağınız uzak sunucular veya son kullanıcı bilgisayarlarında bir ayar değiştirmeniz gereklidir.

Kendi bilgisayarınız ya da adminlerin bilgisayarlarında aşağıdaki ayarı aktif ediyoruz.

Computer Configuration\Policies\Administrative Templates\System\Credentials Delegation

Altındaki “Restrict delegation of credentials to remote servers” seçeneğini açıyoruz.

Uzak sunucuya aşağıdaki gibi bir komut ile bağlanıyoruz;

Not: Eğer GPO ile ilerliyorsanız zaten bu istemci için tüm bağlantılar bu şekilde çalışacaktır, yani hedef sunucuda eğer ilgili ayar yok ise misal başka bir şirkete ait sunucu, internet üzerindeki başka bir sunucu gibi bu durumda bağlantı sorunu yaşamanız normaldir. Bundan dolayı eğer bağlantı bazında bunu kullanmak istiyorsanız GPO ile ilerlemek yerine bu tür bağlantılar için aşağıdaki gibi parametre kullanın.

mstsc.exe /RestrictedAdmin

Eğer gerekli olan ayarları yapmanıza rağmen bağlandığınız sistemde aşağıdaki gibi bir uyarı alıyorsanız;

Account restrictions are preventing this user from signing in. For example: blank passwords aren’t allowed, sign-in times are limited, or a policy restriction has been enforced.

Bunun temel sebebi Windows updates 2973351 ve 2975625 yüklendikten sonra bu özellik varsayılan olarak kapatılmaktadır. Bizim de öncelikle hedef sistemlerde bunu açmamız gerekli.

Bu durumda hedef sunucuda aşağıdaki kayıt defteri anahtarını oluşturmanız yeterlidir.

 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa

Yeni bir DWORD değeri oluşturuyoruz.

İsmi: DisableRestrictedAdmin

Değer: 0 olacak.

Bunu yaptıktan sonra sorunsuz bir şekilde bağlantı kurabilirsiniz.

Peki bu özelliğin artıları nedir? Eksileri nedir?

Göze çarpan en önemli artısı aslında uzak sisteme bir şifre bilgisi vermediği, daha doğrusu uzak sistem üzerinde bir şifre bilgisi tutulmadığı için pass the hash ataklarına karşın koruma sağlar. Ancak ortamınızdaki diğer güvenlik önlemlerini sıkı tutmazsanız bir noktada açık teşkil edebilir.

Nasıl?

Eğer siz normal bir RDP oturumu yaparsanız ilk olarak sizin RDP client istemciniz sizin tanımladığınız şifre ile network logon işlemini gerçekleştirir. Yani uzak makineye gider ve sizi doğrular. Eğer doğrulama başarılı olur ise sizin şifreniz hash olarak uzak sunucuya güvenlik bir şekilde iletilir. Sunucuda sizin bu bilgileriniz ile interactive logon işlemini gerçekleştirir.

Peki Restricted Admin mode açık olan uzak bir sunucuya rdp yapınca süreç nasıl işliyor?

Bu durumda rdp client uzak sunucuya doğrudan interactive logon işlemi için istek gönderir. Ancak rdp istemcisi uzak sunucuya herhangi bir şekilde plain text ve ya herhangi bir şifre göndermez. Yani ön doğrulama olmadığı için doğrudan bir kişi yönetici şifresinin hash verisini alır ise rdp portu üzerinden o sisteme sızabilir.

Malum hash çalmak çok popüler bir konu ve istemci sistemleri ile sunucu sistemleri arasında SMB/RPC açık olduğu için bir kişi elindeki hash ile sunuculara bağlanabilir. Ancak güvenliğin önemli olduğu şirketlerde sunucu sistemleri ile istemci sistemleri arasında bu portlar kapalıdır. Ancak RDP portu açık ise ki bu senaryoda açık bu durumda kötü niyetli bir kişi sadece hash değeri ile illaki kullanıcı adı ve şifre olmadan RDP protokolü üzerinden pass-the-hash atak yapabilir. Bu nedenle bu özelliği kullanırken böyle bir zafiyete neden olabileceğini unutmayın.

Buradaki en basit tavsiye aslında RDP portları içinde ip sınırı veya PAW gibi bir senaryoya geçiştir.

Umarım faydalı bir yazı olmuştur. Bir sonraki makalemde görüşmek üzere.