Baglantilar


Kategori: Genel

İşletim sistemlerin çok kullanıcılı sistemlerde kullanılmaya başlamasıyla birlikte sistemlerde kullanıcıların yetkisi de sözkonusu 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:

(bu turuncu yaziyi sevdim MR.666’nin yazisindan

“overflow” exploiti (FreeBSD’de lprm açığı):

Pointer artimetiÄŸ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 lokal 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:

Kod:

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 🙂

Exploit Nedir?

Exploitler , sistemde ki buglar sayesin de r00t seviyesine çıkabilmek için yazılmış programlardır. Exploitler iki şekilde yazılırlar.Local ve Remote.Local exploitleri kullanırken sistemin bir kullanıcısı olmak zorundasınızdır. Fakat remote exploitleri sistem de kaydınız yokken kullanabilirsiniz.

Şimdi bu iki başlığı kavradıktan sonra ,olaya başlıyabiliriz. Gelin Exploit lerle gücümüzü gösterelim :-))

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 🙂 Exploit i Download etmek için buraya tık edin(umount.c). 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 anlatıcağım yolu denemeniz gerekicek. 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.Download etmek için burayı tık edin.(sp.c)

Bakalım bu şey nasıl çalışıyor?

Dosyayı tabiki ilk olarak sisteme yollayın Ä°lk önce deÄŸiÅŸikliÄŸi farketmeniz için “whoami” komutu ile kim olduÄŸunuzu ögrenin.Kullanıcı isminiz ortaya çıkıcak,

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? 🙂

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

Eheu, bu da çalışmadı diyelim( ki olamaz mümküniyet 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 denemek te 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öndericek,

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örebiliceksiniz..

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

Biraz Linux u birakıp diÄŸer sistemlere göz atalım.Åžimdi dalıcağımız sistem bir SunOS.UnixBased bir sistem çok az farklılıkarı var.Mesela SunOS ta “gcc” komutu yerine “cc” komutu kullanılıyor.Fakat bunlara pek ihtiyacımız yok.Çünkü ÅŸimdi dalıcağımız sistem de exploit kullanmıyacağı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 burda yazıcağı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 sifreside gecer.

- Bu yazı şu ana kadar 808 kez görüntülendi..
Sizin Yorumunuz



Yazilar için RSS aboneligi