Hızlı cevap: Web shell, bir saldırganın ele geçirdiği web sunucusuna yerleştirdiği, uzaktan komut çalıştırmasına ve dosyalara erişmesine izin veren zararlı bir betiktir (genelde .php, .asp, .jsp). Sunucuda kalıcı bir arka kapı (backdoor) işlevi görür. Genelde bir dosya yükleme açığı ya da başka bir zafiyetle yerleştirilir. Tespiti; dosya bütünlüğü izleme, olağandışı dosya ve istek desenleri, ve sunucu günlüğü analiziyle yapılır. Hack sonrası temizlikte web shell'leri tam temizlemek kritiktir, yoksa sunucu yeniden ele geçirilir.

Web shell nasıl yerleşir ve ne yapar?

Web shell, bir web sunucusuna yüklenebilen ve çalıştırılabilen bir betiktir. Saldırgan onu genellikle bir dosya yükleme açığı, bir uygulama zafiyeti ya da ele geçirilmiş bir yönetim paneliyle sunucuya koyar. Yerleştikten sonra, saldırgan tarayıcıdan ya da bir istekle bu betiğe ulaşır ve sunucuda komut çalıştırır, dosya okur, veri çalar ya da daha derine iner.

Tehlikesi kalıcılığıdır: web shell, saldırganın ilk açığı kapatılsa bile sunucuya tekrar dönmesini sağlayan bir arka kapıdır. Bu yüzden bir ihlal sonrası yalnızca ilk açığı kapatmak yetmez, tüm web shell'ler bulunup temizlenmelidir.

Web shell belirtileri ve tespiti

Belirti Tespit yöntemi
Beklenmeyen yeni dosyalar Dosya bütünlüğü izleme, yeni .php tespiti
Olağandışı istek desenleri Günlükte tek dosyaya yoğun POST istekleri
Gizlenmiş (obfuscated) kod İçerik taraması, kodda eval/base64 kalıpları
Anormal sunucu süreçleri Web sunucusundan beklenmeyen komut çalıştırma
Giden bağlantılar Sunucudan dışarı beklenmeyen trafik

Hack sonrası temizlik

Bir web shell bulunduğunda, temizliğin doğru sırası kritiktir. Önce sistemin imajı alınır (adli delil için), sonra günlükler incelenerek ilk giriş noktası ve yerleştirilen tüm dosyalar belirlenir. Tek bir web shell bulmak yeterli değildir, çünkü saldırgan genelde birden fazla ve gizlenmiş arka kapı bırakır. Kök neden (dosya yükleme açığı gibi) kapatılmadan temizlik kalıcı olmaz. Temizlik sonrası parolalar ve anahtarlar yenilenir, sistem yeniden taranır.

KAOS ve DSET yaklaşımı

DSET, hack sonrası adli incelemede web shell'leri ve arka kapıları tespit eder, ilk giriş noktasını günlükler üzerinden belirler ve kök nedeni gösterir. Geliştirdiğimiz KAOS güvenlik motoru, kaynak kod ve sunucu taramasında web shell kalıplarını ve şüpheli dosyaları raporlar. Saha deneyimimizde en sık gördüğümüz hata, tek bir görünür web shell'i silip kök nedeni ve diğer gizli arka kapıları atlamaktır, bu da sunucunun yeniden ele geçirilmesine yol açar. Amacımız giriş noktasını kapatıp kalıcı temizlik sağlamaktır.

Bağlantılı okumalar: kurumsal WordPress güvenliği hack temizleme, dosya yükleme açıkları, fileless dosyasız zararlı yazılım ve LOLBins, web sunucu sertleştirme Nginx Apache, Windows olay günlüğü adli analizi, fidye yazılımı ilk 24 saat.

Sık sorulan sorular

Web shell nasıl sunucuya girer? Genellikle bir dosya yükleme açığıyla: uygulama, kullanıcı yüklemelerini yeterince doğrulamaz ve saldırgan bir .php dosyası yükleyip çalıştırabilir. Başka yollar da vardır: bir uygulama zafiyeti, ele geçirilmiş bir yönetim paneli ya da zayıf kimlik bilgisi. Yerleştikten sonra saldırgana kalıcı uzaktan erişim sağlar.

Bir web shell'i silmek yeterli mi? Hayır. Saldırgan genelde birden fazla ve gizlenmiş web shell bırakır ve ilk giriş açığı hâlâ açıktır. Yalnızca görünür olanı silmek, saldırganın geri dönmesini engellemez. Doğru yaklaşım, günlükleri inceleyip tüm arka kapıları bulmak, kök neden açığını kapatmak ve parolaları yenilemektir.

Web shell'i nasıl tespit ederim? Dosya bütünlüğü izleme (beklenmeyen yeni dosyalar), sunucu günlüğü analizi (tek dosyaya yoğun şüpheli istekler), içerik taraması (eval, base64 gibi gizleme kalıpları) ve anormal sunucu süreçleri birlikte kullanılır. En güvenilir sonuç, bu yöntemleri bir adli inceleme kapsamında birleştirmekle elde edilir.

Kaynaklar

Ele geçirilen bir sunucuda web shell tespiti ve hack sonrası adli inceleme için Ankara Hacettepe Teknokent'teki ekibimizle görüşebilirsiniz. DSET ile iletişime geçin.