Hacklenmiş siteyi temizleme ve giriş noktasını kapatma

Hacklenen siteyi temizleme konusunda pratik eğitim: Sunucuyu izole etmekten güvenlik açığını kapatmaya kadar. Gerçek komutlar, log inceleme ve yeniden hacklenmeyi önleme yöntemlerini öğrenin.

6 dk Güncellendi 8 Oct 2026

Hacklenen Siteyi Temizleme; Panikten Doğru Adıma

Sitenizin hacklendiğini fark ettiğinizde ilk tepki genellikle panik ve virüslü dosyaları silmek olur. Ancak plansız ilerlerseniz hem delilleri yok edersiniz hem de büyük ihtimalle sızma yolunu açık bırakırsınız. Hacklenen siteyi temizleme sırasıyla yapılması gereken sistematik bir süreçtir: izole etme, yedekleme, temizleme, şifreleri değiştirme ve son olarak güvenlik açığını kapatma. Bu makalede tam olarak bu yolu pratik komutlar ve gerçek örneklerle izliyoruz.

Önemli not: Siteniz paylaşımlı hostingdeyse ve aynı sunucuda başka siteler de varsa, karşılıklı bulaşma riski yüksektir. Bu durumda önce hosting destek ekibiyle koordine olun ve mümkünse siteyi izole bir ortama (VPS veya ayrı dizin) taşıyın. ServerNet de bu tür durumlarda iyi bir seçenek olabilecek güvenli barındırma hizmetleri sunar, ancak bu makalenin odak noktası temizleme sürecinin kendisidir.

Adım 1: İzole Etme ve Erişimi Kesme

Bu aşamanın amacı bulaşmanın yayılmasını önlemek ve delilleri korumaktır. Siteniz SSH erişimli bir Linux sunucusundaysa şu komutları çalıştırın:

# Web erişimini site dizinine kapat
sudo a2dissite your-site.conf
sudo systemctl reload apache2

# veya nginx kullanıyorsanız:
sudo rm /etc/nginx/sites-enabled/your-site
sudo systemctl reload nginx

SSH erişiminiz yoksa (paylaşımlı hosting), cPanel veya DirectAdmin üzerinden siteyi geçici olarak devre dışı bırakın veya index yerine bir maintenance.html sayfası koyun. Bu, ziyaretçilerin ve arama motorlarının virüslü içeriğe erişmesini engeller.

İlk İnceleme: Ne Değişti?

Herhangi bir işlem yapmadan önce dosya değişiklik geçmişini inceleyin. Git kullanıyorsanız:

cd /var/www/your-site
git status
git diff --stat

Git yoksa, yakın zamanda değiştirilmiş dosyaları bulun:

find /var/www/your-site -type f -mtime -7 -exec ls -la {} \;

Bu çıktı, hacklenme zaman aralığında hangi dosyaların değiştiğini gösterir. Genellikle yükleme dizinlerindeki veya temalardaki .php dosyaları ana hedeftir.

Yaygın hata: Birçok kişi virüslü dosyaları hemen siler. Bu yanlıştır; çünkü arka kapı (backdoor) dosyaları başka yerlere kopyalanmış olabilir ve siz sadece bir kopyasını silersiniz. Önce değişikliklerin tam listesini alın, sonra temizleyin.

Adım 2: Virüslü Siteden Yedek Alma

Garip görünebilir, ancak virüslü siteden yedek almalısınız. Neden? Çünkü bu yedek, zararlı yazılımı analiz etmek ve saldırı desenini belirlemek için gereklidir. Daha sonra hacker'ın veritabanına eriştiğini fark ederseniz, bu yedek işinize yarar.

# Dosyaların tam yedeği
tar -czf /backup/compromised-site-$(date +%Y%m%d).tar.gz /var/www/your-site

# Veritabanı yedeği (MySQL örneği)
mysqldump -u root -p your_database > /backup/db-compromised-$(date +%Y%m%d).sql

Bu yedekleri sunucu dışında güvenli bir yerde saklayın (örneğin kişisel bilgisayarınızda veya bulutta). Temizlikten sonra analiz gerekiyorsa bu dosyaları kullanırsınız.

Adım 3: Dosyaları ve Veritabanını Temizleme

Şimdi asıl iş zamanı. Hacklenen siteyi temizleme iki bölümden oluşur: dosyalar ve veritabanı.

Dosyaları Temizleme

En iyi yöntem orijinal sürümle karşılaştırmaktır. WordPress kullanıyorsanız, çekirdeği resmi sürümle karşılaştırın:

# Sitenizle aynı sürümdeki WordPress'i indirin
wget https://wordpress.org/wordpress-6.5.3.tar.gz
tar -xzf wordpress-6.5.3.tar.gz

# Çekirdek dosyalarını karşılaştırın
diff -r wordpress/ /var/www/your-site/wp-admin/ | head -50
diff -r wordpress/ /var/www/your-site/wp-includes/ | head -50

Karşılaştırmada farklı olan veya orijinal sürümde bulunmayan dosyalar şüphelidir. Temalar ve eklentiler için de aynı işlemi resmi sürümlerle yapın.

Yaygın şüpheli dosyalar:

  • wp-content/uploads/ — orada olmaması gereken PHP dosyaları
  • wp-content/mu-plugins/ — panelde görünmeyen gizli eklentiler
  • wp-config.php — dosya sonundaki ekstra kodlar
  • .htaccess — zararlı yeniden yazma kuralları

Kesinlikle virüslü dosyaları silmek için:

# Yükleme klasöründeki PHP dosyalarını silme (örnek)
find /var/www/your-site/wp-content/uploads -name "*.php" -delete

# Zararlı yazılım belirtisi olan eval ve base64 dosyalarını silme
grep -rl "eval(base64_decode" /var/www/your-site --include="*.php" | xargs rm -f
Uyarı: grep ile silmeden önce çıktıyı mutlaka inceleyin. Bazen yasal eklentiler de base64_decode kullanır. Önce dosya listesini görün, sonra karar verin.

Veritabanını Temizleme

Hacker'lar genellikle zararlı kodları tema seçeneklerine veya yazı içeriklerine enjekte eder. Bu sorgularla iz aranır:

-- İçerikteki zararlı script'leri arama
SELECT ID, post_title, post_content 
FROM wp_posts 
WHERE post_content LIKE '%eval(%' 
   OR post_content LIKE '%base64_decode(%'
   OR post_content LIKE '%%';

-- Tema seçeneklerini kontrol etme
SELECT option_name, option_value 
FROM wp_options 
WHERE option_name LIKE '%theme%' 
   OR option_name LIKE '%widget%';

Virüslü içerik bulursanız, sağlıklı içerikle değiştirin veya yazıyı silin. Tema seçenekleri için genellikle en iyisi temayı varsayılana sıfırlamaktır.

Adım 4: Tüm Şifreleri Değiştirme

Dosyaları temizledikten sonra tüm şifrelerin ele geçirildiğini varsaymalısınız. Şunları mutlaka değiştirin:

  1. FTP/SFTP ve SSH şifreleri
  2. Veritabanı şifresi (ve wp-config.php güncellemesi)
  3. Tüm kullanıcılar için WordPress panel şifresi
  4. Alan adıyla ilişkili e-posta şifreleri (ör. admin@yourdomain.com)
  5. API anahtarları ve harici servis token'ları

MySQL'de veritabanı şifresini değiştirmek için:

ALTER USER 'wp_user'@'localhost' IDENTIFIED BY 'NewStrongPassword!2024';
FLUSH PRIVILEGES;

Ardından wp-config.php içindeki DB_PASSWORD değerini güncelleyin.

Ayrıca WordPress güvenlik anahtarlarını değiştirin. Yeni anahtarları şu adresten alın: https://api.wordpress.org/secret-key/1.1/salt/ ve AUTH_KEY'den NONCE_KEY'e kadar olan değerleri değiştirin.

Adım 5: Sızma Yolunu Kapatma

Güvenlik açığını kapatmadan temizlik yapmak faydasızdır. Hacker'lar genellikle şu yollardan girer:

1. Eski Eklentiler ve Temalar

Eski eklentilerdeki bilinen güvenlik açıkları en yaygın sızma yoludur. Tüm eklentileri ve temaları son sürüme güncelleyin. Artık desteklenmeyen eklentileri kaldırın.

2. Zayıf Şifreler

Site yönetici şifreniz admin123 ise hacklenmenize şaşırmamak gerekir. Güçlü şifreler kullanın ve iki faktörlü kimlik doğrulamayı (2FA) etkinleştirin.

3. wp-admin'e Yetkisiz Girişler

wp-login.php erişimini sınırlayın. .htaccess içinde yalnızca belirli IP'lere izin verebilirsiniz:

<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.100
    Allow from 203.0.113.5
</Files>

Sabit IP'niz yoksa, giriş denemelerini sınırlayan bir eklenti kullanın.

4. Logları İnceleme

Saldırı desenini bulmak için sunucu loglarını inceleyin:

# Apache erişim logunu kontrol etme
grep "wp-login.php" /var/log/apache2/access.log | tail -20

# Yükleme klasöründeki PHP dosyalarına POST isteklerini arama
grep "POST.*uploads.*\.php" /var/log/apache2/access.log | tail -20

Bu loglar hacker'ın hangi noktadan girdiğini gösterir. Belirgin bir desen görürseniz (örneğin belirli bir dosyaya çok sayıda istek), o noktayı kapatın.

Sitenin Geri Yüklenmesi ve Sürekli İzleme

Tam temizlik ve güvenlik açığını kapattıktan sonra siteyi yeniden etkinleştirin. Ancak iş bitmedi. Birkaç hafta boyunca logları ve dosyaları izleyin:

# Günlük yeni dosya kontrolü
find /var/www/your-site -type f -mtime -1 -exec ls -la {} \;

# Ana dosyalardaki değişiklikleri kontrol etme
md5sum /var/www/your-site/wp-config.php

Ayrıca dosyaları tarayan ve değişiklikleri raporlayan bir güvenlik eklentisi (Wordfence veya Sucuri gibi) kurun.

Önemli not: Tüm arka kapıları bulduğunuzdan emin değilseniz, en iyisi WordPress'i sıfırdan yeniden kurmak ve içeriği temizlenmiş yedekten aktarmaktır. Bu zaman alır ancak daha güvenlidir.

Özet

Hacklenen siteyi temizleme acele yapılmaması gereken çok aşamalı bir süreçtir. Doğru sıralama: izole etme, yedek alma, dosyaları ve veritabanını temizleme, tüm şifreleri değiştirme ve son olarak güvenlik açığını kapatma. Her adımı doğru yaparsanız, hacker'ın geri dönme olasılığı minimuma iner. Unutmayın ki güvenlik sürekli bir süreçtir, tek seferlik bir eylem değildir. Sitenizi güncel tutun, güçlü şifreler kullanın ve logları düzenli olarak kontrol edin.

Bu sayfa yardımcı oldu mu?