SMB, RPC ve Netlogon: AD ortamındaki iletişim yollarının haritası.
AD ortamında istemci ile DC arasındaki iletişim katmanlıdır: en altta TCP transport ve port reachability, üstünde SMB session, onun üstünde named pipe veya doğrudan TCP üzerinden RPC bind, ve bir RPC interface olarak Netlogon. Bir porta ulaşmak (reachability), kimlik doğrulamak (authentication) ve bir RPC yöntemine yetkili olmak (authorization) ayrı kararlardır; biri diğerini kanıtlamaz.
1. Core Mechanism / Temel mekanizma
Domain üyesi bir bilgisayar ile domain controller arasındaki çağrılar tek bir protokol değil, üst üste oturan katmanlardır. En altta TCP taşıma katmanı vardır; bir portun erişilebilir olması yalnız orada dinleyen bir servis bulunduğunu gösterir. Onun üstünde SMB (varsayılan TCP 445) bir oturum kurar: SMB2/3 NEGOTIATE, ardından SESSION_SETUP ile kimlik doğrulama (Negotiate üzerinden Kerberos veya NTLM), sonra TREE_CONNECT ve CREATE. RPC ise iki taşıma üzerinden çalışabilir: SMB named pipe üzerinden (ncacn_np) ya da doğrudan TCP üzerinden (ncacn_ip_tcp). Netlogon bu tablonun ayrı bir portu değil, bir RPC interface'idir; \PIPE\NETLOGON well-known named pipe olarak SMB üstünde veya ncacn_ip_tcp ile dinamik bir TCP portu üzerinden erişilir.
Arabirimler ve belirtimler
- TCP transport: bir portun reachable olması yalnız dinleyen bir servis olduğunu gösterir; kimlik veya yetki içermez.
- SMB (varsayılan TCP 445): NEGOTIATE → SESSION_SETUP (kimlik doğrulama) → TREE_CONNECT (IPC$ veya bir share) → CREATE (named pipe ya da dosya) sırası.
- RPC over named pipe (ncacn_np): IPC$ paylaşımı üzerinden \PIPE\<ad>; RPC bind ve kimlik doğrulama SMB oturumundan sonra gelir.
- RPC over TCP (ncacn_ip_tcp): Endpoint Mapper (TCP 135) dinamik endpoint'i çözer; dinamik port aralığı modern Windows'ta 49152–65535.
- Netlogon (MS-NRPC): UUID 12345678-1234-ABCD-EF00-01234567CFFB, RPC sürüm 1.0; \PIPE\NETLOGON named pipe'ı veya ncacn_ip_tcp üzerinden, makine hesabı secure channel bağlamında.
- Kanıt yüzeyi: hedefteki Security kanalında LogonType 3 taşıyan 4624 network logon; bu, uygulama katmanında başarılı kimlik doğrulamayı gösterir, port reachability tek başına üretmez.
Üç katmanı ayır: transport, SMB session, RPC bind
Bir istemci DC'nin 445 veya 135 portuna TCP el sıkışması yapabildiğinde yalnız orada dinleyen bir servis olduğunu öğrenir. Bu, herhangi bir kimliğin doğrulandığı anlamına gelmez.
Named-pipe yolunda SMB SESSION_SETUP kimlik doğrulama aşamasıdır. Doğrudan TCP RPC bu SMB aşamasından geçmez; RPC binding üzerinde authentication yapılandırılabilir. Interface security callback’i ve uygulamanın yaptığı access check’ler ayrı mekanizmalardır. Her RPC yönteminin her çağrıda zorunlu ve bağımsız bir authorization kontrolü yaptığı varsayılamaz.
ncacn_np: TCP 445 → SMB NEGOTIATE / SESSION_SETUP → IPC$ → named pipe → RPC binding
ncacn_ip_tcp: EPM TCP 135 → dynamic TCP endpoint → RPC binding
Authentication: taşıma/binding yapılandırmasına bağlı
Authorization: interface callback / uygulamanın access check’i
Netlogon: yönteme özgü MS-NRPC koşulları; genel RPC gereksinimi değilNetlogon nerede oturur
Netlogon Remote Protocol (MS-NRPC), makine ve kullanıcı kimlik doğrulamasında kullanılan bir RPC interface'idir. Sabit, kendine ait bir "Netlogon portu" yoktur; \PIPE\NETLOGON named pipe'ı olarak SMB üzerinden ya da ncacn_ip_tcp ile Endpoint Mapper'ın verdiği dinamik TCP portu üzerinden erişilir.
Netlogon’un secure channel kullanan işlemlerinde makine hesabı bağlamı ve yöntemin MS-NRPC koşulları önemlidir. Client privilege kontrolü yapan yöntemler ayrıca kendi kurallarını uygular. Bu Netlogon bağlamı, bütün RPC interface’lerinin secure channel gerektirdiği anlamına gelmez.
Aynı interface, iki farklı transport
RPC protocol sequence string'i taşımayı belirler: ncacn_np SMB named pipe'ı, ncacn_ip_tcp ise TCP/IP anlamına gelir. Named pipe yolunda çağrı SMB oturumu (TCP 445) ve IPC$ üzerinden geçer; TCP yolunda istemci önce Endpoint Mapper'a (TCP 135) danışıp dinamik portu öğrenir.
İki yol aynı mantıksal RPC interface'ine çıkar. Bu yüzden "445 kapalı ama 135 açık" gibi bir ağ görünümü, bir servisin tümüyle erişilemez olduğu anlamına gelmeyebilir; hangi transport'un açık olduğu kadar, o transport üzerinde kimlik doğrulamanın başarılı olup olmadığı da önemlidir.
Artifact'in söyleyebildiği ve söyleyemediği
Sentetik 4624 örneği LogonType 3 taşır: hedefte ağ üzerinden başarılı bir logon session oluşmuştur ve bir kimlik doğrulama paketi (burada Kerberos) kullanılmıştır.
Bu kayıt hangi paylaşıma, hangi named pipe'a veya hangi RPC yöntemine erişildiğini tek başına söylemez. Başarılı network logon, sonraki her işlemin yetkilendirildiğini kanıtlamaz.
Durum ve veri akışı
- Seçilen RPC taşımasını belirle: SMB named pipe (ncacn_np) veya doğrudan TCP (ncacn_ip_tcp).
- Named pipe: TCP 445 → SMB NEGOTIATE ve SESSION_SETUP. Direct TCP: TCP 135 Endpoint Mapper → bildirilen dinamik endpoint.
- Named pipe yolunda IPC$ / named pipe açılır. Direct TCP yolunda bu SMB adımları yoktur.
- RPC binding kurulur. Binding authentication ve interface security callback koşulları, ilgili servisin yapılandırmasına bağlıdır.
- Başarılı network logon varsa ve Audit Logon Success açıksa hedefte 4624 / Type 3 görülebilir; bu RPC yöntem sonucunu kanıtlamaz.
- Uygulamanın ilgili access check’i ve yöntemin koşulları değerlendirilir. Secure channel kullanan Netlogon işlemleri ayrı MS-NRPC kapsamıdır.
2. Exploitation / İstismar
Broken trust assumption
Bozulan varsayım: "Port açıksa (ör. 445 veya 135 erişilebilir) protokol kullanılabilir ve çağrı yetkilidir." Oysa reachability, authentication ve authorization ayrı katmanlardır. Açık bir port yalnız taşıma katmanını gösterir; SMB oturumu kimlik doğrulamada, RPC ise bind ve yöntem düzeyinde ayrıca reddedebilir.
Technical prerequisites
- İstemciden DC'nin ilgili portuna ağ yolu (transport reachability).
- SMB oturumu açmak için kabul edilen bir kimlik bilgisi; anonim erişim büyük ölçüde kısıtlıdır.
- İlgili RPC interface ve yöntemi için gereken bağlam veya yetki (ör. Netlogon için makine hesabı secure channel).
- Hedefin ilgili transport'u dinlemesi ve ağ segmentasyonunun bu yolu engellememesi.
Exploitation mechanism / İstismar mekanizması
Port reachability, authentication ve işlem yetkisi ayrı kanıtlardır. Named pipe yolu SMB oturumu kullanır; direct TCP RPC için SMB SESSION_SETUP şart değildir. Servis, RPC binding authentication, interface callback veya ilgili method access check’i üzerinden isteği sınırlayabilir. Netlogon’un yönteme özgü secure channel koşullarını bütün RPC’ye genelleme. Bu öğretim örneği bağlantı kurmaz veya çağrı göndermez.
Reachability, capability değildir
Açık bir port, o servise kimlik doğrulanmış veya yetkili erişim anlamına gelmez. Katmanların her biri kendi ret kararını verir: transport erişilebilir olabilir ama SMB oturumu ya da RPC bind reddedilebilir.
Saldırı yüzeyi değerlendirmesi bu yüzden yalnız port envanteriyle yapılamaz; hangi kimlik hangi transport üzerinde neyi doğrulayabiliyor ve hangi RPC yöntemine yetkili sorusu ayrıca sorulmalıdır.
Ret nerede oluşur
Reddin katmanı kanıtı belirler: transport düzeyinde bağlantı hiç kurulmaz (filtered/closed), SMB düzeyinde kimlik doğrulama başarısız olur, RPC düzeyinde bind veya yöntem access denied döner.
Bu katmanları karıştırmak yanlış sonuç üretir: başarısız bir logon, portun kapalı olduğu anlamına gelmez; açık bir port da başarılı bir erişim anlamına gelmez.
3. Defense & Detection / Savunma ve tespit
Telemetry scope
- Telemetri hedef bilgisayarda (DC veya üye sunucu) oluşur; ağ üzerinden kimlik doğrulama için kanal Security'dir.
- Audit Logon alt kategorisinde Success 4624 network logon'ları, Failure ise 4625 başarısızlıklarını destekler.
- Port reachability firewall/bağlantı loglarında görünür; ancak uygulama katmanı kabulü/reddi için Security kanalındaki logon kayıtlarına bakılır. Bu artifact yalnız başarılı bir LogonType 3 örneği taşır.
Events and relevant fields
- 4624 / LogonType 3: ağ üzerinden başarılı logon session; bir porta ulaşmak bunu tek başına üretmez.
- 4624 / AuthenticationPackageName: kullanılan paket (Kerberos veya NTLM); hangi transport veya RPC yönteminin çağrıldığını göstermez.
- 4624 / IpAddress ve IpPort: kaynak ağ bağlamı; korelasyon için kullanılır.
- 4624 / TargetUserSid ve TargetDomainName: oturum principal'ının kimliği ve otorite bağlamı.
- 4625 (Failure) ve Status/SubStatus: kimlik doğrulamanın neden reddedildiğini gösterir; transport erişilebilir olsa bile başarısızlık burada görülür.
İki farklı kanıt: bağlantı ve kabul
Firewall ve bağlantı logları bir portun erişilebilir olduğunu ve trafik aktığını gösterir; ama kimliğin doğrulandığını söylemez. Uygulama kabulü Security kanalındaki 4624/4625 kayıtlarından okunur.
Bu iki kanıtı ayırmak, "port açıktı öyleyse erişildi" gibi hatalı çıkarımı engeller.
Reddin nedenini status ile oku
4625 kayıtlarındaki Status ve SubStatus kimlik doğrulamanın neden reddedildiğini gösterir; bu, transport erişilebilir olsa bile uygulama katmanında ret olduğunu belgeler.
RPC düzeyindeki access denied ise Security logon kaydından ayrıdır; bir logon başarılı olsa bile belirli bir RPC yöntemi yetkisiz olabilir.
Detection logic · XPath
*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='3']]Query assumptions
- Bu, Windows Event Log XML alanlarına yönelik çalıştırılmamış bir aday filtredir; SIEM sorgusu veya port-tarama tespiti değildir.
- LogonType 3 uygulama katmanında başarılı kimlik doğrulamayı gösterir; port reachability olayları farklı kaynaklarda (firewall/bağlantı logları) aranmalıdır.
- IpAddress, AuthenticationPackageName ve TargetUserSid birlikte incelenmeli; tek alan sınıflandırma için yeterli değildir.
- Fixture parser'da henüz çalıştırılmadı; gerçek Windows veri kümesinde sonuç ürettiği iddia edilmez.
False positives
- Ağ üzerinden logon son derece yaygındır: dosya paylaşımı, yazıcı, yönetim RPC çağrıları normalde 4624 LogonType 3 üretir.
- Bir port taramasının açık port bulması, kimlik doğrulama başarısız olduğu sürece 4624 üretmez; bu yüzden port aktivitesiyle logon başarısı karıştırılmamalıdır.
- Negatif örnek: tek bir 4624 hangi share/pipe/RPC yöntemine erişildiğini göstermez.
Hardening
- SMB signing'i zorunlu kılarak oturum manipülasyonunu güçleştir; envanter alıp aşamalı uygula ve eski istemcilerdeki etkiyi doğrula.
- Netlogon secure channel için signing/sealing gerektiren yapılandırmayı koru; uyumluluk etkisini test ederek uygula.
- RestrictRemoteClients, unauthenticated RPC client davranışını sınırlar; client allow-list veya interface ACL’i değildir ve ncacn_np named-pipe istemcileri bu kısıtların dışındadır. Microsoft bu policy’nin geniş uyumluluk etkisini ve domain controller’a uygulanmaması gerektiğini belirtir. DC için genel hardening önerisi olarak kullanma.
- Ağ segmentasyonuyla 445/135 ve dinamik RPC portlarına erişimi yalnız gereken kaynaklara aç; değişiklik sonrası meşru trafiğin bozulmadığını doğrula.
- Alarm ve korelasyonu port aktivitesi ile başarılı logon (4624) ve başarısızlık (4625) kanıtlarını ayırarak kur; bu ayrım henüz lab'da doğrulanmadı.
Örnekler üzerinde oku / Read the examples
ÖRNEĞİ BİRLİKTE OKUYALIM
EĞİTİM İÇİN HAZIRLANDIBu alanlar hangi kararı gösteriyor?
4624 · LogonType 3 ağ üzerinden logon (sentetik)
33, hedefte network logon. Named pipe açıldığını veya RPC yönteminin izinli olduğunu söylemez.
KerberosÖrnekteki package adı. RPC transport veya method sonucu bu alanın içinde değildir.
192.0.2.50Network logon’un kaynak bağlamı; Endpoint Mapper sonucuyla aynı veri değildir.
49762IpPort istemcinin kaynak portudur; RPC method’u, hedef portu veya Endpoint Mapper yanıtı değildir.
S-1-5-21-3623811015-3361044348-30300820-1108TargetUserSid bu logon’da tanınan principal’ı belirtir. SubjectUserSid farklı roldür; SID hangi RPC method’una izin verildiğini göstermez.
0x9f2c1TargetLogonId aynı hosttaki ilgili olaylarla ilişkilendirme içindir; farklı hostlarda küresel session ID değildir.
Network logon başarılı. Named pipe, RPC interface veya method erişimi bu kaydın kanıt kapsamı dışında.
Burada bir örnek kaydı okuyoruz. Windows’a bağlanmıyoruz; olayın gerçekten yaşandığını veya saldırı olduğunu doğrulamıyoruz.
Bu örneğin kapsamı
Microsoft 4624 şemasındaki dersle ilgili alanların sentetik alt kümesidir; tam Version 2 alan kümesi değildir. SID, hesap ve TEST-NET (192.0.2.0/24) adresi üretim verisi değildir. LogonType 3 başarılı ağ logon'unu gösterir; hangi share/pipe/RPC yöntemine erişildiğini kanıtlamaz. Parser kabulü ve gerçek Windows değerleri henüz doğrulanmadı.
Ham kaydı aç · EVENT-XML
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System><Provider Name="Microsoft-Windows-Security-Auditing"/><EventID>4624</EventID><Version>2</Version><Channel>Security</Channel><Computer>DC01.outreason.example</Computer></System>
<EventData><Data Name="SubjectUserSid">S-1-5-18</Data><Data Name="TargetUserSid">S-1-5-21-3623811015-3361044348-30300820-1108</Data><Data Name="TargetUserName">WS10$</Data><Data Name="TargetDomainName">OUTREASON</Data><Data Name="TargetLogonId">0x9f2c1</Data><Data Name="LogonType">3</Data><Data Name="LogonProcessName">Kerberos</Data><Data Name="AuthenticationPackageName">Kerberos</Data><Data Name="WorkstationName">WS10</Data><Data Name="IpAddress">192.0.2.50</Data><Data Name="IpPort">49762</Data><Data Name="LmPackageName">-</Data><Data Name="KeyLength">0</Data></EventData>
</Event>İki yanlış kanı / Two reality checks
- Sanılan: DC üzerinde 445 veya 135 portu açıksa saldırgan zaten domain'e erişmiştir.
- Gerçekte: Açık port yalnız reachability’yi gösterir. Named-pipe RPC, SMB authentication üzerinden; direct TCP RPC ise kendi binding yapılandırması üzerinden ilerler. Interface callback’i ve uygulamanın access check’i ayrı koşullardır. Her yöntemin zorunlu ayrı kontrol yaptığı varsayılmaz; port veya logon kanıtı işlem yetkisi değildir.
- Sanılan: Netlogon kendine ait ayrı bir port ve servistir; SMB ile ilgisi yoktur.
- Gerçekte: Netlogon bir RPC interface'idir (MS-NRPC). \PIPE\NETLOGON named pipe olarak SMB (varsayılan TCP 445) üzerinden ya da ncacn_ip_tcp ile Endpoint Mapper'ın verdiği dinamik TCP portu üzerinden erişilir. Sabit, kendine ait bir "Netlogon portu" yoktur.
SIRA SENDE
Bu hikâyeyi sen çöz.
Bilgiyi hatırlamaktan bir adım ileri: koşulu değiştir, kanıtı oku, kararın nedenini anlat.
1 / 3 · SONUCU TAHMİN ET
Direct TCP RPC yolu hangi SMB adımını zorunlu olarak kullanmaz?
Bir ipucu
ncacn_ip_tcp ile ncacn_np farklı taşımalardır.
Cevabın gerekçesini oku
SMB SESSION_SETUP ve IPC$ named pipe açma.
Doğru. Direct TCP yolu Endpoint Mapper ve bildirilen TCP endpoint üzerinden ilerler.
2 / 3 · KANITI OKU
Bu 4624 bir RPC yönteminin başarılı çalıştığını kanıtlar mı?
- EventID
- 4624
- Computer
- DC01.iyelabs.example
- LogonType
- 3
- TargetUserName
- tunahan
- RPC yöntem sonucu / RPC method outcome
- not observed
Bir ipucu
Network logon ile method access check farklıdır.
Cevabın gerekçesini oku
Hayır; network logon gözlemi var, yöntem sonucu yok.
Doğru. Binding ve ilgili uygulama/interface koşulları ayrıca değerlendirilir.
3 / 3 · KENDİN ANLAT
DC01’de bir porta ulaşabilmeyi neden “işlem yetkisi var” diye yorumlamazsın?
Bir ipucu
Reachability → authentication → ilgili yöntem koşulu.
Cevabın gerekçesini oku
Porta ulaşmak transport erişilebilirliğini gösterir. Seçili RPC yolu binding/authentication koşullarını, ilgili interface veya uygulama da işlem koşullarını ayrıca değerlendirir; port ya da 4624 yöntemin başarılı olduğunu tek başına kanıtlamaz.
- Port erişimini transport ile sınırladım.
- Authentication ve method sonucunu ayrı tuttum.
Açıklaman otomatik puanlanmaz. Kontrol noktalarını kendi cevabınla karşılaştır.
Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.
Kaynaklar / Sources
- Microsoft Open Specifications · [MS-RPCE] 2.1 Transport
Transport bölümü ve RPC protocol sequence tablosu: ncacn_np (SMB), ncacn_ip_tcp (TCP/IP). - Microsoft Open Specifications · [MS-NRPC] Netlogon Remote Protocol (Overview ve Transport)
Giriş (RPC interface tanımı) ve Transport 2.1: \PIPE\NETLOGON named pipe, ncacn_ip_tcp dinamik endpoint, UUID 12345678-1234-ABCD-EF00-01234567CFFB, RPC 1.0. - Microsoft Open Specifications · [MS-SMB2] Server Message Block (SMB) Protocol Versions 2 and 3
Protocol Details; NEGOTIATE, SESSION_SETUP, TREE_CONNECT ve CREATE mesaj sırası. - Microsoft · Service overview and network port requirements for Windows (KB832017)
Dinamik port aralığı (49152–65535) ve RPC/Endpoint Mapper'ın dinamik TCP port ataması açıklaması. - Microsoft · 4624(S) An account was successfully logged on
Event Description, Logon types tablosu (Type 3 Network) ve Field Descriptions. - Microsoft · NTLM overview
Giriş: NTLM/Negotiate ağ kimlik doğrulaması bağlamı ve Kerberos'un tercih edilen protokol olması. - Microsoft · 4625(F) An account failed to log on
Event 4625 failure is logged on the computer where the logon was attempted; Event description, Status/SubStatus, Audit Account Lockout and Audit Logon subcategories. - Microsoft · Audit Credential Validation
Audit Credential Validation occurs on the system authoritative for the credentials (DC for domain, local computer for local credentials); event list includes 4776.