SUID/SGID Biti Neddir?

ѕeleɴια

Kıdemli Üye
18 May 2018
2,620
904
ZYZZ
SUID/SGID Biti Nedir?

SUID/SGID Biti Nedir?

Sıradan bir Linux kullanıcısı olduğumuzu düşünelim. Yani root değiliz. Sıradan kullanıcı olarak bir işlem yaptığımızda olan değişiklikler root ve sadece root yetkisiyle işlem yapabileceğimiz dosyalarda da yaşanıyorsa bunun sebebi SUID/SGID bitlerinin o dosya dizininde aktif olarak çalışmasıdır. Yani bu bitler bize erişim iznimizin olmadığı dizinlerde değişiklik yapmamıza olanak sağlıyor. Bunun için Linux'de passwd kodundan örnek vereceğim. passwd kodunu kullanarak kullanıcı şifremizi değiştirebiliyoruz. Ama biz bu işlemi sıradan bir kullanıcı olarak root olmayarak yapıyoruz. Buna rağmen bu yaptığımız şifre değişikliği root yetkisi gerektiren /etc/shadow dosyasında da yaşanıyorsa bunun sebebi /usr/bin/passwd binary dosyasındaki SUİD bitinin etkin olmasıdır. SUID açılımı Set User ID. SGID açılımı Set Group ID. Şimdi linux üzerinden bu bitlere bakalım.

SUID/SGID Biti Aktif Mi?

Linux kod satırını açıyoruz.

Kod:
ls -l /etc/passwd

Bitlerin çalışıp çalışmadığını anlamak için /etc/passwd dosyasına bakacağız. Burası normalde sadece root yetkisi ile içinde değişiklik yapabildiğimiz bir dizin.

s9Slt.png


Ekrana bu şekilde bir çıktı gelecek. Bu çıktıya baktığımızda SUID SGID bitlerinin bu dizinde aktif olmadığını görüyoruz. Nereden bunu anladık? Eğer bu dizinde SUID biti aktif olsaydı çıktımız vereceğim şekilde olacaktı.

TwBv.png


Şuanda bu çıktıda gördüğünüz diğer kodlara bakmayın. Az sonra onları açıklayacağım. Mousem ile seçtiğim yere dikkat ederseniz -rwSr diye bir çıktı var. Bu bize SUID'nin bu dizinde aktif olduğunu ve yapacağınız işlemin root olarak burda çalışacağını belirtiyor. Az önceki çıktıda bu (s) ibaresi yoktu. Demekki ben etkinleştirip size bu resimi verdim. Resimdeki kodlara bakarsanız üst kısımda ( sudo chmod u+s /etc/passwd) kodunu görüyorsunuz. Bu kod bizim belirttiğmiz dizinde SUID bitini etkin etmemize yarıyor. u+s bu görevi görüyor. SGID içinde yöntem aynı onun içinde g+s parametresi kullanılıyor. Yani etkinleştirmek için kullanacağımız kod;

Kod:
sudo chmod u+s /etc/passwd

5FYO.png



Bu kodu çalıştırdığınızda böyle bir çıktı verecek. Sizden kullanıcı şifrenizi isteyecek girdiğinizde işlem tamamlanacak. Ben şifremi yanlış girdiğim için bende Sorry Try Again dedi. Şunuda belirteyim şifreyi yazarken yazmamış olarak görünüyor. Bu kodu çalıştırınca tekrar ls -l /etc/passwd çalıştırdığınızda bahsettiğim (S) ibaresini göreceksiniz.

Güvenlik Açısından Nasıllar?

Bu bitler güvenlik açısından iyi olmayabilir. Bunun bilen bir bilgisayar korsanı bu bitlerin farkında ise sizin Linux sisteminizde bu bitlerin aktif olduğu dizinlerden root yetkisi elde ederek sisteminizi ele geçirebilir. Buna önlem olarak düzenli bir şekilde bu bitlerin çalıştığı dizinleri bilmek iyi olacaktır. Bunun için kullanacağımız kod;

Kod:
find / \( -perm -u+s -or -perm -g+s  \) -type f -exec ls -l {} \;

Bu kod bize çok uzun bir çıktı verecektir. Ama aklınız karışmasın alt kısımlarda göreceğiniz çıktılarda bitleri ( -rwS vb.) ve çalıştıkları dizinleri göreceksiniz. Ben güvenlik açısından bu çıktıyı vermek istemedim. Konum bu kadardı umarım faydalı olur iyi forumlar.


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.