Yüklenme Tarihi: 2019-04-03
Sızma testleri yaparken bir sisteme erişim sağlamayı başardıktan sonra ilk yapacağımız işlemlerden biri yetkimizi kontrol etmek olacaktır. Eğer standart kullanıcı yetkilerine sahip isek yetki yükseltme (Privilege Escalation) işlemleri yapılarak yönetici hakları elde edilmeye çalışılır. Yetki yükseltmek için kullanılan yöntemlerden birisi de SUID biti uygun olarak yapılandırılmamış dosyaların istismar edilmesidir.
SUİD (Set User ID) veya SGID (Set Group ID) biti bir programı standart kullanıcı ile çalıştırmaya çalıştığımızda programın yönetici yetkilerinde çalışmasını sağlamaktadır. Bu da bize yetkimiz olmamasına rağmen o programı root yetkilerinde çalıştırabilmemizi sağlar.İşte zafiyette tam olarak bundan kaynaklanmaktadır.
Bir örnekle daha anlaşılır hale getirelim. “etc/shadow” dosyası parolaların ve geçerlilik sürelerinin tutulduğu yerdir.Normal kullanıcılar etc/shadow dosyasına erişme hakkına sahip değillerdir. Peki normal bir kullanıcı “passwd” komutu ile kendi parolasını değiştirdiğinde sadece root kullanıcısının erişebildiği bu dosyaya nasıl yeni parolasının özetini yazabiliyor?
İşte burada devreye SUİD Biti giriyor.SUİD Biti sayesinde kendisine ait olmayan bir dosyaya erişim hakkı sağlayabiliyor.
SUID Bit
Bir dosyanın SUİD Bitinin aktif olup olmadığı ls –l komutu ile görebiliriz. Eğer s harfi var ise bu SUİD Bitinin aktif olduğu anlamına geliyor.
Bir dosyanın SUİD değerini aktif etmek için :
“chmod u+s deneme.txt”
yada
“chmod 4755 deneme.txt”
Buradaki 4 SUİD bitinin rakamsal karşılığını gösteriyor.
Dikkat ettiğiniz gibi s harfi büyük olarak ( S ) yazıyor. Bu dosyanın çalıştırılamaz olduğunu gösterir. Yani :
s : Suid biti aktif, dosya çalıştırılabilir.
S: Suid biti aktif ama dosya çalıştırılamaz.
Dosyayı çalıştırılabilir hale getirip tekrar bakalım.
SUİD biti devre dışı bırakmak için:
"chmod u-s deneme.txt"
SGID Biti
SUID Bit ile aynı mantıkdadır. Tek fark SUID bitinde yetkiler kullanıcıya verilirken SGID bitinde yetkiler gruba verilir.
SGID biti aktif etmek için:
chmod g+s deneme.txt
yada
chmod 2777 deneme.txt
Buradaki 2 SGID bitinin rakamsal karşılığını gösteriyor.
Bu sefer s harfinin grup yetkilerindeki x harfinin yerine geldiğini görüyoruz. Yine aynı şekilde küçük s harfi var ise SGID aktif ve çalıştırılabilir, büyük S harfi var ise SGID aktif ama çalıştırılamaz.
SGID biti devre dışı bırakmak için :
chmod g-s /usr/bin/expiry
Sistemde SUID biti yada SGID biti aktif tüm uygulamaları bulmak için :
“find / \( -perm -u+s -or -perm -g+s \) -type f -exec ls -l {} \;”
Sticky Bit
Sticky Bit daha çok ortak kullanım alanlarında kullanılan bir özellik. Örnekle açıklamak gerekirse /tmp dosyası tüm kullanıcıların dosya yazabileceği ve okuyabileceği geçici dizindir.Fakat kullanıcılar sadece kendi oluşturdukları dosyaları silebilir. Tüm dosyalara müdahale etme yetkisi sadece root kullanıcısındadır. Bunu sağlayanda sticky bit özelliğidir.
Sticky bit değerini aktif etmek için :
chmod o+t /tmp
yada
chmod 1777 /tmp
Buradaki 1 Sticky bitinin rakamsal karşılığını gösteriyor.
Buradaki izinlere baktığımızda others kısmının izinlerinde x harfinin yerine t harfinin olduğunu görürüz. t harfi sticky bite karşılık gelmektedir.
Sticky biti devre dışı bırakmak için:
chmod o-t /tmp
yada
chmod 777 /tmp (başındaki 1’ i kaldırdık)
SUID, SGID ve STICKY bitleri dikkat edilmediği durumlarda tehlike oluşturabilmektedir. Hedef sistem üzerinde erişim sağlandıktan sonra SUID biti aktif dosya ve uygulamalar kullanılarak daha yetkili bir kullanıcının haklarına erişim sağlanabilir. Belirli zaman aralıklarında sisteminizde bulunan uygulamaları takip ederek gereksiz olanların SUID bitinin kaldırılması, sisteminizi bir adım daha güvenli hale getirecektir.
Aytekin UZUN | System Network Administrator
info@siberguvenlikportali.com
Copyright © 2023