Wordpress
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
Yüklenen dosyalar şuraya gider: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Tema dosyaları /wp-content/themes/ içinde bulunabilir, bu nedenle RCE elde etmek için temanın bazı php dosyalarını değiştirirseniz muhtemelen bu yolu kullanacaksınız. Örneğin: theme twentytwelve kullanarak 404.php dosyasına şuradan erişebilirsiniz: /wp-content/themes/twentytwelve/404.php
Başka bir yararlı url olabilir: /wp-content/themes/default/404.php
wp-config.php dosyasında veritabanının root şifresini bulabilirsiniz.
Kontrol edilecek varsayılan giriş yolları: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
index.php
license.txt
WordPress'in kurulu olduğu sürüm gibi yararlı bilgiler içerir.
wp-activate.php
yeni bir WordPress sitesi kurarken e-posta aktivasyon süreci için kullanılır.
Giriş klasörleri (gizlemek için yeniden adlandırılabilir):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
WordPress'in veri iletimini HTTP üzerinden sağlamak için kullanılan bir dosyadır; bu iletişim türü WordPress REST API ile değiştirilmiştir.
wp-content
klasörü, eklentilerin ve temaların saklandığı ana dizindir.
wp-content/uploads/
Platforma yüklenen dosyaların saklandığı dizindir.
wp-includes/
Sertifikalar, fontlar, JavaScript dosyaları ve widget'lar gibi çekirdek dosyaların saklandığı dizindir.
wp-sitemap.xml
WordPress sürümleri 5.5 ve üzeri için, WordPress tüm kamuya açık gönderiler ve kamuya sorgulanabilir gönderi türleri ve taksonomiler ile bir sitemap XML dosyası oluşturur.
Sonrası istismar
wp-config.php
dosyası, WordPress'in veritabanına bağlanmak için ihtiyaç duyduğu bilgileri içerir; bu bilgiler arasında veritabanı adı, veritabanı sunucusu, kullanıcı adı ve şifre, kimlik doğrulama anahtarları ve tuzlar ile veritabanı tablo ön eki bulunur. Bu yapılandırma dosyası ayrıca DEBUG modunu etkinleştirmek için de kullanılabilir, bu da sorun gidermede yararlı olabilir.
Yönetici
Editör: Kendi ve diğerlerinin gönderilerini yayınlar ve yönetir
Yazar: Kendi gönderilerini yayınlar ve yönetir
Katkıda Bulunan: Kendi gönderilerini yazar ve yönetir ancak yayınlayamaz
Abone: Gönderileri tarar ve profilini düzenler
/license.txt
veya /readme.html
dosyalarını bulup bulamayacağınızı kontrol edin.
Sayfanın kaynak kodu içinde (örnek https://wordpress.org/support/article/pages/ adresinden):
grep
meta name
CSS bağlantı dosyaları
JavaScript dosyaları
Dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için Trickest kullanın. Bugün Erişim Alın:
Tüm Eklentileri ve Temaları bulamayabilirsiniz. Hepsini keşfetmek için, Eklentiler ve Temalar listesini Aktif olarak Brute Force yapmanız gerekecek (umarız ki bu listeleri içeren otomatik araçlar var).
ID Brute: Bir WordPress sitesinden kullanıcı ID'lerini Brute Force yaparak geçerli kullanıcılar elde edersiniz:
Eğer yanıtlar 200 veya 30X ise, bu id'nin geçerli olduğu anlamına gelir. Eğer yanıt 400 ise, o zaman id geçersizdir.
wp-json: Kullanıcılar hakkında bilgi almak için şu sorguyu da deneyebilirsiniz:
Başka bir /wp-json/
uç noktası, kullanıcılar hakkında bazı bilgileri açığa çıkarabilir:
Not edin ki bu uç nokta yalnızca bir gönderi yapmış kullanıcıları açığa çıkarır. Bu özelliği etkinleştiren kullanıcılar hakkında yalnızca bilgi sağlanacaktır.
Ayrıca /wp-json/wp/v2/pages IP adreslerini sızdırabilir.
Giriş kullanıcı adı sayımı: /wp-login.php
'da giriş yaparken mesaj farklıdır eğer belirtilen kullanıcı adı mevcutsa veya değilse.
Eğer xml-rpc.php
aktifse, kimlik bilgileri için brute-force saldırısı gerçekleştirebilir veya bunu diğer kaynaklara DoS saldırıları başlatmak için kullanabilirsiniz. (Bu süreci otomatikleştirmek için bunu kullanabilirsiniz, örneğin).
Aktif olup olmadığını görmek için /xmlrpc.php adresine erişmeyi deneyin ve bu isteği gönderin:
Kontrol Et
Kimlik Bilgileri Kaba Kuvvet
wp.getUserBlogs
, wp.getCategories
veya metaWeblog.getUsersBlogs
kimlik bilgilerini kaba kuvvetle kırmak için kullanılabilecek bazı yöntemlerdir. Eğer bunlardan herhangi birini bulursanız, şöyle bir şey gönderebilirsiniz:
Mesaj "Geçersiz kullanıcı adı veya şifre" 200 kodlu bir yanıt içinde, kimlik bilgileri geçerli değilse görünmelidir.
Doğru kimlik bilgilerini kullanarak bir dosya yükleyebilirsiniz. Yanıtta yol görünecektir (https://gist.github.com/georgestephanis/5681982)
Ayrıca, aynı istekte birkaç kimlik bilgisi denemek için system.multicall
kullanarak kimlik bilgilerini brute-force yapmanın daha hızlı bir yolu vardır:
2FA'yı Atlatma
Bu yöntem programlar için tasarlanmıştır ve insanlar için değil, ayrıca eski olduğu için 2FA'yı desteklemez. Yani, geçerli kimlik bilgilerine sahipseniz ancak ana giriş 2FA ile korunuyorsa, bu kimlik bilgileriyle 2FA'yı atlayarak giriş yapmak için xmlrpc.php'yi kötüye kullanabilirsiniz. Konsoldan yapabileceğiniz tüm eylemleri gerçekleştiremeyeceğinizi unutmayın, ancak Ippsec'in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s adresinde açıkladığı gibi RCE'ye ulaşmanız hala mümkün olabilir.
DDoS veya port taraması
Eğer listede pingback.ping yöntemini bulursanız, Wordpress'in herhangi bir host/port'a keyfi bir istek göndermesini sağlayabilirsiniz. Bu, binlerce Wordpress sitesinin bir konuma erişim sağlaması için istek yapmasını sağlamak amacıyla kullanılabilir (bu durumda o konumda bir DDoS meydana gelir) veya Wordpress'in bazı iç ağları taramasını sağlamak için kullanabilirsiniz (herhangi bir portu belirtebilirsiniz).
Eğer faultCode değeri 0'dan büyük (17) ise, bu portun açık olduğu anlamına gelir.
Bu yöntemi kötüye kullanarak DDoS oluşturmayı öğrenmek için önceki bölümdeki system.multicall
kullanımına bakın.
DDoS
Bu dosya genellikle Wordpress sitesinin kökünde bulunur: /wp-cron.php
Bu dosya erişildiğinde "ağır" bir MySQL sorgusu gerçekleştirilir, bu nedenle saldırganlar tarafından bir DoS oluşturmak için kullanılabilir.
Ayrıca, varsayılan olarak, wp-cron.php
her sayfa yüklemesinde (bir istemci herhangi bir Wordpress sayfasını talep ettiğinde) çağrılır, bu da yüksek trafikli sitelerde sorunlara neden olabilir (DoS).
Wp-Cron'un devre dışı bırakılması ve gerekli eylemleri düzenli aralıklarla gerçekleştiren gerçek bir cronjob'un host içinde oluşturulması önerilir (sorun yaratmadan).
https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net adresine erişmeyi deneyin ve Wordpress sitesi size bir istek yapabilir.
Bu çalışmadığında gelen yanıt:
Bu araç, methodName: pingback.ping ve /wp-json/oembed/1.0/proxy yolunu kontrol eder ve eğer mevcutsa, bunları istismar etmeye çalışır.
Gerçek bir saldırıdan çok bir merak. CTF'de https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man herhangi bir wordpress dosyasından 1 biti değiştirebilirsiniz. Böylece /var/www/html/wp-includes/user.php
dosyasının 5389
konumunu NOP yapmak için NOT (!
) işlemini değiştirebilirsiniz.
Kullanılan temadan bir php'yi değiştirme (admin kimlik bilgileri gerekli)
Görünüm → Tema Düzenleyici → 404 Şablonu (sağda)
Bir php shell için içeriği değiştirin:
Bu güncellenmiş sayfaya nasıl erişeceğinizi internette arayın. Bu durumda buraya erişmeniz gerekiyor: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
Şunu kullanabilirsiniz:
to get a session.
Eklenti olarak .php dosyaları yüklemek mümkün olabilir. Örneğin, php backdoor'unuzu oluşturun:
Sonra yeni bir eklenti ekleyin:
Eklentiyi yükleyin ve Şimdi Yükle'ye basın:
Devam'a tıklayın:
Muhtemelen bu görünüşte hiçbir şey yapmayacak, ancak Medya'ya giderseniz, shell'inizin yüklendiğini göreceksiniz:
Erişin ve ters shell'i çalıştırmak için URL'yi göreceksiniz:
Bu yöntem, bilinen bir zafiyete sahip kötü niyetli bir eklentinin yüklenmesini içerir ve bir web shell elde etmek için istismar edilebilir. Bu süreç, WordPress kontrol paneli aracılığıyla aşağıdaki gibi gerçekleştirilir:
Eklenti Edinme: Eklenti, buradan gibi Exploit DB gibi bir kaynaktan edinilir.
Eklenti Yükleme:
WordPress kontrol paneline gidin, ardından Kontrol Paneli > Eklentiler > Eklenti Yükle
seçeneğine gidin.
İndirilen eklentinin zip dosyasını yükleyin.
Eklenti Etkinleştirme: Eklenti başarıyla yüklendikten sonra, kontrol paneli aracılığıyla etkinleştirilmelidir.
İstismar:
"reflex-gallery" eklentisi yüklü ve etkinleştirildiğinde, bilinen bir zafiyet olduğu için istismar edilebilir.
Metasploit çerçevesi, bu zafiyet için bir istismar sağlar. Uygun modülü yükleyerek ve belirli komutları çalıştırarak, meterpreter oturumu oluşturulabilir ve siteye yetkisiz erişim sağlanabilir.
Bunun, bir WordPress sitesini istismar etmenin birçok yönteminden sadece biri olduğu belirtilmektedir.
İçerik, eklentiyi yükleme ve etkinleştirme adımlarını gösteren görsel yardımlar içermektedir. Ancak, bu şekilde zafiyetleri istismar etmenin yasal ve etik olmadığına dikkat edilmelidir. Bu bilgi, yalnızca açık izinle yapılan penetrasyon testleri gibi yasal bir bağlamda sorumlu bir şekilde kullanılmalıdır.
Daha ayrıntılı adımlar için kontrol edin: https://www.hackingarticles.in/wordpress-reverse-shell/
WPXStrike: WPXStrike, Cross-Site Scripting (XSS) zafiyetini Remote Code Execution (RCE) veya diğer kritik zafiyetlere yükseltmek için tasarlanmış bir betiktir. Daha fazla bilgi için bu gönderiye bakın. WordPress Sürümleri 6.X.X, 5.X.X ve 4.X.X için destek sağlar ve şunları yapmanıza olanak tanır:
Yetki Yükseltme: WordPress'te bir kullanıcı oluşturur.
(RCE) Özel Eklenti (backdoor) Yükleme: Özel eklentinizi (backdoor) WordPress'e yükleyin.
(RCE) Yerleşik Eklenti Düzenleme: WordPress'teki Yerleşik Eklentileri düzenleyin.
(RCE) Yerleşik Tema Düzenleme: WordPress'teki Yerleşik Temaları düzenleyin.
(Özel) Özel İstismarlar: Üçüncü Taraf WordPress Eklentileri/Tema'ları için Özel İstismarlar.
Kullanıcı adlarını ve şifreleri çıkarın:
Yönetici şifresini değiştir:
Bir Wordpress eklentisinin işlevselliği nasıl açığa çıkarabileceğini bilmek, işlevselliğindeki zayıflıkları bulmak için anahtardır. Bir eklentinin işlevselliği nasıl açığa çıkarabileceğini aşağıdaki madde işaretlerinde ve bu blog yazısında bazı zayıf eklenti örneklerinde bulabilirsiniz.
wp_ajax
Bir eklentinin işlevleri kullanıcılara açığa çıkarmanın yollarından biri AJAX işleyicileri aracılığıyladır. Bunlar, mantık, yetkilendirme veya kimlik doğrulama hataları içerebilir. Ayrıca, bu işlevlerin genellikle hem kimlik doğrulama hem de yetkilendirme için bir Wordpress nonce'unun varlığına dayanması sık rastlanan bir durumdur ve herhangi bir kullanıcı, Wordpress örneğinde kimlik doğrulaması yapılmışsa buna sahip olabilir (rolüne bakılmaksızın).
Bir eklentide bir işlevi açığa çıkarmak için kullanılabilecek işlevler şunlardır:
nopriv
kullanımı, uç noktanın herhangi bir kullanıcı (hatta kimliği doğrulanmamış olanlar) tarafından erişilebilir olmasını sağlar.
Ayrıca, eğer fonksiyon sadece wp_verify_nonce
fonksiyonu ile kullanıcının yetkilendirmesini kontrol ediyorsa, bu fonksiyon genellikle kullanıcının giriş yapıp yapmadığını kontrol eder, kullanıcının rolünü kontrol etmez. Bu nedenle, düşük ayrıcalıklı kullanıcılar yüksek ayrıcalıklı eylemlere erişim sağlayabilir.
REST API
register_rest_route
fonksiyonunu kullanarak wordpress'ten fonksiyonları bir rest AP ile açmak da mümkündür:
permission_callback
, belirli bir kullanıcının API yöntemini çağırma yetkisine sahip olup olmadığını kontrol eden bir geri çağırma işlevidir.
Eğer yerleşik __return_true
işlevi kullanılıyorsa, kullanıcı izinleri kontrolü atlanacaktır.
PHP dosyasına doğrudan erişim
Elbette, Wordpress PHP kullanır ve eklentiler içindeki dosyalar web üzerinden doğrudan erişilebilir. Bu nedenle, bir eklenti, dosyaya erişim sağlanarak tetiklenen herhangi bir savunmasız işlevsellik sunuyorsa, bu herhangi bir kullanıcı tarafından istismar edilebilir.
WordPress, eklentiler ve temaların güncel olduğundan emin olun. Ayrıca, wp-config.php dosyasında otomatik güncellemenin etkin olduğunu doğrulayın:
Ayrıca, sadece güvenilir WordPress eklentileri ve temaları yükleyin.
Varsayılan admin kullanıcısını kaldırın
Güçlü şifreler ve 2FA kullanın
Kullanıcı izinlerini periyodik olarak gözden geçirin
Brute Force saldırılarını önlemek için giriş denemelerini sınırlayın
wp-admin.php
dosyasının adını değiştirin ve yalnızca dahili olarak veya belirli IP adreslerinden erişime izin verin.
Dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için Trickest kullanın. Bugün Erişim Alın:
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)