Kali ini kita bakal bermain-main dan membahas tentang shellshock attack dan bagaimana cara untuk mengeksploitasi sebuah server yang rentan terhadap serangan melalui bugs shellshock termasuk langkah-langkah pencegahannya agar kita terhindar dari serangan ini.
Sebelumnya saya pernah nulis juga langkah untuk mencegah serangan Shellshock Attack di OS CentOS dengan melakukan update Bash Package yang kita gunakan. Untuk yang belum baca bisa kunjungi link ini : Update Bash Package untuk Mencegah Shellshock Attack.
Shellshock sebenernya biasa digunakan oleh server bukan hanya Operating System linux tapi juga Mac dan Shell yang memakai environment Bash (Bourne-Again Shell). Sekitar pertengahan september 2014 beberapa peneliti di keamanan jaringan menemukan bugs pada OS linux dengan kernel versi 2.6x. Bugs dan celah keamanan ini bisa dibilang sangat berbahaya karna hacker bisa mengeksploitasi sistem secara remote, ataupun lokal.
Sebelumnya saya pernah nulis juga langkah untuk mencegah serangan Shellshock Attack di OS CentOS dengan melakukan update Bash Package yang kita gunakan. Untuk yang belum baca bisa kunjungi link ini : Update Bash Package untuk Mencegah Shellshock Attack.
Shellshock sebenernya biasa digunakan oleh server bukan hanya Operating System linux tapi juga Mac dan Shell yang memakai environment Bash (Bourne-Again Shell). Sekitar pertengahan september 2014 beberapa peneliti di keamanan jaringan menemukan bugs pada OS linux dengan kernel versi 2.6x. Bugs dan celah keamanan ini bisa dibilang sangat berbahaya karna hacker bisa mengeksploitasi sistem secara remote, ataupun lokal.
Kenapa bash sangat penting? Bash merupakan komponen vital dalam menjalakan proses di linux, bahkan Apache http Web-Server saja menggunakan bash, saya sendiri sering membuat bash scripting untuk keperluan tertentu di environment linux. Bahkan menurut gosip, bugs ini sudah ada lebih dari 10 tahun dan baru dipublikasikan sekarang.
Lalu, Bagaimana Cara Kerja Shellshock Attack?
- Menurut beberapa sumber, celah shellshock ini terletak pada bagaimana Bash meng-handle data yang dikirimkan, padahal parameter data yang dikirim tersebut dapat dimanipulasi oleh hacker dengan menginject command atau "command injection".
- Pola utama dalam serangan ini biasanya ialah hacker mengeksploitasi shellshock dengan melakukan injection code/program backdoor ke server target. Setelah server target disusupi dan dapat dikendalikan oleh si hacker maka mereka mulailah beraksi, bisa dengan memasuki program jahat lainnya, bisa juga mencuri data atau hal iseng lainnnya.
Apa yang Bisa Kita Lakukan Untuk Pencegahan?
- Memasang firewall dan anti-virus untuk menangkal malware di server Anda.
- Memasang IDS (Instrusion Detection System) dan IPS (Intrusion Prevention System).
- Custom Protection, misalnya bikin script watchdog atau program aplikasi anti-malware yang kita kembangkan sendiri untuk monitoring trafik pada aplikasi/server kita.
- Update Bash Package, untuk langkah-langkanya bisa ikuti tutorial saya disini.
Apakah Server Saya Rentan/Vulnerable?
- Untuk melakukan testing apakah server kita vulnerable atau tidak, kita dapat menggunakan script dibawah ini.
# env x='() { :; }; echo this server vulnerable' bash -c "echo this is testing script"
Apabila outputnya seperti dibawah ini berarti server anda rentan/vulnerable.
Bagaimana Cara Melakukan Shellshock Attack?
Salah satu cara untuk melakukan shellshock attack adalah reverse connection dengan menjalankan netcat pada server target. Sebagai contoh kita akan buat simulasi kira-kira seperti dibawah ini.
Notes :
- Kali Linux version 2.0, Anda bisa download di kali.org atau kambing.ui.ac.id
- VM cve-2014-6271.iso, adalah server simulasi yang di desain vulnerable terhadap shellshock attack. Anda bisa download di https://pentesterlab.com/exercises/cve-2014-6271 setelah selasai di download lalu install .iso-nya.
Setelah selesai di install, pastikan 2 node saling terhubung (bisa ping), lalu langkah selanjutnya kita coba scanning dengan aplikasi scanning bawaan kali linux yaitu, Dirbuster. Gunakan command # dirb http://192.168.227.158
Contohnya seperti dibawah ini.
Dari contoh diatas terlihat bahwa kita telah mendapatkan bug shellshock pada server target di dalam direktori cgi-bin/, langkah selanjutnya scan kembali direktori cgi-bin/ untuk memastikan file apa saja yang ada dalam direktori tersebut. Gunakan command # dirb http://192.168.227.158/cgi-bin/ seperti contoh dibawah ini.
Langkah selanjutnya kita scanning menggunakan nmap untuk tau celah dan service apa yang terbuka, gunakan command # nmap 192.168.227.158
Dari hasil nmap, kita mendapat informasi bahwa port 80 terbuka dan port tersebut biasanya digunakan sebagai web services. Langkah selanjutnya kita gunakan tools curl dan netcat untuk melakukan reverse connection, tujuannya adalah mendapatkan akses server target dengan memanfaatkan celah bug shellshock.
- Langkah pertama, buka terminal 1, jalankan netcat mode listening dengan command nc. Gunakan port 1919 untuk listen port.
- Langkah kedua, buka terminal 2 lalu kirim kode shell shock attack dengan command curl seperti dibawah ini.
- Langkah ketiga, kembali ke terminal satu dan lihat akan muncul notifikasi seperti yang di kotak merah seperti dibawah ini.
Pada tahap ini kita sudah berhasil terhubung ke server target melalui port 1919 yang telah kita tentukan. - Langkah keempat, coba listing file, buat file dan hapus file.
1) Listing File
Dari gambar diatas terlihat kita ada di direktori /var/www/cgi-bin/ dan di dalam direktori tersebut ada file status.
2) Buat File
Dari langkah diatas kita berhasil buat file arif.txt di direktori /home, apabila di cek di server VM cve-2014-6271.iso pada direktori home nya terdapat file arif.txt seperti gambar dibawah ini.
3) Hapus File
Dari langkah diatas kita sudah berhasil menghapus file arif.txt melalui backdoor yang kita buat dari teknik shellshock attack, sekarang silahkan cek server VM cve-2014-6271.iso, seharusnya file arif.txt sudah hilang dari direktori /home
Sekian dulu tulisan mengenai shellshock ini, kalo ada kesalahan bisa dikoreksi dan semoga bermanfaat yah.. ^,^