Mr-Robot Walkthrough (Zafiyetli Makine Çözümü)

Merhaba arkadaşlar, bugün herhangi bir yasal sürece takılmadan sızma testi denemeleri yapabileceğimiz bir zafiyetli makineyi çözmeyi anlatacağım. Yani bir makineye nasıl sızılır onun adımlarına bakacağız. Kullanacağımız zafiyetli makinenin ismi “Mr-Robot”. İndirme linkini aşağıya bırakıyorum.

https://www.vulnhub.com/entry/mr-robot-1,151/

İndirdikten sonra zafiyetli makineyi herhangi bir sanal makine çalıştırıcısı olan VitualBox veya VMware programları ile açabilirsiniz. Ben VMware programı ile devam edeceğim.

Programı yükleyip çalıştırdıktan sonra ana ekranda bulunan “Open a Virtual Machine” yazan butona tıklayıp indirmiş olduğumuz “mrRobot.ova” dosyasını seçiyoruz. Karşımıza bir ekran gelecek bir şeye dokunmadan “import” diyoruz. Yükleme barı dolduktan sonra sol tarafta “My Computer” kısmında mrRobot sanal makinemiz gözükecektir. Hemen ardından ufak bir ayar yapmamız lazım. Soldaki menüden sanal makineye sağ tıklayıp “Settings” e giriyoruz. Çıkan ekranda “Network Adapter” a tıklayıp sağ taraftaki “Network Connection” kısmından “NAT: Used to share the host’s IP adress” i seçiyoruz. Sonra OK diyip kapatıyoruz. Bu ayarı yaparak zafiyetli makineyi kendi ağımıza dahil etmiş olduk. Sonrasında zafiyetli makineyi seçip yukarıdaki menüler kısmında bulunan “PLAY” ikonuna tıklayarak cihazı çalıştırıyoruz. Bizi login ekranı karşılıyor burada bir şey yapmadan yine VMware üzerinden “KALİ LİNUX” u çalıştırıyoruz. Yukarıda anlatmış olduğum ayarı Kali içinde uyguluyoruz ki aynı ağda bulunsunlar. (Kali linux un kurulumunu anlatmadım araştırarak halledebilirsiniz.) Evet her şey hazır olduğuna göre artık sızma işlemlerine başlayabiliriz. Burada makinede saklanan 3 tane “FLAG” değeri var onları bulmamız isteniyor.

İlk önce yapacağımız işlem kendi ip adresimizin bloğunu öğrenmek ve hemen ardından ağdaki makineleri listeleyerek içlerinden sızacağamız makinenin ip adresini tespit etmek olacak. Bunun için Kali Linux üzerinden önce “ifconfig” ile ip bloğumuzu öğreneceğiz ve bu ip bloğuna göre Nmap aracını kullanarak ağı tarayacağız.

İp adres blogumuz “192.168.134” içerisindeymiş o zaman ağdaki diğer makinelerde “192.168.134” bloğu içerisinde ip alacaktır. Mesela bizim makineye “128” verilmiş. Şimdi Nmap ile 0 ile 255 blog aralığını tarayacağız.

Evet ip blog aralığını taradık. 1,2,137,254 ip adreslerine rastladık. 1 ve 2 gibiler genelde modem, NAT Device vb. şeylere verilir. Hemen ardından gördüğümüz üzere sonu 137 olan ip adresini görüyoruz. Bu hedef makinemizin İP adresidir. İp adresini tespit ettiysek ikinci aşamaya geçiyoruz. Bu aşamada ise portları ve portların üzerinde çalışan servisleri tespit edeceğiz.

22 portunun kapalı,80 ve 443 portlarının açık olduğunu görmekteyiz. 80 portunda Apache yani web sunucusu çalışmakta buda 80 portundan web site yayını veriyor olabileceği anlamına gelmektedir.

Böyle bir ekranla karşılaştık. Web yayını yapılıyorsa hemen aklıma gelen kalide yüklü olan “nikto” aracı ile web sitesinde zafiyet mevcut mu değil mi taraması yapmak olacak.

Evet tarama sonucunda hedef sistemde WordPress çalışıtırıldığı ve robots.txt dosyasına erişebildiğimizi görmekteyiz. Hemen ardından wordpress için kalide yüklü olarak gelmekte olan “wpscan” aracı ile sistemi taramaya geçiyoruz.

Zafiyetler var fakat hepsi XSS zafiyeti buda bizim işimizi görmemektedir. Bize uzaktan kod çalıştırmaya olanak verecek bir zafiyet gerekiyor.Buradan bir şey çıkmayacak gibi. Devam edelim. Yukarıdaki tespit etmiş olduğumuz “robots.txt” dosyasına bir göz atalım.

url üzerinden robots.txt dosyasını açtığımızda karşımıza bir kaç bilgi çıkıyor. İçerisinde yazan iki bilgiyede url üzerinden geçmeyi deniyoruz.

Evet görüldüğü üzere “key-1-of-3.txt” içerisinden ilk “FLAG” e ulaştık.Bulduğumuz “FLAG” değerini kalide yüklü olan “hash-identifier” aracına verdiğimizde değerin bir MD5 özeti olacabileceğini öğrendik. Devam ettiğimizde “F.socity.dic” dosyasını indiriyoruz ve içerisinden bir parola listesi çıkıyor. Bir wordlist karşımıza çıktıysa bir yerlere kaba kuvvet yani brute-force saldırısı yapabiliriz tahminimce.

MD5 hash ini kırmak için uğraştık fakat kıramadık. Tabi durmak yok yola devam. Elimizde bir wordlist varsa admin paneline bir brute force denemekte fayda var. Fakat bunun için bize username bilgisi gerekiyor. Onun için tekrardan “wpscan” aracı ile username tespiti yapmaya çalıştım fakat yine bulamadım. Diziyi takip ettiğimden dolayı başrol oyuncusu olan ve dizideki ismi olan “elliot” ı username olarak denedim.

Gördüğünüz gibi “elliot” kullanıcı adının parolasının yanlış olduğunu söyledi. Buda demek oluyor ki “elliot” kullanıcı adı var. O zaman bu kullanıcının parolasına brute-force yani kaba kuvvet saldırısı yapmak akla gelebilir. Deneyelim o zaman. Wpscan aracı ile brute-force attığımda parolanın ER28-0652 olduğunu tespit ettik.

Kullanıcı adı ve parolayı tespit ettikten sonra hemen panele login oluyoruz. WordPress te genelde panel default olarak “wp-login” olur. Hemen deniyoruz.

Evet gördüğünüz gibi artık “elliot” kullanıcısının panelindeyiz. Şimdi shell yükleyip sunucuyu ele geçirmemiz gerekiyor. Normalde hazır C99 shell ile sunucuyu ele geçirirdik fakat sızma testlerinde çok tercih edilen bir yöntem değildir. Onun için metasploit modülü ile shell alacağız. Kali linux içerisinde “/usr/share/metasploit-framework/modules/exploits/unix/webapp/”  dizinde “wp_admin_shell_upload.rb”  diye bir dosya mevcut bunu editleyerek shell alacağız. Shell dosyasını Leafpad vb. bir şey ile açtığınızda CTRL-F ile arama yaparak “fail_with” geçen yeri bulup o satırın başına # işarete koyarak o kısmı yorum satırına düşürün ve kaydedin.

Hemen sonrasında metasploiti çalıştırarak editlemiş olduğumuz exploiti kullanmaya başlıyoruz.

Evet gördüğünüz gibi sistemde oturum elde ettik. shell komutu ile linux komut satırına düşeceğiz ve hemen ardından “python -c ‘import pty;pty.spawn(“bin/bash”)’ ile python yüklü sistemlerde shell spawn ederek interaktif shell elde edeceğiz.

Evet yukarıda bahsettiğimiz gibi interaktif shell elde ettik hemen sonrasında id komutu ile hangi userla login olduğumuzu öğrendik. Sonra cd ile “home” dizinine geçiş yaptık. ls ile home dizinin içerisindeki dosyalara baktık. robot isimli bir dosya bulduk ve cd robot ile robot dizinine geçtik. ls ile buradaki dosyalarıda listeledikten sonra içerisinde “key-2-of-3.txt” ile “password.raw-md5” 2 dosya bulduk. “key-2-of-3.txt” dosyasını cat komutu ile okumaya kalkınca yetkimizin olmadığı hatasını aldık. Hemen sonrasında “password.raw-md5” dosyasını okumaya çalıştık ve içerisinden bir hash elde ettik. Hash’i kırmak için online md5 hash decrypter kullandım ve robot kullanıcısının parolasını tespit etmiş oldum.

Evet su komutu ile robot kullanıcısına geçtim ve hemen sonrasında cat komutu ile “key2-of-3.txt” dosyasının içeriğini okuduk yani FLAG 2 ‘yide böyle bulmuş olduk.

Şimdi sırada yetki yükselterek root yetkisine sahip olmak var.Onun için sistemde SUID biti ayarlı çalışıtırabilir dosyalar aranmıştır.Görüldüğü üzere Nmap sistemde yüklü ve SUID biti ayarlı.

Nmap interaktif shell özelliği kullanılarak yönetici hakları ele geçirilmiştir.

Evet gördüğünüz gibi root dizinine geçiş yaptık ve ls ile dizindeki dosyaları listeledik. İçerisinde “key-3-of-3.txt” dosyasını bulduk ve içeriğini okuduğumuzda 3. FLAG’ada ulaşmış oluyoruz.

Yazı biraz uzun oldu kusura bakmayın. Başka yazılarda görüşmek üzere.

4 thoughts on “Mr-Robot Walkthrough (Zafiyetli Makine Çözümü)

  1. Kolay gelsin öncelikle ben mr robot makine cözümünüzü okudum ve uygulama yaptım robots.txt dosyasında bulduğunuz fsocity.dic de tespit ettiğiniz sisteme giriş parolası yok dosyaya girip ctrl + F yaptım ve bulduğunuz parolayı yazdım ama bulamadı ama siz kaba kuvvet saldırısında bulmuşsunuz ben kaba kuvveti uniscan ile denedim sizin gibi uniscan –url “ip adresi” –wordlist /root/Desktop/fsocity.dic –username elliot yazıp komutu işlettim ama –wordlist komutunu tanıyamadı bende sizin bulduğunuz şifreyi wordlistin içine koyup burp le yaptım sonra sizin yaptığınız gibi sisteme girdim . 2. Sorum ise kullandığımız exploiti editlerken neden fail_with yazan yeri yorum satırına dönüştürdük ve hep öyle mi kalsın? Şimdi konuya döneyim sizin yaptığınız gibi sisteme girip meterpreter oturumu elde ettim ve ardından sizin yaptığınız gibi “python -c ‘import pty;pty.spawn(“bin/bash”)’ bu komutu işlettim ama bu sefer de python komutunu tanımadı sistem ,neyse dedim cd /home yapıp roota eriştim ve şifresini aldım : password.raw-md5 online md5 decrypter de çözmeye çalıştım siz bulmuşsunuz fakat bende veritabanında yok dedi . Bu benim ilk makine çözme deneyimimdi nerede hata yapıyor olabilirim bana ulaşırsanız sevinirim iyi günler 🙂

    1. Selam Eren,
      Makineyi tekrardan indirip kontrol ettim.
      1-) Makinede fsocity.dic dosyasının içerisinde kullanıcının parolası var. cat fsocity.dic | grep ER28-0652 komutu ile görülebiliyor. Gözünden kaçıyor olabilir 🙂
      2-) Fail_with kısmını yorum satırınına düşürmemizin sebebi sadece bazı hataların önüne geçmek. Buna her zaman diyemem. Deneyeceksin. Hedef sitenin WordPress kullandığına eminsen ve böyle bir hata ile karşılaşıyorsan göstermiş olduğum yeri yorum satırına alarak çözebilirsin
      3-) Python tanımamasının sebebi benden kaynaklı. Yazmış olduğum payload hatallı. pty;pty noktalı virgülden sonra boşluk olacak yani iki pty arasında boşluk olacak ve ilk baştaki çift tırnak olmayacak. Yani kod:

      python -c ‘import pty; pty.spawn(“/bin/bash”)’

      4-) Doğrudan root dizinine geçiş yapamazsın yetkin buna izin vermez. Robot dizini içerisinde bulunan HASH c3fcd3d76192e4007dfb496cca67e13b hash kırılabiliyor. Güzel bir başlangıç olmuş takıldığın yerde çekinmeden sorabilirsin 🙂

  2. hocam
    Açan Aborted: invalid option: –wordlist
    hatası alıyorum çözümü nedir

Leave a Reply

Your email address will not be published. Required fields are marked *