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 desteklenen 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
Temalar 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 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 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 verilerin HTTP ile iletilmesini sağlayan bir özelliğini temsil eden bir dosyadır; burada HTTP taşıma mekanizması ve XML kodlama mekanizması olarak işlev görür. Bu tür bir iletişim, 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 açık sorgulanabilir gönderi türleri ve taksonomiler ile bir harita 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ıza bakın.
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 Brute Force yapmanız gerekecek (umarız ki bu listeleri içeren otomatik araçlar var).
ID Brute
Bir WordPress sitesinden geçerli kullanıcıları, kullanıcı ID'lerini Brute Force yaparak 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
Ayrıca, kullanıcılar hakkında bilgi almak için sorgulama yapmayı 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.
/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 bir 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 zorlamak için daha hızlı bir yol 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 açıklamasında olduğu 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şmesi için istek yapması (yani o konumda bir DDoS oluşturulması) veya Wordpress'in bazı iç ağları taramasını sağlamak için kullanılabilir (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.
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:
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 NOT (!
) işlemini NOP yapmak için değiştirebilirsiniz.
Kullanılan temadan bir php dosyasını 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 arka kapınızı 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, yüklediğiniz shell'i 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, Exploit DB gibi bir kaynaktan buradan 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üklendiğinde 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, yetkisiz erişim sağlayan bir meterpreter oturumu oluşturulabilir.
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 izin olmadan yasadışı ve etik dışı olduğunu belirtmek önemlidir. Bu bilgi, sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle penetrasyon testi için 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 (arka kapı) Yükleme: Özel eklentinizi (arka kapı) 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 için Özel İstismarlar.
Kullanıcı adlarını ve şifreleri çıkarın:
Admin ş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 yetkilendirmeyi, herhangi bir Wordpress örneğinde kimlik doğrulaması yapılmış bir kullanıcının sahip olabileceği bir Wordpress nonce'un varlığına dayandırması sık rastlanan bir durumdur (rolünden bağımsız olarak).
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ı açığa çıkarmak 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 işlevin geri çağrılmasıdır.
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 erişime 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)