PriviaHub Priviatech Makinesi Çözümü

Bu yazıda PriviaHub platformunda bulunan ve emekliye ayrılan “PRIVIATECH” adlı makinenin çözüm adımları anlatılmaktadır. İlk olarak makinede bulunan açık portların, açık portlar üzerinde çalışan güncel servislerin ve işletim sisteminin tespit edilmesi için tarama başlatılmıştır. Tarama işlemi için NMAP aracı kullanılarak, nmap -A <<IP_Adresi>> -Pn -v komutu çalıştırılmıştır. -A parametresi SYN taraması, güncel servis versiyon taraması, işletim sistemi taraması ve traceroute taraması yapan bir parametredir. -Pn parametresi ise varsayılan olarak PING taraması yapan nmap aracının PING isteğine kapalı makinelere tarama yapması amacıyla kullanılır. Bunun nedeni PriviaHub platformunda bulunan makinelerin gerçek şirket ağlarından esinlenerek oluşturulmasıdır. PriviaHub platformunda bulunan birçok makine PING’e kapalıdır. -v parametresi ise detaylı bilgi vermek amacıyla kullanılmıştır.

Yapılan tarama işlemi sonucunda 80, 1801, 2103,2105, 2107 ve 49157 numaralı portların açık olduğu, bu portlar üzerinde IIS ve RPC servislerinin çalıştığı ve işletim sisteminin “Windows Server 2012” olduğu tespit edilmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 1- Tarama Sonuçları

Web tarayıcı üzerinden makinenin 80 portuna erişim sağlanmıştır ve bir web uygulaması ile karşılaşılmıştır.

PriviaHub Priviatech Makinesi Çözümü
Şekil 2- Web Uygulaması

Şekil 2’de görüntülenen web sayfasında “Home” ve “Contact” sayfaları bulunmaktadır. Şekil 3’te “Contact” sayfası görüntülenmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 3- Contact Sayfası

Bu sayfada iletişim kurmak amacıyla bir form görülmektedir. Bu form üzerinde dosya göndermek amacıyla bir dosya yükleme öğesi bulunmaktadır.Deneme amaçlı olarak form üzerinde bulunan metin kutuları doldurulmuş ve istenilenin dışında olan “.bmp”  uzantılı bir dosya, doya yükleme öğesi ile seçilmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 4- Form Doldurma

“Send” butonuna tıklanarak form başarıyla gönderilmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 5- Form Gönderme

Form gönderildikten sonra, yüklenen dosyanın web sunucusu üzerinde bulunan ve web servisi üzerinden erişilebilen bir dizine yüklendiği düşünülerek, “dirb” aracı ile hangi dosya ve dizinlerin bulunduğunun tespit edilmesi için tarama başlatılmıştır. 

PriviaHub Priviatech Makinesi Çözümü
Şekil 6- Dosya ve Dizin Taraması

Yapılan tarama sonucunda “uploads” adlı bir dizin tespit edilmiştir. Yüklenen “.bmp” uzantılı dosyanın bu dizine yüklenmiş olabileceği düşünülerek web tarayıcısı üzerinden “/uploads/Aristotle.bmp” erişilmeye çalışılmıştır.

PriviaHub Priviatech Makinesi Çözümü
Şekil 7- Yüklenen Dosya

Erişim denemesi sonucunda dosyaya erişilmiştir. Böylece yüklenen dosyaların kontrolden geçmeden direkt olarak yüklendiği anlaşılmıştır. Bu durumdan yola çıkılarak zararlı bir dosya oluşturulabilir ve bu dosya makineye yüklenerek oturum bağlantısı sağlanabilir. Makineye yüklemek amacıyla Metasploit Framework tarafından sunulan msfvenom  aracıyla meterpreter oturumu sağlayacak olan zararlı bir “.aspx” uzantılı dosya oluşturulmuştur.

PriviaHub Priviatech Makinesi Çözümü
Şekil 8- Zararlı Web Dosyası

Ardından tekrar “Contact” sayfasına erişilerek yeniden bir form doldurulmuş ve oluşturulan zararlı dosya seçilerek form başarıyla gönderilmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 9- Form Gönderme

Form gönderildikten sonra “/uploads/getShell.aspx” sayfasına başarılı bir şekilde erişim sağlanması durumunda makine üzerinden meterpreter oturumu elde edilecektir. Oturum elde edilmesi için Metasploit Framework uygulaması üzerinde bulunan “handler” modülü kullanılarak dinleme modu başlatılmıştır.

Bağlantı elde edebilmek için yüklenen sayfaya erişim sağlanmıştır ve sayfa başarılı bir şekilde yüklenmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 10- Zararlı Web Sayfası

Zararlı web sayfasına yapılan erişim sonucunda meterpreter oturumu elde edilmiştir.

PriviaHub Priviatech Makinesi Çözümü
Şekil 11- Meterpreter Oturumu

Elde edilen meterpreter oturumu, IIS servisi üzerinden elde edilmiştir ve bu servis düşük yetkili bir servis hesabı ile çalışmaktadır. Bu oturum üzerinden sadece “non-privflag.txt” dosyası okunabilir. Bu nedenle “privflag.txt” dosyasının da okunabilmesi için hak ve yetki yükseltme işlemi yapılmalıdır. Hak ve yetki yükseltme işlemi için MS16-075 güvenlik zafiyetindne yararlanılabilir. Bu güvenlik açığı servis hesaplarının, en yetkili hesap olan SYSTEM hesabının token verisine erişmesini ve bu token’i birincil token olarak kullanmasını sağlamaktadır. Bu açıklıktan yararlanmak için “Potato.exe” adlı bir uygulama bulunmaktadır.

Bu uygulama makineye yüklendikten sonra çalıştırılarak SYSTEM hesabına ait token ele geçirilir. Ele geçirilen token’e geçiş yapmak için yardımcı araçlar kullanılabilir. Bu işlem için meterpreter “incognito” adlı bir modül sunmaktadır. Bu modül ile geçiş yapılabilecek olan token bilgileri gösterilir ve bir token’e geçiş yapılabilir. Fakat meterpreter her zaman yardımcı olamayabilir. Böyle bir durum için Potato.exe uygulamasının daha gelişmiş versiyonu olan “Kumpir.exe” adlı uygulama kullanılabilir. Bu uygulamaya argüman olarak bir dosya yolu verildiği zaman, Kumpir.exe öncelikle arkaplanda SYSTEM token’ini ele geçirerek bu token’e geçiş yapar ve belirtilen yoldaki dosyayı SYSTEM hakları ile çalıştırır. Böylece Potato.exe uygulaması çalıştırıldıktan sonra yapılması gereken işlemleri yapılmasına gerek kalmaz.

PriviaHub Priviatech Makinesi Çözümü
Şekil 12- Hak ve Yetki Yükseltme

Şekil 12 ‘de msfvenom aracı ile oluşturulmuş olan ve meterpreter payload’ı içeren “.exe” uzantılı bir dosya, “Kumpir.exe” uygulaması ile birlikte makineye yüklenmiş ve çalıştırılmıştır. Bunun sonucunda SYSTEM haklarıyla yeni bir meterpreter oturumu elde edilmiştir ve hak ve yetki yükseltme işlemi başarıyla gerçekleştirilmiştir.