Thursday, June 04, 2009

Linux kernel exploit are sold out!

Gw baru nyadar setelah baca tulisan antox disini tentang bertebarannya linux kernel exploits dalam rentang waktu 1 bulan ini, walau itungannya agak telat gw bacanya, gw cuma nyadar 1 exploit  terbaru dan itupun terbilang info dari antox juga saat sgrakkyu membahas tentang celah pada implementasi SCTP pada kernel yang "divonis" hanya menyebabkan DOS, tetapi berakibat remote exploitable. Baiklah, tidak usah bahas ketidak-uptodate-an gw terhadap ranah security akhir-akhir ini , karena gw punya banyak alasan dan alibi untuk membantah dan men-somasi ulang :)

Dari 6 buah exploit yang terbaris di list teratas "linux kernel exploit" di situs milw0rm, gw segera mendownload kelimanya, bah kenapa hanya  5? karena untuk SCTP gw sudah pernah mencobanya dan juga gw sudah yakin dengan konfigurasi kernel gw yang SCTP-nya belum gw implementasikan di kernel gw.

ammar@venom ~/pentest/local $ uname -a
Linux venom.arachn.ids 2.6.27-gentoo-r7 #1 SMP Tue May 26 13:53:14 UTC 2009 i686 Genuine Intel(R) CPU T2300 @ 1.66GHz GenuineIntel GNU/Linux



ammar@venom ~/pentest/local $ ls
8369.sh  8478.sh  8572.c  8673.c  8678.c
ammar@venom ~/pentest/local $ chmod +x *

ammar@venom ~/pentest/local $ ./8369.sh
suid_dumpable=0 - system not vulnerable!

ammar@venom ~/pentest/local $ ./8478.sh 9230
suid.c: In function 'main':
suid.c:3: warning: incompatible implicit declaration of built-in function 'execl'
suid.c:3: warning: missing sentinel in function call
sh-4.0$ id
uid=1000(ammar) gid=100(users) groups=4(adm),10(wheel),11(floppy),18(audio),19(cdrom),20(dialout),26(tape),100(users),444(plugdev),1001(truecrypt)
sh-4.0$

ammar@venom ~/pentest/local $ ./8572 9230
[-] Error: /tmp/run does not exist, please create it
ammar@venom ~/pentest/local $ touch /tmp/run
ammar@venom ~/pentest/local $ ./8572 9230
ammar@venom ~/pentest/local $

ammar@venom ~/pentest/local $ ./8673
[+] EIP - 0xb7e5bb1f
[+] Waiting for root...
[-] Damn no r00t here :(
ammar@venom ~/pentest/local $

Dan ternyata dari kelima eksploit tersebut 4 buah eksploit gagal memberikan root, dan 1 eksploit gagal di kompile, seluruh ujicoba dilakukan dengan tanpa perbaikan pada eksploit dan proses kompilasi, artinya apabila secara default dikomputer saya tidak terinstall library tertentu, atau tidak memenuhi kondisi khusus dari eksploitasi, hal itu dianggap bahwa secara default (konfigurasi) neo-venom relatif aman terhadap kelima buah eksploit tersebut.

Mari kita bahas eksploit pertama, eksploit 1 (8369.sh), eksploit ini secara default tidak akan bekerja, karena apa? karena eksploit ini memerlukan  "/proc/sys/fs/suid_dumpable" untuk di set 1 atau 2, sedangkan defaultnya adalah 0,

venom local # cat /proc/sys/fs/suid_dumpable
0
venom local # echo "1" > /proc/sys/fs/suid_dumpable
venom local # cat /proc/sys/fs/suid_dumpable
1

dan apabila dilakukan eksploitasi ulang

ammar@venom ~/pentest/local $ ./8369.sh
logrotate installed, that's good!
Compiling the bash setuid() wrapper...
Compiling the exploit code...
Setting coredump limits and running the exploit...

Successfully coredumped into the logrotate config dir
Now wait until cron.daily executes logrotate and makes your shell wrapper suid

The shell should be located in /tmp/.m - just run /tmp/.m after 24h and you'll be root

Your terminal is most probably screwed now, sorry for that...

Dan ternyata setelah 24 jam shell (.m) tersebut tidak memberikan root :p, walaupun ga perlu menunggu waktu dua jam, cukup dengan hanya membandingkan hasil "ls -al" sudah memberikan jawaban, dan karena misi kali ini cuma mencoba eksploit tanpa mempatch exploit, jadi exploit ini di nilai tetap gagal (2 kali gagal) di neo-venom.

ammar@venom ~/pentest/local $ /tmp/.m
ammar@venom ~/pentest/local $

Selanjutnya, eksploit kedua (8478.sh) dan ketiga (8572.c) mengeksploitasi UDEV dengan versi dibawah 141, dan karena udev yang gw miliki adalah 141, jadi eksplotasi ini hanya men"spwaning shell", tetapi tidak meng'escalate priveledge' dari user menjadi root, sekali lagi gw tegaskan, gw tidak mem"pacth" eksploit ini, sebagai contoh memperbaiki error dari eksploit tsb, karena tujuan dari penulisan ini adalah maen eksekusi aja suatu skrip dengan kiddo style :P.

Eksploit ke 4 (8673.c) &5 (8678.c) untuk kernel 2.6.29-x yang mengeksploitasi celah pada Ptrace_attach tidak akan mempan karena kernel yang saya gunakan adalah 2.6.27 :p

Dan terbukti secara "kiddo style", neo-venom kebal dari ke-5 eksploit root yang beredar. :)

3 comments:

  1. aman-aman aja ya om berarti kalo nggak pake cron?
    emang nggak pake saya soalnya

    ReplyDelete
  2. ya untuk beberapa eksploit diatas, pake juga tetap ga berarti vuln :).. ya beginilah eksploitasi di ranah opensource OS "GNU/Linux", karena jenis distribusi, architechture , konfigurasi, dan sebagainya berbeda, jadi untuk mendapatkan impact yang massal agak sulit, beda dengan OS propietary yang termahsyur itu.

    ReplyDelete
  3. lo di artikel ini kan kiddo sytle, trus bagaimana lo geek style?? ;)

    ReplyDelete