Ele Geçirilen Etki Alanı Denetleyicisi Üzerinde Golden Ticket Oluşturarak Etki Alanına Sürekli ve Yetkili Erişimin Sağlanması

0
2674
views
Etki alanı sızma testleri sırasında etki alanı denetleyicisine (DC) yetkili erişim sağlandıktan sonra, gerçekleştirilen adımlardan birisi elde edilen yetkili erişimin sürekliliğini sağlayabilmektir. Bu yazıda Meterpreter kabuğu ile erişim sağlanan etki alanı denetleyicisinde Meterpreter kiwi eklentisi ile Golden Ticket oluşturulacak, bu bilet (herhangi bir zamanda) SYSTEM hakları ile Meterpreter kabuğu erişimi sağlanan etki alanındaki standart bir istemci bilgisayarda kullanılacak ve etki alanında yetkili erişime tekrardan sahip olunabildiği görülecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Kurum içine yapılan saldırılarda veya sızma testlerinde bir Domain Admin yetkisini elde eden bir saldırgan etki alanındaki (neredeyse) her bilgisayarı ele geçirmiş olur. Eğer güven (trust) ilişkisi varsa, ilişkili diğer etki alanları da tehlike altına girebilir. Bu sebeplerle etki alanı yönetici hesaplarının korunması kurumlar için oldukça önemlidir.

Sızma testlerinde veya saldırılarda etki alanı yönetici hakları temel olarak 2 şekilde elde edilir:

  • Kurum ağında etki alanı yöneticisinin jetonu (token) ele geçirilebilir. Bir kullanıcının jetonunun ele geçirilmesi ile ilgili örnek bir durum için bakınız. Etki alanı yöneticisinin jetonunu elde eden saldırgan jeton içerisindeki biletin (ticket) süresi boyunca – bilet yenileme olayı ihmal edilmektedir – istediği işlemi gerçekleştirebilir.
  • Benzer şekilde etki alanı yöneticisinin parolasını elde eden saldırgan, – kullanıcı parolasını değişmediği sürece – bu kullanıcı hesabına ait parola ile istediği işlemi gerçekleştirebilir. Örneğin, kendisine özel bir kullanıcı oluşturup o kullanıcıyı etki alanı yöneticisi yapabilir.

Ancak parolanın veya biletin yenilenmesi durumunda yetkiler kaybedilebilmektedir. Yetkilerin sürekliliğini sağlayabilmek için Altın Bilet (Golden Ticket) adı verilen bir bilet oluşturulabilir. Böylece, bu bilet ile biletin elde edildiği etki alanına tam yetki ile erişim istenildiği zaman (10 yıl boyunca gibi) sağlanabilir. Bu yazıda etki alanı yöneticilik yetkisinin yıllar sonra bile kullanılabilmesine imkan sağlayan Golden Ticket yöntemi incelenecektir.

Bu yazıda bir etki alanı denetleyicisi (DC) rolüne sahip Windows Server 2008 R2 sunucu ve bu etki alanındaki (sirket.local) Windows 7 bir istemci kullanılacaktır. Yazı 4 adımdan oluşacaktır.

  1. KRBTGT, Kerberos ve TGT gibi konular hakkında ön bilgilendirme yapılacaktır.
  2. Bir şekilde etki alanı denetleyicisine (DC) meterpreter oturumu elde edilecek ve bir takım bilgiler toplanacaktır.
  3. Etki alanı denetleyicisi (DC) üzerinde altın bilet (Golden Ticket) oluşturulacaktır.
  4. Standart bir kullanıcı haklarıyla ele geçirilmiş olan bir istemci bilgisayarında Golden Ticket ile etki alanı yönetici hakları yeniden ele geçirilecektir

 

1) Genel Kavramlar

1.1) KRBTGT Hesabı

Bir etki alanı oluşturulduğunda KRBTGT adında bir kullanıcı oluşur. Bazı durumlarda (eğer ortamda RODC varsa), birden fazla krbtgt hesabı da (sonuna birer ID eklenmiş şekilde) bulunabilir. Ancak, Golden Ticket için gerçek KRBTGT hesabının bilgileri gereklidir. Etki alanındaki krbtgt hesabı ile ilgili ayrıntılı bilgi için “net” aracı kullanılabilir.

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-01

Bu kullanıcı hesabının pasif olduğu dikkat çekmektedir.

 

1.2) Microsoft Ortamında Kerberos İle Kimlik Doğrulama

Microsoft etki alanı ortamında kimlik doğrulama temel Kerberos protokolü üzerine kurulmuştur. Kerberos kimlik doğrulaması aşağıdaki gibi düşünülebilir.

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-02

Bu adımlar özetle şu şekildedir:

  1. İstemci etki alanı denetleyicisine (DC) kendisini ispatlamaya çalışarak ön bilet (TGT) ister.
  2. Etki alanı denetleyicisi (DC) kimliğini doğruladığı istemciye, bir paket (TGT ve SK1’i içeren etki alanı denetleyicisine (DC) özel bir veri ile şifrelenmiş bir paket) ve kendisi ile iletişimde kullanacağı bir oturum anahtarı (SK1) gönderir.
  3. İstemci bağlanmak istediği sunucuya (dosya sunucusu, web sunucusu gibi) kendisini ispatlamak için etki alanı denetleyicisinden (DC) noterlik (şahitlik) talep eder. Bu amaçla etki alanı denetleyicisinden (DC) aldığı şifreli paketi geri gönderir.
  4. Etki alanı denetleyicisi (DC) onayladığı (şahit olduğu) istemciye, istemcinin sunucudaki izinleri için gerekli ikinci bir paketi (ST ve SK2’yi içeren servis sunucusuna özel bir veri ile şifrelenmiş bir paket) ve sunucu ile iletişimde kullanacağı bir oturum anahtarını (SK2) gönderir.
  5. İstemci, KDC’nin şahitliğinde, sunucuya kimliğini doğrulatılır.
  6. Sunucu kimliğini doğruladığı istemciye geri bildirimde bulunur.

 

1.3) TGT

İstemci, TGT’yi elde ederek etki alanındaki bir servise direk olarak bağlantı sağlayamaz. Çünkü KRBTGT hesabının parolasına ait NT özeti sadece etki alanı denetleyicisi (DC) üzerinde bulunmaktadır ve bu nesneyi istemci deşifre edemez. İstemci, bir hizmet almak istediği zaman, elindeki TGT’yi içeren şifreli paketi KDC’ye gönderir, daha sonra da istenilen servise (yetkisi dahilinde) erişim sağlayabilir. Özetlemek gerekirse, servis bileti istenirken TGT bileti ilgili kullanıcıyı betimler / tanıtır (representation of user idendity). Böylece kullanıcıya ait parolaya gerek duyulmadan mevcut TGT ile arzu edilen servise yönelik bilet alınır ve ilgili servisten hizmet alınabilir.

Varsayılan olarak bir TGT 10 saat için geçerlidir ve 7 gün boyunca otomatik olarak güncellenir. Bir kullanıcıya ait biletleri listelemek için Windows “klist” komut satırı aracı kullanılabilir.

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-03

Not: KRBTGT hesabının parola özeti kullanıldığı için – bu hesap pasif olmasına rağmen – kimlik doğrulama işlemleri başarılı bir şekilde gerçekleştirilebilir.

Kerberos ile kimlik doğrulamaya ait ekran görüntüsünde görülen 2. adımda, istemci TGT almak istediğinde, sunucu bu talebi KRBTGT hesabının NT özeti ile şifreler. Bu sebeple KRBTGT kullanıcısının NT özeti ele geçirildiğinde TGT oluşturulabilir. Bu yazıda belirtilecek olan Meterpreter’daki “kiwi” eklentisinin oluşturduğu Golden Ticket da yaklaşık olarak bu şekildedir.

 

2) Etki Alanı Denetleyicisi Üzerinde Gerekli Bilgilerin Toplanması

Golden Ticket oluşturmak için aşağıdaki bilgilere ihtiyaç duyulur:

  • Etki alanı adı
  • Etki alanına ait SID değeri
  • Etki alanındaki krbtgt kullanıcısına ait NTLM hash değeri

Bu bilgilerden krbtgt kullanıcısına ait parolanın NTLM özet değeri etki alanındaki bir etki alanı denetleyicisi (DC) üzerinden elde edilebilirken, diğerleri herhangi bir makine üzerinden elde edilebilir. Bu yazıda ele geçirilen bir etki alanı denetleyicisi (DC) üzerinden tüm bilgiler elde edilecektir.

Herhangi bir istemci bilgisayarın komut satırında “systeminfo” komutunu kullanarak etki alanı adı elde edilebilir.

systeminfo | findstr Domain:

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-04

Mevcut durumda makinedeki mevcut kullanıcılar aşağıdaki gibidir:

net user /domain
wmic useraccount get sid, name

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-05

Ayrıca wmic komutunun çıktısında da görüldüğü gibi, etki alanına ait SID değeri “S-1-5-21-2894599646-2825042678-4174893972” olarak elde edilmiştir. SID değerini elde etmek için kullanılabilecek diğer komutlar şu şekildedir:

whoami /user –> Etki alanı kullanıcısına atlandığında
PsGetsid.exe sirket.local –> PsGetSid aracı indirilmelidir.

Sadece etki alanı denetleyicisinden alınabilecek olan tek bilgi KRBTGT kullanıcısının parola özetidir. Bu bilgiyi alabilmek için, etki alanı denetleyicisine Meterpreter kabuğu ile bağlantı gerçekleştirilebilir. Daha sonra da Meterpreter “hashdump” komutu ile KRBTGT hesabına ait parola özeti elde edilebilir.

hashdump

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-06

 

3) Golden Ticket’ın Oluşturulması

Gerekli bilgiler elde edildikten sonra gerekli bilet oluşturulabilir. Bu amaçla öncelikle “kiwi” adlı eklenti Meterpreter’a yüklenir.

load kiwi

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-07

Bu eklentinin komutları aşağıdaki gibidir (Meterpreter komut satırında “help” komutunun çalıştırılması ile listelenebilir):

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-08

Golden Ticket oluşturmak için “golden_ticket_create” komutu kullanılacaktır. Komutun temel kullanımı aşağıdaki gibidir:

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-09

Bu komutla “YeniKullanici” adlı bir hesap için RID değeri 500, 502 ve 512 olacak şekilde bir bilet oluşturulması aşağıdaki gibidir:

golden_ticket_create -d sirket.local -g 500, 502, 512 -k e97cff82951e431e3ee148fef54a528d -s S-1-5-21-2894599646-2825042678-4174893972 -u YeniKullanici -t /root/Golden_YeniKullanici.krbtgt

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-10

Böylece, Aktif Dizin üzerinde var olmayan bir kullanıcı için bir Kerberos bileti oluşturabilen bir nesne oluşturulmuştur. Kısacası Golden Ticket, bit çeşit sahte KDC (Key Distribution Center) olarak davranarak geçerli bir TGT oluşturacaktır.

İpucu: Golden Ticket oluşturma işleminin bir etki alanı denetleyicisi (DC) veya etki alanında bir bilgisayarda gerçekleştirilmesine gerek yoktur. Mevcut bilgiler olduktan sonra herhangi bir bilgisayarda da hazırlanabilir.

Bu bilet herhangi bir kullanıcıya (krbtgt hariç) veya herhangi bir şeye (etki alanına ait SID değeri ve adı hariç) bağlı olmaksızın kullanılabilir.

 

4) Golden Ticket’ın Kullanılması

Golden Ticket oluşturulmadan önce standarttan kullanıcı haklarıyla etki alanı denetleyicisinin (DC) C diskine uzaktan erişilemiyorken, Golden Ticket kullanıldıktan sonra etki alanı denetleyicisinin (DC) C diskine girilebildiği görülecektir.

Varsayılan durumda, herhangi bir bilgisayarda iken standart haklar ile (standart kullanıcı hesabı veya bir bilgisayar hesabı yetkileri ile) etki alanı denetleyicisinin (SRV1) yönetimsel paylaşımlarına erişim sağlanamaz. Bir istemci bilgisayara SYSTEM hakları ile Meterpreter bağlantısı gerçekleştirildiğini varsayalım. Bu durumda SRV1 bilgisayarının diskine uzaktan erişim sağlanamadığı görülmektedir:

net use \\SRV1\C$

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-11

Daha sonra kiwi eklentisi yüklenir.

load kiwi

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-12

Mevcut durumdaki tüm biletler aşağıdaki gibidir. Herhangi bir kullanıcının oturum açmadığı bu bilgisayarda, sadece servislere ait biletlerin olduğu görülmektedir. Zorunlu olmamakla birlikte görüntü kirliliği olmaması açısından tüm biletler silinecek ve sonrasında daha önceki başlıkta etki alanı denetleyicisi (DC)  üzerinde elde edilen Golden Ticket yüklenecektir.

kerberos_ticket_list
kerberos_ticket_purge

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-13

Böylece, sadece Golden Ticket tarafından oluşturulan bilet (YeniKullanici adlı var olmayan hesaba ait bilet) RAM üzerinde tutulmaktadır.

kerberos_ticket_purge
kerberos_ticket_use /root/Golden_YeniKullanici.krbtgt
kerberos_ticket_list

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-14

Yukarıdaki ekran görüntüsünde de görüldüğü gibi, oluşan bu bilet 10 saat değil, 10 yıl geçerlidir. Ayrıca, bir hafta değil 20 yıl süre boyunca yenilenebilir.

İpucu: Windows komut satırı aracı olan “klist” ile de benzer bilgi elde edilebilir.

Golden Ticket elde edilmiş durumda iken, etki alanı denetleyicisi (DC) rolündeki SRV1 adlı bilgisayarın C diskine erişim sağlanabildiği görülmektedir.

net use \\SRV1\C$
dir \\SRV1\C$

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-15

Microsoft ortamında jeton (Token / SAT) kullanılır ve bu jeton içerisinde de SID değerleri bulunur. Golden Ticket oluşturulurken, SID değeri olarak da 500 (Built-in Administrator), 502 (Krbtgt) ve 512 (Domain Admins) gibi değerler verilmişti. SID hakkında ayrıntılı bilgi için bakınız. Bu yetkilere sahip olan hesaplar etki alanında kullanıcı yönetimi işlemlerini gerçekleştirebilir. Örneğin Domain Admins grubuna bir hesap ekleyebilir.

İlk durumda etki alanındaki kullanıcılar aşağıdaki gibidir:

net user /domain
net group “Domain Admins” /domain

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-16

Elde edilen yetkilerle bir kullanıcı oluşturulup, Domain Admins grubuna eklenebilir:

net user “Yine Ben” Aa123456 /add /domain
net group “Domain Admins” “Yine Ben” /add /domain
net group “Domain Admins” /domain

golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool-17

Bu yazıda MSF Kiwi eklentisi kullanılarak işlemler gerçekleştirilmiştir. Bunun yanında, Meterpreter kabuğu elde edilmeden, Windows üzerinde Mimikatz aracı kullanılarak da aynı işlemler gerçekleştirilebilir.

Gerekli bilgiler mevcut iken, herhangi bir bilgisayarda (etki alanına dahil olsun veya olmasın) oluşturulan Golden Ticket işlev görmektedir. Bunun yanında etki alanına dahil olmayan bir bilgisayarda kullanılmaya çalışılan Golden Ticket – oluşan ticket bilgisayar üzerinde görülmesine rağmen – bazı durumlarda işlev göstermeyebilmektedir. Bu sebeple, bilet kullanılırken, etki alanındaki bir bilgisayar üzerindeyken biletin kullanılması tavsiye edilir.

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.