Web Sunucuya Yüklenen Shell Dosyalarının Tespiti

Shell bilindiği üzere yüklendiği sunucu üzerinde kullanıcıların yönetici gibi işlem yapabilmesini sağlayan bir script. Yıllardır klasikleşen c99 ve r57 gibi benzer fonksiyonlara sahip shell dosyaları internet ortamında kolayca bulunabilmektedir. Ayrıca en basit haliyle aşağıda görüldüğü üzere kolayca php kodlarından faydalanarak shell dosyası yapılabilir. Bu kodlar farklı bir dosya içerisinde dahil edilebilir.

https://gist.github.com/sente/4dbb2b7bdda2647ba80b

Bu konuda; kendi yapmış olduğum bir inceleme sırasında edinmiş olduğum tespitlerden yola çıkarak bir anlatım gerçekleştireceğim.

Gelen erişim log kayıtları dosyasını analiz ederken linux komutları yardımıyla en çok istek alan / tekrar eden URL adreslerini sıraladım. URL adreslerinde farklı farklı dosya adlarında POST ve GET isteklerinin sık olduğunu gördüm ve sürekli POST işleminin gerçekleştirildiği dosyayı site ile ilişkilendiremediğimden, dizinde ilgili dosyayı kontrol ettiğimde shell dosyası olduğunu gördüm. Akabinde GET isteklerinin yapıldığı dosyalarda zaten URL satırında doğrudan sistem komutlarının çalıştırıldığını farkettim. Bu dosyalara istek yapan IP adreslerinin hareketlerini kontrol etmeden önce shell olabilecek tüm dosyaları sağlıklı bir inceleme için listelemem gerekiyordu. Bu nedenle dosyalar arasında shell işlevi gören fonksiyonları aratarak listeleme işlemi gerçekleştirdim. Bu arama kriterlerini linux komutlarından yola çıkarak kendinize göre düzenleyebilirsiniz. Mesala  system, shell_exec, eval fonksiyonu için arama işlemini yapabilirsiniz. Shell dosyalarının içerisinde genel olarak geçen yine diğer kavramlarda aratılabilir fakat burada en önemli husus saldırganın shell dosyasının tespitini zorlaştırmak için bazı yöntemler denemesidir. Bunlar; uzaktan shell dosyasının çağrılarak sunucuya dahil edilmesi ya da shell dosyasının farklı bir formata çevrilmesi olarak karşımıza çıkabilir.

find . -iname '*' | xargs grep 'kelime' -sl

-iname ‘*’ ile bulunulan dizinde tüm dosyalarda arama yapılabilir.

Bu fonksiyonların yer aldığı php dosyalarını tespit ettikten sonra bu dosyalara erişim sağlayan IP adreslerinin hareketlerini inceleyerek raporlama işlemine başlayabilirsiniz. Ayrıca hareketler sonucunda nerelere kadar erişim sağladığını, sistemde neler yapılmış olabileceği hakkında da fikir sahibi olabilirsiniz.

Örneğin; veritabanına bağlantı sağlamayı gerçekleştiren bir shell dosyası tespit edildikten sonra ki hareketleri incelenerek; erişim log kayıtlarında bazı satırlarda sayfanın boyutunun birden bire yüksek çıkması, veritabanındaki bilgilere saldırganın erişim sağlamış olabileceği yönünde fikir verebilir.

Faydalı ve Faydalanılan Bağlantılar

https:// www. slideshare.net/bgasecurity/hacklenmi-web-sunucu-analizi

Site Footer