⚔️ Red vs. Blue #4: Sunucu İşgali: Web Shell & RCE (Remote Code Execution) Bir saldırganın bir web sisteminde elde edebileceği en kritik yetki, sunucu üzerinde doğrudan komut çalıştırmaktır. RCE (Remote Code Execution) zafiyetleri ve ardından sunucuya bırakılan Web Shell dosyaları, web uygulamasından işletim sistemi seviyesine geçişin en tehlikeli köprüsüdür. 🔴 Red Team Gözüyle: Sunucuya Nasıl Sızılır ve Gizlenilir? Saldırganlar için Web Shell, hedef sistemde kalıcılık (persistence) sağlamanın ve iç ağa sızmanın (pivoting) ilk adımıdır. Sızma Vektörleri: Kontrolsüz dosya yükleme (Unrestricted File Upload) alanlarındaki uzantı bypass teknikleri (.phtml, .php5, Null Byte) veya Deserialization / Command Injection zafiyetleri kullanılır. Komut Çalıştırma: Sunucuya yüklenen tek satırlık bir zararlı (<?php system($_GET['cmd']); ?>), saldırgana web arayüzünden işletim sistemi komutları koşturma yetkisi verir. Gizlenme (Obfuscation): WAF ve AV imzalarını atlatmak için zararlı kodlar Base64, karmaşık dize birleştirmeleri veya eval() / assert() gibi dinamik fonksiyon yapılarıyla gizlenir. 🔵 Blue Team Gözüyle: Web Shell ve RCE Nasıl Tespit Edilir? Saldırgan dosyayı gizlese bile, işletim sistemi seviyesinde bıraktığı ayak izlerini gizleyemez. Process / Süreç Analizi: Web sunucusu kullanıcısı (www-data, apache, nginx) tarafından çalışan sh, bash, powershell veya cmd.exe gibi beklenmeyen süreçler önemli bir ihlal göstergesi (IoC) olabilir. Dosya Bütünlük Denetimi (FIM): Web kök dizininde (/var/www/html) yeni oluşturulan, sonradan değiştirilen veya anormal izinlere sahip .php/.jsp dosyalarını auditd, Sysmon veya FIM araçlarıyla anlık izleyin. Anormal Dış Ağ Bağlantıları: Web sunucusunun komut çalıştırıp dışarıdaki C2 (Command & Control) sunucusuna yetkisiz Reverse Shell bağlantısı açması Egress filtering ile engellenmeli ve SIEM'e alarm düşmelidir. --- 💻 Şüpheli Web Sunucusu Süreçlerini Tespit Etme (Python / Process Detection) import psutil # Web sunucusu kullanıcıları ve şüpheli süreçler WEB_USERS = ["www-data", "apache", "nginx"] SUSPICIOUS_COMMANDS = [ "bash", "sh", "nc", "netcat", "cmd.exe", "powershell" ] def detect_webshell_execution(): for proc in psutil.process_iter( ['pid', 'name', 'username', 'cmdline'] ): try: # Süreç web sunucusu kullanıcısı tarafından mı çalıştırılmış? if proc.info['username'] in WEB_USERS: executable = (proc.info['name'] or "").lower() # Şüpheli executable kontrolü if executable in SUSPICIOUS_COMMANDS: cmdline = " ".join( proc.info['cmdline'] or [] ).lower() print( f"🚨 TEHDİT TESPİT EDİLDİ! " f"PID: {proc.info['pid']}" ) print( f"Kullanıcı: {proc.info['username']} " f"| Komut: {cmdline}" ) except (psutil.NoSuchProcess, psutil.AccessDenied): continue if __name__ == "__main__": detect_webshell_execution() --- O zaman 💬 Mustafa soruyor: Sunucularınızda Web Shell ve RCE tehditlerine karşı önlemi uygulama seviyesinde mi (WAF/File Upload Kısıtlaması) yoksa işletim sistemi seviyesinde mi (FIM/EDR/AppArmor) alıyorsunuz? Düşüncelerinizi yorumlarda paylaşın! 👇 Okuduğunuz için teşekkürler! Kendinize, verilerinize ve dijital zırhınıza çok iyi bakın!