Windows olay kimlikleri
- Windows olay kimliklerini, oturum tiplerini ve 4625 alt durum kodlarını okumayı, Get-WinEvent ile süzmeyi ve olayları oturum zincirine bağlamayı öğren.
- Bu derste 4624, 4625, 4688, 4720 ve 7045 kimliklerini dc01 üzerinden okuyacak, sonra kataloğu Kerberos ve günlük temizleme olaylarıyla genişleteceksin.
- Numaraya ek olarak oturum açma tipini ve alt durum kodunu da okumayı öğreneceksin; tip 3 ile tip 10 aynı şey değildir.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Windows olay günlüğü metin değil, numaralı kayıt tutar. Her olay tipinin sabit bir kimliği vardır ve bu numaralar sürümden sürüme korunur.
4624, Windows Server 2008'de de bugün de başarılı oturum açmayı anlatır. Bu kararlılık, yüzlerce sunucudan topladığın kayıtları tek kural setiyle taramanı mümkün kılar. Bu derste AltayKargo'nun etki alanı denetleyicisi dc01 üzerinden bir saldırının Windows izlerini okuyacaksın.
Önce olay kaydının iç yapısını, sonra çekirdek numaraları, oturum tiplerini ve hata kodlarını öğreneceksin. PowerShell ile süzecek, olayları oturum kimliğiyle zincire bağlayacaksın. En sonda kayıtların hiç oluşmamasına yol açan ayar eksiklerini kapatacaksın.
Olay kaydının anatomisi
Event Viewer'da gördüğün düzenli metin, aslında bir XML kaydının görüntüsüdür. Kayıt iki bölümden oluşur. System bölümü her olayda aynı alanları taşır: olayı yazan sağlayıcı (Provider), olay kimliği (EventID), zaman (TimeCreated), günlüğün adı (Channel) ve makinenin adı (Computer). EventData bölümü ise olaya özgü alanları ad ve değer çiftleri olarak taşır.
4624'te TargetUserName, LogonType ve IpAddress bu bölümdedir. Zaman alanına dikkat et.
SystemTime değeri UTC'dir ve sonunda Z harfi durur. Event Viewer ise aynı değeri bilgisayarın yerel saatine çevirerek gösterir. Ekran görüntüsünden saat okuyan analist Türkiye'de üç saat kayar.
<Event>
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" />
<EventID>4624</EventID>
<TimeCreated SystemTime="2026-09-14T00:12:51.4418262Z" />
<Channel>Security</Channel>
<Computer>dc01.altaykargo.example</Computer>
</System>
<EventData>
<Data Name="TargetUserName">mkaya</Data>
<Data Name="TargetLogonId">0x8a3f21</Data>
<Data Name="LogonType">10</Data>
<Data Name="IpAddress">198.51.100.77</Data>
</EventData>
</Event>Kayıtlar ayrı günlüklerde (channel) durur. Security giriş, yetki ve denetim olaylarını tutar.
System hizmet ve sürücü olaylarını tutar. Application ise programların kendi mesajlarını taşır. Bunlara ek olarak Applications and Services Logs altında onlarca operasyonel günlük vardır; Sysmon ve PowerShell kayıtları oradadır.
Günlük dosyaları diskte C:\Windows\System32\winevt\Logs altında .evtx uzantısıyla durur. Yüzlerce olay kimliği arasında beşi günlük işin omurgasıdır. 4624 başarılı, 4625 başarısız oturum açmadır.
4688 yeni bir sürecin başladığını, 4720 yeni bir kullanıcı hesabının açıldığını söyler. 7045 ise yeni bir hizmetin kurulduğunu bildirir. İlk dördü Security, sonuncusu System günlüğüne düşer.
EventID=4625 Account Name: administrator Source Network Address: 198.51.100.77 Logon Type: 3 Status: 0xC000006D Sub Status: 0xC000006A EventID=4625 Account Name: admin Source Network Address: 198.51.100.77 Logon Type: 3 Status: 0xC000006D Sub Status: 0xC0000064 EventID=4624 Account Name: mkaya Source Network Address: 198.51.100.77 Logon Type: 10 EventID=4688 New Process Name: C:\Windows\System32\cmd.exe Parent: C:\Windows\System32\wbem\WmiPrvSE.exe EventID=7045 Service Name: AltayUpdateSvc Service File Name: C:\Users\Public\svc.exe Start Type: auto
Etkinlik 1 / 8
Windows olay kimliğini anlamıyla eşleştir.
Katalog: hangi numara nerede doğar
Beş numara çekirdektir, ama olay müdahalesinde daha geniş bir listeye ihtiyaç duyarsın. Aşağıdaki katalog her numaranın anlamını ve nerede oluştuğunu verir. Konum bilgisi sanıldığından önemlidir.
4624 ve 4625 oturumun açıldığı ya da denendiği makinede oluşur. Bir kullanıcının dosya sunucusuna girişini dosya sunucusunun günlüğünde ararsın. Kerberos olayları ise yalnız etki alanı denetleyicisinde (DC) doğar.
4768 bilet verme biletinin (TGT), 4769 hizmet biletinin istendiğini söyler. 4771 Kerberos ön doğrulamasının başarısız olduğunu, 4776 ise NTLM ile kimlik doğrulamayı anlatır. Parola püskürtme Kerberos üzerinden yapılırsa, 4625 yerine DC'de 4771 yığını görürsün.
Olay Günlük Nerede oluşur Anlamı 4624 Security erişilen makine başarılı oturum açma 4625 Security denenen makine başarısız oturum açma 4634 Security erişilen makine oturum kapandı (4647: kullanıcı çıkış yaptı) 4648 Security kaynak makine açık kimlik bilgisiyle oturum denemesi (runas gibi) 4672 Security erişilen makine yeni oturuma özel ayrıcalık atandı 4688 Security sürecin makinesi yeni süreç başladı 4697 Security hizmetin makinesi sisteme hizmet kuruldu 4698 Security görevin makinesi zamanlanmış görev oluşturuldu 4719 Security ilkenin değiştiği makine denetim ilkesi değişti 4720 Security hesabın tutulduğu yer kullanıcı hesabı açıldı 4732 Security grubun tutulduğu yer güvenlik etkin yerel gruba üye eklendi 4740 Security DC (etki alanı hesabı) hesap kilitlendi 4768 Security yalnız DC Kerberos TGT istendi 4769 Security yalnız DC Kerberos hizmet bileti istendi 4771 Security yalnız DC Kerberos ön doğrulaması başarısız 4776 Security DC ya da yerel SAM NTLM ile kimlik doğrulama 1102 Security ilgili makine Security günlüğü temizlendi 104 System ilgili makine başka bir günlük temizlendi 7045 System hizmetin makinesi yeni hizmet kuruldu
Katalogdaki iki olay yanal hareketi okumada öne çıkar. 4672 yeni oturuma özel ayrıcalık atandığını söyler. 4624 ile aynı anda yazılır ve girişin yönetici yetkili bir hesapla yapıldığını gösterir.
SYSTEM ve hizmet hesapları bu olayı bolca üretir, ama sıradan bir kullanıcı hesabında 4672 görmek o hesabın yetkilerini sorgulatır. 4648 ise bir sürecin açık kimlik bilgisiyle başka bir kimlik adına oturum açmaya çalıştığını söyler. runas komutu ya da uzak makineye farklı kimlikle bağlanma bu olayı kaynak makinede üretir. Kaynaktaki 4648 ile hedefteki 4624 aynı dakikada eşleşirse yanal hareketin iki ucunu bulmuşsundur.
Hesap adını okurken sonundaki dolar işaretine bak. Sonu dolarla biten ad kullanıcıya değil, makineye aittir. Makine hesapları gün boyu bolca giriş üretir; bunları insan hesabı sanmak alarm listesini şişirir. 4688 olayında en kıymetli alan ebeveyn süreçtir.
cmd.exe tek başına suç değildir. Ama ebeveyni WmiPrvSE.exe ya da winword.exe ise durum değişir. WmiPrvSE.exe altında doğan bir kabuk, uzaktan WMI ile komut çalıştırıldığını düşündürür.
Belge açan bir programın komut satırı başlatması ise çoğu zaman zararlı bir makroya işaret eder. Oturum tipi de bağlamın parçasıdır. Dış adresten gelen tip 10 uzak masaüstü girişi hemen incelenir, sabah açılan tip 5 hizmet oturumu ise gündelik gürültüdür. Numarayı değil, numara ile bağlamı birlikte oku: hesap, kaynak adres, oturum tipi, ebeveyn ve saat.
Derinleş:Kerberoasting'in DC'deki izi
Kerberoasting, etki alanındaki sıradan bir kullanıcının bir hizmet hesabı için bilet isteyebilmesinden yararlanır. Hizmet bileti, hizmet hesabının parolasından türetilen anahtarla şifrelenir. Saldırgan bileti alır ve parolayı kendi makinesinde, çevrimdışı kırmaya çalışır.
DC bu isteği sıradan bir 4769 olarak yazar. Ayırt edici iz şifreleme türündedir. Güncel bir etki alanında biletler AES ile şifrelenir ve TicketEncryptionType alanında 0x11 ya da 0x12 görünür.
Saldırgan kırması daha kolay olan RC4'ü ister ve kayıtta 0x17 belirir. Microsoft da Vista ve Windows Server 2008 sonrası ortamlarda 0x11 ve 0x12 dışındaki değerleri izlemeyi önerir. Kısa sürede çok sayıda farklı hizmet için RC4 bilet isteyen tek bir hesap güçlü bir işarettir. Savunma tarafında hizmet hesaplarına uzun ve rastgele parolalar ya da yönetilen hizmet hesapları (gMSA) verilir, RC4 desteği kapatılır.
Etkinlik 2 / 8
Olayları alarm önceliğine göre ayır.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/6 seçenek yerleşti.
Etkinlik 3 / 8
Hangi olaylar yalnız etki alanı denetleyicisinde oluşur?
Oturum tipi, durum kodu ve sorgu
Oturum açma tipi (Logon Type), 4624 ve 4625 olaylarının ikinci yarısıdır. Aynı hesap ve aynı saat, farklı tiple bambaşka bir hikâye anlatır. Tip 2 klavye başında girişi, tip 3 ağ üzerinden erişimi, tip 10 uzak masaüstünü gösterir.
Tip 5 hizmetin başlatılmasıdır ve gün boyu bolca görünür. Tip 4 zamanlanmış görev gibi toplu işler, tip 7 kilit ekranının açılmasıdır. Üç tip ayrıca dikkat ister.
Tip 8 parolanın kimlik doğrulama paketine düz metin olarak verildiğini söyler. Tip 9, runas /netonly gibi yerel kimliği koruyup ağda başka kimlik kullanan oturumdur. Tip 11 ise DC'ye sorulmadan önbellekteki kimlikle yapılan giriştir. Dışarıdaki bir adresten gelen tip 10 girişini gördüğünde vardiyayı durdurup bakarsın.
Tip Ad SOC yorumu 0 System yalnız sistem hesabı, açılışta 2 Interactive klavye başı giriş 3 Network paylaşım, uzaktan yönetim; tek başına şüpheli değil 4 Batch zamanlanmış görev 5 Service hizmet başlatma; gündelik gürültü 7 Unlock kilit ekranı açıldı 8 NetworkCleartext parola pakete düz metin olarak verildi 9 NewCredentials runas /netonly; ağda başka kimlik 10 RemoteInteractive uzak masaüstü (RDP) 11 CachedInteractive önbellekteki kimlikle giriş, DC'ye sorulmadı
4625 olayında başarısızlığın nedeni iki alanda durur: Status ve Sub Status. Status çoğu zaman genel bir koddur. 0xC000006D kullanıcı adı ya da parola bilgisinin hatalı olduğunu söyler, ama hangisi olduğunu söylemez.
Asıl ayrıntı Sub Status alanındadır. 0xC0000064 kullanıcı adının bulunmadığını anlatır; bu kodun yığını hesap taramasıdır. 0xC000006A parolanın yanlış olduğunu söyler; yığını bilinen bir hesaba yapılan parola denemesidir.
0xC0000234 hesabın kilitli, 0xC0000072 devre dışı, 0xC0000193 süresinin dolmuş olduğunu gösterir. 0xC000006F tanımlı oturum saatlerinin dışında, 0xC0000070 yetkisiz bir iş istasyonundan deneme demektir. Kural yazarken Sub Status'u okumazsan iki farklı saldırıyı tek sayıda eritirsin.
PS> Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-2)} |
ForEach-Object {
$v = [xml]$_.ToXml(); $d = @{}
foreach ($n in $v.Event.EventData.ChildNodes) { $d[$n.Name] = $n.'#text' }
[pscustomobject]@{ Kaynak = $d.IpAddress; Neden = $d.SubStatus }
} | Group-Object Kaynak, Neden | Sort-Object Count -Descending | Select-Object Count, Name
Count Name
----- ----
301 198.51.100.77, 0xc000006a
111 198.51.100.77, 0xc0000064
2 10.20.30.44, 0xc000006a
C:\> wevtutil qe Security /q:"*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='10']]" /c:5 /rd:true /f:textPowerShell komutunu adım adım oku. -FilterHashtable süzmeyi günlük servisine yaptırır. Eşleşmeyen kayıt PowerShell'e hiç taşınmaz, bu yüzden bütün günlüğü çekip Where-Object ile elemekten çok daha hızlıdır.
ToXml() her olayı XML'e çevirir. Böylece EventData alanlarına adıyla ulaşırsın. Mesaj metnini düzenli ifadeyle kesmek dil ayarına bağlıdır; Türkçe bir sunucuda etiketler de Türkçedir.
XML alan adları ise her dilde aynıdır. Çıktı iki saldırıyı ayırır: 111 deneme var olmayan adlara, 301 deneme gerçek bir hesaba yapılmıştır. Alttaki wevtutil satırı aynı işi PowerShell olmadan yapar. /q XPath sorgusudur, /c:5 beş kayıtla sınırlar, /rd:true en yeniden başlar.
Etkinlik 4 / 8
dc01 güvenlik günlüğünde yalnız EventID 4625 (başarısız oturum açma) kayıtlarını PowerShell ile listele.
Etkinlik 5 / 8
4625 olayında Logon Type 3 değeri neyi gösterir?
Oturumu uçtan uca izlemek
Tek tek olaylar birer fotoğraftır. Oturum kimliği (Logon ID) onları filme çevirir. 4624 yeni oturuma bir TargetLogonId verir. Aynı oturumda atanan özel ayrıcalıklar 4672'de, başlatılan süreçler 4688'de SubjectLogonId olarak bu değeri taşır.
Oturum kapanınca 4634 aynı değeri yine yazar. Böylece tek bir değerle girişten çıkışa kadar oturumun bütün hareketini çekersin. Yönetici hesaplarında bir ayrıntı daha var.
Kullanıcı Hesabı Denetimi (UAC) açıkken yönetici girişinde iki oturum oluşur: biri kısıtlı, biri yükseltilmiş belirteçli. İki 4624 kaydı Linked Logon ID alanıyla birbirini gösterir. Elevated Token değeri Yes olan kayıt yönetici yetkili oturumdur.
00:12:51Z 4624 TargetLogonId=0x8a3f21 LogonType=10 mkaya 198.51.100.77 00:12:51Z 4672 SubjectLogonId=0x8a3f21 SeDebugPrivilege, SeBackupPrivilege ... 00:13:40Z 4688 SubjectLogonId=0x8a3f21 C:\Windows\System32\whoami.exe (ebeveyn cmd.exe) 00:13:52Z 4688 SubjectLogonId=0x8a3f21 C:\Windows\System32\net.exe group "Domain Admins" /domain 00:41:07Z 4634 TargetLogonId=0x8a3f21 LogonType=10
Olayın oluşması için denetim ilkesinin açık olması gerekir. Varsayılan ayarlar birçok kritik olayı yazmaz. auditpol /get /category:* komutu makinedeki etkin ilkeyi listeler.
4688'i görmek için Detailed Tracking altındaki Audit Process Creation açık olmalıdır. Komut satırını görmek için ikinci bir ilke gerekir: Administrative Templates > System > Audit Process Creation altındaki Include command line in process creation events. Bu ilke kapalıyken 4688 yalnız süreç adını yazar, argümanları yazmaz.
Komut satırında parola gibi hassas bilgi de görünebilir; Security günlüğünü okuma yetkisini dar tut. Bir tuzak daha var. Temel denetim ilkesi gelişmiş ilkenin üstüne yazılırsa ayarlar kimse fark etmeden değişebilir; bu değişiklik 4719 olayı olarak kayda düşer.
C:\> auditpol /get /category:"Detailed Tracking" System audit policy Category/Subcategory Setting Detailed Tracking Process Creation No Auditing Process Termination No Auditing DPAPI Activity No Auditing RPC Events No Auditing
Etkinlik 6 / 8
Aşağıdaki olaylardan mkaya'nın 0x8a3f21 oturumuna ait olmayan satırı işaretle.
Şüpheli satırlara tıkla. Birden fazla olabilir.
Zinciri kurduğunda olay anlatısı kendiliğinden çıkar. dc01'de sıra şöyledir: 4625 yığını denemeyi, 4624 girişi, 4688 keşif komutlarını gösterir. Sonra 4720 ile yeni bir hesap, 7045 ile yeni bir hizmet gelir.
Deneme, giriş, keşif ve kalıcılık sırası saldırıların çoğunda aynıdır. Sırayı bilen analist eksik bir halkayı hemen fark eder. Kalıcılık görüp giriş bulamıyorsan, girişin izi başka bir makinede ya da silinmiş bir günlüktedir.
Etkinlik 7 / 8
dc01 üzerindeki olayları saldırı sırasına göre diz.
Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.
- 17045: Public dizininden çalışan yeni hizmet
- 24720: svc_update adlı yeni hesap
- 34688: whoami ve net group komutları
- 44625: dış adresten çok sayıda başarısız deneme
- 54624: aynı adresten başarılı giriş
Günlüğü korumak: boyut, toplama ve Sysmon
Olay günlüğünün boyutu sınırlıdır. Varsayılan ayarda dosya dolunca en eski kayıtların üzerine yazılır. Yoğun bir DC'de bu, yalnız birkaç saat geriye gidebilmek demektir.
wevtutil gl Security komutu günlüğün en büyük boyutunu ve saklama davranışını gösterir; wevtutil sl Security /ms: ile boyutu bayt cinsinden büyütürsün. Kalıcı çözüm kayıtları makineden çıkarmaktır. Windows Event Forwarding (WEF) bu işi ek ajan kurmadan yapar.
İstemciler Grup İlkesiyle bir toplayıcı sunucuya abone olur ve seçilen olayları ona gönderir. Toplayıcıdaki Forwarded Events günlüğü oradan SIEM'e aktarılır. Makinedeki kopya silinse bile toplayıcıdaki kopya durur.
C:\> wevtutil gl Security name: Security enabled: true type: Admin logging: logFileName: %SystemRoot%\System32\Winevt\Logs\Security.evtx retention: false autoBackup: false maxSize: 20971520 C:\> wevtutil sl Security /ms:1073741824
Varsayılan günlüklerin göremediği yerler için Sysmon kurulur. Sysmon, Sysinternals ailesinden ücretsiz bir hizmet ve sürücüdür ve kayıtlarını Microsoft-Windows-Sysmon/Operational günlüğüne yazar. Olay 1 süreç oluşturmadır ve 4688'den zengindir.
Tam komut satırını, ebeveynin komut satırını, dosya özetini ve ProcessGuid değerini taşır. ProcessGuid, Windows süreç numarasını yeniden kullansa bile her süreci tekil tanır ve korelasyonu sağlamlaştırır. Olay 3 ağ bağlantısını, 11 dosya oluşturmayı, 13 kayıt defteri değeri yazımını, 22 DNS sorgusunu verir.
Sysmon zamanları UTC yazar. Gücü yapılandırmadan gelir. Topluluk yapılandırmaları iyi bir başlangıçtır, ama gürültüyü kendi ortamına göre süzmen gerekir.
Süreç kaydı PowerShell'in içini göstermez. powershell.exe -enc ile başlayan bir komutta 4688 yalnız kodlanmış metni yazar. Asıl betiği Script Block Logging verir. Grup İlkesinde Turn on PowerShell Script Block Logging ayarı açılınca PowerShell çalıştırdığı her betik bloğunun içeriğini 4104 olayı olarak yazar.
Windows PowerShell 5.1 bu olayları Microsoft-Windows-PowerShell/Operational günlüğüne, PowerShell 7 ise PowerShellCore/Operational günlüğüne yazar. Blok, çözülmüş hâliyle kayda geçer. Bu kayıtlar parola gibi hassas veri de taşıyabilir. Microsoft bu yüzden Protected Event Logging ile içeriği şifrelemeyi ve yalnız merkezdeki toplayıcıda çözmeyi önerir.
1102 Security günlüğünün, 104 ise başka bir günlüğün temizlendiğini söyler. Bu satırı gördüğünde başka hiçbir şeye bakmadan olay açarsın. Meşru bir yönetici günlüğü nadiren siler, saldırgan ise izini kapatmak için sık sık dener. ATT&CK'in Nisan 2026'da yayımlanan v19 sürümü bu davranışı yeni Defense Impairment taktiği altında T1685.005 (Clear Windows Event Logs) olarak eşler.
Eski T1070.001 bağlantısı artık oraya yönlenir. Bu dersteki öbür olaylar şöyle eşlenir: 7045 ve 4697 T1543.003, 4698 T1053.005, 4732 ise T1098.007 olur. 4720 yerel hesapta T1136.001, etki alanı hesabında T1136.002 olarak geçer.
Derinleş:Çevrimdışı EVTX avı: Chainsaw ve Hayabusa
Bir makineden kopyaladığın .evtx dosyalarını Event Viewer'da tek tek açmak yavaştır. Sahada bu iş için iki açık kaynak araç yaygındır. Chainsaw, WithSecure Labs'in Rust ile yazdığı bir araçtır.
hunt komutu Sigma kurallarını bir eşleme dosyası yardımıyla EVTX alanlarına uygular; search komutu ise dizgi ya da düzenli ifadeyle hızlı arama yapar. Hayabusa, Yamato Security'nin geliştirdiği bir zaman çizelgesi aracıdır. Sigma kurallarını ve kendi kural setini çalıştırır, sonucu CSV ya da JSON zaman çizelgesi olarak verir.
İkisinin ortak gücü Sigma'dır. SIEM'den bağımsız yazılmış bir tespit kuralı, canlı ortamda da çevrimdışı delilde de aynı mantıkla çalışır. İki aracı da yalnız inceleme yetkin olan delil üzerinde çalıştır. Çıktıyı ve kullandığın kural sürümünü delil notuna yaz.
Etkinlik 8 / 8
Doğru mu, yanlış mı?
7045 olayı, kalıcılık kurma girişiminin güçlü bir işaretidir.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.
- Etkinlik 1· Olay kaydının anatomisi
- Etkinlik 2· Katalog: hangi numara nerede doğar
- Etkinlik 3· Katalog: hangi numara nerede doğar
- Etkinlik 4· Oturum tipi, durum kodu ve sorgu
- Etkinlik 5· Oturum tipi, durum kodu ve sorgu
- Etkinlik 6· Oturumu uçtan uca izlemek
- Etkinlik 7· Oturumu uçtan uca izlemek
- Etkinlik 8· Günlüğü korumak: boyut, toplama ve Sysmon