ankara-grafiker

PHP Zararlı Kod Analizi – PHP Web Shell Bulmak Ve Temizlemek

PHP Zararlı Kod Analizi – PHP Web Shell Bulmak Ve Temizlemek

Script yapımcıları tarafından, kurulum ve lisans takibi veya kötü niyetli kişiler tarafından sunucunuza sızmak amaçlı çeşitli yöntemler ile kaynak php dosyalarına kod satırı eklemeleri sonucu sunucunuz tehlike altına girer. Bu dosyalar ile lisans kontrolü veya sunucu ele geçirme işlemi yapılabilir. İyi niyetli lisans kontrolü için yapılan bu ekleme kötü sonuçlar doğurabilir. Detaylı tarama sonrası virus total üzerinden uyarılar çıkar ve telikeli dosya uyarıları belirtilir. Bu yazımda bu tehlikeli kodları bulma ve temizleme aşamasını anlatacağım. Bilmeniz gereken konu silinen zararlı dosyalar scriptin çalışmasını etkileyebileceğidir. Sizlere tavsiyem tespit edilen dosyalar üzerinde düzenleme editör ile detaylı inceleme yaparak kod kod temizlemenizdir. Öncelikle temizlenmiş bir script ile zararlı kod entegre edilmiş script arasındaki virus total farkını göstereyim. Bkav programı sıradan erişim isteyen kod yapısını da virüs olarak görebilir. Bu durum sizi yanıltmasın.

 

ankara-grafiker

Virus Total İle Nasıl Tarama Yapılır?

Web shell ve backdoorlardan korunmanın en temel yolu, serverınıza dosya transfer etmeden önce virustotal.com sitesi üzerinden dosyalarınızı taratmaktır. Bu aşama önemlidir. Şifre konulmuş rar dosyaları ve sıkıştırılmış zip dosyalarını virus total , düzgün biçimde tarayamaz. Şimdi bunu taratma yönteminden bahsedeyim.

zip

Script ana dizinini bilgisayarına kaydedin ve bu dizin adına sağ tıklayarak arşive ekle diyin. Önemli nokta .zip biçimini seçip depolama modunda arşivlemenizdir. Geriye bu arşiv dosyasını virustotal.com üzerinden taratmak kalıyor.

Backdoor Nedir?

Backdoor, tek amacı ters bağlantı sağlamaktır. Adından da anlaşılacağı gibi arka kapı. Sistemlere erişmek için gizli bir yol  oluşturur ve bu yolu genel olarak .php dosyaları üzerinden veya zero day açıkları üzerinden sağlar. Backdoor sadece sunucularda veya işletim sistemlerinde değil farklı elektronik cihazlarda da zafiyeti mümkündür. Güvenlik kameraları, araçlar ve modemler gibi. Ustaca oluşturulmuş backdoorları bulmak imkansızdır. Script bazlı açıklar ile elde edilen backdoor ile milyonlara varan güvenlik sorunları meydana gelmiş, WordPress resmi eklenti sayfası üzerinden bir çok eklentide bulunmuş ve milyonlarca kullanıcı bu sebep ile mağdur olmuştur. Backdoor başlı başlına bir inceleme konusudur çünkü amacı backdoor olmayan bir yazım hatası ile de bu açık meydana gelebilir, tespiti zor olduğu için şuan bu zafiyete sahip olabilirsiniz. 

Web Shell Nedir?

Web Shell, asp veya php tabanlı sunucu üzerinde erişim sağlamak amacıyla oluşturulmuş kod parçalarıdır. Adını shell yani komut çalıştırma satırı olan terminalin web arayüzünde çalışan bir versiyonu olması sebebiyle almıştır. Çeşitli amaçları vardır;

  • Sunucuyu ele geçirmek.
  • Sunucuza dosya transferi sağlamak.
  • Veri tabanına erişmek.
  • Shell üzerinden komut satırı çalıştırmak.
  • DDOS saldırıları gerçekleştirmek.

PHP-Shell-Detector – Web Shell Detector Linux

Açık kaynak kodlu bu yazılım ile sunucu üzerinden tarama gerçekleştireceğiz. Önce root olmanız gerekmektedir. Size servis sağlayıcısı web üzerinden root erişimi vermediyse putty ile erişmek zorunda kalacaksınız. Önce scripti web serverınıza taşıyın. Örneğin public_html altında deneme adlı bir klasöre. Sql bağlantı yapmanız şart değildir. Bu işlem için;

Putty SSH Üzerinden Root Olmak?

Natro ve bir çok hosting firmasında aşağıdaki işleme gerek kalmadan size varsayılan olarak sunucu kullanıcı adınızı ve şifrenizi verebilirler böylece alttaki aşamaya geçmeden firmadan elde ettiğiniz kullanıcı adı ve şifreyi kullanabilirsiniz.

Putty yasal olarak sunucunuz üzerinde komut çalıştırmanızı sağlayacaktır. Başlamadan önce VDS veya VPS aldığınız firma sitesine public_key denilen anahtarı nasıl eklendiğini bildiğinizden emin olun.

  1. SSH Anahtarı Firma sitesine eklemek
  2. Server Ip adresini bilmek
  3. Temel Linux komutlarını bilmek
  • Putty programını Windows işletim sistemine buradan indirin.

clamav-linux

 

  • Putty programı X64’te C:\Program Files\PuTTY üzerinde X86’da C:\Program Files (x86)\PuTTY  üzerinde kuruldu. Bu dizine girin.

putty-kullanimi

  • puttygen.exe programını açarak ikinci aşamamıza geçelim. Bazı sunucular root kullanıcı adını almanıza izin vermeyebilir. Rastgele farklı isim seçiniz. 3. görselin 3. aşamasında.

 

 

putty-nedir

  • Zor kısmını tamamladık çok az kaldı. Tüm alanları doldurduktan sonra Save Private Key seçeneğini kullanarak bir ppk dosyası elde edeceksiniz bunu kaydedin. Tüm bu işlemler bir metini md5 şifresine dönüştürmek gibi düşünebilirsiniz. İşlem sonucunda bir adet metin belgesi içinde public key, bir ppk dosyası ve hatırlamanız gereken bir şifre kalıyor.
  • Bu public key kısmın kopyalayıp vds aldığınız firmanın ssh listesine ekleyeceksiniz. Natro ve bir çok hosting firmasında bu işleme gerek kalmadan size varsayılan olarak sunucu kullanıcı adınız ve şifrenizi verebilirler böylece üstteki aşamaya geçmeden firmadan elde ettiğiniz kullanıcı adı ve şifreyi kullanabilirsiniz.
  • Public Key’i firma paneline tanımladıktan sonra devam edebiliriz.

ssh-anahtari-olusturma

putty-baglanmak

  • Tüm işlem bu kadar artık server üzerinden komut çalıştırabiliriz. Centos server da paket kurulum komutu yum  Debian serverlarda apt-get komutudur. Benim serverım Centos.

PHP-Shell-Detector Nasıl Kurulur?

Server üzerinde apache kurulu ve hali hazırda bir web sitesinin yayında olduğundan emin olun. Genel olarak apache serverında siteler şu dizinde yer alır;

/home/admin/web/siteadresi.com/

buradaki admin kısımı sizin cpanel kullanıcı adınızdır. Yazılımı indirme işlemine geçelim. Centos’da git clone komutunu çalıştırmak için yum install git komutu ile modülleri kurunuz.

ankara-grafiker

cd home

cd admin

cd web

yum install git

git clone https://github.com/emposha/PHP-Shell-Detector.git

cd PHP-Shell-Detector

1-Bu aşamada hangi dizini aratmak istiyorsanız aşağıdaki konumu kendinize göre ayarlayınız. Ben ana dizindeki deneme klasörünü taratıyorum.

cp shelldetect.* /home/admin/web/siteadresiniz.com/public_html/deneme

2- Şimdi ana dizin üzerindeki deneme klasöründe shelldetect.php dosyası oluşmuş olmalıdır. Geriye kalan tek şey adres çubuğu üzerinden bu dosyayı çalıştırmak.

ankara-grafiker

3- http://siteadresi.com/deneme/ adresine girin. size bir şifre sorulacak. kullanıcı adı admin şifre protect olarak onaylayın.

ankara-grafiker

4- Tarama sonucu rapor şeklinde gösteriyor. Yapmanız gereken kırmızı ile belirtilen dosyaları script dizininden silmek veya, bu dosyaları detaylı inceleyerek zararlı kodları silmek.

 

ankara-grafiker

5- İşlem bitince sunucudan raporları ve scripti silmeyi unutmayınız.