Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

Sitemi temizliyorum, enfeksiyon ertesi gün geri geliyor

İşaretlenen dosyaları siliyorsunuz, birkaç saat her şey normale dönüyor, ardından sorun aynı şekilde geri geliyor: bir yerde hâlâ bir yeniden yükleme noktası var ve bu nokta nadiren tarayıcının baktığı yerde bulunuyor.

Sorunumu anlatayım Mesaj gönderin

Kısmi bir temizlik neden tekrarı garantiler

Bir enfeksiyon temizlikten sonra birebir aynı şekilde geri geliyorsa, bu nadiren yeni bir saldırıdır. Temizliğin dokunmadığı bir bileşenden yola çıkarak kendini yeniden kuran aynı ele geçirmedir. Ele geçirilmiş bir site genellikle iki tür dosya barındırır: görünür etkiyi üretenler (yönlendirme, enjekte edilmiş sayfa, sipariş akışına eklenmiş beklenmedik betik) ve onları yeniden yerleştirenler. Birinciler gürültülüdür, bir tarayıcı onları bulur. İkinciler sessizdir ve çoğu zaman yönetim panelinin hiç göstermediği konumlara yerleştirilir.

Yeniden yükleme mekanizması yerinde durdukça, işaretlenen dosyaları silmek açık kalmış bir kapının önünü süpürmeye benzer. Tipik gecikme — birkaç saat veya bir gece — yalnızca bu mekanizmanın çalışma sıklığıdır. Bu başlı başına yararlı bir ipucudur: sabit aralıklarla tekrarlanan bir dönüş, elle tekrarlanan bir saldırıdan çok zamanlanmış bir göreve işaret eder.

Pratik kural şudur: kodun hangi yoldan geri geldiğini bulmadığım sürece, ne kadar temiz görünürse görünsün siteyi hâlâ ele geçirilmiş kabul ederim.

Bir yeniden yükleme noktasının kaldığını gösterenler

  • Aynı dosyalar, aynı veya çok benzer bir adla, silindikten birkaç saat sonra yeniden beliriyor.
  • Tarayıcı siteyi temiz ilan ediyor ama anormal davranış geri geliyor: yönlendirme, bilinmeyen bir sayfa, sayfalara eklenen bir betik.
  • Tüm parolaları değiştirmiş olmanıza rağmen enfeksiyon geri geliyor.
  • Sildiğiniz bir yönetici hesabı yeniden ortaya çıkıyor.
  • Dönüş rastgele bir anda değil, düzenli aralıklarla gerçekleşiyor.
  • Bir yedeği geri yüklemek sorunu birkaç gün çözüyor, sonra aynısı geri geliyor.

Eklenti listesine bakan bir tarayıcı bunu neden kaçırır

WordPress’te otomatik yüklenen bir eklenti klasörü vardır: wp-content/mu-plugins/, yani « must-use ». Buradaki kod her sayfa gösteriminde, etkinleştirme gerekmeden çalışır ve yönetim panelindeki eklenti listesinde görünmez. Onu etkili bir saklanma yeri yapan da tam olarak budur. Sucuri, Mart 2025’te saldırganların bu klasörü kullanmasını belgeledi ve üç zararlı dosya gözlemledi: redirect.php, ziyaretçileri tarayıcı güncellemesi kılığındaki zararlı bir dış sayfaya yönlendiriyor; index.php, sunucuya uzaktan erişim veren bir webshell; ve custom-js-loader.php, site içeriğini istenmeyen bağlantılarla değiştiriyor ve görselleri değiştiriyor.

Yönetim panelinde görünen listeyi bir referans listesiyle karşılaştıran bir araç bu klasörden hiçbir şey göremez, çünkü klasörün içeriği o listede hiçbir zaman yer almaz. Aynı kör nokta temalarda da vardır. Sucuri’nin Mayıs 2025’te incelediği bir kampanya, kodunu kurulu tüm temaların — aktif olmayanlar dâhil — header.php dosyasına enjekte ediyor ve ziyaretçiye sahte bir robot doğrulama sayfası gösteriyordu. Bu durumda yalnızca aktif temayı temizlemek, sunucuda kalan tema sayısı kadar kopyayı dokunulmadan bırakır: birinin etkinleştirilmesi her şeyin geri gelmesi için yeterlidir.

Tespit önerileri kısadır: olağandışı davranışları izleyin (yönlendirmeler, dosya değişiklikleri), anormal izinleri kontrol edin, dosya bütünlüğü denetimi kurun, yönetici hesaplarını gözden geçirin, her şeyi güncel tutun ve iki adımlı doğrulamayı etkinleştirin.

Kalıcılık noktaları, kontrol ettiğim sırayla

  1. Otomatik yüklenen eklentiler

    Her şeyden önce wp-content/mu-plugins/ klasörünün içeriğini listelerim. Sağlıklı birçok kurulumda bu klasör hiç yoktur. Varsa ve kimsenin talep etmediği dosyalar içeriyorsa, önce ele alınacak yeniden yükleme noktası odur; çünkü yönetim panelinde hiç görünmeden her sayfada çalışır.

  2. Aktif olmayan temalar

    Yalnızca aktif temanın değil, sunucudaki her temanın başlık dosyasını okurum. Kullanılmayan bir tema da okunabilir ve değiştirilebilir bir dosyadır; aktif tema temizlendikten sonra enjeksiyonu olduğu gibi korur. Kullanmadığınız ve kullanmayı düşünmediğiniz bir tema devre dışı bırakılmalı değil, silinmelidir.

  3. Zamanlanmış görevler

    Zamanlayıcının olaylarını listelerim. Patchstack’in Nisan 2025’te incelediği kimlik avı kampanyasında zararlı eklenti, her dakika çalışan rastgele adlı bir WP-Cron görevi planlıyor ve yükü yeniden kuruyordu. Adını tanımadığınız ve anormal derecede sık çalışan bir görev, planlanmış bir yeniden bulaşma olarak ele alınmalıdır.

  4. Aktif temanın fonksiyon dosyası

    Haziran 2026’da yayımlanan ShapedPlugin dağıtım zinciri ele geçirmesinde, aktif temanın functions.php dosyasına bir yükleyici kod enjekte ediliyor ve base64 ile kodlanmış bir yük okunuyordu. Burası birçok eklentinin düzenlediği tamamen meşru bir konumdur: taranmaz, satır satır okunur.

  5. Yönetici hesapları

    Ayrıcalıklı hesapların listesini gerçekte beklediğinizle karşılaştırırım. Birçok kampanya yönetici hesapları oluşturur ve bunları bazen panelde görünen kullanıcı listesinden gizler. Unutulmuş tek bir hesap, dosyalar ne kadar özenle temizlenirse temizlensin tam erişimi yeniden açar.

  6. API anahtarları ve jetonları

    Uygulama parolaları, API anahtarları, bağlı servislerin OAuth jetonları, iki adımlı doğrulama gizli anahtarları: okunmuş olabiliyorlarsa erişimi kesen tek önlem bunları yeniden üretmektir. Hâlâ geçerli bir jetonu elinde tutan bir saldırganın, az önce sildiğiniz arka kapıya ihtiyacı yoktur.

Temel kontroller (shell ve WP-CLI)
ls -la wp-content/mu-plugins/
wp cron event list
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
wp theme list
find wp-content/themes -name "header.php"
find . -type f -name "*.php" -mtime -14

Konuyla ilgili diğer sayfalar

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

symptomes
depuis-quand
sauvegarde
acces-admin (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Enfeksiyon neden her seferinde birkaç saat sonra geri geliyor?
Çünkü sabit aralıklarla çalışan bir yeniden yükleme mekanizması duruyor. Patchstack’in incelediği bir kampanyada her dakika çalışan rastgele adlı zamanlanmış bir görev belgelendi; bu görev yerinde durdukça dosyaları silmek yalnızca bir sonraki çalışmasına kadar işe yarar.
Tarayıcım siteyi temiz gösteriyor, buna güvenebilir miyim?
Tek başına hayır. Yönetim panelindeki eklenti listesine dayanan bir araç, etkinleştirme olmadan yüklenen ve o listede hiç görünmeyen wp-content/mu-plugins/ içeriğini göremez. Bu klasörü her seferinde elle kontrol ederim.
Kullanmadığım temaları da temizlemem gerekir mi?
Evet, hatta silmek daha iyidir. Sucuri’nin belgelediği bir kampanya, kodunu aktif olsun olmasın kurulu tüm temaların header.php dosyasına enjekte ediyordu. Aktif olmayan bir tema da sunucuda duran bir dosyadır, yani enjeksiyonun bozulmamış bir kopyasıdır.
Bir yedeği geri yüklemek sorunu çözmeye yeter mi?
Nadiren. Yedek ele geçirmeden sonra alındıysa yeniden yükleme noktasını zaten içerir. Öncesinde alındıysa, saldırganın girdiği savunmasız sürümü de geri getirir. Geri yükleme, giriş noktasının belirlenmesinin yerini asla tutmaz.
Tüm dosyaları kaldırdıysam API anahtarlarını yine de değiştirmeli miyim?
Evet, sunucuda bir webshell veya yükleyici kod çalışmış olabiliyorsa mutlaka. Hâlâ geçerli olan bir jeton veya anahtar, sitede herhangi bir dosyanın bulunmasına bağlı olmayan bir erişim sağlar.
Bu işin bittiğini ne zaman kabul edebilirim?
Saldırganın girdiği bileşen belirlenip düzeltildiğinde, kalıcılık noktaları boşaldığında, ayrıcalıklı hesap listesi beklenenle örtüştüğünde ve gizli anahtarlar yenilendiğinde. Bundan önce site temizlenmiş değildir, yalnızca sessizdir.