Forum'da ara:
Ara


Yazar Mesaj
Mesaj13.04.2012, 18:12 (UTC)    
Mesaj konusu: Exploit Nedir, Bug Nedir, Nasıl Kullanılır

İşletim sistemlerinin, çok kullanıcı ile sistemlerde kullanılmaya başlamasıyla birlikte sistemlerde kullanıcıların yetkisi de söz konusu olmuştur. Kişisel işletim Sistemlerinde (örneğin DOS) sistemi aynı anda tek kullanıcı kullandığı için bütün dosyalara erişebilir, okuyabilir vs. Ancak aynı anda pek çok kişi tarafından kullanılan İşletim sistemlerinde sistemin bir yöneticisi olmak zorundadır ki bu Novell’de supervisor, Unix ve clone’larında root, NT’de administrator olarak adlandırılır. İşte bu çok kullanıcılı sistemlerde yetkisini artırmak isteyen normal kullanıcılar sistemde daha yetkili hale gelebilmek için "exploit" dediğimiz programlar yazmışlardır. Exploitler işletim sistemi üzerindeki herhangi bir programın eksikliğinden yararlanarak kullanıcıyı daha yetkili hale getirmeye yararlar. Exploitler local ve remote olarak ikiye ayrılır. Local exploitler işletim sisteminin bir kullanıcısıyken uygulanabilir, remote exploitlerde ise sistemin bir kullanıcısı olmanıza gerek !
yoktur. Sistem açıkları ve bu açıkları kullanmak için yazılmış exploitler günden güne artmakta ve her sistem açığı için patch’ler yazılmakta.

Bazı İşletim Sistemleri için örnek exploitler:

"overflow" exploiti (FreeBSD’de lprm açığı):
Pointer aritmetiğini kullanarak (Pointer değişkenler değişkenin içindeki bilgiyle birlikte bellek adresini de tutarlar) tampon belleğe (buffer) bir string kopyalayarak taşma oluşturur. Sistemdeki lprm komutunu kullanır. lprm komutu uzaktaki bir yazıcıya gönderilen bir işi iptal etmeye yarar. "lprm -P bloggs" komutuyla iş iptal edilebilirken kuyruktaki ikinci bir iş aynı anda "lprm -P bloggs bloggs" la iptal edilebilir. Bu da buffer owerflow hatası meydana getirir. Bu sayede "root" erişimi sağlanır. Lokal bir exploittir.

Derleyici ve /tmp Hataları (Solaris’de gcc tempfile açığı):
Gcc derleyicisinin 2.7.2.x ve önceki sürümlerinde /tmp dizinine (geçici işlemlerin yürütüldüğü dizin. Windows dizini altındaki temp dizini gibi) sembolik link (bir dosyaya ya da dizine ulaşabilmek için konan linkler. Windows’taki. lnk dosyaları gibi) oluşturulur ve bu linkten yararlanarak yerel root hakkı alınır.

Program Hataları (Linux’daki X11Amp Programı açığı):
X11Amp çalıştırıldığında ~./X11amp isminde bir dosya oluşturur. Bu hatayı linux’ta şöyle kullanabilirsiniz:

mkdir ~/.x11amp

ln -s /etc/shadow ~/.x11amp/ekl

Bu komutları yazdıktan sonra X11Amp’i çalıştırıp "ekl" ’yi seçin bütün girişleri seçip silin. Program çakılacak ve /etc/shadow dosyasını alabileceksiniz.

Microsoft’un FrontPage Server Extensions’unda karşılaşılan açıklar: Frontpage extensions’un kullanıldığı web sitelerinde pek çok açık bulmak mümkün, örneğin Frontpage 98’de dizin erişim hakları iyi düzenlenmediği için _vti_pvt dizini "WORLD WRITABLE" olarak düzenlenmiş. _vti_pvt dizininde ise "service.pwd" dosyasında şifreler tutulmakta


Bug Nedir?

Bug, kısaca bir işletim sistemi üzerinde bazı hatalı programlar yüzünden meydana gelen sistem açıklığıdır. Bu sistem üzerine kopyalanmış bir oyundan,bir mail programından yada sistem üzerinde ki IRC programından bile meydana gelebilir. Bu hatalar bizim sistem de r00t seviyesine çıkmamızı sağlarlar Smile

mount/umount açığından başlayabiliriz mesela,

Sistemde /bin dizinine gidin ve umount yada mount isminde bir dosya arayın.. Eğer bulamadıysanız şu komutu yazabilirsiniz.

find / -name umount -print -xdev

Dosyanın nerde olduğunu bulduğunuzda, o dizine gidip dosyanın özelliklerini görmek için şu komutu yazın,

ls -al um*

Eğer dosyanın sahibi r00t sa ,kesinlikle sistemi kapabiliriz.. Bakalım,

avanak:/bin# ls -al um*

-rwsr-sr-x 1 root 8888 Aug 20 1998 umount

avanak:/bin#

Tamam, artık işler çok çok kolaylaştı. Şimdi işimiz bir exploit e kaldı. Vereceğim exploit sayesinde sistemden takır takır r00t alabileceksiniz Smile Bu exploit i ,sisteme yollayıp orada compile etmelisiniz. Bunu yapmak için şu komutu yazın.

gcc umount.c -o umount (umount yerine istediğiniz ismi yazabilirsiniz)

Gcc komutu sayesinde sistemde umount adında çalıştırılabilir bir dosya yaratıcaksınız..

Not : Eger Exploit çalışmazsa,komutun başına ./ takısını koymayı deneyin. Ve ardından 0 - 8 arası bir sayı ekleyin. Şunun gibi;

../umount 4

yada

../umount 2

Ve sistem elleriniz de ! Artık herşey size kalmış.r00t un neler yapabileceğini anlatmama gerek yok sanırım,

+-+-+-+-+-+-+

Eğer bu yol işe yaramazsa(ki bu beni bayağı şaşırtır),şimdi anlatacağım yolu denemeniz gerekecek. En sevdiğim Exploit bu diyebilirim. Çünkü en kolayı ve de şu ana kadar bana hiç sorun yüzü göstermedi. "usr/bin" dizininde splitvt isminde bir dosya arayın. Eğer dosya SUID ise yani sahibi r00t ise, olayı bitti sayabiliriz. Bu exploiti sadece "Linux 2-0.3*" sistemlerde kullanabilirsiniz.
Bakalım bu şey nasıl çalışıyor?

Dosyayı tabiî ki ilk olarak sisteme yollayın İlk önce değişikliği fark etmeniz için "whoami" komutu ile kim olduğunuzu öğrenin. Kullanıcı isminiz ortaya çıkacak,

1. Dosyayı "gcc" derleyicisi ile exec(çalıştırılabilir) hale getirin, (gcc sp.c sp)

2. Derlediğiniz dosyayı çalıştırın,

3. "splitvt" adlı dosyayı çalıştırın,

İşiniz bittikten sonra yine "whoami" komutunu çalıştırın.O da ne? r00t da kim yahu?


Bu da çalışmadı diyelim( ki olamaz mümküniyeti yok). Tüm Linux dağıtımlarında bulunan bir bug vardır. SendMail bug ı, eğer bugları takip ediyorsanız, kesinlikle duymuş olmanız lazım. Ben uzun süredir bu bug la ilgilenmiyordum. Belki patch i bile çıkmıştır. Ama denemekte zarar yok diyorsanız bu kısa exploit i hemen download edin(sm.sh)

Sisteme yollayın.

Şimdi dosyayı , chmod +x leyin.

chmod +x sm.sh

1 . Dosyayı çalıştırın,

2 . Sizi /tmp dizinine gönderecek,

3 . "ls -l" yazın,

4 . Orda SUID bir sh dosyayı olduğunu göreceksiniz,

5 . "whoami" yazıp r00t olup olmadığınıza bakın, eğer değilseniz,

6 . "./sh" yazın, ve şimdi r00t olduğunuzu görebileceksiniz..



Biraz Linux u bırakıp diğer sistemlere göz atalım. Şimdi dalacağımız sistem bir SunOS.

UnixBased bir sistem çok az farklılıkları var.Mesela SunOS ta "gcc" komutu yerine "cc" komutu kullanılıyor.Fakat bunlara pek ihtiyacımız yok.Çünkü şimdi ki sistem de exploit kullanmayacağız.SunOS taki 3-4 tane bug tan bir tanesi "dtappgather" komutunun bir bug i. Ben daha önceden bunu bilmiyordum.Geçenlerde göz attığımız bir SunOS sistemde SegFault ,sayesinde öğrenmiş oldum.Fakat o sistemde çalışmadı.Neyse fazla söze gerek yok .Başlayalım,

Sistemde "dtappgather" adında bir dosya bulunması lazım,bu genelde /var/dt de bulunuyor.Dosyayı buldunuzsa

sorun kalmadı.Bu dosya varsa "generic" de vardır.Tamam şimdi /var/dt/appconfig dizinine girin.

$ ls -al

total 6

drwxr-xr-x 3 root root 512 Feb 3 14:22 .

drwxr-xr-x 5 root root 512 Jun 22 11:08 ..

drwxr-xr-x 4 root root 512 Jun 22 10:24 appmanager

$

"generic" dosyası appmanager adlı dizinin içinde bulunuyor.Şimdi burada yazacağımız tek bir komut /etc/shadow

dizinindeki unshadowed passwd dosyasını ele geçirmemizi sağlayacak.Komut şu ;

$ ln -s /etc/shadow /var/dt/appconfig/appmanager/generic-display-0

Bunu yazdıktan sonra elimize passwd dosyası geçiyor,artık onu bir Passwd Cracker la kırdıktan sonra elimize r00t un şifresi de geçer.
Mesaj23.04.2012, 09:43 (UTC)    
Mesaj konusu:

Paylaşım için teşekkürler.
Önceki mesajları göster:   


Powered by phpBB © 2001, 2005 phpBB Group
Türkçe Çeviri: phpBB Türkiye & Erdem Çorapçıoğlu