Linux SUDO Kusuru Komutları Kök Olarak Çalıştırmanıza İzin Veriyor

Linux sudo komutunda, yetkisiz kullanıcıların komutları root olarak çalıştırmalarına izin verebilecek bir güvenlik açığı keşfedildi. Neyse ki, bu güvenlik açığı yalnızca standart olmayan yapılandırmalarda çalışır ve çoğu Linux sunucusunu etkilenmez.

Güvenlik açığına girmeden önce, sudo komutunun nasıl çalıştığı ve nasıl yapılandırılabileceği hakkında bazı arka plan bilgilerinin bulunması önemlidir.

Bir Linux işletim sisteminde komutları çalıştırırken, ayrıcalıksız kullanıcılar izin verildiği veya kök kullanıcının parolasını bildikleri sürece komutları kök olarak yürütmek için sudo (süper kullanıcının yaptığı) komutunu kullanabilirler.

Sudo komutu, / etc / sudoers yapılandırma dosyasına özel yönergeler ekleyerek bir kullanıcının başka bir kullanıcı olarak komut çalıştırmasına izin verecek şekilde de yapılandırılabilir.

Örneğin, aşağıdaki komutlar kullanıcının `test` / usr / bin / vim ve / usr / bin / id komutlarını herhangi bir kullanıcı olarak çalıştırmasına izin verir.

test ALL = (ALL, !root) /usr/bin/vim
test ALL = (ALL, !root) /usr/bin/id

`Test` kullanıcısının yukarıdaki komutlardan birini yürütmesi için, çalışacak kullanıcıyı belirtmek için -u argümanıyla sudo komutunu kullanırlar. Örneğin, aşağıdaki komut kullanıcı “bleeping-test” olarak vim’i başlatır.

sudo -u bleeping-test vim 

Linux’ta kullanıcılar oluştururken, her kullanıcıya bir UID verilir. Aşağıda görüldüğü gibi, kullanıcı `testi` 1001 bir kullanıcı kimliğine ve” sızma testi “1002 bir kullanıcı kimliğine sahiptir.

Kullanıcıların kullanıcı kimlikleri
Kullanıcıların kullanıcı kimlikleri

Kullanıcılar, sudo komutunu başlatırken kullanıcı adı yerine bu UID’leri kullanabilir. Örnek olarak, aşağıdaki komut bir kez daha “Bleeping-Test” olarak VIM’i başlatacak, ancak bu kez kullanıcının UID’sini vererek.

sudo -u#1002 vim

Sudo güvenlik açığı

Apple güvenlik araştırmacısı Joe Vennix tarafından kullanıcıların sudo komutundaki -1 veya 4294967295 UID’yi kullanarak izin verilen bir sudo komutunu kök olarak başlatmalarına olanak tanıyan bir hata keşfedilmiştir.

Örneğin, ‘test’ kullanıcısı /etc/sudoers dosyasında bunu yapması engellenmiş olsa bile aşağıdaki komut bu hatayı /usr/bin/id kullanıcısını kök olarak başlatmak için kullanabilir.

sudo -u#-1 id

Kök ayrıcalıklarını almak için bu hatayı / usr / bin / id komutuyla kullanmak aşağıda gösterilmiştir.

/ Usr / bin / id komutunu root olarak çalıştırmak için sudo hatasını kullanma
/ Usr / bin / id komutunu root olarak çalıştırmak için sudo hatasını kullanma

Bu hata güçlü olmakla birlikte, yalnızca bir kullanıcıya sudoers yapılandırma dosyası aracılığıyla bir komuta erişim izni verildiyse çalışabileceğini hatırlamak önemlidir. Olmazlarsa ve çoğu Linux dağıtımı varsayılan olarak yapmazsa, bu hatanın hiçbir etkisi olmaz.

Saldırı inşa etmek

Bu güvenlik açığından gerçekten yararlanabilmek için, kullanıcının başka komutları başlatabilen bir komut için yapılandırılmış bir sudoer yönergesi olması gerekir.

Örneğimizde yukarıdaki sudoers direktiflerinde böyle bir emir var; VIM komutu!

test ALL = (ALL, !root) /usr/bin/vim

VIM’de, bir kullanıcı :! komutu ile başka bir  program başlatabilir. Örneğin, VIM’de ise, geçerli klasördeki ls komutunu çalıştırmak için !ls girebilirsiniz.

Bu güvenlik açığından yararlanmak için sudo -u#-1 vim komutunu kullanırsak, VIM kök olarak başlatılacaktır. Daha sonra !whoami komutunu uygulayarak bunu doğrulayabilirsiniz.

Kök olarak çalışan VIM
Kök olarak çalışan VIM

Şimdi VIM root olarak başlatıldı, ondan yürütülen komutlar da root olarak çalıştırılıyor.

Bu, kolayca tehlike altındaki sistemde istediğiniz herhangi bir komutu çalıştırabilen bir kök kabuğunu başlatmak için kullanılabilir. Bu saldırı aşağıdaki videoda gösterilmektedir.

Bir kök kabuğunun başlatılması
Bir kök kabuğunun başlatılması

Bu hata açık bir şekilde güçlü olmakla birlikte, hala Linux kullanıcılarının büyük çoğunluğunu etkilemeyecek standart dışı yapılandırmalar altında kullanılabilir.

Kullanıcılarınızdan sudoers yönergelerini kullananlar için, mümkün olan en kısa sürede sudo 1.8.28 veya üst sürümüne geçmelisiniz.

About The Author

Reply