Bilinen Yerel CVE'ler: PwnKit, Dirty Pipe, Baron Samedit, DirtyCow
Dört yaygın yerel root CVE'sinin tespiti ve istismarı: PwnKit (CVE-2021-4034, pkexec), Dirty Pipe (CVE-2022-0847, kernel 5.8+), Baron Samedit (CVE-2021-3156, sudo heap), DirtyCow (CVE-2016-5195, eski kernel). Her biri için sürüm tespiti + public PoC akışı.
- Düşük yetkili shell
- Hedef sürümün ilgili CVE aralığına düşmesi
- Derleyici veya statik derlenmiş PoC transfer imkânı
Komutlar
pkexec --version; ls -l $(which pkexec) gcc -o pwnkit PwnKit.c; ./pwnkit uname -r gcc dirtypipez.c -o dirtypipez; ./dirtypipez $(find / -perm -4000 2>/dev/null | head -1) sudo --version; sudoedit -s '\' $(python3 -c 'print("A"*1000)') make; ./sudo-hax-me-a-sandwich 0 uname -r gcc -pthread dirty.c -o dirty -lcrypt; ./dirty gcc -pthread cowroot.c -o cowroot -lcrypt; ./cowroot Genel Yaklaşım
Bu sayfa dört “hazır” yerel root CVE’sini kapsar. Her birinde akış aynı: sürüm tespiti → CVE aralığı doğrulama → public PoC derleme/çalıştırma → cleanup. PoC’leri her zaman kaynaktan oku; özellikle /etc/passwd’ı değiştiren varyantlar makinede iz bırakır ve sınavda kararsız olabilir. Tümü examSafety: restricted çünkü gerçek exploit çalıştırma içerir ve bazıları hedefi çökertebilir.
PwnKit — CVE-2021-4034 (pkexec)
polkit’in pkexec aracındaki bellek bozulması. Tespit: sistemde SUID pkexec varsa ve polkit sürümü 0.120’den düşükse zafiyetlidir — pratikte 2009-2022 arası neredeyse tüm dağıtımlar. Çok güvenilir ve kararlıdır, bu yüzden modern lab’larda ilk denenenlerdendir. PwnKit.c’yi gcc ile derle ve çalıştır; anında root shell verir. Self-contained tek-dosya PoC’ler (ly4k, berdav) en pratikleridir.
Dirty Pipe — CVE-2022-0847
Linux kernel’de pipe page cache mantık hatası; salt-okunur dosyalara yazma imkânı verir. Aralık: kernel 5.8’den 5.16.11 / 5.15.25 / 5.10.102 yamalarına kadar. İki ana sömürü yolu var: (1) salt-okunur bir SUID binary’sine küçük shellcode enjekte edip root shell almak (dirtypipez), (2) /etc/passwd’daki root parola alanını ezmek. SUID hedefi olarak find / -perm -4000 ile bulduğun bir binary’i argüman ver. Kararlıdır ama kernel sürüm aralığına tam uyması şarttır.
Baron Samedit — CVE-2021-3156 (sudo)
sudo’da heap tabanlı buffer overflow; sudoedit -s ile tetiklenir. Aralık: sudo 1.8.2–1.8.31p2 ve 1.9.0–1.9.5p1. Tespit: sudo --version ve crash testi (sudoedit -s '\' + uzun argüman segfault verirse aday). Önemli uyarı: exploit libc ve dağıtım offset’lerine bağlıdır. blasty/worawit PoC’leri birkaç önceden ayarlanmış hedef sunar (0/1/2); doğru olanı seçene kadar deneme yapman gerekebilir. Yanlış offset crash verir ama makineyi genelde devirmez.
DirtyCow — CVE-2016-5195
Copy-on-write yarış koşulu; eski kernel’lerde (< ~4.8.3) çalışır. Tespit: uname -r ile eski kernel görürsen dene. İki popüler varyant: dirty.c (FireFart) /etc/passwd’a firefart adlı UID 0 kullanıcı yazar — sonra su firefart; cowroot.c ise bir SUID binary’sini geçici olarak ele geçirir. Önemli gotcha: DirtyCow /etc/passwd’ı kalıcı bozabilir ve bazı kernel’lerde sömürü sonrası sistemi kararsızlaştırır (race condition). FireFart varyantı çıkışta orijinal passwd’i geri yüklemeyi dener ama her zaman başarılı olmaz — bu yüzden sınav makinelerinde son çare olarak ve dikkatli kullan.
Cleanup ve Sınav Disiplini
/etc/passwddeğiştiren PoC’lerden sonra orijinal satırı geri koy; iz bırakmamak ve makineyi bozmamak için.- Hangi PoC’yi neden seçtiğini ve hangi sürümün hangi CVE’ye düştüğünü not al (rapor için).
- Önce misconfig yollarını dene; bu CVE’ler güvenilir olsa da exploit çalıştırmaktır —
lnx-privesc-kernelsayfasındaki son-çare disiplinini uygula. - [UNVERIFIED] Baron Samedit ve DirtyCow için kesin offset/sürüm sınırları distro yamalarına göre kayabilir; çalıştırmadan önce hedef sürümü PoC README’siyle karşılaştır.