Sistem yöneticileri tarafından sunucularda çok sık yapılan, aslında çokta önemsenmeyen ve yapıda zafiyetlere neden olabilecek bir senaryo üzerinden giderek, yetkili bir kullanıcının kimlik bilgilerini nasıl ele geçirebileceğimizi ve nasıl kullanacağımızı ele alacağız.
Backup operasyonları için kullanmakta olduğumuz BACKUPSRV01 isimli bir sunucumuz bulunmaktadır. Backup operasyonları Bilgi Teknolojileri bölümünde Ağ ve Güvenlik Ekibi tarafından gerçekleştirilmektedir. Sunucunun yönetimi ise Windows Sistemler Birimi tarafından yapılmaktadır. Bu sunucu üzerinde Ağ ve Güvenlik Grubu sunucuya erişebilmeleri ve işlem yapabilmeleri için local admin grubunda yer almaktadır. Sunucu domainde olduğu için ve politikaları aldığı içinde Domain Admins grubu aynı şekilde local admin grubunda yer almaktadır. Ağ ve Güvenlik Grubunun içinde Necip Usta ve Ozan Diren isimli kullanıcılar yer almaktadır.


Şimdiki senaryomuzda Windows Sistemler Biriminde çalışan Ahmet Yilmaz isimli kullanıcı sunucuya Windows update paketlerini yüklemek için giriş yapıyor.



Windows update paketlerini yükleme işlemini başlatıyor, bu işlem uzun süreceği için ve eğer sunucu üzerinde oturumu kapatırsa update işlemi devam etmeyeceği için sunucu üzerinden X ile disconnected olarak çıkıyoruz ki, tekrar sunucuya giriş yaptığında update işlemi devam ediyor olsun ve kalan işlemlerine devam edebilsin. Buna benzer sunucu üzerinde boyutu büyük bir dosya kopyalarken, o kopyalama işlemi kesilmesin diye, bazen bu tür aksiyon alınıyor. Kısacası Ahmet yilmaz kullanıcısı sunucudan X ile çıktığında arka planda açık sessionlar devam ediyor oluyor.

Bu işlem sonrasında Ağ ve Güvenlik ekibinde çalışan ve AD üzerinde sadece Domain Users ve backup operasyonlarını yürüttüğü için Backup Operators grubunda yer alan necip.usta sunucuya giriş yapıyor.


Sunucuya login olduktan sonra Backup operasyonlarını yönettiği için Windows Server Backup üzerinden alınan backup’ları kontrol ediyor.

Backup’ları kontrol ettikten sonra, kötü niyetli bir çalışan olduğu için ve bu sunucuya Bilgi teknolojileri bölümünde beraber çalıştığı Windows Sistemler ekibindeki kullanıcılarında giriş yaptığını biliyor. Sunucu üzerinden Task Manager’a giriş yaparak, sunucu üzerinde login olmuş olan kullanıcı olup olmadığını kontrol ediyor. Ahmet Yılmaz isimli kullanıcının sunucuya login olduğunu ve disconnected durumda olduğunu gördükten sonra sosyal mühendislik yaparak işlemlerine başlıyor.

İlk olarak internet üzerinden bu işlemde kullanacağı “Process Hacker” uygulamasını indiriyor. Uygulama adının içerisinde hacker kelimesi geçiyor ama, bu uygulama içerisinde kötü amaçlı yazılımlar içeren bir uygulama değil, uygulamayı indirmeye başladığımızda Windows Defender ve sunucuda kurulu olan Antivirüs uygulamamız herhangi bir şekilde uyarı vermemektedir. Bu uygulama bakıldığı zaman bilgisayarlarımızda kullandığımız Task Manager’in biraz daha gelişmiş halidir diyebiliriz. Bu uygulama içerisinde process’lerin çalışmasını nereye bağlı olduğunu gibi bilgileri bizlere biraz daha detaylı şekilde sunuyor. Ayrıca process’lere de müdahale etmemize imkân sunuyor.


Uygulamayı indirdikten sonra rar dosyasından çıkartıyor ve uygulaması admin yetkileriyle çalıştırıyor.


Uygulamayı çalıştırdıktan sonra, açılan ekranda çalışan process’lerin hangi kullanıcı tarafından başlatıldığı bilgilerini görebiliyoruz. Örnek olarak kontrol ettiğimizde “Explorer.exe” Ahmet.yilmaz kullanıcı ile çalışmakta olduğunu ve bunun üzerinde kimlik bilgilerini bıraktığını görüyoruz. “Explorer.exe” Windows’un arayüzünün gelmesini sağlayan exe’dir.

Explorer.exe’nin üzerine gelip, sağ tık yapıyoruz ve sırasıyla Miscellaneous/Run as this user seçenekleri üzerinden ilerliyoruz. Başka Ahmet.yilmaz üzerinden çalışan process’leride seçebilirdik, biz Explorer.exe üzerinden ilerlemeyi tercih ettik.

Gelen ekranda, program alanında istersek cmd.exe’yide açabiliriz, biz bu işlemi powershell.exe ile gerçekleştireceğimiz için bu alana powershell.exe yazıyoruz ve “Toggle elevation” seçeneğini de tikleyerek ok diyerek devam ediyoruz.

Sonrasında powershell.exe açılmış oluyor. Powershell sistem yöneticisi olarak Microsoft Windows işletim sistemlerini yönetirken sıklıkla kullanmış olduğumuz bir üründür. Özellikle AD yönetiminde çok sık kullanırız. Powershell üzerinde hangi kullanıcı ile giriş yaptığımızı ve yetkimizi öğrenmek için whoami yazıyoruz ve gelen ekranda Ahmet.yilmaz isimli kullanıcı ile giriş yapmış olarak görünmekteyiz. Bundan sonra yapacağımız tüm işlemler bu kullanıcının yetkisi ney ise o haklar ve onun izinleri doğrultusunda yapacağım şeyler ve yaptığım her şeyin loğlarında da bu işlemi yapan kişinin Ahmet.yilmaz kullanıcısı olduğu görünecektir. Biz necip usta kullanıcıyla giriş yapıp, bu ekrana erişmiş olmamıza rağmen tüm işlemler Ahmet Yilmaz kullanıcı üzerinden yapılmış olarak görünecektir.

Bu işlemden sonra AD’ye erişmek istediğimiz için, ilk olarak sunucu üzerinden daha öncede kullanmış olduğumuz set logon server komutu ile şuanda hangi AD üzerinden hizmet aldığımızı öğreniyoruz, kısacası burada AD’nin ismini öğrenerek, o AD’yi kullanarak, işlemler gerçekleştireceğiz.

Windows Server 2012 ve sonrası işletim sistemlerinde uzaktan powershell remoting ile bağlanabilmekteyiz. Şuanda Domain Controller sunucusuna da bu işlem ile bağlanıp, işlem gerçekleştireceğiz. Çünkü az önce belirtmiş olduğumuz uzaktan powershell remoting işlemi açık varsayılan olarak açık durumdadır. Bağlanmak için Enter-PSSession –ComputerName aykutdc01 komutunu kullanmaktayız. AD’nin ismini az önce set logonserver komutu ile öğrenmiştik. Başarılı bir şekilde AD’ye powershell üzerinden bağlanmış olduk, şuanda AD üzerinde olduğumuzu kontrol etmek için ipconfig komutunu yazdığımızda, bana AD’nin IP bilgilerini getirmektedir.

Şuanda AD üzerine bağlı olduğum için Ahmet.yilmaz kullanıcının yetkileri ile birçok komutu çalıştırabilir ve sorgu atabilirim. Örnek olarak yapı üzerinde bilgi sahibi olmak için, get-aduser –filter * komutunu kullanarak AD üzerinde var olan bütün kullanıcıları sorguluyorum.


Sonrasında get-adgroupmember “Domain Admins” komutunu kullanarak, AD üzerinde Domain Admins grubunda yer alan kullanıcıları sorguluyorum. Bu sorgulama sonucunda Ahmet.yilmaz kullanıcısının Domain Admin yetkisine sahip olduğunu görüyoruz. Artık AD üzerinde en yetkili hesaplardan birisini olduğunu öğrendikten sonra, necip.usta kullanıcısına istersem domain admin grubuna dahil edebilirim.

Necip.usta kullanıcısını domain admins grubuna eklemek için Add-AdGroupMember “Domain Admins” –Members necip.usta komutunu kullanıyorum. Sonrasında tekrar get-adgroupmember “Domain Admins” komutunu çalıştırarak, Domain Admins grubu içerisinde yer alan kullanıcıları tekrar sorguluyorum. Burada necip.usta kullanıcının eklenmiş olduğunu gördük.


Artık bu işlemden sonra AD üzerinde bütün işlemleri gerçekleştirebiliriz. Ardından exit-PSSession komutu ile çıkış yapıyoruz.
