Linux sunucu üzerinde web shell ve zararlı yazılım tespit etme

Kaan GİRGİN

Administrator
Yönetici
16 Tem 2019
127
20
Linux sunucu üzerinde web site barındıranların bir çoğuna zararlı yazılımlar uğramıştır. Genel olarak warez içerikden meydana gelen bu durum biraz can sıkıcıdır. Fakat ssh üzerinden kolayca zararlı yazılımları tespit etmek artık mümkündür.

Son 7 güne ait php dosyalarında değişiklik yapılan dosya tespiti
Kod:
find . -type f -name '*.php' -mtime -7

Dosya içerisinde uzak kaynak kontrolü
Kimi zaman sitenizde bir takım alanlar değiştirilmiş olabilir. Bunlar genellikle yönlendirme kodları veya dışarıdan getirilmiş içerikler olabilir. Bunun tespiti için
Kod:
find . -type f -name '*.php' | xargs egrep -i "preg_replace *\((['|\"])(.).*\2[a-z]*e[^\1]*\1 *," --color

Görsel İçerik Görünümlü Web Shell’lerin Tespiti
Kimi zaman uploads klasörüne eklenmiş bir görsel içerik(jpeg, png, gif vb) bile sizin web sitenize etki eden bir shell olabilir. Bu yüzden mevcut görsellerimiz içerisinde bile tarama işlemi gerçekleştirmemiz gerekir.
Kod:
find uploads -type f -iname '*.jpg' | xargs grep -i php

Şüpheli Kod Tespiti
Dosyaların içerisinde php’de kullanımı şüpheli olan kodlar olabilir. Bunları tespit etmemiz ve gerekeni yapmamız gerekebilir, wordpress veya drupal gibi hazır sistemler kullanıyorsanız sizi yanıltacak sonuçlar çıkartabilir.
Kod:
find . -type f -name '*.php' | xargs egrep -i "(fsockopen|pfsockopen|stream\_socket\_client|exec|system|passthru|eval|base64_decode) *\("

  • fsockopen: DDos için kullanılabilir, uzak soket açmaya yarar
  • pfsockopen: uzak soket açar fsockopen ile aynıdır.
  • exec, system ve passthru: sunucuda komut çalıştırmaya yarar
  • stream_socket_client: Uzak bağlantı oluşturur.
  • Her ne kadar komutlar arasına eklememiş olsam da mail fonksiyonu da kullanılabilir. Özellikle spam e-posta gönderimi için oldukça popüler bir kullanımı vardır.
Aramaları tek tek yapmak isterseniz aşağıdaki komutlardan faydalanabilirsiniz.
Kod:
find . -type f -name '*.php' | xargs grep -l "eval *(" --color 
find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color 
find . -type f -name '*.php' | xargs grep -l "gzinflate *(" --color 
find . -type f -name '*.php' | xargs grep -l "eval *(str_rot13 *(base64_decode *(" --color
find . -type f -name '*.php' | xargs grep -l "stream_socket_client *(" --color 
find . -type f -name '*.php' | xargs grep -l "pfsockopen *(" --color 
find . -type f -name '*.php' | xargs grep -l "mail *(" --color
 

Gurbetseli

New member
13 Ara 2020
3
0
Hocam öncelikle tesekkür ederim anlatim icin..
bu kodlari bir dosya icerisine eklense tüm kodlar tek dosya bunu dosyayica ssh ile istegimiz zaman tek bir komutla calistirilsa olabilirmi böyle bisey