Bir WordPress sitesinin hacklendiği genellikle arama motorlarından gelen ziyaretçilerin yabancı bahis veya sahte e-ticaret sitelerine yönlendirilmesi, Google dizininde beliren Japonca veya Çince spam sayfalar, Chrome'un "Aldatıcı siteye girmek üzeresiniz" kırmızı uyarı ekranı ve yönetim panelinde yetkisiz açılmış kullanıcılar ile anlaşılır. Bu ihlallerin kalıcı olarak giderilmesi; yalnızca birkaç şüpheli dosyanın silinmesiyle değil, çekirdek dosya sisteminin orijinal kaynaklarla doğrulanması, veritabanı enjeksiyonlarının temizlenmesi, gizlenmiş web shell'lerin ayıklanması ve sunucu zamanlayıcılarının (cron) denetlenmesiyle mümkündür.
Sitenizde bu tip anomaliler tespit ettiyseniz kapsamlı bir müdahale gerekir. Signalique tarafından sunulan WordPress Virüs Temizleme Hizmeti, sitenizi dosya ve veritabanı seviyesinde dezenfekte ederek arama motoru cezalarından kurtarmak üzere 3.500,00 TL [KDV durumu] sabit fiyat ve [teslim süresi] teslim süresi çerçevesinde yapılandırılmıştır.
Hızlı Çözüm / İlk Müdahale Adımları (TL;DR)
1. Erişimi Kısıtlayın: Sitenizi hosting panelinden geçici olarak bakım moduna alın veya IP kısıtlamalı bir.htaccesskuralı ile dış trafiğe kapatın.
2. Tam Ham Yedek Alın: Temizliğe başlamadan önce cPanel/Plesk üzerinden dosya yöneticisiylepublic_htmldizinini ve phpMyAdmin ile veritabanını dışa aktarın.
3. Yetkisiz Hesapları İnceleyin:wp_userstablosunda veya panelde tanımadığınız yönetici hesaplarının yetkilerini kaldırın.
4. Zamanlanmış Görevleri Denetleyin: Hosting crontab ve WordPress sanal cron görevlerini kontrol ederek kendini tekrarlayan zararlı betikleri durdurun.
5. Çekirdek Dosyaları Değiştirin:wp-adminvewp-includesklasörlerini WordPress.org'dan indirilen temiz orijinal dosyalarla üzerine yazarak güncelleyin.
WordPress Sitenizin Hacklendiğini Gösteren Belirtiler
Siber saldırganlar, ele geçirdikleri WordPress sitelerini her zaman tamamen çökertmez. Çoğu senaryoda sitenin çalışmaya devam etmesi ve sunucu kaynaklarının ya da mevcut SEO otoritesinin gizlice sömürülmesi hedeflenir.
Yönlendirmeler ve Arama Sonuçlarındaki Sorunlar
Zararlı yazılımlar genellikle şartlı mantık (conditional logic) çalıştırır. Site sahibi veya yöneticisi doğrudan URL yazarak giriş yaptığında her şey normal görünürken, arama motorundan gelen veya mobil cihaz kullanan organik ziyaretçiler sahte piyango, yetişkin içerik veya zararlı APK indirme sayfalarına yönlendirilir. Bu durum genellikle PHP dosyalarına veya .htaccess kurallarına enjekte edilen HTTP_REFERER ve HTTP_USER_AGENT filtreleriyle gerçekleştirilir.
Bunun yanı sıra "SEO spam" veya literatürdeki adıyla "pharma hack", sitenizin veritabanına veya sanal sayfalarına binlerce sahte URL ekler. Google'da site:alanadiniz.com araması yaptığınızda Japonca karakterler, lüks marka taklitleri veya yasadışı ilaç isimleri içeren dizin kayıtlarıyla karşılaşıyorsanız sitenize spam enjeksiyonu yapılmış demektir. Bu aşama fark edilmediğinde Google Safe Browsing mekanizması devreye girerek Chrome ve Firefox kullanıcılarına kırmızı renkli "Aldatıcı siteye girmek üzeresiniz" uyarısı göstermeye başlar.
Sunucu ve Dosya Sistemindeki İzler
WordPress mimarisinde wp-content/uploads/ dizini yalnızca görsel, video ve belge gibi statik medya dosyalarını barındırmalıdır. Bu klasör altında veya altındaki tarih klasörlerinde .php, .php5, .phtml veya zararsız bir favicon gibi görünen .ico uzantılı ancak içinde PHP kodları barındıran dosyalar bulunması kesin bir ihlal işaretidir.
Ayrıca kök dizindeki .htaccess, index.php ve wp-config.php dosyalarındaki değişikliklerin temizlendikten kısa bir süre sonra kendiliğinden geri dönmesi, dosya sisteminde gizlenmiş aktif bir arka kapı (backdoor) olduğuna işaret eder. Bu tip scriptler arka planda harici sunuculara spam e-posta göndermek veya kripto para madenciliği yapmak için yoğun CPU tükettiğinde hosting firmanızdan "Resource Limit Exceeded" veya doğrudan "Account Suspended" (Hesap Askıya Alındı) bildirimi alırsınız.
Yetkisiz Yönetici Hesapları
Veritabanı enjeksiyonları veya eklenti açıkları (özellikle yetki yükseltme - Privilege Escalation zafiyetleri) üzerinden sisteme sızan saldırganlar, kalıcılık sağlamak adına ilk iş olarak yeni bir yönetici tanımlar. Yönetim panelindeki "Kullanıcılar" listesinde veya veritabanının wp_users ile wp_usermeta tablolarında "admin", "system", "backup", "wp_support" gibi isimlerle açılmış, yetki seviyesi (wp_user_level) 10 olan yabancı e-posta adresli kullanıcılar bu durumun somut kanıtıdır.
Neden Eklenti Taraması Tek Başına Yetmez?
Birçok site yöneticisi güvenlik ihlali yaşandığında doğrudan ücretsiz bir güvenlik eklentisi kurarak otomatik tarama başlatır. Eklentiler yüzeysel tehditleri bulmada faydalı olsa da gelişmiş saldırılarda tek başlarına kalıcı çözüm sunamazlar.
Obfuscation Katmanları
Gelişmiş zararlı yazılımlar, antivirüs ve tarama motorlarının imza tabanlı (signature-based) tespit sistemlerini atlatmak için katmanlı gizleme teknikleri kullanır. eval(), base64_decode(), gzinflate(), str_rot13() gibi fonksiyonların ardışık olarak iç içe geçirilmesiyle oluşturulan kod blokları, düz metin aramalarında tespit edilemez. Üstelik saldırganlar bu kodları wp-includes/pluggable.php veya wp-includes/load.php gibi meşru çekirdek fonksiyonlarının gövdesine satır aralarına dağıtarak eklentilerin bunları "orijinal dosya varyasyonu" sanmasını sağlar.
// Tipik bir gizlenmiş (obfuscated) arka kapı çalıştırma örneği
$k = "gzinflate";
$p = "base64_decode";
@eval($k($p("s7W1sDQwMDRQysvPz0/PSVWyUkgtyM9LzSsBAA==")));
Çoklu Backdoor ve Sahte Cron Görevleri
Tek bir güvenlik açığından yararlanan saldırgan, sisteme genellikle farklı dizinlerde 5 ila 10 arasında bağımsız arka kapı bırakır. Güvenlik eklentisi bunlardan 4 tanesini tespit edip silse dahi, geride kalan tek bir dosya saldırganın dakikalar içinde tüm zararlı yapıyı yeniden inşa etmesine yeterlidir.
Bunun da ötesinde, hosting panelinin crontab servisine veya WordPress'in sanal zamanlayıcısına (wp_cron) eklenen görevler, harici bir sunucudan her saat başı temizlenen zararlı PHP betiklerini tekrar indirip aynı konumlara yazar. Bu zincir kökünden kırılmadığı sürece yapılan tüm dosya temizliği geçici kalır.
Temizlik Sürecinin Adımları
Profesyonel bir WordPress dezenfeksiyon işlemi, rastgele dosya silmek yerine doğrulanabilir ve izole edilmiş bir sıralı iş akışıyla yürütülür:
- Yedekleme ve İzolasyon: Herhangi bir müdahaleden önce mevcut tüm dosya yapısı ve MySQL veritabanı ham haliyle dışa aktarılır. Ardından site ziyaretçi trafiğine kapatılarak sunucu üzerindeki oturumlar izole edilir.
- Derinlemesine Kod Taraması: PHP, JS, HTML dosyaları ve MySQL tabloları; base64 desenleri, şüpheli
preg_replacekalıpları ve harici IP bağlantıları için komut satırı araçlarıyla (CLI) taranır. - Çekirdek Dosyaların Checksum Doğrulaması:
wp-adminvewp-includesdizinleri tamamen silinir. WordPress.org API'si üzerinden sitenin kurulu olduğu mevcut sürümün resmi MD5/SHA256 hash kontrolleri yapılarak temiz çekirdek dosyalar doğrudan kaynağından yüklenir. - Web Shell Tespiti: C99, R57, WSO, FilesMan gibi popüler web shell türevleri ile dosya oluşturulma/değiştirilme zaman damgalarındaki (mtime/ctime) anomaliler analiz edilerek sisteme sonradan bırakılan yabancı dosyalar ayıklanır.
- Tema ve Eklenti Denetimi: Özellikle warez veya nulled (korsan) temalardan bulaşan lisans kontrolü bypass scriptleri, uzaktan kod çalıştırma (RCE) açıkları barındıran fonksiyonlar taranır. Eklentiler orijinal depolarından yeniden indirilir.
- Yönlendirme Kodlarının Temizliği:
.htaccessiçerisindeki Rewrite kuralları, temafunctions.phpdosyasına enjekte edilmiş JavaScript kodları ve harici alan adlarına veri sızdıran koşullu yönlendirme fonksiyonları temizlenir. - Veritabanı Temizliği:
wp_optionstablosundakiactive_plugins,siteurlvehomedeğerleri incelenir.wp_postsvewp_postmetatablolarına gizlenmiş görünmez iframe'ler, zararlı script etiketleri ve base64 dizgeleri temizlenir. - SEO Spam Sayfalarının Kaldırılması: Arama motoru dizinlerine girmiş yüzlerce veya binlerce sahte spam URL tespit edilir. Bu URL'lerin arama motoru botlarına kalıcı olarak silindiğini bildirmek adına sunucu seviyesinde HTTP 410 (Gone) durum kodu döndürecek kurallar yapılandırılır.
- Yetkisiz Kullanıcı ve Cron Görevlerinin Sonlandırılması:
wp_userstablosundaki yabancı hesaplar, hosting düzeyindeki crontab listesi ve WordPress veritabanındakicronoption girdileri tek tek ayıklanarak temizlenir. - Fonksiyonel Testler: Temizlik tamamlandıktan sonra sitenin tüm kritik işlevleri; iletişim formları, kullanıcı girişi, alışveriş sepeti ve sanal pos ödeme adımları test edilerek veri kaybı olmadan sistemin eksiksiz çalıştığı doğrulanır.
Temizlik Sonrası Sıkılaştırma
Zararlı yazılımlar temizlendikten sonra sitenin yeniden hedef olmasını engellemek amacıyla sıkılaştırma (hardening) protokolleri uygulanmalıdır.
- [ ] Tuz Anahtarlarını (Salts) Yenileyin:
wp-config.phpdosyasındakiAUTH_KEY,SECURE_AUTH_KEYveLOGGED_IN_KEYgibi 8 adet güvenlik anahtarını WordPress API üzerinden sıfırlayarak tüm aktif tarayıcı çerezlerini geçersiz kılın. - [ ] Tüm Kimlik Bilgilerini Değiştirin: Veritabanı şifresi (
DB_PASSWORD), FTP/SFTP erişimleri, hosting paneli (cPanel/Plesk) parolası ve tüm WordPress yönetici şifrelerini karmaşık kombinasyonlarla güncelleyin. - [ ] Uploads Dizininde PHP Çalıştırmayı Engelleyin: Medya yükleme klasörüne yerleştirilecek bir yapılandırma ile bu dizindeki hiçbir
.phpbetiğinin çalıştırılamamasını sağlayın. Nginx veya Apache yapılandırmanızı bu doğrultuda güncelleyin:
# /wp-content/uploads/.htaccess içerisine eklenecek güvenlik kuralı
<Files *.php>
deny from all
</Files>
- [ ] Dosya İzinlerini Sabitleyin: Standartlara uygun olarak tüm dizinleri
755, tüm dosyaları644vewp-config.phpdosyasını440veya400iznine çekin. - [ ] XML-RPC ve Şüpheli Bot İsteklerini Sınırlandırın: Kaba kuvvet (brute-force) saldırılarının en yaygın kapısı olan
xmlrpc.phpdosyasını sunucu düzeyinde erişime kapatın. API uç noktalarınızı korumak için web API güvenliğine dair temel doğrulama yöntemleri rehberinden faydalanabilirsiniz. - [ ] Açığa Neden Olan Bileşeni Değiştirin: Saldırının gerçekleştiği güvenlik açığı güvenlik loglarından (access log) analiz edilmeli; zafiyet barındıran eklenti güncellenmeli veya güvenli bir alternatifiyle değiştirilmelidir. Barındırma ortamını daha güvenli hale getirmek için güvenli ağ altyapısı için temel ipuçları adımlarını da gözden geçirebilirsiniz.
Güvenlik Uyarılarının ve Cezaların Kaldırılması
Dosya ve veritabanı dezenfeksiyonu tamamlandıktan sonra sitenizin arama motorları ve hosting sağlayıcıları nezdindeki güvenilirliğini yeniden tesis etmek gerekir.
Google Search Console Güvenlik İncelemesi
Google sitenizi "Güvenli Değil" olarak işaretlediyse, temizlik işlemi belgelenerek Google Search Console üzerinden itiraz edilmelidir. "Güvenlik Sorunları" (Security Issues) sekmesinde yer alan zararlı yazılım uyarısına tıklanarak "Düzeltildi, İnceleme İste" talebinde bulunulur. Bu talep formunda hangi dosyaların temizlendiği, sunucudaki açığın nasıl kapatıldığı ve hangi güvenlik önlemlerinin alındığı teknik bir dille özetlenmelidir.
Hosting Hesabının Yeniden Aktifleştirilmesi
Aşırı kaynak kullanımı veya şikayetler sebebiyle askıya alınan hosting hesaplarında, barındırma firmasının destek ekibine sitenin temizlendiğini gösteren dosya bütünlük raporu sunulmalıdır. Arka kapıların temizlendiği teyit edildiğinde hesap üzerindeki kısıtlamalar kaldırılır.
Kara Liste Kontrolleri
Domain adınızın yalnızca Google değil; Norton Safe Web, McAfee SiteAdvisor ve Spamhaus gibi global kara listelerde (blacklists) spam kaynağı olarak işaretlenip işaretlenmediği denetlenmelidir. Listelenen platformlara temizlik sonrası doğrudan bildirim gönderilerek alan adı itibarı yeniden normale döndürülür.
Hizmet Kapsamı ve Maliyet
Sitenizin hacklenmesi durumunda sıfırdan site yaptırmak maliyetli ve zaman alıcı bir süreçtir. Veritabanınızdaki içerikler, sipariş kayıtları, müşteri profilleri ve SEO geçmişiniz korunabilir durumdaysa, doğru bir müdahale ile sistemi eski performansına döndürmek mümkündür.
Aşağıdaki tabloda Signalique tarafından sağlanan standart kurtarma süreci detaylandırılmıştır:
| Müdahale ve İyileştirme Kalemi | Standart Kapsam |
|---|---|
| Çekirdek WordPress Dosyalarının Checksum ile Onarımı | Dahil |
| Gizlenmiş (Obfuscated) Kod ve Web Shell Tespiti | Dahil |
| Veritabanı Enjeksiyonlarının (Spam SQL) Ayıklanması | Dahil |
| Sahte Cron Görevleri ve Arka Kapıların İmhası | Dahil |
| HTTP 410 Yapılandırması ile SEO Spam Temizliği | Dahil |
| Google Search Console Güvenlik İnceleme Talebi | Dahil |
| Askıya Alınan Hosting Hesabı İçin İtiraz Raporu | Dahil |
| Sıkılaştırma (Hardening) ve İzin Yapılandırmaları | Dahil |
| Özel Fonksiyon/Bileşen Yeniden Kodlama Talepleri | [ek ücret durumu] |
Signalique'in sunduğu WordPress Virüs Temizleme Hizmeti, tekil site için 3.500,00 TL [KDV durumu] sabit bedelle sunulmakta olup süreç [teslim süresi] içerisinde tamamlanarak tarafınıza teslim edilir.
Bu Hizmet Kimler İçin Uygundur?
- Sitenin beyaz ekran vermesi (White Screen of Death) veya veritabanı bağlantı hatası alması durumunda,
- Yönetim paneline giriş yetkisi kaybedildiğinde veya şifre sıfırlama mekanizması çalışmadığında,
- Google arama sonuçlarında aldatıcı site veya spam yönlendirme uyarısı ile karşılaşıldığında,
- Hosting firması tarafından "hesabınız zararlı yazılım içeriyor" gerekçesiyle erişimi durdurulan siteler için doğrudan kurtarma çözümü sağlar.
Sık Sorulan Sorular
WordPress sitem hacklendiyse ne yapmalıyım, önce neyi kontrol etmeliyim?
İlk olarak paniğe kapılmadan sitenizin cPanel veya Plesk üzerinden tam dosya ve veritabanı yedeğini alın. Ardından wp-config.php ve .htaccess dosyalarının içeriğini kontrol edin, yönetim panelindeki kullanıcılar listesinde yetkisiz bir yönetici hesabı açılıp açılmadığını denetleyin ve harici trafiği geçici olarak durdurun.
Eklenti ile virüs taraması yapmak yeterli mi?
Hayır, güvenlik eklentileri bilinen imza veritabanlarına göre tarama yapar. Özel olarak gizlenmiş (obfuscated) kodları, dinamik veritabanı enjeksiyonlarını ve sunucu düzeyindeki sahte crontab görevlerini tespit etmekte yetersiz kalırlar. Kalıcı bir temizlik için dosya sistemi ve veritabanının manuel denetimden geçmesi gerekir.
Hacklenen bir WordPress sitesi temizlendikten sonra Google uyarısı ne kadar sürede kalkar?
Temizlik eksiksiz tamamlanıp Google Search Console üzerinden "İnceleme İste" talebi gönderildikten sonra, Google botları siteyi yeniden tarar. Genellikle 24 ila 72 saat içerisinde kırmızı güvenlik uyarısı arama sonuçlarından ve tarayıcılardan tamamen kaldırılır.
Temizlik sırasında verilerim (yazılar, siparişler) silinir mi?
Hayır, profesyonel temizlik sürecinde yazılarınız, sayfalarınız, ürün kataloglarınız ve WooCommerce sipariş geçmişiniz korunur. Yalnızca bu tablolara sızmış olan yabancı script etiketleri, gizli iframe'ler ve yönlendirme kodları cerrahi yöntemlerle ayıklanır. İşleme başlamadan önce alınan ham yedek ise veri güvenliğinizi garanti altına alır.