Vulnhub RickdiculouslyEasy: 1 Writeup (TÜRKÇE)

 

   Herkese merhabalar :) Sınavlar, ödevler vs. derken uzun süredir makine çözmeye vakit bulamamıştım. Son bir sınavım kaldığı için çarşamba günü biraz bakınayım dedim ve Vulnhub'daki RickdiculouslyEasy makinesini çözmeye çalıştım. Mr. Robot kadar vakit almadı bu makineyi çözmek, tabii yine biraz internetten yardım aldım :) Daha önce kullanmadığım araçları da bu makinede kullanarak öğrenmiş oldum. Neyse daha fazla boş yapmadan başlıyorum.

   Makineyi ova dosyası olarak Vulnhub RickdiculouslyEasy: 1 adresinden indirebilirsiniz. Makinede birden fazla flag var ve sitede verilen bilgiye göre bu flaglar toplamda 130 puan ediyor. Ben ubuntu makinemde virtualbox üzerine kurdum. Saldırı makinesi olarak da kali linux kullanıyorum. Önce ifconfig komutu ile kendi ip adresime bakıp o aralıkta nmap taraması yaparak ağdaki cihazları listeliyorum ve hedef makinemin ip adresini buluyorum.


   Sonuca baktığımızda makinenin ip adresinin 10.0.2.15 olduğu görünüyor. Ardından bu ip adresine parametre vererek yeni bir nmap taraması yapıyoruz. "-sV" parametresi ile çalışan servislerin versiyonları hakkında bilgi alacağız, "-sS" parametresi ile de tcp syn paketleri ile scan yapacacağız. "-p-" parametresi ile de tüm portları taramasını söylüyoruz.


   Görüldüğü gibi ilk flagimizi bulduk bile :D FLAG:{TheyFoundMyBackDoorMorty}
10 puanı kaptık.Şimdi sırayla açık olan portları ve çalışan servisleri inceliyoruz.
21. port üzerinde vsftpd 3.0.3 versiyonu ile bir ftp servisi çalışıyormuş. İnternette önceden okuduğum yazılardan hatırladığım için ftp servisine "anonymous" olarak bağlanmaya çalıştım.


   "ftp 10.0.2.15" komutu ile  ftp servisine bağlantı isteği atıyoruz. Bizden name ve password istiyor. Name bölümüne "anonymous"  veriyoruz, şifre bölümüne de bir şeyler sallıyoruz :) Login olduktan sonra hangi dosyalar armış diye bakıyoruz ve flag dosyası bizi karşılıyor.


 Şimdi o dosyayı kendi makinemize çekmemiz lazım ki içini okuyabilelim. Bunun için öncelikle "lcd" komutu ile bizim makinemizde dosyanın nereye indirileceğini belirtiyoruz. "lcd" komutu local makinede hangi directory üzerinde ftp işlerini yapacağımızı ayarlamaya yarıyor diyebiliriz. Ardından "get" komutu ile de dosyayı kendi makinemize indiriyoruz.


   Ben lcd komutuna home dizinini verdiğim için oraya gidip flag dosyasını okuyorum. FLAG{Whoa this is unexpected} 10 puan daha kaptık :) Toplam puan 20 oldu.
Şimdi diğer portlara geçelim.
    80. portta http servisi çalışıyormuş. O zaman hemen gidip tarayıcımızdan http://10.0.2.15:80 şeklinde url girerek bakıyoruz ne varmış diye.

   Bizi böyle bir sayfa karşılıyor. Kaynak koduna da baktım ama bir şey çıkmadı. Ardından dirb aracı ile başka nereler varmış diye bakıyoruz. Dirb aracı kendi  wordlisti içerisindeki kelimeleri kullanarak web sitelerine brute force attack yapıyor ve mevcut içerikleri bize listeliyor.


Bize dönen sonuçlara gidip bakıyoruz.Önce robots.txt'ye bakalım.

Burdan bir şey çıkmadı.Zaten listelediği adresleri dirb vermişti bize. Önce passwords dizinine bakalım. Ardından diğerlerine geçeceğiz.

   Ve gördüğünüz gibi flag dosyası geldi. FLAG{Yeah d- just don’t do it.} Toplam 30 puan oldu.Şimdi diğer sayfalara bakalım.
   Gelen sayfada bize bir sorgu ekranı geliyor. Bir ip adresi verdiğimizde ise traceroot sonucu döndürüyor.

   Buna benzer bir soruyu LYK2019'da sınıfta yaptığımız ctfde çözdüğüm için burada linux komutu çalıştırmayı denedim. pwd, ls la gibi komutları deneyip çalıştığını anlayınca ";cat FLAG.txt" şeklinde şansımı denedim ama bana kediden başka bir şey gelmedi :(


   Hangi kullanıcılar varmış makinede bir bakayım dedim. Bunun için etc dizinindeki passwd dosyasını okumaya çalışacağım ancak cat komutum çalışmıyor. Bunun yerine head komutunu denedim.(head komutu default olarak dosyanın ilk 10 satırını ekrana yazar.)
";head -n 200 /etc/passwd" komutu ile head komutunun ilk 200 satırı listelemesini istiyorum ki ne var ne yok hepsini listelesin.

   
   Çıkan sonuçlarda en alttaki 3 kullanıcı dikkatimi çekti. Morty, Summer ve RickSanchez kullanıcılarını not alıyoruz. bu input ekranında başka veri elde edemedim ve diğer portlara bakmaya başladım.9090 portunda yine bir http servisi çalışıyor ve gidip bakıyoruz.(Not: Bu porta bakarken tarayıcı bağlantı güvenli değil hatası verdi, onaylayıp devam ediyoruz.)


   Bir diğer flag karşımıza çıkıyor. FLAG {There is no Zeus, in your face!} 10 puan daha, toplam 40 oldu.
   Şimdi 22222. porta geçelim. Burada ssh servisi çalışıyormuş. Bağlanmaya çalışacağız iyi güzel ama elimizde ne bir key ne de ssh parolası var. Yine bruteforce yapacağız. Bu işlem için daha önce kullanmadığım bir tool olan hydra kullandım. Hydra bruteforce saldırılarında en çok kullanılan toollardan biri galiba. Hatta adamlar kullanması kolay olsun, biz parametre vermekle uğraşmayalım diye hydra-wizard isminde bir şey yazmışlar ki çok da güzel olmuş. Atak yapmak için elimizde sitedeki traceroot panelinden aldığımız 3 adet kullanıcı adı var. Bunları user isimli dosyaya yazıp kaydediyoruz. Parola denemeleri için ise ben meşhur rockyou.txt yi kullandım. Kalide wordlist directorysinde bulunan rockyou.txt tam 133 mb bir wordlist ve genelde parola ataklarında kullanılıyor. 


   rockyou.txt bir gz sıkıştırılmış dosyası olarak tutulduğu için onu önce gzip ile çıkarıyoruz.

   Şimdi gelelim hydra'ya. "hydra-wizard" komutu ile aracı başlatıyoruz. Resimde gördüğünüz şekilde ayarlamaları yapıyoruz. Zaten bize adım adım soruyor araç ne yapayım ne kullanayım diye. Ardından diyor ki "Böyle böyle bir komut oldu verdiklerin, bunu çalıştırayım mı?" ve çalıştır diyoruz.


   Verdiğimiz user ve passwordleri deneyerekbize sonucu döndürüyor. Summer kullanıcısının parolası "winter"mış. Hemen  "ssh -p 22222 Summer@10.0.2.15" komutu ile bağlantı kuruyoruz ve şifre olarak da  winter giriyoruz ve mis gibi login oluyoruz.

   
   Bakıyoruz ki flag.txt var,  cat yine çalışmıyor ve head ile flagi okuyoruz. FLAG{Get off the high road Summer!}  10 puan daha, etti 50.
Hazır ssh ile girmişken içeride biraz dolanıyoruz. Diğer iki kullanıcının da directorylerine gidiyoruz. Morty'e geldiğimizde bizi şifreli bir zip dosyası ve bir jpg dosyası karşılıyor. Strings komutu çalışmadığı için head komutu ile jpg'den stringleri okuyoruz ve bize zip parolası geliyor.


   Unzip ile -c(extract) parametresini kullanarak flag.txt'yi çıkartıyoruz ve yeni flagimiz geliyor. FLAG: {131333} 20 puan daha geldi, toplam 70 puanımız oldu. Gelen flag bu sefer yazı vs. değil 133333 şeklinde bir sayı geldi. Şimdi RickSanchez kullanıcısına geçiyoruz. Muhtemelen Rick root kullanıcı çünkü diğerlerinde root klasörüne erişemedim.


  Burada bir executable dosya buluyoruz ama çalıştıramıyoruz, permission denied hatası alıyoruz. Dosyayı login olduğumuz kullanıcının dizinine kopyalayıp çalıştırıyoruz ve flag geliyor. FLAG{And Awwwaaaaayyyy we Go!} 20 puan daha, toplam 90 puan oldu. Flagin yanında bizi bir dizi not karşılıyor.Password hazırlama ile ilgili bir şeyler söylüyor ve sudo komutundan bahsediyor. Parola hazırlarken 1 adet büyük harf ve 1 adet digit(rakam) içeriyor demiş. İçerisinde ayrıca Rick'in müzik grubunun isminden bir kelime varmış. Dizi ile uzaktan yakından  pek alakam olmadığı için internetten grubun adına baktım, "the flesh curtains" imiş. Bu bahsi geçen parola muhtemelen bizim rick kullanıcısı olarak ssh ile bağlantı kurmamızı sağlayacak parola diye düşündüm çünkü başka bir yöntem de kalmadı gibi. Ardından parola listesi oluşturma adımına geçtim. Bu adımda internetten bir writeupdan yardım aldım çünkü herkes crunch aracı ile parola oluşturmayı anlatmış ancak bana biraz karmaşık geldi ve tam olarak istediğim şeyi nasıl yapacağımı anlayamadım. Bu yüzden mp64 isimli araç ile wordlistlerimi oluşturdum. mp64 man sayfasını incelediğimde upper ve lowercase harfler ve rakamlar için hazır parametreler olduğunu gördüm.


    Bizim işimize yarayacak olanlar ?u ve ?d parametreleri. Kullanacağımız kelime ile bunları yanyana yerleştirerek -o parametresi ile  dosyaya kaydediyoruz. Kullanım şekli şu şekilde:


Oluşturduğum wordlistleri hydra ile yukarıda yaptığımız gibi deniyorum ve RickSanchez isimli kullanıcının ssh parolasını buluyorum.


   Rick isimli elemanın şifresi de P7Curtains'miş. Hemen ssh ile bağlanıp root olarak /root/ directorysine gidip flagi alıyoruz.


  Ve flag geldii : FLAG: {Ionic Defibrillator} 30 point daha avladık ve toplam 120 puan oldu. 
   Burada bakmadığımız portlar aklıma geldi ve 60000 ve 13337 portlarını netcat ile dinledim ve 60000 dendiğer flag geldi. (Bunun ss'ini almayı unutmuşum :)) FLAG{Flip the pickle Morty!} 10 puan daha geldi ve 130 puan toplanmış oldu :D (Ayrıca netcat ile 13337'den de en başta nmap ile aldığımız flag geldi. Başka bir writeupda bir arkadaş bu şekilde almıştı flagi ben de sonradan farkettim :) )
   
    Evet bir writeup'ın sonuna daha geldik. Baya faydalı bir makine olduğunu düşünüyorum, bana da bir şeyler kattığı kesin. Umarım bu yazı da size faydalı olmuştur. Bir sonraki yazıda görüşmek üzere hoşçakalın...

Yorumlar

Bu blogdaki popüler yayınlar

rgbCTF Writeup(Rev/Pwn)

Overthewire Bandit Çözümleri