Herkese Merhaba, ben Anka Red Team'den Louise0357. Bu konumda Tryhackme'de yer alan Bookstore isimli ctf'i çözeceğim.
Lafı fazla uzatmadan direkt konuya geçelim.
Ctf'e başlarken nmap taramamızı yaptık ve sonucu yazdık bir kenara.
Sunucunun 80 portunu ziyaret ettiğimizde bizi normal bir sayfa karşıladı. Birde 5000'e bakalım.
Vee bizi burada bir Rest Api servisi karşılıyor. Sunucunun bu portuna bir directory fuzz denedikten sonra /console isimli bir endpoint buluyoruz.
Ziyaret ettiğimizde ise;
Böyle bir sayfa bizi karşılıyor. Şimdi buradaki konsol şifresi için genel olarak sunucuyu inceleyelim.
Sunucuyu incelerken 80 port /login.html sayfasının kaynak kodlarını incelerken böyle bir yazı ile karşılaştık.
Bize aradığımız kodu .bash_history dosyasında bulabileceğimizi söylüyor.
5000 portta bir rest api servisi görmüştük. Orayı tekrardan bir inceleyelim.
5000 porta fuzz çektiğimizde bulduğumuz bir diğer endpointlerden biriside /api idi. Bu sayfayı tekrardan ziyaret ettiğimizde ufaktan bir dökümantasyon bizi karşılıyor.
Sayfada bir kaç api var. bu api'ları incelediğimizde her seferinde json çıktı alıyoruz.
Sayfadaki api endpointlerine baktığımızda hepsinde v2 ibaresini görmekteyiz. Bazen api servislerinin eski versiyonlarında zaafiyet bırakılabiliyor. Bundan dolayı api endpointindeki v2'yi v1 olarak değiştirip tekrar denediğimizde değişiklik beklerken herhangi bir değişiklik olmadığını görüyoruz.
Fakat yine her api'ın endpointleri aynı fakat parametreleri farklı olduğundan serisinden bir parameter fuzz çakıyoruz.
Buradaki show parametresini alıp LFI deneyelim hızlısından;
Vee istediğimiz sonuca ulaştık. Buradaki WERKZEUG_DEBUG_PIN=123-321-135 kısmındaki 123-321-135 değerini alıp hemen /console sayfasında deneyelim.
Görüldüğü üzere bulduğumuz şifre ile kilidi açtık ve hemen reverse shellimizi alıyoruz.
sunucuya girer girmez try-harder isminde bir program görüyoruz. Hemen çalıştırmayı deneyelim.
Evet bu programda birşeyler olduğunu sezdikten sonra hemen reverse denemeye geçebiliriz.D
ben gHidra kullanıyorum fakat tabii ki de siz farklı decompiler'lar kullanabilirsiniz. main fonksiyonuna baktığımızda az çok bize herşeyi açıklıyor.
local_14 değeri 0x5dcd21f4 ile karşılaştırılıyor ve root geçişi yapılıyor (sunucu içerisinde file owner root). Hemen 0x5dcd21f4 değerini çözümleyelim.
Decimal'e çevirdiğimizde elde ettiğimiz değer 1573724660. Bu sonucu denediğimizde hata alıyoruz. Çünkü gözden kaçırdığımız bazı şeyler var.
Değer kod içerisinde birkaç operatör ile işlemlerden geçiriliyor. 0x5db3 değerinin decimal karşılığı 23987. 0x1116 değerinin decimal karşılığı ise 4374. En son kalan 19621 değeri ile 1573724660 değerini bitwise calculate ettiğimizde elde ettiğimiz sonuç 1573743953. ve Denediğimizde aldığımız sonuç;;
Konu içeriğinde bazı kısımlarda anlatımlarım yetersiz - eksik kalmış olabilir, bunun farkındayım ve sizlerden özür diliyorum. Bir sonraki konularımın kalitesi bunu telafi edecektir
Diğer konularıma göz atın;;
Linux Üzerinde Iptables ile Paket Filtreleme ve Yönlendirme
Linux Üzerinde Suricata ile IDS/IPS Kurulumu ve Rule Yazımı
Linux Üzerinde NFS ile Yetki Yükseltmek 2



