Hocam selamlar, yaşadığınız durum bir 'virüs temizliği' döngüsüdür. Siz dosyaları temizlediğinizi sanıyorsunuz ama saldırgan sistemde bir 'Cron Job' (zamanlanmış görev) veya veritabanında 'wp_options' tablosuna enjekte edilmiş bir kod (malicious hook) bırakmış. Siz dosyayı temizleseniz bile, sistem her çalıştığında o gizli kod tekrar zararlı dosyayı oluşturuyor.
Bu durumda yapılacak teknik yol haritası:
  1. Dinamik Dosya Analizi: Sadece dosyaları taratmakla olmaz. FTP veya SSH üzerinden modified date (değiştirilme tarihi) sorgusu atarak, son 24-48 saat içinde değişen tüm PHP dosyalarını listeleyin. Büyük ihtimalle wp-includes veya wp-admin içerisinde, isminde alakasız karakterler olan bir PHP dosyası bulacaksınız.
  2. Veritabanı Hijacking: wp_options tablosunda siteurl, home ve özellikle blogname gibi kısımlara enjekte edilen 'Base64' kodlanmış scriptleri aratın. Japonca karakterler genelde buraya gizlenir.
  3. Backdoor Avı: Eğer bir 'Web Shell' (genellikle 1-2 satırlık şifrelenmiş kod) bir kez sisteme girdiyse, sunucudaki tüm eval(), base64_decode(), gzinflate() fonksiyonlarını kullanan dosyaları özel bir tarama ile ayıklamanız gerekir.
  4. Local Compromise: Sadece siteniz değil, bilgisayarınızda bir 'Keylogger' veya 'FTP şifrelerinizi çalan' bir virüs de olabilir. Siz şifreyi değiştirseniz bile saldırgan yeni şifreyi anında alıyor. Bilgisayarınızı 'Kaspersky' veya 'Malwarebytes' ile temizleyip ardından şifre değişikliği yapın.
Tavsiyem: Eklenti kurup taratmak bu seviyedeki bir 'persistence' (kalıcılık) saldırısında işe yaramaz. Sisteminize bir profesyonel müdahale etmeli veya tüm sitenizi tamamen yeni bir 'clean install' yapıp, veritabanınızı satır satır temizleyerek taşımanız gerekir. Bu işin ticaretinde değilim, işiniz görülsün diye teknik notlarımı paylaştım.