Mr. Robot
Can you root this Mr. Robot styled machine? This is a virtual machine meant for beginners/intermediate users. There are 3 hidden keys located on the machine, can you find them?
nmap taraması başlatıyoruz.
1
2
┌──(root㉿kali)-[~]
└─# nmap 192.168.1.24 -sT -sV -Pn
80 portunda bir web sitesi çalıştığını görüyoruz. Şimdi yakından inceleyelim.
Siteyi incelediğimizde pek bir şey bulamıyoruz. Bu yüzden dirb ile alt dizinleri tarıyoruz.
Bizi böyle bir çıktı karşılıyor. Bu çıktıda özellikle login ve robots.txt gözümüze çarpıyor. İlk olarak robots.txt dosyasını inceleyelim.
İlk anahtarımızı bulduk.
073403c8a58a1f80d943455fb30724b9
robots.txt dizinindeki fsocity.dic isimli dosya gözümüze çarpıyor ve indiriyoruz.
Dosyayı cat komutuyla incelediğimizde bunun bir wordlist olduğunu görüyoruz. Dirb çıktısında gördüğümüz login panelini hatırlayalım bulduğumuz wordlist burada işimize yarayacak.
Login sayfasını görüntülediğimizde bir wordpress admin paneli olduğunu görüyoruz. Wordlisti burada kullanmadan önce “wc -l fsocity.dic” komutu ile incelersek çok uzun bir wordlist olduğunu görürüz.
“sort fsocity.dic” komutu ile sıraladığımızda ise aynı kelimelerin birçok kez tekrar ettiğini görüyoruz.
Bu yüzden cat fsocity.dic| sort | uniq | cat > fsocity_yeni.dic
komutuyla fsocity_yeni.dic adında yeni bir dosyaya birden fazla geçen kelimeleri filtreleyerek daha kısa bir wordlist haline getiriyoruz. Artık hydra ile brute force yapabiliriz.
Önce Burp Suite ile giriş yaparken yaptığımız isteği yakalamamız gerekiyor.
İsteği gönderdiğimizde, “Invalid username.” hata mesajıyla karşılaşıyoruz.
Bu bilgilerle aşağıdaki hydra komutunu kullanarak kullanıcı adını bulabiliriz.
1
hydra -V -L fsocity_yeni.dic -p test 192.168.1.24 http-post-form ‘/wp-login:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username.’ -F
Kullanıcının elliot olduğunu görüyoruz. Şimdi şifreyi bulmamız gerekiyor. Bunun için kullanıcı adını elliot olarak girip hata mesajını incelememiz gerekiyor.
Şifreyi bulmak için aşağıdaki hydra komutunu kullanabiliriz.
1
hydra -V -l Elliot -P fsocity_yeni.dic 192.168.1.24 http-post-form ‘/wp-login:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=incorrect.’ -F
Artık Elliot:ER28–0652 kullanıcı bilgileriyle giriş yapabiliriz.
Php reverse shell ekleyelim.
Update file butonuna basarak sayfayı kaydediyoruz ve artık footer.php sayfasını ziyaret ettiğimizde kod çalışacak ve makineye erişim elde etmiş olacağız. Bunun için sayfayı ziyaret etmeden önce aşağıdaki netcat dinleme komutunu çalıştırmış olmamız gerekiyor.
1
nc -nvlp 1234
Artık bağlantı elde ettiğimize göre dizinler arasında gezinmeye başlayabiliriz.
Home klasörünün içindeki robot klasörüne girdiğimizde 2.anahtarı ve md5 tipinde bir hash içeren iki dosya ile karşılaşıyoruz. Anahtarı okumaya yetkimiz olmadığını görünce bu md5 hashinin robot kullanıcısının şifresi olabileceği aklımıza geliyor.
Bu hashi kırmak için crackstation.net sitesini kullanabiliriz.
Bu kullanıcı bilgileriyle robot kullanıcısına giriş yapabiliriz.
robot:abcdefghijklmnopqrstuvwxyz
su robot komutu ile robot kullanıcısına geçiş yapmaya çalıştığımızda “must be run from a terminal” hatası alıyoruz.
Terminalimizi stabil hale getirelim.
1
python -c 'import pty; pty.spawn("/bin/bash")'
Artık giriş yapıp 2.anahtarı okuyabiliriz.
822c73956184f694993bede3eb39f959
Şimdi ise son anahtarı almak için root klasörüne girmemiz gerekiyor fakat iznimiz olmadığını görüyoruz.
Root olabilmek için SUID yetki yükseltmesi kullanmamız gerekiyor.
SUID yetki yükseltmesini kısaca açıklamak gerekirse SUID bir dosyayı geçici olarak dosya sahibi gibi çalıştırmamıza olanak sağlar. Hatalı SUID yapılandırmaları sonucunda ise zafiyetler ortaya çıkmaktadır. Hangi dosyalarda SUID değeri bulunduğunu tespit etmek için aşağıdaki komutu kullanırız.
1
find / -user root -perm -4000 -print 2>/dev/null
Çıktıya baktığımızda /usr/local/bin/nmap dizinini görebilirsiniz. Bunun nedeni nmap’in birçok işlemi yerine getirebilmek için geçici olarak root yetkisi ile çalışması gerekiyor. Bu zafiyet kullanabilmek için aşağıdaki komutu çalıştırabiliriz.
1
nmap --interactive
Root olduğumuza göre artık son anahtarı okuyabiliriz.
04787ddef27c3dee1ee161b21670b4e4