Real Felaket

Web Sitemiden Yararlana Bilmek İçin Lütfen Üye Olunuz
Real Felaket

    Exploit Nedir, Nasıl Kullanılır ?

    Paylaş
    avatar
    Fakelove
    G.K BAŞKANI
    G.K BAŞKANI

    Mesaj Sayısı : 145
    Kayıt tarihi : 17/06/09
    Yaş : 27
    Nerden : Nereye

    Exploit Nedir, Nasıl Kullanılır ?

    Mesaj tarafından Fakelove Bir Paz Haz. 21, 2009 1:46 am

    Exploit Nedir, Nasıl Kullanılır ?

    İş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:

    "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:

    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

    Daha sonraki yazılarımızda genellikle Microsoft altındaki exploitleri anlatmaya devam edeceğiz.



    Exploit Nedir, Nasıl Kullanılır (Bölüm II) (Düzenleyen Kaiowas)

    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

    şifreside geçer.

      Forum Saati Salı Eyl. 26, 2017 12:14 am