SUID shell arka kapilari:

deltanyum

Banned
Katılım
9 Tem 2005
Mesajlar
219
Reaction score
0
Puanları
0
UNIX sisteminde kullanicilarin yada programlarin bazi islemleri root erisim izni ile yapmalari gerekebilir. Örnek olarak normal bir kullanici UNIX sifre dosyalarina erisim izni yoktur. /etc/shadow dosyasi sadece root kullanicisi tarafindan okuma hakkina sahiptir. Ancak kullanici sifresini degistirmek isteyebilir. Bunun için kullanilan komut passwd programidir.

Iste bu gibi durumlarda UNIX'te SUID root programlari vardir. Bu tür dosyalar setuid izin bitleri set edilmis dosyalardir ve bu tür programlar kendisini çalistiran kullanicinin erisim haklarina degil root erisim haklarina sahip olurlar.

Yani kullanici sifresini degistirmek için passwd programini çalistirdigi zaman (passwd bir suid programidir) program ilk olarak kullanicinin ID'sini degistirerek ona superuser kullanici haklarini verir ve islemlerini yaptiktan sonra da kullanicinin ID'sini tekrar eski durumuna alir ve kullanicinin kendi erisim haklari geçerli olur.

Iste bu nedenle suid programlari UNIX sistemlerinde en tehlikeli açiklari olusturmaktadirlar. Bir düsünün bir suid programinda bir açik varsa bunun anlami o programi kullanan bir Hacker tüm sisteme hakim olabilir demektir. Örnek olarak sendmail (smtp sunucusu) programi da bir suid programidir ve root erisim haklari ile çalisir. Dolayisiyla bu program internet ortaminda çok fazla açık olusturabilmektedir. sendmail programi genellikle tüm Internet'e açik oldugu düsünülürse zaman zaman bu programda bulunan açiklar tüm sistemi tehlike altina atmaktadir.

Simdi bir programin nasil suid hakkinin verildigini görelim. Bunu erisim haklarini degistiren chmod komutuyla yapabiliriz

chmod 4755 program
artik "program" dosyasi çalistirilirsa bu program superuser haklarina sahip olacaktir ve sistemde her türlü degisiklige izin verecektir.Simdi bu suid programlarini kullanarak sistemde nasil bir arka kapinin olabilecegine bakalim:

Hacker sistemde bir kere root erisim izni elde ettiginde ilk yapması gereken sey, suid programi olan root shell programinin bir kopyasini almaktir.

cp /bin/sh /home/cracker/root_shell
chmod 4755 /home/cracker/root_shell
(yada chmod a+s /home/cracker/root_shell)
Yukaridaki komutlar root shell programi olan /etc/sh dosyasini Hacker'in home dizinine kopyalamaktadir. Daha sonra chmod komutuyla bu dosyanin setuid biti set edilerek suid programi olmasi saglanmaktadir. Ve herkese bu programi çalistirma izni vermektedir.

Artik Hacker istedigi bir anda, root erisim izni olmasa bile sadece /home/cracker/root_shell programini çalistirarak sistemde root erisim iznine sahip olacaktir.

Dikkat: Daha öncede belirttigim gibi suid programlari çok tehlikeli programlar oldugu için sistemde bu tür dosyalarin olup olmadigi kontrol edilerek sisteme arka kapi olusturacak tehlikeli programlarin olup olmadigina bakilmalidir. Eğer suid programlarından bir arka kapı bulursanız o sistemin sonu yakındır Eğer Kendi Unix sisteminizde,sistemdeki suid programlarini aramak için çok güçlü bir araç olan find komutunu kullanmalısınız

find / -user root -perm -4000 -print
Bu komut root dizininden (/) baslayarak tüm sistemdeki suid programlarini bularak listeler

Komutu kisaca incelersek; root dizininden baslayarak (/), tüm sistemdeki root kullanicisinin sahip oldugu (-user root) ve setuid izin biti set edilmis olan (-perm -4000) dosyalari bularak terminale (-print) listeler.

Diger yandan herkes tarafindan yazma hakkina sahip dosyalarin da kontrol edilmesi gerekmektedir. Bunun için find komutunda (-perm -2) parametresi kullanilabilir. Ayrica setgid programlarida (-perm -2000) parametresi ile bulunabilir.

Genel bir kural olarak dot dosyalari dedigimiz '.' Ile baslayan dosyalarin herkes tarafindan yazilabilir olmamasina dikkat edilmelidir ve shell script'lerin setuid ve setgid olmamalarina dikkat edilmelidir..


ALINTIDIR..!!
 
Geri
Üst