Kullanıcılar ekranında hiç tanımadığınız bir hesap görmek, WordPress sitelerinde en sık rastlanan hack belirtilerinden biridir. Ama her bilinmeyen yönetici hesabı saldırgan değildir ve acele silmek hem kanıtı yok eder hem de saldırganın ikinci bir kapısını fark etmenizi engeller. Bu yazıda WordPress bilinmeyen yönetici hesabı durumunda hesabı nasıl ayırt edeceğinizi, nasıl bulacağınızı ve güvenle nasıl kapatacağınızı adım adım anlatıyoruz.
Bilinmeyen yönetici hesabı gerçekten kötü niyetli mi?
Her zaman değil. Önce hesabın meşru bir kaynağı olup olmadığını elemelisiniz. Aşağıdaki tablo, ilk bakışta ayırt etmenize yardım eder. Tablo ipucu verir, hüküm vermez: emin olamadığınız her hesabı şüpheli kabul edin.
| Olası kaynak | Ne bakmalı | Genel işaret |
|---|---|---|
| Ekip üyesi veya eski çalışan | Kayıt tarihi ve e-posta adresi ekibinizde birine ait mi | Kurumsal e-posta, tanıdığınız isim |
| Ajans, geliştirici veya destek | Size bir hesap açıldığı söylendi mi | Tarihi ve talebi hatırlıyorsunuz |
| Eklenti ya da hosting aracı | Kurulu bir yönetim, bakım ya da destek aracı kendi kullanıcısını oluşturmuş olabilir | Eklenti ya da firma adıyla ilgili kullanıcı adı |
| Saldırgan | Rastgele kullanıcı adı, tek kullanımlık e-posta, bilmediğiniz tarihte kayıt | Yeni açıldı, kimse hatırlamıyor, siz oluşturmadınız |
Kayıt tarihini bir olayla eşleştirmek çoğu zaman cevabı verir. Hesabın açıldığı gün bir eklenti kurduysanız ya da güncellediyseniz, hesap o eklentiden gelmiş olabilir. Hesabın açıldığı saatte sitenizde yeni PHP dosyaları ya da değişen dosyalar varsa, ciddi bir olay olduğunu düşünmelisiniz. Hack olduğundan şüpheleniyorsanız hacklenen WordPress sitesi için ilk saat planına geçin.
Bilinmeyen yönetici hesabını nasıl bulurum?
Yönetici panelinde Kullanıcılar ekranında "Yönetici" rolü filtresini seçin ve kayıt tarihine bakın. WP-CLI erişiminiz varsa daha hızlısı budur:
wp user list --role=administrator --skip-plugins --skip-themes --fields=ID,user_login,user_email,user_registeredÇıktıda tanımadığınız her satırın kullanıcı adını, e-posta adresini ve kayıt tarihini not alın. Bu bilgiler hem karar vermeniz hem de olayın zaman çizelgesini kurmanız için gereklidir.
Panelde görünmeyen hesaplar
Bazı zararlı yazılımlar, kendi hesabını Kullanıcılar listesinden gizleyecek kod ekler. Panel temiz görünüyorsa ve yine de şüpheniz varsa, listeyi veritabanından doğrudan sorgulayıp panel ya da wp user list çıktısıyla karşılaştırın. Tablo ön ekiniz wp_ değilse komutta kendi ön ekinizi kullanın (wp-config.php içindeki $table_prefix değeri):
wp db query "SELECT ID, user_login, user_email, user_registered FROM wp_users ORDER BY user_registered DESC;"
wp db query "SELECT user_id FROM wp_usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%administrator%';"İkinci sorgu, yönetici yetkisine sahip tüm kullanıcı kimliklerini verir. Veritabanı sorgusunda yönetici olarak çıkan ama Kullanıcılar ekranında görünmeyen bir hesap varsa, hesap gizleniyor demektir. pre_user_query kancasıyla gizleme yapan zararlı kod WP-CLI çıktısından da hesabı saklayabilir, bu yüzden komutta --skip-plugins kullanılır ve asıl karşılaştırma doğrudan veritabanı sorgusuyla yapılır. WP-CLI yoksa aynı sorguları hostingin phpMyAdmin ekranında çalıştırabilirsiniz.
Bu hesap neden oluşmuş olabilir?
Saldırganlar genellikle iki yoldan yönetici hesabı elde eder. Birincisi, bir eklenti ya da temadaki yetki yükseltme veya kullanıcı oluşturma zafiyetidir. Böyle bir açıkta saldırgan giriş yapmadan yönetici hesabı açabilir. Güncellenmemiş eklentiler bu yüzden en büyük risk kaynağıdır. İkincisi, zayıf ya da başka bir sızıntıda ele geçirilmiş bir şifredir: saldırgan mevcut bir yönetici hesabına girer ve kendi hesabını ekler.
Yeni hesabı bulmak olayı çözmez, yalnızca belirtiyi gösterir. Hesabı silip girişi sağlayan açığı kapatmazsanız saldırgan yenisini açar. Bu yüzden eklenti ve tema güncellemelerini, kullanılmayan eklentilerin silinmesini ve şifre güvenliğini sürecin parçası sayın. Genel bir liste için WordPress güvenlik kontrol listesine bakabilirsiniz.
Hesabı silmeden önce ne yapmalıyım?
Silmeden önce kanıtı koruyun ve içerik sahipliğini düzenleyin. Acele ederseniz olayın nasıl geliştiğini kanıtlayan veriyi kaybedersiniz. Şu sırayı izleyin:
- 1Yedek alın. Dosyalar ve veritabanı, hesap hâlâ varken. Bu yedek temiz değildir, geri yüklemek için değil inceleme içindir.
- 2Bilgileri kaydedin. Kullanıcı adı, e-posta, kayıt tarihi ve varsa son giriş zamanı. Sunucu erişim günlüklerinde hesabın giriş yaptığı IP adreslerini hostingden isteyin.
- 3Hesabın içeriği olup olmadığına bakın. Meşru bir ekip üyesinin hesabıysa silmek yazılarını ve sayfalarını sahipsiz bırakır. Silme sırasında içerikleri başka bir kullanıcıya devredin.
- 4Oturumunu sonlandırın ve yetkisini düşürün. Tereddüt ediyorsanız hesabı hemen silmek yerine önce rolünü düşürebilirsiniz.
# Hesabın rolünü düşürün (önce kanıtı alın)
wp user update KULLANICI_ID --role=subscriber
# Açık oturumlarını sonlandırın
wp user session destroy KULLANICI_ID --all
# Hesabı silin ve içeriği başka bir kullanıcıya devredin
wp user delete KULLANICI_ID --reassign=BASKA_KULLANICI_IDKullanıcıyı panelden silerken WordPress, içeriklerini kime atamak istediğinizi sorar. Bu seçimi atlamayın, sahipsiz kalan içerik yönetimi zorlaştırır.
Saldırgan başka hangi kalıcılık araçlarını bırakmış olabilir?
Hesabı silmek yetmez, çünkü saldırgan geri dönmek için birden fazla yol bırakır. Hesap, saldırganın bıraktığı giriş kapılarından yalnızca biri olabilir. Sırayla şunlara bakın:
- Uygulama şifreleri. WordPress 5.6 ile gelen uygulama şifreleri, normal şifrenizi bilmeden REST API üzerinden erişim sağlar. Her yönetici hesabının profil sayfasında listelenir. Komutla:
wp user application-password list KULLANICI_ID. Tanımadığınız bir kayıt varsa silin. - Mevcut hesaplarda yapılan değişiklikler. Saldırgan mevcut yönetici hesaplarından birinin şifresini ya da e-postasını değiştirmiş olabilir. Tüm yöneticilerin e-posta adreslerini kontrol edin.
- Must-Use eklentiler.
wp-content/mu-pluginsklasöründeki dosyalar her istekte otomatik çalışır ve normal eklenti ekranından devre dışı bırakılamaz. Komut:wp plugin list --status=must-use. Kendiniz eklemediyseniz ve hostinginiz eklemediyse inceleyip kaldırın. - Zamanlanmış görevler.
wp cron event listçıktısında tanımadığınız bir olay, silinen hesabı geri oluşturabilir. - Değişmiş dosyalar. Yeni PHP dosyaları ve değiştirilmiş tema dosyaları için zararlı kod taraması yöntemlerini uygulayın, çekirdek dosyalarını
wp core verify-checksumsile doğrulayın.
wp config shuffle-salts ile oturumları düşürün, bu aktif erişimi keser. (2) Kalıcılık noktalarını (uygulama şifreleri, mu-plugins, zamanlanmış görevler, arka kapılar, yeni yöneticiler) temizleyin. (3) Temizlik bitince şifreleri ve tuzları bir kez daha yenileyin, çünkü arka kapı yeni şifreleri de görmüş olabilir.Sonrasında şifreleri ve anahtarları nasıl yenilemeliyim?
Bu, yukarıdaki sıranın üçüncü adımıdır: temizlik bittikten sonra şifreleri ve tuzları bir kez daha yenileyin. Tüm yönetici ve editör şifrelerini değiştirin ve iki adımlı doğrulamayı açın. Hosting paneli, FTP ve veritabanı şifrelerini de yenileyin. Giriş çerezlerini geçersiz kılmak için güvenlik anahtarlarını ve tuzları değiştirin:
wp config shuffle-saltsWP-CLI dokümantasyonu bu komutun wp-config.php içindeki tuzları yenilediğini ve kullanıcıların bir sonraki ziyarette yeniden giriş yapmasını gerektirdiğini belirtir. Bunu yaptıktan sonra siz de dahil herkes yeniden giriş yapar. Tam temizlik adımları için hacklenmiş site rehberine bakabilirsiniz.
Bundan sonra yeni yönetici hesaplarını nasıl izlerim?
Yeni yönetici hesabını erken fark etmek, hasarı küçültür. Birkaç basit alışkanlık yeter: yönetici sayısını en aza indirin (gerçekten yönetici yetkisine ihtiyacı olmayan kullanıcıya editör ya da yazar rolü verin), ayda bir yönetici listesini ve uygulama şifrelerini gözden geçirin, yeni kullanıcı kaydı e-postalarını ve aktivite günlüğünü kontrol edin.
Sık sorulan sorular
Bilinmeyen yönetici hesabı her zaman hack demek mi?
Hayır. Ekip üyeleri, ajanslar, destek araçları ya da kurulu eklentiler yönetici hesabı oluşturabilir. Ama kaynağını doğrulayamadığınız her yönetici hesabını güvenlik olayı gibi ele alın ve siteyi taratın; hangi aracın neyi bulduğunu güvenlik taraması için hangi araç yazısında karşılaştırdık.
Hesabı silersem site bozulur mu?
Hesabın yazıları veya sayfaları varsa, silerken içerikleri başka bir kullanıcıya devretmezseniz sahipsiz kalırlar. Hesap bir eklentiye bağlıysa o eklenti hata verebilir. Önce rolünü düşürüp bir süre gözlemlemek riski azaltır.
Yönetici hesabını panelden göremiyorum ama şüpheliyim, ne yapmalıyım?
Veritabanındaki wp_users ve wp_usermeta tablolarını doğrudan sorgulayın. Panelde görünmeyen ama veritabanında yönetici yetkisi olan bir hesap varsa, sitede gizleme kodu çalışıyor demektir ve tam temizlik gerekir.
Şifre sıfırlama e-postası gelirse ne yapmalıyım?
Siz istemediyseniz tıklamayın. Birisi hesabınıza erişmeye çalışıyor olabilir. Şifrenizi değiştirin, iki adımlı doğrulamayı açın ve yönetici listesini kontrol edin.
Yeni yönetici hesaplarını elle aramak zorunda kalmayın
Watch Your WP, bağlı sitelerinizde yeni yönetici hesabı, rol yükseltme ve yeni uygulama şifresi oluştuğunda panelde işaretler. Tamamen ücretsizdir, sınırsız site için kredi kartı istemez.
Kaynaklar
- WordPress.org: FAQ My site was hacked
- WP-CLI: wp user application-password
- WP-CLI: wp config shuffle-salts
- WP-CLI: wp core verify-checksums

Erdinç
Watch Your WP'yi geliştiriyor. WordPress bakım, güvenlik ve site yönetimi deneyiminden yazıyor.
LinkedIn
