WPScan, güvenlik uzmanları ve blog yöneticileri için sitelerinin güvenliğini test etmek için yazılmış, ticari olmayan, ücretsiz bir WordPress güvenlik tarayıcısıdır. İlk sürümü 16 Haziran 2011’de yayınlanan wpscan Ruby dilinde yazılmıştır.
Tam kullanıcı belgeleri burada bulunabilir;
1 |
https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation |
WPScan neyi kontrol edebilir?
- Yüklü WordPress sürümü ve ilişkili güvenlik açıkları
- Hangi eklentiler yüklü ve ilişkili güvenlik açıkları
- Hangi temaların yüklü olduğu ve ilişkili güvenlik açıkları
- Kullanıcı adı numaralandırma
- Parola kaba zorlama yoluyla zayıf parolaları olan kullanıcılar
- Yedeklenmiş ve herkesin erişimine açık wp-config.php dosyaları
- Herkese açık olabilecek veritabanı dökümleri
- Hata günlükleri eklentiler tarafından ifşa edilirse
- Medya dosyası numaralandırma
- Savunmasız Timthumb dosyaları
- WordPress benioku dosyası varsa
- WP-Cron etkinse
- Kullanıcı kaydı etkinse
- Tam Yolu Göster
- Dizin listesini yükle
- Ve daha fazlası…
Yapısal Özellikleri
Veritabanı ~/.wpscan/db konumunda bulunur
Tespit kipleri
WordPress sürümünü, kurulu eklentileri veya kurulu temaları tespit ederken, üç farklı “kip” kullanabilirsiniz. Varsayılan kip mixed’dır:
- passive
- aggressive
- mixed
En fazla sonuç için “mixed” kipi kullanın. Ancak, sunucunun çok sayıda isteği karşılayamayacağından endişeleniyorsanız “pasif” kipi kullanın.
Tarama seçenekleri
WPScan, eklentiler, temalar, kullanıcı adları, yedeklenmiş dosyalar wp-config.php dosyaları, Timthumb dosyaları, veritabanı dışa aktarımları ve daha fazlası gibi uzak bir WordPress uygulamasından çeşitli şeyleri tarayabilir. WPScan’ın tarama yeteneklerini kullanmak için -e seçeneğini sağlayın.
Aşağıdaki tarama seçenekleri mevcuttur:
- vp (Zayıf eklentiler)
- ap (Tüm eklentiler)
- p (Popüler eklentiler)
- vt (Hassasiyete açık temalar)
- at (Tüm temalar)
- t (Popüler temalar)
- tt (Timparmaklar)
- cb (Yedeği yapılandırma)
- dbe (db dışa aktarma)
- u (Kullanıcı kimlikleri aralığı. ör.: u1-5)
- m (Medya Kimlikleri aralığı. ör. m1-15)
-e bayrağına herhangi bir seçenek sağlanmazsa, varsayılan değer şu olacaktır: vp,vt,tt,cb,dbe,u,m
API Token
Bulunan zafiyetin detaylarını görüntülemek için WordPress Vulnerability Database API’ı ücretsiz olarak kullanabilirsiniz. Bunun için bir token kullanabilirsiniz. Token’ı almak için https://wpscan.com adresinde bir hesap açmanız gerekir.
wpscan, WordPress sürümü için bir API isteği, kurulu eklenti başına bir istek ve kurulu tema başına bir istek yapar. Ortalama olarak, bir WordPress web sitesinde 22 yüklü eklenti bulunur. Ücretsiz plan, tüm WordPress web sitelerinin yaklaşık %50’sini kapsamalıdır.
Kullanım örnekleri
wpscan veritabanını günceller:
1 |
wpscan --update |
Tüm eklentileri bilinen güvenlik zafiyetleri için tarar:
1 |
wpscan --url example.com -e vp --plugins-detection mixed --api-token YOUR_TOKEN |
wpscan veritabanındaki tüm eklentiler için tarar (çok fazla vakit alabilir):
1 |
wpscan --url example.com -e ap --plugins-detection mixed --api-token YOUR_TOKEN |
Kaba kuvvet parola kırma saldırısı gerçekleştirmek için:
1 |
wpscan --url example.com -e u --passwords /path/to/password_file.txt |
Sadece kullanıcı hesaplarını taramak için
1 |
wpscan --url example.com --enumerate u |
Tarama yaparken kullanılacak tarayıcı kimliğini rasgele seçmek basit WAF (Web Application Firewall)’ları atlatmak için işe yarayabilir. Rasgele user-agent ile taramak için
1 |
wpscan --url example.com --api-token YOUR_TOKEN --plugins-detection mixed --random-user-agent -v |
wpscan taranacak sitenin wordpress kullanmadığını söyleyerek taramayı sonladırıyor fakat siz wordpress olduğunu düşünüyorsanız taramayı zorlamak için:
1 |
wpscan --url example.com / --api-token YOUR_TOKEN --plugins-detection mixed --random-user-agent -v --force |
Bu, hız ve doğruluk arasında iyi uzlaşmayla varsayılan seçenekleri kullanarak blogu tarar. Örneğin, eklentiler pasif olarak kontrol edilirken versiyonları karışık algılama moduyla (pasif + agresif olarak) kontrol edilir. Diğer ilginç bulgularla birlikte potansiyel yapılandırma yedekleme dosyaları da kontrol edilecektir.
1 |
wpscan --url example.com |
Şu 3 seçeneği (-random-user-agent –detection-mode passive –plugins-version-detection passive) birlikte uygulamak için –stealthy anahtarını tek başına kullanabilirsiniz.
1 |
wpscan --url example.com --stealthy |
Zafiyet keşfedilmiş eklenti ve temalara karşı (vp,vt) kapsamlı (pasif+agresif) bir tarama gerçekleştirmek için:
1 |
wpscan --url http://kadikoyparksuites.org --force --random-user-agent --detection-mode mixed --enumerate vp,vt,tt,cb,dbe,u,m --api-token API_TOKEN |
Tüm tema ve eklentilere karşı kapsamlı (pasif+agresif) tarama gerçekleştirmek için:
1 |
wpscan --url http://kadikoyparksuites.org --force --random-user-agent --detection-mode mixed --enumerate p,t,tt,cb,dbe,u,m --api-token API_TOKEN |
Zaafiyetten Yararlanmak
wpscan bir eklenti ya da temada zafiyet tespit ettiyse, exploit kodunu bulmak için searchsploit aracını aşağıdaki gibi kullanabilirsiniz. Sağ sütunda exploit kodlarının patikası yer alır.

Daha fazlası
Bir bir diğer tarama aracı için CMSScan’e göz atabilirsiniz:
https://github.com/ajinabraham/CMSScan
Eklentilerde açık aramak için kullanılabilecek metodolojiler için şu adrese göz atabilirsiniz:
https://wpscan.com/howto-find-wordpress-plugin-vulnerabilities-wpscan-ebook.pdf
https://github.com/wpscanteam/wpscan/wiki/WordPress-Plugin-Security-Testing-Cheat-Sheet
