Linux İşletim Sisteminde SUID Biti Zafiyeti İstismar Edilerek Çevresel Değişkenlerin (PATH) Değiştirilmesi ve root Yetkilerine Hak Yükseltilmesi

0
399
views
Sızma testleri sırasında standart haklar ile erişim sağlanabilmiş bir bilgisayarda, hak yükseltilerek yönetici hakları elde edilmeye çalışılır. Hak yükseltmek için kullanılan yöntemlerden birisi de SUID biti uygun olarak yapılandırılmamış dosyaların yetkisizce çalıştırılmasıdır. Bu yazıda, SUID biti aktif olarak ayarlanmış “procwatch” aracına sahip NullByte:1 sanal makinesi üzerinde PATH çevresel değişkenine ekleme yapılacak ve “root” kullanıcısı hakkı ile komut satırı / kabuk elde edilecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Yazıda kullanılan NullByte:1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/nullbyte-1,126/

İşletim sisteminin komut satırına erişim için TCP/777 portuna SSH ile bağlantı kurularak aşağıdaki kimlik bilgileri ile kullanılabilir.

Kullanıcı Adı: ramses
Parola: omega

Linux işletim sistemine standart yetkilerle elde edilen erişimde bir kullanıcı (ramses) haklarına sahip olunduğu görülmektedir.

id
head -3 /etc/passwd
head -3 /etc/shadow

 

procwatch” dosyasının/aracının çalıştırılabilir bir dosya olduğu, SUID bitinin etkin olduğu görülmektedir.

cd /var/www/backup/
ls -la
file procwatch

 

Araç çalıştırıldığında proses hakkında bilgi verdiği görülmektedir. Bu yapısı ile “ps” aracına benzemektedir. Üstelik SUID biti etkin olduğu için “ps” aracı “root” yetkisi ile çalışmaktadır.

./procwatch
ps

 

“procwatch” aracının arka planda çalıştırdığı “ps” aracı normalde “/bin” dizini altındadır. “procwatch” aracı çalıştığında çağıracağı “ps” aracını (çalıştırılabilir dosyaların aranacağı dizinlerin listelendiği) PATH adlı çevresel değişkendeki dizinlerde aranır. Bu dizinler içerisinde “/bin” dizini de olduğu için “ps” aracı çalıştırılabilmektedir.

which ps
echo $PATH

 

Eğer “ps” dosyası yerine Linux kabuğu (/bin/sh) çalıştırılabilirse “root” yetkisi ile komut satırı erişimi elde edilebilir. Bu amaçla “/bin/sh” kabuğunun kopyası “/tmp” dizinine “ps” olarak alınır ve PATH değişkeninin ilk elemanına da “/tmp” dizini eklenir. Böylece “/bin” altındaki “ps” değil, “/tmp” altındaki “ps” (“/bin/sh” kabuğunun kopyası) çalışacaktır.

cp /bin/sh /tmp/ps
export PATH=/tmp:$PATH
echo $PATH

 

“procwatch” aracı çalıştırıldığında “root” yetkileri ile “sh” kabuğuna erişim sağlandığı görülmektedir.

./procwatch
id
cat /etc/shadow

Belirtilen zafiyetin bulunduğu diğer sanal ortamlardan bazıları aşağıdaki gibidir:

  • PwnLab: init: https://www.vulnhub.com/entry/pwnlab-init,158/
    • Kullanıcı Adı: kent
    • Parola: JWzXuBJJNy
  • Ew_Skuzzy: 1: https://www.vulnhub.com/entry/ew_skuzzy-1,184/
  • Gemini Inc: 1: https://www.vulnhub.com/entry/gemini-inc-1,227/

 

 

 

Kaynak:

https://www.nuharborsecurity.com/nullbyte-1-walkthrough/
https://blog.techorganic.com/2015/08/06/nullbyte-0x01-hacking-challenge/
http://www.hackingarticles.in/linux-privilege-escalation-by-exploiting-cron-jobs/

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.