Kendi ip adresimizin bloğunu öğrenip hemen ardından ağdaki aktif cihazları listeleyerek içlerinden sızacağımız mr robot makinenin ip adresini tespit etmekle başlayalım. 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 bloğumuz “192.168.216” içerisindeymiş o zaman ağdaki diğer makinelerde “192.168.216” bloğu içerisinde ip alacaktır. Şimdi Nmap ile 0 ile 255 blog aralığını tarayacağız.
Ip blog aralığını taradık. 2,133,137 ip adreslerine rastladık. 1 ve 2 gibiler genelde default olarak gelen ip adreslerdir. Hedef makinemizin ip adresi gördüğümüz üzere sonu 137 olan ip adresidir.
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.
Web yayını yapılıyorsa hemen akla gelen kalide yüklü olan “dirb” aracı ile web sitesinde zafiyet mevcut mu değil mi bunu taramak olacaktır.
Bağlantılı birçok url adresi mevcut. Her bir adresi kurcalamakta fayda var.
Belirtilen adrese gidildiğinde hedef sistemde WordPress çalıştırıldığını görmekteyiz. Emin olmak adına wordpress için kalide yüklü olarak gelen olan “wpscan” aracı ile sistemi taramaya geçiyoruz.
Tarama sonucunda birçok zafiyetin mevcut olduğunu görebiliriz fakat hepsi XSS zafiyeti ve bu aşamada işimizi görmemektedir. Bize uzaktan kod çalıştırmaya olanak verecek bir zafiyet gerekiyor. Amacımız sistemi ele geçirmek ve root olabilmek.
Yukarıda 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 gelen iki bilgiye de url üzerinden geçiyoruz.
Görüldüğü üzere “key-1-of-3.txt” içerisinden ilk keyimize ulaşmış olduk.
Birde “fsocity.dic” dosyasına gidelim. İndirilebilir bir dosya ve bunu indiriyoruz.
Bir liste mevcut ve parola listesi olduğu aşikar. Karşımıza çıkan bu wordlist bize bir brüte force saldırısı yapma imkanı sunmuş oldu. Ama öncesinde dosya hakkında birkaç bilgi edinelim.
ls -lah parametresiyle dosyanın hafızasının boyutunu öğrenebiliriz. 7 mb bir hafızası var ve bir txt dosyası için oldukça fazla bir boyut olduğu söylenebilir.
wc -l parametresiyle dosyanın kaç satırdan oluştuğunu öğrenelim. Dosya tek tek kelimelerden oluşmaktaydı ve 858160 kelime olduğunu tespit ettik.
sort -u parametresiyle birden fazla tekrar eden kelimeleri sildirelim. Böylelikle değeri 11451’e düşürdük.
Atağı başlatmadan evvel wordpress login sayfasında bir deneme yapalım ve burpsuitle inceleyelim.
Kullanıcı adını root ve şifreyi toor olarak verelim.
Invalid username hatası aldık.
Burpsuite çıktımızda bu şekildedir. Brute force atağını başlatacağımız aşamada burdaki bilgiler işimize yarayacaktır.
Şimdi vakit kaybetmeden saldırıyı gerçekleştirelim.
Burada burp suite çıktısındaki son satırı baz alarak önce parolayı sabit tutup kullanıcı adını öğrenmeye çalışıyoruz. Ayrıca yukarıda aldığımız Invalid Username’ hatasını belirtip her yanlış denemede bu hatayı alalım isityoruz, bu hatayı almadığımız takdirde doğru kullanıcı adını bulmuş olacağız. http post form ile de gideceğimizi adresini wp-login.php olarak belirtiyoruz. Çünkü gideceğimiz adres bu sayfa üzerindedir.
Tarama sonucu yeşil renkle belirli satırda elliot adında bir kullanıcı adına Invalid Username hatası vermedi. Böylelikle kullanıcı adını tespit etmiş olduk.
Şimdi kullanıcı adıyla bir parola deneyelim ve alacağımız hatayı görelim.
Burada da ’ is incorrect’ hatası aldık.
Aldığımız hatayı bu sefer de kullanıcı adını(elliot) sabit tutarak brute force saldırısını gerçekleştirelim.
Her yanlış denemede is incorrect hatası verecektir bu hatayı almadığımızda parolamızı tespit etmiş olacağız.
Hatayı almadık ve ve şifremizi tespit ettik. Şimdi Wordpress’te arayüze giriş yapabiliriz.
Evet elde ettiğimiz kullanıcı adı ve parola ile login olduk.
Login işleminin ardından hedef sistemi ele geçirmemiz yani shell döndürmemiz gerekecektir. Sayfa üzerinde appearance > editör kısmındaki 404 template alanına bir php-reverse-shell yerleştirip herhangi bir sayfaya gittiğimizde bağlantı kurmuş olacağız.
Github üzerinden aşağıda belirtildiği bir php-reverse-shell indirebiliriz.
İndirilen bu shell dosyasında bağlantıyı kendi ip adresimizi verecek şekilde ayarlıyoruz.
Ardından bu kodu tamamıyla kopyalıyoruz.
Kopyaladığımız kodu 404 template alanındaki kodu silip yapıştırıyoruz.
Natcat aracıyla 1234 portundan bağlantıyı açıyoruz.
Tarayıcıdan sistemde mevcut olamayan herhangi bir sayfaya gidildiğinde 404 hatası verecekti. Fakat kodu bir reverse-shell olarak değiştiğimizden sayfaya gidildiğinde boş bir ekranla karşılaşıyor olacağız. Tabi bağlantı da kurulmuş olacaktır.
Bağlantıyı kurduk ve komut satırına geçtik.
Komut satırında daha rahat hareket edebilmek adına python -c ‘import pty;pty.spawn(“/bin/bash”)’ komut satırıyla etkileşimli shell alalım.
Kısaca sisteme hangi kullanıcıyla bağlandığımızı, sistemin kimliğini, sürüm ve çekirdek bilgisini vs bilgileri öğrenmekte fayda var.
/home/robot dizinindeki dosyaları görüntülediğimizde bir txt dosyası ve md5 hash değeri çıkmaktadır. Dosyaya görüntüleme iznimiz yok fakat hash değerini görüntüleyebiliyoruz.
Bu hash değerini bir dosyaya kaydedip john aracıyla hash değerini kırabiliriz. Burada wordlist olarak rockyou.txt dosyasını ele aldık ve hash değerine ait şifreyi elde ettik.
Robot kullanıcısına elde ettiğimiz paroyla geçiş yapalım.
Ne tür dosyalar mevcut bunu görüntüledikten sonra dosyayı görüntüleme iznimiz var mı görelim. robot kullanıcısının ikinci keyi okuyabilmesine izin var. İkinci keyimize de ulaşmış olduk böylelikle.
Artık yetki yükseltme aşamasına geçebiliriz. İlk olarak ele geçirdiğimiz hedef makinenin içerisinde root yetkisiyle çalışan programları bir göz atalım. root yetkisiyle çalışan bu programlar üzerinden bir bağlantı döndürebiliriz. Çünkü gelecek bağlantı bizi root yapacaktır.
find / -perm -4000 type f 2>/dev/null komut satırıyla, boş döndürmemesini ve root yetkisiyle çalışan programları listelemesini istedik.
Gelen listede root yetkisiyle çalışan nmap aracını görmekteyiz. Bu araç bir bilgi toplama aracıdır. Nmap’in bir interactive tarafı mevcut ve interactive tarafta kod çalıştırabiliyoruz. Çalıştırdığımız bu kodla da root olabiliriz.
Kodu çalıştırdığımızda komut satırına geçtik ve bu aşamada !sh bize shell döndürecek bizi root yapacaktır. Whoami komutuyla da emin olabiliriz. Root dizini altındaki dosyaları görüntülediğimizde 3. keyimizi de elde etmiş oluyoruz.