Exploit Nedir ve Nasıl Çalışır?

Wodenn

Üye
17 Mar 2022
91
80
Azerbaijan



dv461mf.PNG




Exploit nedir?

Exploit İngilizce dilinden gelen bir söz ve kullanmak,faydalanmak anlamını taşımaktadır.Dijital dünyada ise anlamı biraz farklıdır.Bilgisayar,yazılım,program veya herhangibir dijital süstem üzerinde kod hatalarından faydalanan bir programdır. Kısaca işletim sistemi üzerindeki herhangi bir programın eksikliğinden yararlanarak kullanıcıyı daha yetkili hale getirmeye yararlarlarda denilebilir.

Exploit terimini Vulnerability terimi ilede görmek mümkündür.Sebebi bu iki kavramın birbirleri ile olan ilişkileridir.Az öncede exploitin kullanmak,faydalanmak veya sömürmek dediğimiz gibi, Vulnerabilityde hassasiyet, korunmasızlık, savunmasızlık anlamlarına gelir.Bir sisteme saldırmak için önce onun açıklarını bulmak gerekir.Açıklar bulunduktan sonra geriye kalan tek iş Exploitdir.Sistemdeki açıkları tespit etmek de , bu açığı kullanacak programları yazmakta üst düzey bilgi , uğraş gerektiren işlerdir.


Güvenlik uzmanları ve hackerlar sistemlerin bulmak ve bu sistemleri sömürecek olan exploitleri yazmak için sürekli uğraşırlar.Yani günümüzde birçok güvenlik sitesinde birçok sistemin önceden tespit edilmiş exploit programları vardır.Güvenlik siteleri sürekli taramalar ile açıkları bulur ve mümkünse açığı exploit programı ile birlikte yayınlar.Güvenliğine önem veren sistem sahipleri ise sürekli bu açıkları takip ederek sistemlerindeki açıkları kapatırlar bir diğer ismi ile Patch.

Exploitler Local ve Remote olmak üzere ikiye ayrılırlar. Local sistemin içinde iken yapılan müdahele veya saldırıdır. Remote ise sistemin dışında iken yapılan saldırıdır.Local saldırılar daha etkili olmasına rağmen sisteme önceden girilmiş olma zorunluluğu taşır.Yani İşletim sisteminin bir kullanıcısı olmak gerekir.Remote ise daha çok kullandığımız bilgisayar ile uzaktaki sunucu bilgisayara (server) yapılan saldırıdır.Demek oluyor ki remote exploitlerde sistemin bir kullanıcısı olmamıza gerek yoktur.


İlk bulmamız gereken şey savunmasızlıktır.Başlangıç noktamız burasıdır.İlk hedef sistemi doğru analiz edebilmekten geçer.Neden diye sorucak olursanız cevap çok basit.Bir sistemin oluşmasını sağlayan birçok yapı vardır.Bu yapılardan tek birtanesinin bile savunmasızlığı tüm süstemi alt üst etmemize olanak verebilir.Öyle ise bu sistemin yapı taşlarını tek tek tespit etmekle işe koyulmuş bulunuruz.Bir siteyi ayakta tutmaya sağlayan bulunduğu sunucu (server) ve sunucuyu barındıran işletim sistemidir.Buradan başlamak iyi bir seçim olabilir. Ufak bir araştırma yaparsak bir sistemin işletim sistemini,sunucusunu versiyonunu birçok yoldan tespit edebileceğimizi görürüz. Diyelim ki gerekli bilgiler sağlandı.Sıra işletim sisteminin ve sunucunun önceden tespit edilen açıklarını bulmaya geldi. Tekrar ufak bir araştırma ile bunları birçok yoldan tespit edebiliriz.Örneğin securityfocus sitesinden bugtraq bölümünde vulnerability alt klasöründe açıkların listelendiğini görebiliriz.Exploiti nasıl kullanacağımıza gelmeden önce hedef sistem için başka bir bilgi toplama yöntemini kısaca anlatacağım.Sistemi oluşturan sunucu ve işletim sisteminin yanında birçok modül ve programda vardır.Mesela dosya alışverişini sağlayan FTP sunucusu, mail sunucuları , asp php gibi programlama dillerinin çalışmasını sağlamakla görevli program ve modüller.


İşte bu modüllerin veya yapıların bazıları ortak portları kullanır.Bazıları ise kendilerine özel portlarda çalışırlar. Örneğin Linux tabanlı sunucuda daemon isminde yapılacak işleri bölünmüş birçok program vardır.Hepsinin de en ufak bir savunmasızlığı bizim sistemi altüst etmemizi sağlayabilir.Bunların tespiti vulnerability ve exploitlerin teminleri tabii ki zaman ve tecrübe ile öğrenilir.


Hedefle ilgili tüm bilgilere ulaştığımızı ve topladığımızı farz edelim. Sıra geldi exploiti kullanmaya.Exploitler programdır dedik fakat çoğu zaman program halinde bulamayız. Program kodları halindedirler.Bu kodları kullanmak ve programı oluşturmak bize düşer.Program oluşturma işine, daha doğrusu program kodlarını çalıştırabilir program oluşturmaya compile yani derleme deriz.Her programlama dilleri için değişik compile programları kullanılır.Exploitler genelde C ve perl dilinde yazılırlar.Bu kodları compile ederken dikkat etmemiz gereken bir diğer şey ise exploit programının hangi işletim sistemi için yazıldığıdır.Genelde iki çeşit işletim sistemi kullanıyoruz windows tabanlı microsoft veya unix tabanlı linux.Windowsta hazır gelen bir compile programı yoktur bunun için compile edilmesi için yazılmış bir compiler ( derleyici) program kullanılması gerekir.Borland meşhur C compilerlerinden biridir.Linuxta ise sistem kendinde compilerları barındırır.Exploitlerin çoğu linux işletim sistemi için yazılır.


Çoğumuz windows işletim sistemi kullandığımız için nete açılan linux sistemi bulm konusunda sorun yaşayabiliriz.Bu noktada işin içine Shell girir.Unix tabanlı sistemlerin çoğu server makine olarak tasarlanmıştır. Bir cok kullanıcı hesabı açma ve bu hesaplardan sistemi birçok kullanıcıya kullandırma yetisine sahiptirler.Bu kullanıcı hesaplarına shell ismini veriyoruz.Aslında shell windowstaki dos gibidir.Siyah komut satırıdır.Yani exploitlerin çoğu linux için yazıldığından ya bizimde linux sistemine sahip olmamız yada bir shell’e sahip olmamız gerekir.Shell server bir bilgisayara bağlanarak o bilgisayarı kendi bilgisayarızmış gibi kullanmamızı sağlar yada yarar.Telnet (geliştirilen bir TCP/IP protokolü) başka bir bilgisyara bağlanmanın en etkili yoludur.



telnet 111.222.333.44

IP’nin yerine shell hesabın bulunduğu bilgisayarın adını ve ip adresini yazmamız gerekir.Telnet 23. Porttan hedefe bağlanmayı dener.Eğer shell aldığımız sunucu 23. Porttaki bağlantığı destekliyorsa bize kullanıcı ve şifreyi soracaktır.Buraya shell hesabını aldığımız yerdeki kullanıcı ve şifreyi gireceğiz.Artıx uni tabanlı bir bilgisayarın içindeyiz ve bize verilen haklar sınırında o bilgisayarı kullanabiliriz. Exploitler genelde C ve perl dillerinde yazılır demiştik. C dilinde yazılanların çalıştırılabilir dosyaya dönüştürülmek için derlenmesiyani compile olması 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.


#wget http://www.örnekamaçlısite.com/exploit/dppPerl.pl

Wget komutu shell ile internetten dosya çekmek için kullanılan komuttur.( # yazmamız hata olur,dikkatli olun) Mesela yukardaki site varmış gibi hayal edelim ve bahsettiğimiz .pl dosyası var ve yukardaki komutu girdikten sonra dppPerl.pl’i hesabımıza çekmiş oluyoruz.Şimdi sıra geldi shellde bize ayrılan klasörde ne var ne yok diye incelemeye.Dosda ki dır komutu yerine Is kullanacağız ve listede dppPerl.pl göreceğiz.Şimdi bu perl dosyayı çalıştırmak için önümüzde iki seçenek var.Biri dosyayı çalıştırılabilir hale getirip perl komutu ile çağrırarak dosyanın çalıştırılmasını sağlamak.Yani;
#chmod +x dppPerl.pl

Komutunu giriyoruz.Chmod komutu ile dosyayı çalıştırma hakkına atadık.Artık kullanabiliriz.
#perl dppPerl.pl yazıp enter dedikmi program çalışır.

İkinci yol ise perl komutunu çağırmadan dosyayı çalıştırmaktır.Biraz daha zor olmakla beraber bilinmesi gereken bir yoldur.chmod komutun gerçekleştirmeden önce sisteme dosyanın bir perl dosyası olduğunu ve ona göre execute edeceğini söyleyen bir satır kod ekleyeceğiz.dppPerl.pl dosyasın unix editoru pi co ile açıp.
#'pi co dppPerl.pl
Yazdık.Şimdi dosyanın başında şu satırı ekleyeceğiz #!bin/perl
Bu satır sunucuya perl i çalıştırması için gereken yolu bulup kullanmasını söylüyor kısaca.Komutu yazdıktan sonra ctrl-x ile editörden çıkıyoruz.Çıkmadan önce y ile değişiklikleri kayıt etmemeyide
unutmamalıyız. Şimdi sıra geldi chmod komutu ile dönüştürmeye.

#chmod +x dppPerl.pl
Artık dosyamızı perl programını çağırmadan çalıştırabiliriz.
#./dppPerl.pl ile program çalıştı. ./ kısmı programı çalıştırırken programın bulunduğu klasörü yazmak zorundalığını kaldırıyor.


pap8pif.PNG
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,815
31
MyKrallife



dv461mf.PNG




Exploit nedir?

Exploit İngilizce dilinden gelen bir söz ve kullanmak,faydalanmak anlamını taşımaktadır.Dijital dünyada ise anlamı biraz farklıdır.Bilgisayar,yazılım,program veya herhangibir dijital süstem üzerinde kod hatalarından faydalanan bir programdır. Kısaca işletim sistemi üzerindeki herhangi bir programın eksikliğinden yararlanarak kullanıcıyı daha yetkili hale getirmeye yararlarlarda denilebilir.

Exploit terimini Vulnerability terimi ilede görmek mümkündür.Sebebi bu iki kavramın birbirleri ile olan ilişkileridir.Az öncede exploitin kullanmak,faydalanmak veya sömürmek dediğimiz gibi, Vulnerabilityde hassasiyet, korunmasızlık, savunmasızlık anlamlarına gelir.Bir sisteme saldırmak için önce onun açıklarını bulmak gerekir.Açıklar bulunduktan sonra geriye kalan tek iş Exploitdir.Sistemdeki açıkları tespit etmek de , bu açığı kullanacak programları yazmakta üst düzey bilgi , uğraş gerektiren işlerdir.


Güvenlik uzmanları ve hackerlar sistemlerin bulmak ve bu sistemleri sömürecek olan exploitleri yazmak için sürekli uğraşırlar.Yani günümüzde birçok güvenlik sitesinde birçok sistemin önceden tespit edilmiş exploit programları vardır.Güvenlik siteleri sürekli taramalar ile açıkları bulur ve mümkünse açığı exploit programı ile birlikte yayınlar.Güvenliğine önem veren sistem sahipleri ise sürekli bu açıkları takip ederek sistemlerindeki açıkları kapatırlar bir diğer ismi ile Patch.

Exploitler Local ve Remote olmak üzere ikiye ayrılırlar. Local sistemin içinde iken yapılan müdahele veya saldırıdır. Remote ise sistemin dışında iken yapılan saldırıdır.Local saldırılar daha etkili olmasına rağmen sisteme önceden girilmiş olma zorunluluğu taşır.Yani İşletim sisteminin bir kullanıcısı olmak gerekir.Remote ise daha çok kullandığımız bilgisayar ile uzaktaki sunucu bilgisayara (server) yapılan saldırıdır.Demek oluyor ki remote exploitlerde sistemin bir kullanıcısı olmamıza gerek yoktur.


İlk bulmamız gereken şey savunmasızlıktır.Başlangıç noktamız burasıdır.İlk hedef sistemi doğru analiz edebilmekten geçer.Neden diye sorucak olursanız cevap çok basit.Bir sistemin oluşmasını sağlayan birçok yapı vardır.Bu yapılardan tek birtanesinin bile savunmasızlığı tüm süstemi alt üst etmemize olanak verebilir.Öyle ise bu sistemin yapı taşlarını tek tek tespit etmekle işe koyulmuş bulunuruz.Bir siteyi ayakta tutmaya sağlayan bulunduğu sunucu (server) ve sunucuyu barındıran işletim sistemidir.Buradan başlamak iyi bir seçim olabilir. Ufak bir araştırma yaparsak bir sistemin işletim sistemini,sunucusunu versiyonunu birçok yoldan tespit edebileceğimizi görürüz. Diyelim ki gerekli bilgiler sağlandı.Sıra işletim sisteminin ve sunucunun önceden tespit edilen açıklarını bulmaya geldi. Tekrar ufak bir araştırma ile bunları birçok yoldan tespit edebiliriz.Örneğin securityfocus sitesinden bugtraq bölümünde vulnerability alt klasöründe açıkların listelendiğini görebiliriz.Exploiti nasıl kullanacağımıza gelmeden önce hedef sistem için başka bir bilgi toplama yöntemini kısaca anlatacağım.Sistemi oluşturan sunucu ve işletim sisteminin yanında birçok modül ve programda vardır.Mesela dosya alışverişini sağlayan FTP sunucusu, mail sunucuları , asp php gibi programlama dillerinin çalışmasını sağlamakla görevli program ve modüller.


İşte bu modüllerin veya yapıların bazıları ortak portları kullanır.Bazıları ise kendilerine özel portlarda çalışırlar. Örneğin Linux tabanlı sunucuda daemon isminde yapılacak işleri bölünmüş birçok program vardır.Hepsinin de en ufak bir savunmasızlığı bizim sistemi altüst etmemizi sağlayabilir.Bunların tespiti vulnerability ve exploitlerin teminleri tabii ki zaman ve tecrübe ile öğrenilir.


Hedefle ilgili tüm bilgilere ulaştığımızı ve topladığımızı farz edelim. Sıra geldi exploiti kullanmaya.Exploitler programdır dedik fakat çoğu zaman program halinde bulamayız. Program kodları halindedirler.Bu kodları kullanmak ve programı oluşturmak bize düşer.Program oluşturma işine, daha doğrusu program kodlarını çalıştırabilir program oluşturmaya compile yani derleme deriz.Her programlama dilleri için değişik compile programları kullanılır.Exploitler genelde C ve perl dilinde yazılırlar.Bu kodları compile ederken dikkat etmemiz gereken bir diğer şey ise exploit programının hangi işletim sistemi için yazıldığıdır.Genelde iki çeşit işletim sistemi kullanıyoruz windows tabanlı microsoft veya unix tabanlı linux.Windowsta hazır gelen bir compile programı yoktur bunun için compile edilmesi için yazılmış bir compiler ( derleyici) program kullanılması gerekir.Borland meşhur C compilerlerinden biridir.Linuxta ise sistem kendinde compilerları barındırır.Exploitlerin çoğu linux işletim sistemi için yazılır.


Çoğumuz windows işletim sistemi kullandığımız için nete açılan linux sistemi bulm konusunda sorun yaşayabiliriz.Bu noktada işin içine Shell girir.Unix tabanlı sistemlerin çoğu server makine olarak tasarlanmıştır. Bir cok kullanıcı hesabı açma ve bu hesaplardan sistemi birçok kullanıcıya kullandırma yetisine sahiptirler.Bu kullanıcı hesaplarına shell ismini veriyoruz.Aslında shell windowstaki dos gibidir.Siyah komut satırıdır.Yani exploitlerin çoğu linux için yazıldığından ya bizimde linux sistemine sahip olmamız yada bir shell’e sahip olmamız gerekir.Shell server bir bilgisayara bağlanarak o bilgisayarı kendi bilgisayarızmış gibi kullanmamızı sağlar yada yarar.Telnet (geliştirilen bir TCP/IP protokolü) başka bir bilgisyara bağlanmanın en etkili yoludur.



telnet 111.222.333.44

IP’nin yerine shell hesabın bulunduğu bilgisayarın adını ve ip adresini yazmamız gerekir.Telnet 23. Porttan hedefe bağlanmayı dener.Eğer shell aldığımız sunucu 23. Porttaki bağlantığı destekliyorsa bize kullanıcı ve şifreyi soracaktır.Buraya shell hesabını aldığımız yerdeki kullanıcı ve şifreyi gireceğiz.Artıx uni tabanlı bir bilgisayarın içindeyiz ve bize verilen haklar sınırında o bilgisayarı kullanabiliriz. Exploitler genelde C ve perl dillerinde yazılır demiştik. C dilinde yazılanların çalıştırılabilir dosyaya dönüştürülmek için derlenmesiyani compile olması 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.


#wget http://www.örnekamaçlısite.com/exploit/dppPerl.pl

Wget komutu shell ile internetten dosya çekmek için kullanılan komuttur.( # yazmamız hata olur,dikkatli olun) Mesela yukardaki site varmış gibi hayal edelim ve bahsettiğimiz .pl dosyası var ve yukardaki komutu girdikten sonra dppPerl.pl’i hesabımıza çekmiş oluyoruz.Şimdi sıra geldi shellde bize ayrılan klasörde ne var ne yok diye incelemeye.Dosda ki dır komutu yerine Is kullanacağız ve listede dppPerl.pl göreceğiz.Şimdi bu perl dosyayı çalıştırmak için önümüzde iki seçenek var.Biri dosyayı çalıştırılabilir hale getirip perl komutu ile çağrırarak dosyanın çalıştırılmasını sağlamak.Yani;
#chmod +x dppPerl.pl

Komutunu giriyoruz.Chmod komutu ile dosyayı çalıştırma hakkına atadık.Artık kullanabiliriz.
#perl dppPerl.pl yazıp enter dedikmi program çalışır.

İkinci yol ise perl komutunu çağırmadan dosyayı çalıştırmaktır.Biraz daha zor olmakla beraber bilinmesi gereken bir yoldur.chmod komutun gerçekleştirmeden önce sisteme dosyanın bir perl dosyası olduğunu ve ona göre execute edeceğini söyleyen bir satır kod ekleyeceğiz.dppPerl.pl dosyasın unix editoru pi co ile açıp.
#'pi co dppPerl.pl
Yazdık.Şimdi dosyanın başında şu satırı ekleyeceğiz #!bin/perl
Bu satır sunucuya perl i çalıştırması için gereken yolu bulup kullanmasını söylüyor kısaca.Komutu yazdıktan sonra ctrl-x ile editörden çıkıyoruz.Çıkmadan önce y ile değişiklikleri kayıt etmemeyide
unutmamalıyız. Şimdi sıra geldi chmod komutu ile dönüştürmeye.

#chmod +x dppPerl.pl
Artık dosyamızı perl programını çağırmadan çalıştırabiliriz.
#./dppPerl.pl ile program çalıştı. ./ kısmı programı çalıştırırken programın bulunduğu klasörü yazmak zorundalığını kaldırıyor.


pap8pif.PNG
Elinize sağlık faydalı bir konu olmuş
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.