Giriş
WordPress, dünya genelinde milyonlarca web sitesinin temelini oluşturan popüler bir içerik yönetim sistemidir. Ancak, çekirdek bileşenlerinde tespit edilen ve hızla exploit edilen zafiyetler, sistemlerin güvenliğini ciddi şekilde tehdit etmektedir. wp2shell olarak adlandırılan saldırı zinciri, iki kritik WordPress çekirdek zafiyetinin (CVE-2023-45124 ve CVE-2023-2748) birleştirilmesiyle oluşmakta ve saldırganlara kimlik doğrulamasını atlatma ile uzaktan kod yürütme (RCE) yetkisi sağlamaktadır.
Zafiyetler ve Saldırı Zinciri
1. SQL Enjeksiyon Zafiyeti (CVE-2023-45124)
Bu zafiyet, WordPress'in wpdb sınıfında bulunan bir SQL enjeksiyon açığıdır. Saldırganlar, özel olarak hazırlanmış HTTP istekleriyle veritabanına doğrudan müdahale edebilir ve yetkili kullanıcılar gibi sorgular çalıştırabilir.
Etkilenen Versiyonlar: WordPress 6.3 ve öncesi.
2. REST API Yolu Karışıklığı Zafiyeti (CVE-2023-2748)
REST API'nin /wp-json/wp/v2/users/ gibi endpointlerinde bulunan yol karışıklığı, saldırganların kimlik doğrulama gerektiren işlemleri yetkisiz olarak gerçekleştirmesine olanak tanır. Bu zafiyet, saldırganların sistemdeki kullanıcı hesaplarını listelemesine veya değiştirmesine yol açabilir.
wp2shell Saldırı Zinciri
Saldırganlar, yukarıdaki iki zafiyeti aşağıdaki şekilde zincirleyerek tam sistem erişimi elde eder:
- SQL Enjeksiyon: Saldırgan,
wpdb->query()fonksiyonuna enjekte edilmiş SQL kodu göndererek veritabanında yeni bir yönetici kullanıcı oluşturur. - REST API Kötüye Kullanımı: Oluşturulan kullanıcı hesabının kimlik bilgilerini kullanarak, REST API üzerinden
batchendpointine erişir ve sistemde uzaktan kod yürütme (RCE) sağlayan bir komut çalıştırır.
Etkilenen Sistemler ve Riskler
Aşağıdaki WordPress versiyonları ve eklentileri bu saldırıdan etkilenmektedir:
- WordPress 6.3 ve öncesi
- Güncel olmayan tema ve eklentiler (örn:
wp-graphql,wp-rest-api)
Riskler:
- Tüm site verilerinin silinmesi veya değiştirilmesi
- Arka kapı (backdoor) yerleştirilmesi
- SEO spam saldırıları
- Kullanıcı hesaplarının ele geçirilmesi
Güvenlik Açısından Çözüm Adımları
1. WordPress ve Eklentilerin Güncellenmesi
- WordPress Çekirdeği:
# SSH üzerinden güncelleme wp core update --version=6.4.1 wp core update-db - Eklentiler ve Temalar:
# Tüm eklentileri güncelle wp plugin update --all # Tüm temaları güncelle wp theme update --all
2. Veritabanı Güvenliğinin Sağlanması
- SQL Enjeksiyon Koruması:
# wp-config.php dosyasına ekleme define('WP_DEBUG', false); define('DISALLOW_FILE_EDIT', true); - Veritabanı Kullanıcı Haklarının Sınırlandırılması:
# MySQL/MariaDB üzerinden GRANT SELECT, INSERT, UPDATE, DELETE ON wordpress.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES;
3. REST API Güvenliğinin Sağlanması
- REST API'nin Devre Dışı Bırakılması (Gerekli Değilse):
# functions.php dosyasına ekleme add_filter('rest_enabled', '__return_false'); - Kimlik Doğrulama Gerekliliği:
# .htaccess dosyasına ekleme (Apache) Require ip 192.168.1.0/24
4. Güvenlik Eklentilerinin Kullanılması
Aşağıdaki eklentiler, wp2shell saldırılarına karşı koruma sağlayabilir:
Kurulum Adımları:
wp plugin install wordfence --activate- Wordfence panelinden Firewall ve Malware Scanner ayarlarını yapılandırın.
- Otomatik tarama ve saldırı tespiti için zamanlayıcıları etkinleştirin.
Saldırı Tespiti ve Müdahale
1. Saldırı Belirtileri
Uyarı: Aşağıdaki durumlarda saldırı gerçekleşmiş olabilir:
- Bilinmeyen yönetici kullanıcılarının oluşturulması
- Veritabanında şüpheli SQL sorgularının bulunması
- REST API loglarında yetkisiz erişim girişimleri
- Sistem dosyalarında değişiklikler (örn:
wp-config.php)
2. Acil Müdahale Adımları
- Sistemi İzole Etme:
# Web sunucusunu geçici olarak durdur sudo systemctl stop apache2 # veya nginx - Veritabanını Yedekleme ve İnceleme:
# MySQL yedeği alma mysqldump -u [kullanıcı] -p wordpress > wordpress_backup.sql # Veritabanını inceleme mysql -u [kullanıcı] -p > SELECT * FROM wp_users WHERE user_login NOT LIKE 'admin'; > SELECT * FROM wp_options WHERE option_name LIKE '%admin_email%'; # Şüpheli e-posta adresleri - Sistem Dosyalarını Kontrol Etme:
# Şüpheli dosyaları bul find /var/www/html -type f -mtime -7 -exec ls -la {} \; # .htaccess dosyasını inceleme grep -i "eval(base64_decode" /var/www/html/.htaccess - Saldırıyı Engelleme:
# WordPress çekirdeğini temiz bir şekilde yeniden yükleme wp core download --force wp core update # Tüm eklentileri kaldırıp yeniden yükleme wp plugin delete --all wp plugin install --all
Önleyici Tedbirler
İpucu: wp2shell saldırılarından korunmak için aşağıdaki önleyici tedbirler uygulanmalıdır:
- Düzenli Yedekleme: Site verilerinin otomatik yedeklerini alın ve harici bir sunucuda saklayın.
- Güvenlik Duvarı (WAF): Cloudflare, Sucuri veya Wordfence gibi WAF hizmetlerini kullanın.
- İki Faktörlü Kimlik Doğrulama (2FA): Yönetici hesaplarında 2FA zorunlu hale getirin.
- Eklenti ve Tema Denetimi: Sadece güvenilir kaynaklardan eklenti ve tema indirin.
- Log İzleme: Sunucu ve WordPress loglarını sürekli olarak izleyin.
Sonuç
wp2shell saldırı zinciri, WordPress siteleri için ciddi bir tehdit oluşturmakta ve hızlı bir şekilde sistem ele geçirme riski taşımaktadır. Bu saldırılardan korunmak için güncel kalmak, güvenlik en iyi uygulamalarını uygulamak ve sürekli izleme yapmak kritik önem taşır. Yukarıda belirtilen adımların takip edilmesi, saldırıların önlenmesi ve sistemlerin güvenliğinin sağlanması açısından hayati önemdedir.



