Umut Sevinç | VulnSVNC

Vulnerability Researcher · Exploit & Malware Developer

Yetki Yükseltme (Privilege Escalation) — Gerçek Dünyadan Teknik Bir İnceleme

Yetki yükseltme, bir saldırganın normal bir kullanıcı (veya kısıtlı yetkili süreç) seviyesinden daha yüksek izinlere (örn. root/Administrator) ulaşmasıdır. Bu yazıda gerçek bir zafiyet senaryosunu laboratuvarda yeniden üretecek şekilde ele alacağım: Linux tarafında setuid / yanlış kullanım ve Windows tarafında unquoted service path / servis izinleri örnekleriyle hem “nasıl çalıştığı” hem “neden tehlikeli olduğu” hem de “nasıl düzeltilir” adımlarını göreceksiniz. Neden Önemli? Yetki yükseltme, saldırı zincirinin kritik halkasıdır: bir zafiyet ile sisteme sızan saldırgan, yükseltme ile kalıcılık, veri sızdırma veya ağda hareketlilik (lateral movement) elde eder. Bu, bir güvenlik açığının yalnızca başlangıç aşamasında olduğunun kanıtıdır. 1) Linux: Yanlış Yazılmış setuid Programı (Pratik Senaryo) Senaryo (özet) Basit bir yönetim aracı vuln_updater root olarak çalışan ve dışarıdan gelen dosya isimlerini system() ile çalıştıran setuid programı olsun. Girdi doğrulaması yok; dolayısıyla saldırgan yerel dosya/çevresel değişkenler üzerinden kod çalıştırabilir. Zafiyetin kökü system() çağrılarında kullanıcı kontrollü argümanların doğrudan kullanılması. Setuid binary’lerin çevresel değişkenleri yeterince sabitlememesi (PATH, LD_PRELOAD, IFS vb.). Dosya izinlerinin kötü yapılandırılması. Laboratuvar Hazırlığı (güvenli ortamda) İzole bir VM oluştur (ör. Ubuntu VM). Aşağıdaki gibi bilinçli olarak güvensiz bir program derle (sadece lab için): // vuln_updater.c - LAB ONLY #include #include int main(int argc, char **argv) { if (argc != 2) { printf("Usage: %s