Eğitim Danışmanlık

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

3 Kasım 20225 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 root olup bayrağı ele geçirmek.

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

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.14 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.14 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.14

22 SSH ve 80 HTTP portlarının açık olduğunu tespit ettik.

4. Tarayıcıma 10.0.2.14 yazıyorum ve hata veriyor. O zaman /etc/hosts dosyama siteyi eklemem 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.
Bu şekilde geany ile açtıktan sonra en alt satıra sitemi ekliyorum. Tarayıcıyı yenilediğim zaman sorunsuz bir şekilde siteye ulaşabiliyorum.

5. Tarayıcımda Hint yani ipucu kısmına bakıyorum notes.txt yi ya da L ile konuşmayı bul diyor.

6. Makinemize bir de alt dizin taraması yapalım. Bunun için gobuster kullanacağız.

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.
gobuster dir -u 10.0.2.14 -w /usr/share/wordlists/MyLists/DirectoryListMedium.txt kodumu çalıştırıp alt dizinleri buldum. Buradan robot.txt dizinine gidince /important.jpg dizini ile karşılaşıyorum.

7. /important.jpg dizinine gidiyorum. Burada sağ tıklayıp kaynak kodlarımı görüntüleyemediğim için curl ile kaynak kodları görüntüleyecem

 curl http://10.0.2.14/important.jpg

i am Soichiro Yagami, light's father
i have a doubt if L is true about the assumption that light is kira
i can only help you by giving something important

login username : user.txt
i don't know the password.
find it by yourself
but i think it is in the hint section of site

Bu notla karşılaşıyorum.

8. Siteye giriş için kullanıcı adı user.txt de şifreyi de bilmediğini söylüyor. Bide sitedeki ipucu bölümüne bak diyor.

9. Şimdi o zaman bir de alt dizinin alt dizinlerini bulalım. Yine gobuster 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.
gobuster dir -u http://10.0.2.14/wordpress -w /usr/share/wordlists/MyLists/DirectoryListMedium.txt kodumu kullanarak /wordpress dizinine de bir alt dizin taraması yaparak wordpress paneline giriş sayfasını buldum. (wp-admin)

10. Elimde bir wordpress site var bir kaç kullanıcı tahminim var (Kira, L, Soichiro) ama yine de wordpress taraması ile kullanıcı bulalı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.
Tahmin ettiğim gibi kira kullanıcına ulaştık.

11. Şimdi de kiranın şifresini wpscan ile bulmaya çalışalı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.
wpscan --url http://10.0.2.14/wordpress --usernames kira --passwords /usr/share/wordlists/MyLists/BigPasswordList.txt kodu ile taratınca şifrenin iamjustic3 olduğunu görüyoruz.

12. Kira olarak giriş yaptıktan sonra sayfada gezinirken media' nın altında notes.txt olduğunu görüyorum. Notes.txt nin uzantısına gidiyorum ve bir liste karşıma çıkıyor. Bu listeyi alıp masaüstünde bir wordlist diye klasör oluşturup içine atıyorum. İp ucunda ayrıca isminin l olduğunu söylemişti. O zaman l için hydra kullanarak ssh şifresini bu listenin içinden bulmaya çalışalı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.
hydra -l l -P /root/Desktop/wordlist.txt 10.0.2.14 -t 4 ssh kodunu çalıştırdığım zaman şifrenin death4me olduğunu tespit ediyoruz.

13. Artık ssh ile l olarak giriş yapabiliriz.

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.
l olarak sisteme bağlanmış olduk.

14. Makinede user.txt ye bakacağım ilk olarak (ip uçlarından yola çıkarak)

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.
Böyle bir kod gördüm. Bunu çözmek için google' a brain fuck decoder diye aratıyorum.

15. Bulduğum sayfaya kodu yapıştırıyorum.
Kullandığım sayfa: https://sange.fi/esoteric/brainfuck/impl/interp/i.html

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.
Bence kabuğunu aldın ama beni öldüremeyeceksin -kira diye bir not ile karşılaşıyorum.

16. Makinede dolaşmaya devam ediyorum ve kira dizinine giriyorum

kiranın içinde kira.txt diye bir dosya var ancak bunu açmaya yetkim yok.

Burada ayrıca .ssh' ın bir dizin olduğunu görüyorum ve içine girince authorized_keys olduğunu ve içeriğini cat ile görüntüleyebildiğimi 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.
l' nin içine gidecem ve kira' nın authorized_keys' ini l ye tanımlayacağım ve kira olarak sisteme giriş yapmayı deneyeceğim.

17. Nano ile l nin içinde authorized_keys diye bir dosya oluşturup kiranın authorized_keys' inin içeriğini yapıştıracam ve dosya izinlerini ayarlayacağı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.
En son chmod 600 authorized_keys yetkisini de verdikten sonra artık kira olabiliriz.

18. Bunun için ssh kira@10.0.2.14 yazıp enter a basmamız yeterli.

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 kadar :) Artık kirayız

19. kira.txt vardı onu okuyamamıştık. Şimdi onu okuyalı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.
Muhtemelen base64 ile şifrelenmiş bir metin daha var.

20. Şimdi bu şifreyi istersek google' da base64 decoder ile ya da kali terminali sayesinde echo komutunu kullanarak çözebiliriz. Daha önceki CTF' lerde google' dan faydalanmıştık bu defa bunu kod ile yapalı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.
echo cGxlYXNlIHByb3RlY3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgCjEuIEwgKC9vcHQpCjIuIE1pc2EgKC92YXIp | base64 -d komutu ile base64' lü şifreyi çözmüş olduk.

21. O zaman /opt ve /var dizinlerini inceleyelim.

/opt/L/kira-case dizininde case-file.txt diye bir dosya var içeriğini cat ile okuyorum

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.

22. Sonda bahsettiği fake-notebook-rule dosyasına gidiyorum bu defa

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.
Klasörü incelediğim zaman ipucu olarak cyberchef kullan diyor ve case.wav diye bir dosya var.

23. case.wav ı da cat ile görüntüleyelim.

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.
Yine bir şifre karşımıza çıktı ancak bu defa bir ipucu vererek bunu cyberchef kullanarak decode edebileceğimizi söyledi.

24. Google da cyberchef diye aratıyorum ve https://gchq.github.io/CyberChef/ sitesine gidiyorum.

Bu kodu from hex kısmına yapış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.
Bana yine base64 ile şifrelenmiş bir metin üretti.

25. Bunu da yine kali terminalimden decode ediyorum

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.
echo cGFzc3dkIDoga2lyYWlzZXZpbCA= | base64 -d kodumu yazınca şifrenin kiraisevil olduğunu buluyorum.

26. Artık root olmak için sudo su yazıyorum ve bu şifreyi 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.
Artık root yetkilerine sahip oldum.

27. O zaman artık root dizinine gidip bayrağımı alabilirim.

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.
Bayrağımızı almış 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