CTF'lere kısa bir ara verdikten sonra Cap makinesini çözmek, enumeration'ın neden en güçlü silah olduğunu tekrar hatırlattı. İlk bakışta basit görünen makine, dikkatli inceleme sonrası privilege escalation yolunu yavaş yavaş ortaya çıkarıyor.

Vpne bağlandım ve hedef makinenin ip adresini çalıştırdım daha sonra rustscan ile port taraması yaptım.

None

Tarama sonucunda açık olan üç port tespit edildi:

  • 21 → FTP
  • 22 → SSH
  • 80 → HTTP

Daha detaylı servis ve versiyon bilgisi elde etmek amacıyla Nmap ile versiyon taraması gerçekleştirdim:

None

web sitesi varmış 80 portu üzerinde

None

dirsearch ile dizin taraması yaptım .

None

Web uygulamasının dizinlerinde gezinirken farklı endpoint'leri manuel olarak incelemeye devam ettim. Bu süreçte sistem tarafından oluşturulmuş ağ trafiği kayıtlarını içeren pcap dosyalarının indirilebildiği bir bölüme rastladım.

Bu durum dikkat çekiciydi çünkü pcap dosyaları genellikle ağ trafiğinin ham kayıtlarını içerir ve çoğu zaman hassas bilgilerin açığa çıkmasına neden olabilir.

İndirilebilir dosyaları analiz etmek amacıyla ilgili pcap dosyasını sistemime indirdim.

None

Web uygulamasında pcap dosyalarının /data/3 dizini altında tutulduğunu fark ettim. Dizin numarası sıralı göründüğü için önceki kayıtlara erişilip erişilemeyeceğini kontrol etmek istedim.

Bu nedenle URL'deki dizin numarasını değiştirerek /data/2, /data/1 ve /data/0 yollarını denedim. Yapılan denemeler sonucunda önceki ağ trafiği kayıtlarına ait pcap dosyalarının da indirilebilir olduğu görüldü.

Bu durum uygulamada erişim kontrolü olmadığını ve dosyaların tahmin edilerek erişilebildiğini gösteriyordu.

None

0.pcap dosyasını Wireshark ile incelediğimde FTP trafiğinin plaintext olduğunu gördüm. Paketler içinde kullanıcı adı ve parola açık şekilde bulunuyordu.

None

nathan : Buck3tH4TF0RM3!

Artık sisteme giriş yapabilecek bilgiler elimde

Bulduğum bilgi ile FTP servisine bağlanmayı denedim ve başarılı şekilde giriş yaptım.

None

FTP üzerinden sisteme bağlandıktan sonra dizinleri kontrol ettim ve user.txt dosyasını indirerek user flag'i aldım.

Elde ettiğim aynı credential bilgilerini kullanarak bu kez SSH servisine bağlanmayı denedim ve başarılı şekilde giriş yaptım.

ssh nathan@10.129.6.53
None

SSH erişimi aldıktan sonra linpeas scriptini hedef makinedeki /tmp dizinine yükledim ve çalıştırarak sistem üzerinde privilege escalation ihtimallerini kontrol ettim.

None

Privilege escalation sırasında önce sudo yetkileri, SUID binary'ler ve capabilities kontrol edilmelidir. Daha basit bir yöntem bulunduğu için kernel exploit en son seçenek olarak bırakılır.

None

Linpeas çıktısını incelediğimde dikkatimi çeken satır şu oldu:

/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip

Linpeas çıktısında python3.8 binary'sinde cap_setuid olduğunu gördüm. Bu capability kullanılarak root yetkisi alınabiliyordu.

/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'

Exploit komutunu çalıştırdıktan sonra root yetkilerine sahip bir shell elde ettim. Bu aşamada mevcut kullanıcıyı tamamen değiştirmedik, ancak yetkileri yükselterek root ayrıcalıkları kazandık.

Daha sonra /root dizinine erişerek root.txt dosyasını okudum ve root flag'i elde ettim.🌸

None