Herkese selamlar arkadaşlar👋 Bu yazımda sizlere Windows sistemlerde gözden kaçan ama aslında riskli bir konu olan Winlogon credentials ile yetki yükseltme senaryosundan bahsedeceğim. Bildiğiniz gibi Windows’ta oturum açma ile ilgili işlemler arka planda Winlogon servisi tarafından yönetiliyor ve bu servisin ayarları özellikle kayıt defteri üzerinden yapılan bazı küçük değişikliklerle zafiyetlere sebep olabiliyor. Saldırganlar bu zayıflıkları kullanarak düşük yetkili hesaplardan sistemde daha yüksek yetkiler elde edebilirler.

Hangi Senaryolarda Hedef Alınır?
Winlogon credentials ile yetki yükseltme senaryoları genellikle AutoAdminLogon özelliğinin aktif olduğu ve şifrenin kayıt defterinde düz metin olarak saklandığı durumlarda hedef alınabilir. Ayrıca zafiyetli veya yanlış yapılandırılmış sistemlerde kiosk makineleri, test ortamları ya da güvenlik seviyesi düşük makinelerde bu tür saldırılar için uygun ortam oluşur. Özellikle yetkisiz kullanıcıların düşük yetkilerle sistem üzerinde işlem yaptığı durumlarda saldırganlar bu zayıflıkları kullanarak yetki yükseltme gerçekleştirebilirler.
Bunun için gerekli lab ortamını kurdum ve
Windows 10 üzerinde “Windows-10-Client” ve “testuser” isimli iki kullanıcı mevcut. Windows kayıt defterine bazı temel ayarları ekledim. Özellikle Winlogon anahtarına gerekli olan komutları çalıştırdım.
Düşük Yetkili Kullanıcı ile Winlogon Credentials
Oturum Açma ve Yetkileri İnceleme
Lab ortamında testuser ile oturum açtıktan sonra ilk olarak kullanıcının yetkilerini kontrol etmek istedim. CMD açıp “whoami” ve “whoami /groups” komutlarını çalıştırdım. Çıktı kullanıcının Administrators grubunda olmadığını net bir şekilde gösteriyor. Yani elimizde kısıtlı yetkili bir kullanıcı var.

Sonrasında Windows’un kritik yapılandırma bilgilerini tuttuğu registry üzerinde araştırma yapıyoruz. Winlogon anahtarı ilgi alanımızda çünkü zaten öncesinde lab ortamında bu alanda AutoAdminLogon ayarının açık olduğunu biliyorum.
Bu adım için CMD’de şu komutu çalıştırdım: “reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
“
Bu komut ile Winlogon anahtarı altında kayıtlı olan tüm değerleri listeleyerek sistemde auto logon gibi ayarların yapılıp yapılmadığını kontrol edebiliriz.

Bu çıktıda Winlogon anahtarı altında bulunan tüm değerler listelendi. Özellikle dikkatimizi çeken üç değer var, “AutoAdminLogon” “DefaultUsername” ve “DefaultPassword”.
Alternatif olarak sadece şifreyi görmek için daha spesifik bir sorgu da yapabiliriz:
“reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword"
“
Çıktıda DefaultPassword alanında açık metin halinde “P@ssw0rd123” şifresi görünüyor.

“runas” ile Yetki Yükseltme
“runas” Komutu Nedir?
Windows işletim sisteminde “runas” başka bir kullanıcı hesabı veya genellikle admin hesabı ile bir işlem başlatmak için kullanılan yerleşik bir komuttur.
Biz burada localadmin kullanıcısının bilgileri elimizde olduğu için onunla birlikte yeni bir CMD açıyoruz.

“runas /user:Windows-10-Client" komutunu "testuser
” kullanıcısı olarak çalıştırdım. “Windows-10-Client” adlı yönetici hesabı altında yeni bir cmd açmak için kullanılır. Komut çalıştırıldığında şifre istiyor. Bu kısımda registry’den elde ettiğimiz şifreyi girdim. Şifre doğru olduğu için yeni bir cmd penceresi açıldı. Bu yeni pencerede whoami komutunu çalıştırdım ve çıktıda desktop-xxxxxx\Windows-10-Client gördüm. Böylece yetki yükseltme işleminin başarılı olduğunu ve admin yetkisiyle işlem yaptığımızı doğrulamış olduk.
Yetkili Oturumda Yapılabilecek Teknik İşlemler
Yetki yükseltme senaryolarında ilk ve en önemli adımlardan biri mevcut kullanıcının sistemde hangi hak ve ayrıcalıklara sahip olduğunu görmek diyebiliriz. Bu da saldırganın veya güvenlik uzmanının hangi işlemleri yapabileceğini anlaması açısından kritik öneme sahiptir.
Windows üzerinde sahip olduğunuz kullanıcı ayrıcalıklarını görmek için kullanabileceğiniz en temel araçlardan biri whoami /priv komutudur. CMD’de bu komutu çalıştırdığımızda o an oturum açmış kullanıcının sistem üzerinde sahip olduğu tüm ayrıcalıklar detaylı bir liste halinde ekrana gelir.

Bu liste kullanıcının aşağıdaki gibi kritik izinlere sahip olup olmadığını gösterir:
SeDebugPrivilege: Sistem üzerindeki herhangi bir işlemi hata ayıklama ve müdahale etme izni. Bu ayrıcalık sayesinde kullanıcı, normalde erişiminin olmadığı işlemlere müdahale edebilir.
SeShutdownPrivilege: Sistemi kapatma ya da yeniden başlatma izni.
SeBackupPrivilege: Dosyaları ve klasörleri yedeklemek için gereken izinler.
SeRestorePrivilege: Yedekten geri yükleme işlemlerini yapabilmek için gereken izinler.
Eğer kullanıcı hesabı bu tür kritik ayrıcalıklara sahipse bu durum yetki yükseltme için potansiyel bir avantaj. Çünkü saldırganlar bu izinleri kullanarak sistem üzerinde daha fazla kontrol elde edebilir veya güvenlik sistemlerini atlatabilirler.
Dosya Sistemi ve Loglara Erişim
Bir kullanıcı sistemde admin yetkilerine sahipse bu haklar sadece yeni programlar çalıştırmakla sınırlı kalmaz; aynı zamanda sistemin derinliklerine inip kritik dosyalara ve loglara erişim sağlamak da mümkün hale geliyor.
Örnek verecek olursak Windows işletim sistemlerinde olay günlükleri dediğimiz “event logs” çok değerli bilgi kaynaklarıdır. Açıkladığım gibi önemli log dosyalarına erişilebilir;
Güvenlik logları
C:\Windows\System32\winevt\Logs\Security.evtx
Security.evtx kullanıcı girişleri, başarısız oturum açma denemeleri, yetki yükseltmeler ve sistemdeki diğer güvenlik olaylarını içerir. İzleri silmek veya sistemde neler olup bittiğini anlamak için bu logları inceleyebilir ya da manipüle edebiliriz.

Cmd ile “eventvwr
” veya PowerShell ile “Get-WinEvent -LogName Security -MaxEvents 10
” komutunu çalıştırabiliriz. Burda son 10 logu listeliyor fazlası için maxevents kısmını artırabiliriz.
Konfigürasyon ve şifre içeren dosyalar
Bu tarz sistemlerde uygulamalara ait ayar dosyalarında düz metin halinde kullanıcı adları, parolalar veya bağlantı bilgileri yer alabilir. Bu dosyalar genellikle .ini, .txt, .xml ya da .config uzantılı olur ve sistem genelinde farklı dizinlerde bulunabilir.
Sistem ve uygulama logları
“C:\Windows\System32\winevt\Logs\Application.evtx
” ve benzeri loglar üzerinden sistemdeki servis hataları, uygulama çökmesi veya güvenlik dışı anomaliler hakkında bilgi toplanabilir.
Kalıcı Erişim Sağlama (Persistence)
Windows Task Scheduler
Schedule Task belirli zamanlarda veya tetikleyicilere bağlı olarak komut-script çalıştırabilen güçlü bir mekanizmadır. Biz de bu özelliği kullanarak her oturum açılışında çalışacak şekilde zararlı bir script tanımlayabiliriz.
Sahte PowerShell Dosyasının Oluşturulması
Bu kısımda kalıcılık amaçlı kullanılacak sahte bir PowerShell scripti oluşturuyorum. İçeriği basit bir komut olan “Write-Output ‘Persistence Test – Schedule Task Calıstı.” ile dosyanın varlığını ve çalışabilirliğini test etmeyi amaçlayabiliriz. Gerçek script yerine sadece sistemde çalıştığını gösterebileceğim bir örnek hazırlamış oldum.

Görev Zamanlayıcıya Kalıcılık İçin Görev Eklenmesi
Bu kısımda da schtasks komutuyla oluşturduğum sahte PowerShell scriptinin kullanıcı her oturum açtığında otomatik olarak çalışmasını sağlayacak bir görev tanımladım. Görev başarılı şekilde oluşturuldu ve bundan sonra sistem her açıldığında script sessizce çalışacak. Saldırganların sistemde kalıcı olmak için sıkça kullandığı yaygın ve etkili bir teknik.

Scripti manuel olarak tetiklemek ve çalıştığını doğrulamak için “schtasks /run /tn “Updater”” komutunu kullanabiliriz.
Çıktısını takip edebilmek için de çıktısını dosya içerisine şu şekilde bir yazdırma işlemi ekleyebiliriz; “Write-Output ‘Task çalıştı!’ | Out-File C:\Users\Public\task_log.txt”
Bu sayede “task_log.txt” dosyasında scriptin gerçekten çalıştığını ve görev zamanlayıcının başarılı olduğunu görebiliriz.
Yetki Yükseltme ve Kalıcılık Faaliyetlerinin Güvenlik Sistemleri ile Takibi
Windows güvenlik ve sistem olaylarını Event Log’larda sakladığı için yetki yükseltme ve kalıcılık girişimlerini tespit etmek için bazı event ID’ler kritik öneme sahip oluyor.
4624 – Başarılı Oturum Açma: Olağandışı kullanıcıların veya sistem servislerinin girişlerini gözlemlemek için.
4672 – Özel Ayrıcalıklarla Oturum Açma: Yönetici ayrıcalıklarıyla oturum açan hesapları izlemek için.
4698 / 4699 – Görev Zamanlayıcıda Görev Oluşturma/Silme: Görev zamanlayıcıda şüpheli görev oluşturma aktivitesini tespit etmek için.
7045 – Servis Kurulumu: Yeni sistem servisi oluşturma veya değiştirme aktivitelerini yakalamak için.
4656 – Nesne Erişim İzni İsteği: Kritik dosya ve kayıt defteri erişimleri için.
Yetki Yükseltme ve Kalıcılık Tespiti İçin Örnek Kural
conditions:
- event_type: process_creation
command_line_contains_any:
- "runas /user:"
- "net user"
- "powershell -EncodedCommand"
- "cmd /c"user_not_in_whitelist: true
AND
- event_type: process_creation
command_line_contains_any:
- "sc create"
- "schtasks /create"
time_window: 5 minutes
same_user_and_host: true
actions:
- alert: "Possible privilege escalation followed by persistence activity detected."
- generate_ticket: true
- isolate_endpoint_if_enabled: true
Bu EDR kuralıyla komut satırı argümanlarını detaylı analiz ederek yetki yükseltme ve kalıcılık faaliyetlerini korele edebiliriz.
Yetki yükseltme amaçlı komutların örneğin “runas” veya “net user” komutlarınıın çalıştırılmasını algılar ve ardından aynı kullanıcı ile aynı cihaz üzerinde 5 dakika içinde yeni servis veya Schedule task oluşturma aktivitelerini takip eder. Eğer bu iki olay ardışık şekilde gerçekleşirse kural tetiklenir ve potansiyel saldırı olarak alarm üretir.
Okuduğunuz için teşekkürler, herkese iyi çalışmalar dilerim.