Tugas WAN

TELNET, SSH & RPC
Oleh:
Naila Zahiroh Rika Arsita
9938719705 9938719701

SMK Negri 8 Malang 2008 - 2011

KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Kuasa, karena atas limpahan rahmat, taufik, serta hidayah-Nya kami dapat menyelesaikan Kumpulan makalah dengan baik.

Karya ini yang merupakan hasil pengamatan. Kami persembahkan kepada Bapak lupa kami ucapkan terima kasih yang sebesar-besarnya kepada: Pihak yang membantu kami. Banyak kekurangan dalam makalah ini dan apabila terdapat kesalahan tulisan / ejaan harap dimaklumi, namun kami sangat mengharapkan kritik dan saran dari pembaca sekalian demi kesempurnaan Semoga makalah ini dapat bermanfaat bagi pembaca pada umumnya dan penulis pada khususnya.

Malang, 31 Mei 2010

PENYUSUN

2

DAFTAR ISI
Kata Pengantar ........................................................ Daftar ISI ................................................................
TELNET (Telecommunication Network) Definisi ....................................................................................... Penggunaan lain dari telnet ...................................................... tenet server ............................................................................... installasi telnet server .............................................................. konfigurasi telnet server .............................................................. kegunaan / fungsi service ........................................................... kelebihan & kelemahan ...........................................................

2 3

4 5 7 8 8 10 10

SSH (Secure Shell)
Definisi ...................................................................................... sejarah ...................................................................................... penggunaan ............................................................................... Peringatan keamanan ............................................................... Mengamankan SSH dari upaya BRUTE FORCE ........................ Membuat Autentikasi SSH Tanpa Password ........................ 11 11 13 16 16 24

RPC (Remote Procedure Call)
Definisi ...................................................................................... Protokol Message RPC .............................................................. Fitur dalam RPC .................................................................. Remote Procedure Call dengan SunRPC ............................. Kelemahan dan Eksploitasi RPC ........................................ Kelemahan RPC pada Sistem Operasi Windows ....................... Daftar Pustaka ......................................................................... 28 29 30 35 40 40 44

3

TELNET
Definisi Telnet
Telnet (Telecommunication Network) adalah sebuah protokol jaringan yang digunakan di koneksi Internet atau Local Area Network. TELNET dikembangkan pada 1969 dan distandarisasi sebagai IETF STD 8, salah satu standar Internet pertama. TELNET memiliki beberapa keterbatasan yang dianggap sebagai risiko keamanan. Telnet memungkinkan kita untuk menghubungkan “terminal” kita dengan host remote yang berada di luar jaringan. Pada masa ARPANET sebelum workstation grafis atau personal komputer ditemukan, setiap orang menggunakan terminal yang terhubung dengan mainframe atau minicomputer melalui koneksi serial. Setiap terminal memiliki keyboard sebagai masukan dan monitor untuk keluaran, tanpa memiliki CPU sendiri, semua proses dijalankan di mainframe atau minicomputer. Telnet biasanya digunakan untuk “remote login” dari PC ke PC lain dalam jaringan. Remote login semacam ini memungkinkan anda untuk menggunakan aplikasi yang berada dalam sistem remote. Remote login semacam ini hanya menyediakan koneksi text only, biasanya dalam bentuk command line prompt, seakan-akan anda duduk di terminal yang terhubung pada mesin remote. RPC adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh ( remote system ). RPC mengasumsi keberadaan dari lowlevel protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan. Protokol RPC mengijinkan pengguna (users) untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur panggilan remote (remote procedure calls) didefinisikan melalui rutin yang terkandung didalam protokol RPC. Tiap message dari panggilan akan disesuaikan dengan

4

message balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang mengimplemntasikan protokol non-RPC lain seperti panggilan remote batching dan broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server. Untuk masuk ke mesin remote, gunakan perintah:
% telnet <hostname>

Jika host merespon, Anda akan mendapatkan prompt login. Berikan nama pengguna dan kata sandi Anda. Hanya itu. Anda akan berada pada shell sekarang. Untuk berhenti dari sesi telnet Anda, gunakan perintah exit atau logout. Peringatan : Telnet tidak mengenkripsi informasi yang dikirimkannya. Semua dikirimkan dalam bentuk plain text, termasuk kata sandi. Tidak disarankan untuk menggunakan telnet melalui Internet. Gunakan Secure Shell. Ini akan mengenkripsi semua trafik dan tersedia secara gratis.

Penggunaan lain dari telnet
Setelah Anda diyakinkan untuk tidak menggunakan protokol telnet untuk login ke komputer remote, kami akan menampilkan beberapa cara untuk menggunakan telnet. Anda juga bisa menggunakan telnet untuk terhubung pada sebuah host pada port tertentu.
% telnet <hostname> [port]

Hal ini terkadang bisa berguna ketika Anda perlu menguji layanan tertentu, dan Anda membutuhkan kontrol penuh terhadap perintah, dan Anda perlu melihat apa yang sedang terjadi. Anda bisa menguji atau menggunakan server SMTP, POP3 HTTP, dan sebagainya secara interaktif.

5

Pada gambar berikut, Anda akan melihat bagaimana Anda bisa telnet pada sebuah server HTTP pada port 80, dan mendapatkan sedikit informasi dasar.

Melakukan telnet ke sebuah server web
% telnet store.slackware.com 80 Trying 69.50.233.153... Connected to store.slackware.com. Escape character is '^]'. HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 25 Apr 2005 20:47:01 GMT Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT ETag: "193424-c0-3e9fda6e" Accept-Ranges: bytes Content-Length: 192 Connection: close Content-Type: text/html Connection closed by foreign host. %

Anda dapat melakukan cara yang sama pada protokol plain-text yang lain, sepanjang Anda mengetahui port yang digunakan, dan perintahnya.

6

TELNET
Prinsip Kerja Telnet Server

SERVER

Pada gambar terlihat, jika suatu user ingin menjalankan aplikasi Telnet ke komputer lain, maka program aplikasi pada user tersebut berfungsi sebagai client. Client membangun koneksi TCP ke server, komputer tempat user ingin berkomunikasi. Server harus menerima koneksi TCP dari client dan kemudian me-relay data antara koneksi TCP dan sistem operasi lokal. Pada kenyataanya server mengerjakan sesuatu yang lebih komplek, karena harus menangani banyak koneksi secara konkuren. Biasanya satu proses server master akan menunggu koneksi baru dan membentuk slave baru untuk menangani setiap koneksi. Pada gambar disamping, server Telnet merepresentasikan master server yang menangani request baru,juga tidak menunjukkan slave yang sedang menangani koneksi. Pseudo terminal disini digunakan untuk menerangkan entry point sistem operasi yang mengijinkan aplikasi misalnya Telnet server berjalan.

7

Instalasi Telnet Server
• Ubuntu Nama paketnya telnetd. Install : “ apt-get install telnetd ” lalu mengaktifkannya menggunakan fasilitas inetd, mencoba dengan inetutils-inetd. Install : “ apt-get install inetutils-inetd lalu edit file /etc/inetd.conf ”. Tambahkan line berikut :

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd catatan: ada inetd terdapat daemon2 yang lain, remark daemon yang lain jika tidak ingin menjalankannya lalu restart /etc/init.d/inetutils-inetd restart. netstat -tanp muncul listen port 23.

Konfigurasi Telnet Server
Login ke sistem Linux sebagai root. Buatlah user baru untuk persiapak akses telnet server # groupadd temanku # useradd andri –g temanku # passwd andri # useradd anton –g temanku # passwd anton Cek apakah program telnet server sudah terinstal. Jika sudah, langsung kerjakan langkah no-7 Jalankan perintah rpm –qa | grep telnet, tulis hasilnya ! Dari hasil diatas ada berapa banyak program telnet yang terinstall ?? Dan apakah dalam daftar sudah ada program telnet-server ?? Jalankan perintah rpm –qa | grep telnet-server , tulis hasilnya, jika kosong berarti belum ada telnet server yang terinstall.

8

Uji Coba dari Local Host

# telnet localhost Jika terdapat pesan sbb. berarti kedua service tersebut belum berhasil. # telnet localhostTrying 127.0.0.1…telnet : unable to connect to remote host Connection Refused Jika tidak berhasil kemungkinan sbb :

Untuk menguji coba apakah telnet server sudah berjalan dengan baik atau tidak jalankan perintah sbb.

:Service telnet masih didisable, edit file berikut ini (jalankan
perintah berikut) # vi /etc/xinetd.d/telnet pada baris disable = yes diganti disable = no selanjutnya restart xinetd dengan perintah : # /etc/init.d/xined restart Port yang dipakai telnet dipakai yang lain, jalankan perintah berikut : # /etc/init.d/sendmail stop > # telnet localhostRed Hat Linux release 9 (Shrike)login: student Password: ******

Jika proses instalasi berhasil akan ada pesan sbb. > # telnet localhostRed Hat Linux release 9 (Shrike)login: student Password: ****** Telnet dari komputer client ke server Berikan teman anda informasi tentang IP PC anda, username dan password untuk login ke komputer anda (berikan user dan password yang anda

# ping 10.252.108.100 ---- cek konektivitas # telnet 10.252.108.100 $ username : agus $ passwd : ******** $ hostname
K

buat pada langkah 2). Misalkan PC anda mempunyai IP 10.252.108.100, maka dari PC teman anda lakukan perintah sbb.

---- catat hostnamenya

$ whoami $ pwd $ finger $ finger > dataku ---- catat home direktorinya ---- catat siapa saja yang login ---- cek : boleh write ?

$ hostname > namapc $ pwd $ exit ---- kembali ke PC client

9

Kegunaan / Fungsi Service
Telnet server memungkinkan kita untuk mengendalikan komputer secara jarak jauh. Istilahnya telnet server adalah trojan server kecil yang terintegrasi bersama dengan sistem operasi.

Kelebihan Telnet Server
Keuntungan memakai telnet server adalah user interface yang ramah, yaitu Anda memberikan perintah jarak jauh (istilahnya remote) seolah-olah anda mengeksekusi perintah pada command line pada komputer Anda.

Kelemahan Telnet Server
Kerugiannya adalah penggunaan NTLM authentication tanpa enkripsi sehingga memudahkan pencurian password oleh sniffers. Kalau Anda adalah administrator sistem, saya sarankan Anda menggunakan SSH pada Linux daripada Telnet Server untuk

mengkonfigurasikan sistem Anda.

10

SSH (Secure
Definisi SSH

Shell)

Secure Shell atau SSH adalah protokol jaringan yang memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan. Terutama banyak digunakan pada sistem berbasis Linux dan Unix untuk mengakses akun shell, SSH dirancang sebagai pengganti Telnet dan shell remote tak aman lainnya, yang mengirim informasi, terutama kata sandi, dalam bentuk teks sederhana yang membuatnya mudah untuk dicegat. Enkripsi yang digunakan oleh SSH menyediakan kerahasiaan dan integritas data melalui jaringan yang tidak aman seperti Internet. SSH menggunakan kriptografi kunci publik untuk mengotentikasi komputer remote dan biarkan komputer remote untuk mengotentikasi pengguna, jika perlu. SSH biasanya digunakan untuk login ke mesin remote dan mengeksekusi berbagai perintah, tetapi juga mendukung tunneling, forwarding TCP port dan X11 connections; itu dapat mentransfer file menggunakan terkait SFTP atau SCP protocols. SSH menggunakan klien-server model. Yang standar TCP port 22 telah ditetapkan untuk menghubungi server SSH. Sebuah klien program SSH ini biasanya digunakan untuk membangun koneksi ke SSH daemon untuk dapat diremote. Keduanya biasanya terdapat pada sistem operasi modern, termasuk Mac OS X, Linux, FreeBSD, Solaris dan OpenVMS. Tersedia versi berpemilik, freeware dan open source untuk berbagai tingkat kerumitan dan kelengkapan.

Sejarah SSH
Pada tahun 1995, Tatu Ylönen, seorang peneliti di Helsinki University of Technology, Finlandia, merancang versi pertama protokol (sekarang disebut SSH-1) karena didorong oleh peristiwa serangan pembongkaran sandi di jaringan universitas. Tujuan dari pembuatan SSH adalah untuk menggantikan fungsi rlogin, TELNET, dan rsh protokol, yang tidak memberikan otentikasi kuat atau menjamin kerahasiaan. Ylönen merilis SSH sebagai freeware pada bulan Juli

11

1995, dan tool tersebut berkembang dengan cepat untuk mendapatkan popularitas. Menjelang akhir 1995, basis pengguna SSH telah tumbuh hingga 20.000 pengguna di lima puluh negara. Pada bulan Desember 1995, Ylönen mendirikan SSH Communications Security untuk memasarkan dan mengembangkan SSH. Versi asli dari software yang digunakan SSH adalah berbagai potongan perangkat lunak bebas, seperti GNU libgmp, tetapi versi yang dikeluarkan oleh Secure SSH Communications semakin berkembang menjadi perangkat lunak berpemilik. Pada tahun 1996, sebuah versi revisi protokol dirancang, SSH-2, yang tidak cocok dengan SSH-1. Fitur SSH-2 mencakup kedua fitur keamanan dan peningkatan perbaikan atas SSH-1. Keamanan yang lebih baik, misalnya, datang melalui algoritma pertukaran kunci DiffieHellman dan pemeriksaan dengan integritas yang kuat melalui kode otentikasi pesan. Fitur baru dari SSH-2 mencakup kemampuan untuk menjalankan sejumlah sesi shell melalui satu koneksi SSH. Pada tahun 1998 ditemukan kerentanan yang digambarkan dalam 1,5 SSH sehingga memungkinkan masuknya konten yang tidak sah ke dalam aliran data SSH terenkripsi karena integritas data tidak mencukupi perlindungan dari CRC-32 yang digunakan dalam protokol versi ini. Sebuah perbaikan (SSH Compentation Attack Detector) diperkenalkan ke dalam banyak implementasi. Pada tahun 1999, pengembang menginginkan versi perangkat lunak bebas untuk tersedia kembali seperti rilis 1.2.12, yang lebih tua dari program ssh asli, yang terakhir dirilis di bawah lisensi open source. OSSH Björn Grönvall ini kemudian dikembangkan berdasarkan basis kode ini. Tak lama kemudian, para pengembang OpenBSD menggunakan kode Grönvall untuk melakukan pengembanga yang lebih luas di atasnya, sehingga terciptalah OpenSSH, yang dimasukkan dalam rilis OpenBSD 2.6. Dari versi ini, sebuah cabang "portable" dibentuk untuk dapat memportingkan OpenSSH pada sistem operasi lain. Diperkirakan, sejak tahun 2000, terdapat lebih dari 2.000.000 pengguna SSH.

12

Pada tahun 2005, OpenSSH adalah satu-satunya aplikasi ssh yang paling populer, yang diinstal secara default dalam sejumlah besar sistem operasi. Sementara itu, OSSH telah menjadi usang. Pada tahun 2006, protokol SSH-2 yang telah disebutkan di atas, diusulkan untuk menjadi Standar Internet dengan penerbitan oleh IETF "secsh" work group dari RFC (lihat referensi). Pada tahun 2008 sebuah kelemahan kriptografi ditemukan pada SSH-2 yang memungkinkan pengambilan sampai 4 byte plaintext dari aliran data SSH tunggal di bawah kondisi khusus. Namun hal ini telah diperbaiki dengan mengubah mode enkripsi standar OpenSSH 5,2.

Penggunaan SSH
SSH adalah sebuah protokol yang dapat digunakan untuk berbagai aplikasi. Beberapa aplikasi di bawah ini mungkin membutuhkan fitur-fitur yang hanya tersedia atau yang kompatibel dengan klien atau server SSH yang spesifik. Sebagai contoh, menggunakan protokol SSH untuk mengimplementasikan VPN adalah dimungkinkan, tapi sekarang hanya dapat dengan implementasi server dan klien OpenSSH.
• • •

untuk login ke shell pada remote host (menggantikan Telnet dan rlogin) untuk mengeksekusi satu perintah pada remote host (menggantikan rsh) untuk menyalin file dari server lokal ke remote host. Lihat SCP, sebagai alternatif untuk rcp

• •

dalam kombinasi dengan SFTP, sebagai alternatif yang aman untuk FTP transfer file dalam kombinasi dengan rsync untuk mem-backup, menyalin dan me-mirror file secara efisien dan aman

untuk port forwarding atau tunneling port (jangan dikelirukan dengan VPN yang rute paket antara jaringan yang berbeda atau menyambung dua wilayah broadcast menjadi satu)

13

untuk digunakan sebagai VPN yang terenkripsi penuh. Perhatikan bahwa hanya OpenSSH server dan klien yang mendukung fitur ini

• •

untuk meneruskan X11 melalui beberapa host untuk browsing web melalui koneksi proxy yang dienkripsi dengan klien SSH yang mendukung protokol SOCKS

untuk mengamankan mounting direktori di server remote sebagai sebuah sistem file di komputer lokal dengan menggunakan SSHFS

untuk mengotomasi remote monitoring dan pengelolaan server melalui satu atau lebih dari mekanisme seperti yang dibahas di atas

Arsitektur SSH SSH-2 protokol memiliki arsitektur internal (didefinisikan dalam RFC 4.251) pada lapisan terpisah dengan baik. Yaitu:

Lapisan transportasi (RFC 4253). Lapisan ini menangani pertukaran kunci awal dan server otentikasi dan set up enkripsi, kompresi dan integritas verifikasi. Lapisan ini memperlihatkan ke lapisan atas sebuah antarmuka untuk mengirim dan menerima paket teks terang hingga masing-masing 32.768 byte (atau lebih yang diperbolehkan oleh implementasi). Lapisan transportasi juga mengatur ulang pertukaran kunci, biasanya setelah 1 GB data yang ditransfer atau setelah 1 jam telah berlalu, tergantung mana yang lebih cepat.

Lapisan otentikasi pengguna (RFC 4252). Lapisan ini menangani otentikasi klien dan menyediakan sejumlah metode otentikasi. Otentikasi client-driven: ketika seseorang diminta untuk memasukkan password, mungkin diminta oleh klien SSH, bukan servernya. Server hanya menanggapi permintaan otentikasi klien. Metode otentikasi pengguna yang sering digunakan meliputi:
o

password: sebuah metode untuk otentikasi password secara langsung, termasuk fasilitas yang memungkinkan sandi untuk diubah. Metode ini tidak

diimplementasikan pada semua program.

14

o

kunci publik: sebuah metode untuk otentikasi berbasis kunci publik, biasanya mendukung setidaknya pasangan kunci DSA atau RSA, pada implementasi lain juga mendukung sertifikat X.509.

o

keyboard-interactive (RFC 4256): sebuah metode serbaguna di mana server akan mengirimkan satu atau lebih prompt untuk memasukkan informasi sehingga klien menampilkannya dan mengirimkan kembali tanggapan oleh pengguna. Digunakan untuk menyediakan otentikasi password sekali-waktu seperti S/Key atau SecurID. Digunakan oleh beberapa konfigurasi OpenSSH dimana PAM bertindak sebagai penyedia otentikasi host yang mendasar agar secara efektif dapat menyediakan otentikasi password, namun kadang-kadang menyebabkan kegagalan untuk login dengan klien yang hanya mendukung metode otentikasi password biasa.

o

metode otentikasi GSSAPI yang menyediakan sebuah skema extensible untuk melakukan otentikasi SSH menggunakan mekanisme eksternal seperti Kerberos 5 atau NTLM, menyediakan satu kemampuan sign on untuk sesi SSH. These methods are usually implemented by commercial SSH implementations for use in organizations, though OpenSSH does have a working GSSAPI implementation. Metode ini biasanya digunakan pada implementasikan SSH komersial untuk digunakan dalam organisasi, meskipun OpenSSH memang memiliki implementasi kerja GSSAPI.

Lapisan koneksi. Lapisan ini mendefinisikan konsep kanal, kanal permintaan dan permintaan global menggunakan layanan yang disediakan SSH. Sebuah koneksi SSH dapat melayani beberapa kanal secara bersamaan, masing-masing mentransfer data dalam dua arah. Permintaan kanal tersebut digunakan untuk menyambungkan saluran data spesifik secara out-of-band, seperti perubahan ukuran jendela terminal atau exit code dari sebuah proses server-side. Klien SSH meminta sebuah port server-side untuk diteruskan menggunakan sebuah permintaan global. Jenis saluran standar yang tersedia adalah:
o o o

shell untuk terminal, SFTP dan request exec (termasuk transfer SCP) direct-tcpip untuk koneksi klien-ke-server yang diteruskan forwarded-tcpip for server-to-client forwarded connections forwarded-tcpip untuk koneksi server-ke-klien yang diteruskan

15

SSHFP DNS record (RFC 4255) menyediakan sidik jari kunci publik untuk membantu memverifikasi keaslian host.

Fungsi lapisan transportasi sendiri sebanding dengan TLS; lapisan otentikasi pengguna sangat extensible dengan metode otentikasi khusus; dan lapisan sambungan menyediakan kemampuan untuk membuat banyak sesi sekunder ke dalam satu koneksi SSH, sebuah fitur yang sebanding dengan BIP dan tidak tersedia di TLS.

Peringatan keamanan
Sejak SSH-1 memiliki kelemahan desain yang melekat dan membuatnya rentan (misalnya, terhadap serangan man-in-the-middle), sekarang umumnya dianggap usang dan harus dihindari pengguannya dengan menonaktifkan fallback ke SSH-1 secara eksplisit. Sementara server dan klien modern telah mendukung SSH-2, beberapa organisasi masih menggunakan perangkat lunak tanpa dukungan untuk SSH-2, dan dengan demikian SSH-1 tidak selalu dapat dihindari. Dalam semua versi SSH, penting untuk memverifikasi kunci publik sebelum menerimanya secara valid. Menerima seorang kunci publik atttacker sebagai kunci publik yang valid memiliki efek membuka password yang ditransmisikan dan memungkinkan serangan man in-the-middle.

Mengamankan SSH dari upaya BRUTE FORCE
Demi Keamanan Server Kita Dari Serangan Para Attacker yg biasanya Selalau Menggunakan SSH Sebagai pintu Awal Untuk Masuk Kedalam Sistem kita,tentunya menjadi kewajiban seorang admin untuk Menghalau berbagai Upaya Itu. Ada beberapa cara yg biasa dilakukan orang untuk mengamankan SSH dari berbagai serangan yg salah satunya adalah dengan mengedit file /etc/ssh/sshd_config. Sebelum melakukan konfigurasi

16

pada file /etc/ssh/sshd_config pastikan SSH sudah terinstall pada distribusi linux anda,dan untuk Distro Opensuse yang saya pakai itu udah otomatis terinstall. Kemudian edit file /etc/ssh/sshd_config dengan menggunakan editor kesayangan anda misalnya VIM #vim /etc/ssh/sshd_config

coba cari opsi : LoginGraceTime 2m PermitRootLogin no MaxAuthTries 3 LoginGraceTime Merupakan opsi yg digunakan untuk memberikan batas waktu login dari user,jadi silakan ubah opsi tersebut sesuai keinginan anda. Contoh SSH Login Dalam contoh ini kita akan membuat sebuah SSH Login session ke mesin deploy.magnet-id.com dengan IP Address 117.103.57.23.
• •

Jalankan Putty Ketik hostname atau IP Address pada kolom hostname, sesuaikan port dan pilih connection type SSH

Masukkan nama Session yang anda inginkan (untuk di load di kemudian hari) dan klik Save

17

Putty SSH Session Setup

Masih di Putty Configuration, masuk ke Connection>Data (di sebelah kiri) dan masukkan Auto Login username, dalam contoh ini adalah root. Setelah itu kembali ke Session (depan dan klik Save)

18

Putty Configuration Auto Login

Sampai dengan tahap ini, apabila anda meload save session dan klik open (atau double click pada saved session) maka anda akan langsung diminta untuk memasukkan password untuk root, karena pada saved session tersebut anda sudah memasukkan username root sebagai autologin username.

19

Setup Key Pair (Private dan Public)
• •

Kita akan membuat key pair dengan menggunakan Puttygen, jalankan program Puttygen Pilih SSH 2 – RSA pada type of key to generate dan masukkan 1024 pada number of bits in a generated key

20

Type of Key

Arahkan pointer mouse ke daerah kosong pada saat anda mengklik generate untuk menambah randomness.

Generate Key

Setelah key digenerate silahkan save Public Key dan Private Key ke direktori khusus dan nama khusus misalnya tes-publik.txt dan tes-private.ppk, mohon diperhatikan bahwa private key harus kita simpan dalam format .ppk

21

Save Public dan Private Key

Pastikan bahwa anda bisa melakukan login dengan menggunakan key pair, masuk ke konfigurasi session anda di Putty, load save session sebelumnya (jangan di open), Pilih Connection>SSH>Auth (di sebelah kiri, browse ke file private key anda, kembali ke depan, dan Save Session tersebut kemudian open.

22

Attached Private Key

Masuk ke mesin anda dengan autentikasi password biasa karena key kita belum diakui, kita harus terlebih dahulu memasukkan Public Key yang kita generate sebelumnya.

PermitRootLogin no Merupakan opsi untuk mengijinkan user root bisa login ke ssh atau tidak dengan memberikan nilai yes atau no pada opsi tersebut.sebaiknya berikan nilai no, agar user tidak dapat login sebagai root ke ssh anda.

23

MaxAuthTries 3 untuk memberikan batas jumlah kesalahan yang di perbolehkan pada saat user melakukan login, hal ini sangat berguna untuk menghindari attacker melakukan brute force pada server anda.dimana user hanya dibiarkan melakukan kesalahan pengetikan password sesuai dengan yg telah di tentukan pada opsi tersebut. Jika anda menginginkan user tertentu saja yang boleh login ke ssh anda tambahkan opsi AllowUsers pada akhir baris diikuti nama user yg di perbolehkan login.

Membuat Autentikasi SSH Tanpa Password
Komunikasi antar proses dalam MPICH (ch_p4) dilakukan melalui koneksi yang dibangun dengan RSH. Jika ingin menggunakan koneksi yang lebih aman, SSH dapat digunakan sebagai pengganti RSH. Satu masalah yang akan ditemui adalah masalah autentikasi. Saat proses ingin dijalankan di mesin lain, maka user harus melakukan autentikasi di mesin tersebut dengan memasukkan password. Jika mesin yang digunakan ada banyak, maka proses memasukkan password akan menjadi satu masalah tersendiri. Proses autentikasi pada SSH dapat diganti dengan metode lain, yaitu dengan menggunakan private/public key. Private key yang ada dapat diatur apakah memiliki passphrase atau tidak. Dengan meniadakan passphrase, autentikasi SSH dapat dilakukan tanpa perlu mengetikkan password. Berikut ini adalah caranya. 1. Buatlah private/public key dengan menjalankan perintah berikut.
2. $ ssh-keygen -t rsa

Ikuti saja konfigurasi default. 3. Masuk ke direktori ~/.ssh

24

4. $ cd ~/.ssh

5. Set public key yang berhak mengakses komputer dengan cara memasukkan public key ke dalam file authorized_keys. Kali ini, public key yang dimasukkan adalah public key yang baru saja dibuat.
6. $ cp id_rsa.pub authorized_keys

7. Uji koneksi SSH
8. $ ssh localhost

Seharusnya autentikasi SSH tanpa password sudah dapat dilakukan. Menyimpan Public Key di Server Masuk ke dalam mesin kita melalui login biasa, kita akan menyimpan public key yang telah kita generate sebelumnya di dalam server kita view sourceprint?
1.cd /root/ 2.mkdir ~/.ssh 3.vi ~/.ssh/authorized_keys2

Masukkan publik key kita dalam satu baris; dalam kasus ini; view sourceprint?
1.ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAus97/+R0rDL/wWqRs+RiB+VNEHf4YQ8LAmYda63n+oD1wc4Gx rRNd49qb2zCHOR7k3OJgUWNO3/PuCSS+G1qyRebYtQbX6XuRoqjpmyR91y64pbqFmbUrREUPbaSn4 1HFSIoW6Sg1Kj312t/K0ov3hBbExfUveaG1N12m8y3HR0= tes@host.com

Ubah permission file key tersebut agar hanya bisa dibaca tulis oleh user tersebut view sourceprint?
1.chmod 600 ~/.ssh/authorized_keys2

25

Buka session SSH dengan menggunakan attached key, apabila konfigurasi berhasil maka anda akan ditanyakan passphare, dan bukan password. Artinya public key telah digunakan sebagai metoda otentikasi untuk SSH Session anda.

Passphrase SSH Disable Login Username dan Password Jalankan prosedur ini apabila anda ingin mengoptimalkan pengamanan SSH Mesin anda, mohon dipastikan bahwa autentikasi dengan menggunakan key pair telah berhasil dilakukan pada langkah sebelumnya. Masuk ke dalam box anda, edit / modifikasi konfigurasi sshd anda, pada CentOS 5.2; view sourceprint?
1.vi /etc/ssh/sshd_config

Sesuaikan direktif berikut view sourceprint?
1.Protocol 2

26

2.PasswordAuthentication no 3.UsePAM no

Restart service sshd view sourceprint?
1.service sshd restart

Dengan demikian SSH pada server anda tidak dapat lagi diakses melalui otentikasi username dan password. Autologin Passphrase Autologin dapat digunakan dengan menggunakan pageant, namun demikian pageant harus berjalan pada background proses, misalkan kita memanggil private key yang kita simpan untuk berjalan pada background proses, silahkan browse ke tempat private key anda disimpan dan double click, program pageant akan berjalan dengan passphrase private key terload, sehingga ketika anda membuka session tidak akan ditanyakan passhrase kembali.

Pageant Save Passphrase

27

RPC ( Remote Proceure Call )
Definisi RPC
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure. Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu harus menghubungi port yang mana, client bisa me- request kepada sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang diminta client. RPC adalah satu teknik komunikasi interproses yang memungkinkan perangkat lunak client dan server untuk berkomunikasi. Sebuah Open Group’s Distributed Computing Environment (DCE), yang merupakan spesifikasi untuk remote prosedur call dan interoperable dengan sistem DCE-based RPC yang lain, seperti untuk sistem operasi HP-UX dan IBM AIX UNIX–based. RPC dirancang untuk mengurangi isu-isu kerumitan pada kompleksitas di OS dengan menyediakan suatu antar muka yang umum antar aplikasi. RPC bertindak sebagai suatu middle untuk komunikasi-komunikasi client/server. RPC dirancang untuk membuat client/server interaksi lebih aman dan lebih mudah seperti keamanan, sinkronisasi, dan data mengalirkan menangani, ke dalam suatu standar yang umum. RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter- install kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

Klien dan Server
Klien adalah komputer atau proses yang mengakses suatu servis/layanan atau resources dari proses atau komputer pada suatu jaringan. Server adalah komputer yang menyediakan

28

servis/layanan dan resources, dan yang mengimplementasikan servis jaringan. Tiap servis pada network adalah susunan dari program remote, dan tiap program remote mengimplementasi prosedur remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara spesifik pada protokol suatu program.

Protokol Message RPC
Protokol Message RPC didefinisikan dengan menggunakan deskripsi data eXternal Data Representation ( XDR ) yang meliputi struktur, enumerasi dan union. Pembahasan lebih lanjut akan diterangkan pada bab berikutnya mengenai implementasi RPC. Protokol Message ini membutuhkan faktor-faktor pendukung sebagai berikut : 1. Spesifikasi yang unik untuk tiap prosedur call 2. Respon message yang sesuai untuk tiap message yang diminta 3. Otentifikasi klien untuk tiap layanan dan sebaliknya Protokol Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan reply message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan akan menerima balasan (reply) berupa hasil dari eksekusi prosedur tersebut. Dengan menggunakan spesifikasi yang unik untuk tiap prosedure remote, maka RPC dapat mencocokkan message balasan untuk tiap call message yang diminta klien.

Call Message
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah : 1. Nomor Program 2. Nomor Versi dari Program7 3. Nomor Prosedur

Reply Message
Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call messages yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages. Informasi ini antara lain :

29

1. RPM mengeksekusi call message dengan sukses 2. Implementasi remote tidak sesuai dengan protokol yang digunakan. Versi yang lebih rendah atau tinggi akan ditolak. 3. Program remote tidak tersedia pada sistem remote 4. Program remote tidak mendukung versi yang diminta klien 5. Nomor prosedur yang diminta tidak ada.

Fitur dalam RPC
RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callback procedures dan using the select subroutine.

Batching Calls
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi error pada message yang dikirim.

Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network. Fitur ini menggunakan protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk mengimplementasikan fungsinya.

Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.

30

Menggunakan select Subrutin
Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.

Otentifikasi RPC
Proses otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien pada RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC menyediakan slot yang dipakai sebagai parameter otentifikasi yang berfungsi agar pemanggil (caller) dapat memberikan identitasnya kepada server. Parameter otentifikasi ini dibuat di paket klien. Otentifikasi RPC terdiri atas beberapa bagian. Berikut ini adalah bagian-bagian pada otentifikasi RPC : 1. Protokol Otentifikasi RPC Protokol Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap prosedur remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter yang digunakan adalah respon verifier. Sedangkan pada pihak klien, setiap paket RPC diberikan parameter otentifikasi dan parameter yang digunakan adalah credential dan verifier. 2. Otentifikasi NULL Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil. 3. Otentifikasi UNIX Otentifikasi Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini dibagi dua (2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi server. Pada sisi klien, otentifikasi ini akan membuat otentifikasi handle dengan AIX permissions agar dapat berasosiasi dengan parameter credentials pada sistem UNIX. Sedangkan pada sisi server, server harus dapat menentukan tipe otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap tipe otentifikasi akan memberikan reply yang berbeda.

31

4. Otentifikasi Data Encryption Standard ( DES ) Otentifikasi DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun klien. Tiap pengguna pada sistem ini harus memiliki kunci public ( public key yang disahkan pada database kunci publik oleh Administrator jaringan tersebut. 5. Protokol Otentifikasi DES Protokol Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi RPC. Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan panjang maksimum untuk user name pada jaringan yang digunakan.

6. Enkripsi Diffie-Hellman Enkripsi Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES dengan menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variable konstan, yaitu BASE dan MODULUS yang digunakan pada protokol otentifikasi DES. RPC berhubungan hanya dengan proses otentifikasi, tidak dengan kontrol akses terhadap services/layanan individual yang diberikan. Tiap layanan mengimplementasikan peraturan mengenai kontrol akses masing-masing. Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya beberapa otentifikasi dapat diasosiasikan pada RPC klien.

32

RPC suatu metoda yang powerfull, cepat, efisien dan aman untuk komunikasi antar proses yang memungkinkan pertukaran data pada proses yang berbeda. Proses bisa berada di komputer yang sama, LAN atau Internet.

Arsitektur RPC at Windows 2003

Proses RPC

33

RPC Support NT Protocol

Port Assignment

34

Remote Procedure Call dengan SunRPC
Salah satu implementasi RPC (Remote Procedure Call) adalah dengan menggunakan SunRPC. Dalam tutorial kali ini, saya akan mencontohkan pembuatan program sederhana yang menggunakan SunRPC. Service yang disediakan oleh program adalah operasi matematika dasar, yaitu penjumlahan, pengurangan, perkalian, pembagian, dan pencarian modulo.

Pendefinisian Service
Sebelum program yang menggunakan RPC dibuat, kita harus mendefinisikan fungsi-fungsi atau prosedur-prosedur apa saja yang akan dibuat. Berikut ini adalah definisi service yang akan kita buat.
struct angka { int a; int b; }; program TAMBAHAN { version TAMBAHANVER { int tambah(angka) = 1; int kurang(angka) = 2; int kali(angka) = 3; float bagi(angka) = 4; int mod(angka) = 5; } = 1; } = 99;

Simpan text di atas ke dalam sebuah file bernama tambah.x. Sekarang jalankan program rpcgen untuk mengubah file tersebut menjadi client dan server stub.

35

rpcgen tambah.x

Setelah program di atas dijalankan, akan terbentuk empat buah file baru. Yaitu: 1. tambah_clnt.c 2. tambah_svc.c 3. tambah.h 4. tambah_xdr.c Semua file tadi akan digunakan dalam pembuatan program client dan server RPC.

Pembuatan Server
Program server akan mengimplementasikan fungsi-fungsi pada server stub. Dalam program kali ini, ada lima buah fungsi yang harus diimplementasikan, yaitu: 1. int * tambah_1_svc(angka *, struct svc_req *) 2. int * kurang_1_svc(angka *, struct svc_req *) 3. kali_1_svc(angka *, struct svc_req *) 4. bagi_1_svc(angka *, struct svc_req *) 5. mod_1_svc(angka *, struct svc_req *) Daftar fungsi-fungsi itu dapat dilihat pada file tambah.h. Berikut ini adalah implementasi fungsi yang akan kita buat.
#include <rpc/rpc.h> #define _RPCGEN_SVC #include "tambah.h" int * tambah_1_svc(angka *input, struct svc_req *req) { static int hasil; hasil = input->a + input-> b; return &hasil; }

36

int * kurang_1_svc(angka *input, struct svc_req *req) { static int hasil; hasil = input->a - input->b; return &hasil; } int * kali_1_svc(angka *input, struct svc_req *req) { static int hasil; hasil = input->a * input-> b; return &hasil; } float * bagi_1_svc(angka *input, struct svc_req *req) { static float hasil; hasil = (float)input->a / (float)input->b; return &hasil; } int * mod_1_svc(angka *input, struct svc_req *req) { static int hasil; hasil = input->a % input->b; return &hasil; }

Simpan source code di atas ke dalam file tambah_server.c. Setelah itu, lakukan kompilasi.
gcc -o tambah_server tambah_server.c tambah_svc.c tambah_xdr.c

Pembuatan Client
Program yang akan menjadi client, dapat menggunakan prosedur yang dijadikan sebagai remote procedure seolah-olah prosedur/fungsi tersebut menjadi bagian dari program client.

37

Berikut ini adalah source code dari program client yang akan kita buat.
#include <rpc/rpc.h> #define _RPCGEN_CLNT #include "tambah.h" int main(int argc, char **argv) { CLIENT *cl; int *hasil; float *hasil_float; struct angka input; if (argc < 2) { printf("Masukkan alamat komputer yang menyediakan service.\n"); printf("Contoh: %s localhost\n\n", argv[0]); exit(1); } cl = clnt_create(argv[1], TAMBAHAN, TAMBAHANVER, "tcp"); if (cl == NULL) { clnt_pcreateerror(argv[1]); exit(1); } cl->cl_auth = authunix_create_default(); input.a = 2; input.b = 2; printf("%d + %d = %d\n", input.a, input.b, *tambah_1(&input, cl)); printf("%d - %d = %d\n", input.a, input.b, *kurang_1(&input, cl)); printf("%d * %d = %d\n", input.a, input.b, *kali_1(&input, cl)); printf("%d / %d = %d\n", input.a, input.b, *bagi_1(&input, cl)); printf("%d %% %d = %d\n", input.a, input.b, *mod_1(&input, cl)); }

38

Simpan source code di atas ke dalam file tambah_client.c. Setelah itu lakukan kompilasi.
gcc -o tambah_client tambah_client.c tambah_clnt.c tambah_xdr.c

Lapisan RPC
Bagian antar-muka (interface) dari RPC dibagi menjadi 3 lapisan / bagian (layer) yaitu :

1. Lapisan Tertinggi (Highest Layer) Lapisan ini merupakan lapisan yang sangat bersentuhan langsung dengan sistem operasi, mesin dan jaringan tempat RPC berjalan. Layer ini umumnya banyak digunakan pada pembuatan dan pemprograman RPC karena penggunaan layer ini sama saja dengan penggunaan RPC. Banyak servis / layanan pada layer ini yang berhubungan langsung dengan informasi yang banyak dibutuhkan, misalnya fungsi rnuser() yang berguna untuk memberikan informasi jumlah user / pengguna pada sistem remote.

Berikut ini jenis-jenis servis lainnya yang banyak digunakan pada layer ini : Rutin rnusers rusers havedisk rstats rwall yppasswd Deskripsi mengembalikan jumlah user pada sistem remote mengembalikan informasi mengenai user tertentu memeriksa keberadaan disk pada mesin remote melihat kinerja dari kernel remote menulis untuk menentukan mesin remote tertentu mengupdate password dari user dalam Yellow Pages.

2. Lapisan Menengah (Intermediate Layer) Lapisan ini merupakan implementasi dari RPC sesungguhnya. Pada layer ini, seorang user tidak harus berhubungan dengan soket, sistem operasi atau implementasi lo-level lainnya. Pada layer ini, seorang user hanya melakukan proses remote pada suatu mesin. Layer ini merupakan layer yang digunakan untuk semua program RPC. Pada layer ini terdapat rutin-rutin mengenai ”registerrpc()”, ”callrpc”, dan scv run. Dua rutin yang disebut pertama adalah rutin-rutin yang fundamental. ”registerrpc() digunakan untuk memperoleh nomor unik dari tiap prosedur identifikasi dalam tiap sistem. Sedangkan ”callrpc()”

39

digunakan untuk mengeksekusi prosedur remote. Implementasi layer diatasnya dilakukan pada layer ini.

3. Lapisan Terendah (Lowest Layer) Lapisan ini merupakan lapisan yang mengatur tentang soket dan sistem call. Lapisan ini tidak memberikan data dan servis secara detail untuk dapat digunakan. Umumnya program yang dibuat untuk lapisan ini merupakan program yang paling efisien. Permasalahan yang timbul pada sistem ini berkaitan dengan penyesuaian implementasi RPC untuk sistem operasi yang berbeda.

Kelemahan dan Eksploitasi RPC
Tujuan utama penggunaan protokol RPC adalah untuk mempermudah komunikasi dalam pembangunan aplikasi klien - server yang terdistribusi. Namun dalam perkembangannya, seiring dengan perkembangan sistem operasi, protokol ini banyak disalah-gunakan. Hal ini terkait dengan kelemahan protokol ini yang dimanfaatkan oleh pihak-pihak tertentu untuk mendapatkan keuntungan atau sekedar untuk mengacaukan sistem yang berlaku. Tindakan ini disebut juga dengan eksploitasi RPC.

Kelemahan RPC pada Sistem Operasi Windows
Sistem operasi Microsoft Windows adalah salah satu sistem operasi yang mendukung protocol RPC. Sebagai sistem operasi yang paling banyak digunakan di seluruh dunia baik untuk PC Desktop maupun server, sistem operasi Windows menjadi salah satu sistem operasi yang banyak dijadikan target mulai dari serangan virus, worm, sampai trojan. Protokol RPC juga tidak luput menjadi sasaran serangan oleh pihak yang tidak bertanggung jawab. Alasan penyerangan pada protokol ini disebabkan karena kemudahan ketergantungan sistem operasi Windows pada servis/layanan RPC. Banyak layanan pada sistem operasi ini yang didesain untuk bergantung pada layanan RPC, baik digunakan maupun tidak. Dan sayangnya, pengguna sistem operasi ini tidak dapat mengdisfungsikan layanan RPC. Pengguna bisa saja menggunakan firewall untuk memblok port RPC, namun karena system operasi Windows terlalu bergantung pada mekanisme RPC sebagai fungsi dasarnya maka hal ini kadang-kadang tidak berhasil. Bahkan sebagai studi

40

kasus, pada sistem operasi Windows Server 2003 terdapat kelemahan pada fungsi RPC itu sendiri ( Informasi lengkapnya dapat dilihat pada tabel kelemahan sistem operasi ini pada lampiran ). Kelemahan protokol RPC pada sistem operasi ini terletak pada fungsi RPC yang berhubungan dengan pertukaran message melalui protokol TCP/IP. Hal ini mempengaruhi bagian antar-muka Distributed Component Object Model (DCOM) yang berhubungan dengan RPC, yang akan mendengarkan ( listen ) port-port RPC yang tersedia. DCOM adalah protokol yang berfungsi untuk mengaktifkan komponen pada perangkat lunak ( software ) agar dapat berkomunikasi langsung dengan jaringan. Protokol ini didesain untuk penggunaan jaringan multi tranport termasuk protokol Internet misalnya HTTP. RPC melalui HTTP v1 ( pada sistem operasi WIndows NT 4.0, Windows 2000 ) dan v2 ( Windows XP, Windows Server 2003 ) mempunyai suatu fitur baru yaitu mendukung protokol transportasi RPC yang mengijinkan RPC untuk beroperasi melalui port TCP 80 dan 443. Hal ini menyebabkan komunikasi antara klien dan server dapat dilakukan walaupun dalam pengawasan server proxy dan firewall. COM Internet Services ( COM ) mengijinkan DCOM untuk melakukan RPC melalui HTTP untuk komunikasi DCOM klien dan DCOM server. Port Portmap 111 adalah nomor port yang paling banyak diakses, namun umumnya nomor port ini telah difilter oleh firewall. Kecenderungan lain berpindah pada nomor port lain yang dapat digunakan untuk mengirim pesan tertentu yang telah dimanipulasi, seperti port 135, 139, 445, 593 pada remote komputer. Melalui port-port ini maka seorang user dapat melakukan permintaan yang dapat mengekploitasi dengan menjalankan kode dengan hak sistem lokal. Berikut ini tabel protokol yang sering dimanfaatkan pada ekploitasi RPC :
Urutan Protokol yang digunakan oleh Endpoint Mapper ncacn ip tcp ncacn ip udp ncacn np pipe emapper ncacn http ncacn http dengan servis COM Internet aktif Port TCP atau UDP TCP/135 UDP/135 TCP/139 dan TCP/445 TCP/593 TCP/180

Masalah ini semuanya disebabkan oleh kelemahan pada servis RPCSS. Servis ini berhubungan dengan aktivasi DCOM. Kegagalan terjadi pada penanganan messages yang salah sehingga mempengaruhi aktivasi DCOM yang mendengarkan port UDP 135, 137, 138, 445 dan port TCP 135, 139, 445, 593. Ditambah port 80 dan 443 ( CIS atau RPC over HTTP ) jika

41

diaktikan. Dengan kesalahan ini, maka seorang klien dapa menggunakan kegagalan ini untuk mengeksekusi kode yang dapat dijalankan pada server.

Implementasi Eksploitasi RPC
Pada implementasi ini digunakan beberapa tools yang digunakan untuk melakukan eksploitasi pada RPC. Pada contoh kasus ini, implementasi dilakukan pada Local Area Network ( LAN ) dengan host yang menggunakan sistem operasi Microsoft Windows XP. Eksekusi eksploitasi ini dibagi menjadi beberapa tahap. Tahap pertama adalah deteksi system yang memiliki kelemahan ( vulnerability ). Tahap kedua adalah penyerangan terhadap system tersebut. Biasanya pada tahap ini digunakan program yang didesain khusus untuk mengeksploitasi RPC. Pada contoh kasus ini digunakan program bernama ”Kaht”. Tahap terakhir adalah tahap eksekusi kode pada sistem yang telah ter-remote. Pada tahap ini, seorang penyerang dapat melakukan apa saja mulai dari pembuatan account user dengan hak administrator sampai pengambilan data pada sistem.

Deteksi Sistem
Tools yang digunakan pada tahap ini adalah RPCScan v.2.03 buatan Foundstone.inc dan digunakan pada sistem operasi Microsoft Windows. Sebetulnya tujuan awal penggunaan perangkat ini adalah untuk mendeteksi sistem yang memiliki kelemahan keamanan bagi para Administrator, namun dapat dipakai untuk tujuan lain. Software ini dapat mendetaksi sistem operasi yang memiliki kelemahan yaitu pada layanan DCOM (Distributed Component Object Model). Sesuai dengan penjelasan pada bagian sebelumnya, layanan DCOM merupakan komponen yang berhubungan dengan servis RPC.

42

Sistem yang memiliki Kelemahan

Sistem yang masih mengaktifkan layanan DCOM akan diberi status ”Vulnerable” dan sebaliknya akan diberi status ”DCOM Disabled”( Figure 3.1). Batasan pen-scan-an pada perangkat ini terbatas pada jaringan dengan protokol IP v4. Namun mengingat masih banyaknya sistem yang menganut protokol ini, maka implementasi pengecekan sistem dapat terjadi pada siapa saja. Serangan akan ditujukan pada sistem dengan keterangan Vulnerable.

43

DAFTAR PUSTAKA

IlmuKomputer.Com Wikipedia.co.id Scribd.com http://artikel.magnet-id.com/category/pengelolaan-linux/ http://guru.sman3kuningan.sch.id/nurdin/?p=14 http://www.scribd.com/doc/8950660/Skripsi-Teknik-Informatika

44

Sign up to vote on this title
UsefulNot useful