How to: Recompile kernel on Linux (Ubuntu 10.10)

Baru-baru ini tepatnya 13 Oktober bulan kemarin telah ditemukannya celah pada kernel dengan titik serangan/eksploitasi pada protokol RDS(Reliable Datagram Socket) oleh Dan Rosenberg. Kernel yang dapat dilakukan eksploitasi adalah kernel yang berversi 2.6.30 - 2.6.36-rc8.

Mengapa saya menulis mengenai recompile kernel ? Ya benar, berhubung telah ditemukannya celah di protokol RDS(Reliable Datagram Socket) pada kernel, disini saya akan menulis mengenai recompile kernel agar mesin(ataupun server) yang saya gunakan ataupun Anda agar tetap aman dari serangan orang2 jahil. Karena tulisan hanyalah tulisan sederhana, tulisan ini ditujukan bagi "yang belum mengerti"(baca:nubi only) saja mengenai kompilasi kernel disistem sendiri, bagi yang sudah mahir a.k.a hebat nge-ubek2 kernel ataupun kompilasi kernel sana sini dianjurkan untuk tidak membaca lanjut tulisan ini. :D

$ uname -a
Linux th3darkLab 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux


Dengan informasi diatas kernel disistem yang saya gunakan adalah versi kernel 2.6.35 (menggunakan Ubuntu 10.10 dengan lingkungan KDE). Saya akan mencoba dengan script exploit yang ditulis oleh Dan Rosenberg dengan menggunakan bahasa C, apakah kernel yang dimiliki Ubuntu 10.10 bisa dieksploitasi sehingga bisa menjadikan kita sebagai superuser/root (privilege escalation). Jika Anda ingin mencoba silahkan unduh script exploitnya di http://www.vsecurity.com/download/tools/linux-rds-exploit.c



Sekarang kita akan mencoba menjalankan script exploit tersebut

$ gcc linux-rds-exploit.c -o linux-rds-exploit
$ ./linux-rds-exploit




Dengan hanya menjalankan script tersebut kita sudah bisa menjadi superuser/root (privilege escalation) dalam contoh kasus ini adalah dimesin saya sendiri (dan bukan mesin org lain :P) yaitu menggunakan Kubuntu 10.10.

Let's Recompile the Kernel.. :D

Pertama silahkan download kernel terbaru di sini. Kernel yang akan saya kompilasi adalah kernel versi 2.6.36 karena sudah dalam status stabil.

Download :

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2


Disitus tersebut terdapat juga beberapa patch yang telah disediakan.

Disini saya membuat folder baru dengan perintah

$ mkdir kernel-baru;cd kernel-baru


Selanjutnya mari kita ekstrak

$ tar xfvj linux-2.6.36.tar.bz2
$ ls -la
total 116824
drwxr-xr-x 3 h3k3rz h3k3rz 4096 2010-11-09 23:34 .
drwxr-xr-x 20 h3k3rz h3k3rz 4096 2010-11-09 23:27 ..
drwxr-xr-x 23 h3k3rz h3k3rz 4096 2010-11-09 23:31 linux-2.6.36
-rw-r--r-- 1 h3k3rz h3k3rz 70277083 2010-10-21 04:15 linux-2.6.36.tar.bz2


Okey, selanjutnya kita pindahkan kernel yang telah kita ekstrak sebelumnya

$ sudo mv linux-2.6.36 /usr/src/
$ cd linux-2.6.36/


Sebelum melakukan kompilasi kernel kita install dulu beberapa dependensi yang "wajib" agar proses kompilasi bisa berjalan dengan lancar :D.

$ sudo apt-get install build-essential qt3-dev-tools ncurses-dev


Untuk pengaturan dengan modus grafis Anda tinggal mengetikkan perintah berikut

$ make xconfig




Sedangkan dalam modus alternate/non-GUI dapat dijalankan dengan perintah sebagai berikut

$ make menuconfig







Untuk pengaturannya tergantung kebutuhan Anda, saya sendiri membiarkannya tetap default dan tidak saya rubah. Setelah pengaturannya Anda rasa cukup, sekarang mari kita eksekusi untuk memulai meng-kompilasi kernel. :)

$ make

$ make modules


Jikalau Anda mendapatkan error atau pada saat sedang meng-kompilasi terhenti, jalankan dengan perintah berikut

$ make CONFIG_DEBUG_SECTION_MISMATCH=y


Instalasi modul2 kernel

$ sudo su

# make modules_install


Setelah melakukan kompilasi kernel dan modul2 kernel, sekarang saatnya menginstall kernel itu sendiri

# make install


Silahkan tunggu sejenak, karena proses instalasi kernel lumayan cukup membuat Anda menunggu nantinya.

Sesudah instalasi kernel selesai, akan ada tiga file yang tercipta pada direktori /boot



Kemudian membuat Initial ramdisk image

# cd /boot/
# mkinitramfs -o initrd.img-2.6.36 2.6.36


Agar pada saat booting ada pilihan untuk masuk ke kernel 2.6.36, pada sistem operasi yang saya gunakan dengan menggunakan GRUB2 silahkan sunting file grub seperti dibawah ini dan sesuaikan path/alamat partisi root Anda

# kate grub/grub.cfg




Kemudian perbaharui grub Anda dengan perintah berikut

# update-grub




Dan terakhir silahkan restart PC/Laptop Anda untuk melihat perubahan

# reboot


Silahkan cek apakah kernel yang tadi dikompilasi telah berhasil



Terlihat seperti diatas, kini kernel yang baru saja kita kompilasi sudah menggunakan kernel 2.6.36. Sekarang kita coba lagi dengan script exploit apakah masih bisa menjadikan kita sebagai root ?



Dengan kernel yang tadi kita sudah kompilasi telah sukses dan kini tidak rentan lagi untuk diserang karena kernel yang kita gunakan sudah menggunakan kernel 2.6.36. Sangat mudahkan kompilasi kernel tidak sesulit seperti yang dibayangkan ? Selamat mencoba.

Semoga tulisan singkat ini bermanfaat. :)

2 thoughts on “How to: Recompile kernel on Linux (Ubuntu 10.10)”

Leave a Reply

Please leave a comment and do not give a spam! Comments that smells of spam will be deleted without prior notice