Yetki Yükseltme Nedir?Yetki yükseltme (Privilege Escalation), bir saldırganın düşük seviyeli bir kullanıcı hesabından daha yüksek yetkilere sahip bir hesaba veya yöneticilik haklarına erişim sağlamasını ifade eder. Özellikle Linux/Unix tabanlı sistemlerde, root yetkilerine sahip olmak, sistem üzerinde tam kontrol sağlar. Yetki yükseltme saldırılarında genellikle, zayıf yapılandırmalar, yanlış yetkilendirilmiş dosyalar, ya da güvenlik açıkları hedeflenir.
SUID Nedir?SUID (Set User ID), bir Linux/Unix özelliğidir. Bir dosyada SUID biti ayarlanmışsa, bu dosya her çalıştırıldığında dosyanın sahibi olan kullanıcının yetkileriyle çalıştırılır, çalıştıran kullanıcının yetkileriyle değil. Eğer bu dosyanın sahibi root ise ve dosya SUID ile ayarlanmışsa, normal bir kullanıcı bu dosyayı root yetkileriyle çalıştırabilir. Bu mekanizma yetki yükseltme saldırılarında hedef alınabilir.
SUID dosyaları, genellikle "find / -perm -4000 2>/dev/null" komutuyla tespit edilir. Bu komut, SUID biti ayarlanmış dosyaları bulur.
Eğer yorumlarda resim koymamı isterseniz sonradan ekleyebilirim. İyi sabahlar diler yakında gerçekleştireceğim çalışmalar içinde beklemenizi dilerim.
SUID Nedir?SUID (Set User ID), bir Linux/Unix özelliğidir. Bir dosyada SUID biti ayarlanmışsa, bu dosya her çalıştırıldığında dosyanın sahibi olan kullanıcının yetkileriyle çalıştırılır, çalıştıran kullanıcının yetkileriyle değil. Eğer bu dosyanın sahibi root ise ve dosya SUID ile ayarlanmışsa, normal bir kullanıcı bu dosyayı root yetkileriyle çalıştırabilir. Bu mekanizma yetki yükseltme saldırılarında hedef alınabilir.
SUID dosyaları, genellikle "find / -perm -4000 2>/dev/null" komutuyla tespit edilir. Bu komut, SUID biti ayarlanmış dosyaları bulur.
SUID Yetkisi ile Yetki Yükseltme Teorisi
- SUID ve Güvenlik Riski: Eğer bir SUID dosyası zayıf yapılandırılmışsa ya da kötü amaçlı kullanıma açıksa, bu dosya root yetkileriyle çalıştırılırken sistemde önemli değişiklikler yapabilir. Eğer SUID biti bir saldırgan tarafından kötüye kullanılırsa, saldırgan root yetkilerine erişebilir.
- GTFOBins Nedir?GTFOBins sitesi, Linux tabanlı sistemlerde kötüye kullanılabilecek ikili dosyaların (binaries) listesini sunar. Bu site, sistemde SUID biti ayarlanmış ikili dosyaların yetki yükseltme amacıyla nasıl kullanılabileceğini detaylıca anlatır.
GTFOBins Kullanarak SUID Yetki Yükseltme: Teorik Bilgiler
- SUID Dosyalarını Tanımlama:
Bir saldırganın yapması gereken ilk şey, sistemde SUID biti ayarlanmış dosyaları bulmaktır. Bu dosyalar genellikle komutlar, betikler veya uygulamalardır. Root yetkileri ile çalışabilen bu dosyalar, yetki yükseltme fırsatı sağlar. Örneğin:
find / -perm -4000 2>/dev/null
Bu komut, sistemdeki tüm SUID dosyalarını listeler. Eğer bu dosyalardan biri güvenlik açısından zayıfsa veya belirli zafiyetler içeriyorsa, saldırgan bu dosyayı root yetkileri ile çalıştırarak root yetkilerine erişebilir. - GTFOBins’de Hedef Dosya Bulma:
GTFOBins üzerinde SUID set edilmiş komutları arayarak, hangi komutların yetki yükseltme amacıyla kullanılabileceğini öğrenebilirsiniz. Örneğin: - Komut ve SUID İstismar Yöntemleri:
GTFOBins, her bir komut için SUID yetkisi ile yetki yükseltmenin nasıl yapılabileceğini anlatır. Örneğin:- vim gibi bir SUID dosyasını root yetkileri ile çalıştırmak ve ardından root shell elde etmek.
- find komutunu kullanarak sistem üzerinde yetki yükseltme işlemi yapmak.
- Güvenlik Riski:
SUID bitinin yanlış yapılandırılması, normalde sınırlı kullanıcı yetkilerine sahip olan saldırganların, root yetkilerine erişmesini sağlayabilir. Özellikle yaygın kullanılan komutlar ve programlar (örneğin, vim, find, cp) SUID biti ayarlanmışsa saldırganın bunları root yetkisiyle çalıştırması yetki yükseltme için kullanılabilir.
Uygulamalı Bilgi: SUID ile Yetki Yükseltme
Bu bölümde, GTFOBins’den elde edilen bilgileri kullanarak uygulamalı olarak yetki yükseltme işleminin nasıl yapılacağını anlatacağım.1. SUID ile find Komutunu Kullanarak Yetki Yükseltme
SUID biti ayarlanmış bir find komutu root yetkisiyle çalıştırılabilir. Bu, root yetkilerini elde etmek için kullanılabilir.- SUID Set edilmiş find Dosyasını Bulma
İlk adımda sistemde SUID biti ayarlanmış bir find komutunu buluyoruz:
find / -perm -4000 2>/dev/null | grep find
Örnek bir çıktıda /usr/bin/find SUID set edilmiş olabilir. Bu komut root yetkileri ile çalıştırılabiliyor. - Yetki Yükseltme ile Shell Elde Etme
find komutu kullanarak, root yetkileri ile bir shell başlatabiliriz. GTFOBins'e göre find komutuyla yetki yükseltme şu şekilde yapılabilir:
find . -exec /bin/sh \; -quit
Bu komut, SUID biti ayarlanmış bir find komutuyla çalıştırıldığında, root yetkileriyle çalışan bir shell açar.
2. SUID ile vim Komutunu Kullanarak Yetki Yükseltme
vim komutu da SUID biti ayarlanmışsa root yetkileriyle çalıştırılabilir. Bu yöntem ile bir root shell elde edebiliriz.- SUID Set Edilmiş vim Dosyasını Bulma
Yine aynı yöntemle vim komutunun SUID biti ayarlanmış olup olmadığını kontrol ediyoruz:
find / -perm -4000 2>/dev/null | grep vim
Örnek çıktıda /usr/bin/vim dosyasının SUID set edilmiş olduğunu bulabiliriz. - Yetki Yükseltme ile Shell Elde Etme
vim kullanarak root yetkileri ile bir shell elde etmek için GTFOBins'deki şu yöntemi uygulayabiliriz:
vim -c ':!sh'
Bu komut, vim içerisinden bir shell başlatır ve root yetkileriyle çalışmasını sağlar.
3. SUID ile cp Komutunu Kullanarak Yetki Yükseltme
cp komutu da SUID set edilmişse, root dosyalarını kopyalamak ve root yetkisi elde etmek mümkündür.- SUID Set Edilmiş cp Dosyasını Bulma
İlk adımda sistemde SUID biti ayarlanmış cp komutunu buluyoruz:
find / -perm -4000 2>/dev/null | grep cp - Yetki Yükseltme
Bu komut root yetkileri ile çalıştırıldığında, root kullanıcıya ait önemli bir dosyayı kopyalayabiliriz. Örneğin, /etc/shadow dosyasını kendi dizinimize kopyalayıp hashlenmiş şifreleri açığa çıkarabiliriz:
cp /etc/shadow /tmp/shadow_copy
Bu dosyayı elde ettikten sonra hashleri brute-force ile kırmaya çalışarak root yetkisi elde edebiliriz.
Sonuç
Bir aradan sonra böyle bir konuya değinmenin iyi olabileceğini düşündüm. Bugün gösterdiğim teknik genellikle CTF ve bazı kısımlarda gerçek hayatta olan sızma testlerinde lazım olabileceğini düşünüp ben de uyguladım. Ve bazı üyelerinde bilmeme ihtimaline karşın göstermek istedim.Eğer yorumlarda resim koymamı isterseniz sonradan ekleyebilirim. İyi sabahlar diler yakında gerçekleştireceğim çalışmalar içinde beklemenizi dilerim.



