Eğitim Danışmanlık

CTF: VulnHub-Y0usef Makine Çözümü

3 Kasım 20224 dakika okumaEğitim DanışmanlıkSiber Güvenlik

Makine Hakkında Bilgiler

Bu makinenin çözümü için önerilen platform VirtualBox‘ dır.

Makinenin amacı makineye saldırarak 2 tane bayrağı ele geçirmek.

Makinenin VulnHub sayfasındaki linki: https://www.vulnhub.com/entry/y0usef-1,624/

O zaman hadi makineyi çözmeye başlayalım


Makinenin Çözüm Adımları

1. İlk olarak saldırı yapacağımız yani kendi sanal makinemizin ip adresini öğreniyoruz.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
ifconfig komutu ile ip adresimizi öğreniyoruz. 10.0.2.6 olduğunu tespit ettik.

2. Şimdi de saldırı yapacağımız hedefi tespit etmemiz lazım. Bunun için netdiscover kullanacağım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
netdiscover -r 10.0.2.0/24 komutu yardımıyla hedefin 10.0.2.13 ip adresine sahip olduğunu keşfettik.

3. Şimdi makine hakkında bilgiler elde etmek adına nmap komutunu çalıştıracağım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
nmap -n -Pn -A -sV -sC -p- 10.0.2.13 komutunu çalıştırıyorum.
Buradaki parametreleri incelersek;
-n: DNS çözümlemesi yapma demek.
-Pn: Pingleri devre dışı bırakma.
-A: Agresif tarama yap.
-sV: Açık portta çalışan servisin ne olduğunu bulmaya çalışır.-sC ile birlikte kullanılırsa işe yarar.
-sC: -sV ile versiyon tespiti yaparken nmap scriptlerini kullanır.
-p-: 65535 portun hepsini tarar.
En sonda da hedef sistemin ip adresi yani 10.0.2.13

22 SSH ve 80 HTTP portları açık.

4. Tarayıcıma 10.0.2.13 yazıyorum ve siteyi ve kaynak kodlarını incelediğim zaman bir ip ucu bulamıyorum. O zaman bir de alt dizin taraması yapıyorum. Bunun için de gobuster kullanıyorum

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
/adminstration alt dizinine ulaşıyorum.

5. /adminstration dizinine gidiyorum

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Gittiğim zaman buraya erişim iznim olmadığını görüyorum.
O zaman bu sayfadayken burpsuite kullanarak araya girersem erişim hakkı elde edebilir miyim onu denemem lazım. Çünkü elimde başka hiç bir ip ucu yok.

6. Bunu yapabilmem için öncelikle firefox' da ayarlara gelip proxy ayarlarımı yapmam lazım

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Manuel proxy configuration u seçip ip olarak 127.0.0.1 ve port olarak da 8080 yapıyorum.

7. Artık burpsuite i başlatabilirim. Proxy sekmesine geliyorum ve intercept' i on yapıyorum

/adminstration sekmesini yeniliyorum ve burpsuite e dönüyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Burada Host satırının altına X-Forwarded-for: localhost yazıyorum ve sağ tıklayıp send to repeater diyorum.

8. Repeater sekmesine gelerek send diyorum. Ekranın sağ tarafında bana siteye gidebileceğim uzantıyı veriyor. Bunu da öğrenmek için ekranın sağ tarafında show response on browser diyorum ve bana veriği uzantıyı firefox' a giriyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Bu adrese gitmek için intercept i off yapıp bu uzantıya gideceğim.

9. Görüyorum ki artık giriş sayfasına araya girerek erişebildim.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Gördük ki araya girerek yetkimiz olmamasına rağmen admin sayfasına erişebildik. O halde elimde kullanıcı adı ve şifre olmadığı için burada da yine burpsuite kullanarak giriş yapmayı deneyeceğim.

10. Tekrar burpsuite' de intercept' i on yapıyorum ve kullanıcı adı şifre kısmına admin yazıyorum.

X-Forwarded-for: localhost yazıyorum yine ve sağ tıklayıp repeater a gönderiyorum ve repeater sekmesinde send diyorum. Intercept' i off yapıyorum ve verdiği uzantıya gidiyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Artık siteye giriş yapabildim.

11. Burada upload file alanına php reverse shell kodunu (usr-share-webshell-php-php reverse shell) yükleyerek shell almaya çalışacağım.

Öncelikle php reverse shell kodumu düzenlemem lazım.

ip alanına 10.0.2.6 yazıyorum (kendi makinemin ip adresini)

En üste de GIF98; yazıyorum ve dosyayı kaydediyorum.

Dosyayı kaydederken de uzantı olarak php'yi silmeden .gif yapıyorum

12. Burpsuite e gelip yine intercept' i on yapıyorum ve upload sayfasına gelip shell dosyamı yüklüyorum. Bir yandan da yeni bir terminal açarak natcat dinlememi başlatıyorum: nc -lvnp 1234

13. Dosyayı yükleyip send dedikten sonra burpsuite ekranımda GIF98; ifadesini siliyorum

Bir de uzantıdaki gif ifadesini silip forward diyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
File uploaded diyip bir uzantı verdi. Tarayıcımdaki uzantıya upload dan sonra bunu yapıştırırsam bağlantımı sağlamış oluyorum.

14. Hemen kararlı shell' imi almak için python kodumu yazıyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
python3 -c "import pty;pty.spawn('/bin/bash')"

15. O zaman makinemizi karıştırmaya başlayalım. İlk olarak home dizinine gidince user.txt yi görüyorum. Dosyayı okuyunca ilk bayrağıma ulaşmış oluyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
İlk bayrağımız: c3NoIDogCnVzZXIgOiB5b3VzZWYgCnBhc3MgOiB5b3VzZWYxMjM=

16. Bu bayrak sanki biraz hashli gibi görünüyor. Bunu bir burpsuite kullanarak decode etmeye çalışalım bakalım bir şey çıkacak mı?

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
https://www.base64decode.org/ sitesine yazınca bana ssh için kullanıcı adı ve şifre verdi :)

17. ssh bağlantısını yapıyorum

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
kullanıcı adı: yousef şifre: yousef123 yazınca sisteme ssh ile bağlanmış olduk.

18. sudo -l çalıştırıyorum

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
(ALL : ALL) ALL' u görünce yapacağımız şey artık bitti demektir.

19. root olmak için su root diyorum ve şifre olarak da yousef123 girince artık root yetkisinde olduğumu görüyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Artık yapacağımız şey bayrağımızı ele geçirmek

20. Root dizinimize gidiyoruz ve root.txt yi okuyoruz.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Bayrak: WW91J3ZlIGdvdCB0aGUgcm9vdCBDb25ncmF0dWxhdGlvbnMgYW55IGZlZWRiYWNrIGNvbnRlbnQgbWUgdHdpdHRlciBAeTB1c2VmXzEx
Root bayrağımızı da ele geçirmiş olduk.

Sızma testi alanında eğitimler alarak kendinizi ya da kurum personellerinizi geliştirmek istiyorsanız bizimle iletişime geçebilirsiniz.

Diğer CTF çözümlerinde görüşmek üzere. Bizi takip etmeye devam edin…

Bu konuda destek

Yazdıklarımız iş yaparken üretilmiş notlardır. Kurumunuz için aynı işi yapabiliriz.

Uzmanla görüşün

Başlayalım

Projenizi konuşalım.

İlk görüşme bir keşif toplantısıdır, satış sunumu değil. Kurumunuzun kendi ortamında yapılacak kısa süreli bir pilot çalışma veya kavram doğrulama (PoC) ile yetkinliğimizi doğrudan değerlendirebilirsiniz.

Teklif formunu doldurun

WhatsApp