Rabu, 13 Januari 2010

Transfer Control Protocol / Internet Protocol dan User Datagram Protocol


 TCP/IP dan UDP

TCP/IP TCP singkatan dari 'Transmission Control Protocol' dan hampir semua sistem operasi modern kompatibel dengan protocol ini. TCP adalah dasar dari koneksi, Hal ini berarti melakukan suatu koneksi langsung antara dua komputer untuk melakukan transfer data antara kedua host. Suatu paket mengandung header dan data gram, pada bagian header dari paket akan mengandung informasi penting tentang :
? ? Source Port 
? ? Destination Port 
? ? Sequence number 
? ? Acknowledgement number 
? ? Header Length (Standard 20 Bytes) 
? ? Flags (syn, ack, psh, fin, rst, urg) 
? ? Window size 
? ? Checksum 
? ? IP_v4 or IP_v6 
? ? Header Length 
? ? DSF 
? ? Total Length 
? ? Identification 
? ? Flags (Set Fragment bit or not) 
? ? Fragment Offset 
? ? TTL 
? ? Protocol (this case TCP) 
? ? Header checksum 
? ? Source IP 
? ? Destination IP
 
Jika anda ingin memahami bagaimana suatu koneksi dilakukan, bacalah dengan seksama ilustrasi berikut ini : 
Awalnya suatu paket dengan SYN-flag dikirim ke IP tujuan, tujuan akan memberikan respon dengan suatu ACK(SYN) flag atau suatu paket de ngan RST-flag. Akan saya jelaskan: SYN singkatan dari SYN -(synchronisation), yang digunakan untuk ‘memberitahukan' komputer tujuan suatu permintaan
melakukan koneksi, kalau diterima, maka permintaan tersebut akan dijawab dengan suatu paket ACK(SYN) flag. A CK singkatan dari ACK-(nowledgement). Setelah menerima paket dengan ACK(SYN) flag, komputer mengirim kembali suatu ACK memberitahukan host lain bahwa koneksi telah dibuat. Hal ini kita sebut sebagai "Three-Way-Handshake". Jika koneksi telah dibuat dan salah satu host ingin melakukan disconnect, akan dikirim suatu paket dengan FIN-flag diaktifkan. (FIN singkatan dari FINish). Tabel ini akan membuat hal ini lebih jelas: 



Computer A Computer B
========== ========== 
1) SYN --> 
2)         <-- ACK(SYN) 
3) ACK --> Ya, koneksi telah dibuat! 
4) FIN --> 
5)         <-- ACK(FIN)
 
Computer A Computer B 
========== ==========
1) SYN -->
2)         <-- RST
3) ACK  --> "Computer B" tidak ingin mela kukan koneksi dengan "Computer A"!
                 (mungkin komputer B menjalankan suatu firewall)

Ada beberapa cara untuk mengeksplotasi protocol TCP :
SYN-floods, teardrop, Smurf-attacks, sequence-number attacks & dll.
Untuk informasi yang lebih lengkap  http://neworder.box.sk/ dan http://packetstorm.securify.com/ 

IP adalah singkatan dari Internet Protocol. Perhatikan lagi contoh diatas, jika "Computer A" mengirim suatu paket ke "Computer B", IP dari kedua komputer berada didalam IP-header dari paket tersebut, yaitu IP tujuan (dari komputer B) dan IP sumber (dari komputer A).
Router yang berada diantara kedua host akan memeriksa IP-header tersebut dan melakukan masquerade paket tersebut ke segment berikutnya. Jika terjadi kesalahan dalam pengiriman tersebut, contohnya host tujuan tidak dapat dicapai, suatu ICMP (Internet Control Message Protocol) digunakan untuk mengirim pesan kesalahan sehingga kesalahan tersebut dapat diperbaiki (dan paket tersebut harus dikirim ulang). Program seperti 'ping' dan  ‘ traceroute’  juga mengunakan pesan ICMP untuk mendeteksi status dari host yang erada di segment lain.
Sekarang yang menjadi standar adalah IP_v4,  dan standar untuk masa yang akan datang adalah adalah IP_v6, juga disebut juga sebagai IP_ng (next generation). IP_v4 mengunakan pengalamatan 32-bit, sedangkan IP_v6 menggunakan pengalamatan 128-bits, sehingga menghasilkan pengalamatan IP dalam jumlah yang sangat besar.  Beberapa protocol penting lainnya :

·         UDP, User Datagram Protocol, adalah TCP yang connectionless. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan dan mencapai komputer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host, jadi UDP sifatnya tidak realibel, tetapi UDP adalah lebih cepat dari pada TCP karena tidak membutuhkan koneksi langsung.

·         FTP (File Transfer Protocol), digunakan untuk melakukan upload dan download file, keamanan didasarkan kepada username dan password (kadang-kadang suatu anonymous login diperbolehkan), Kelemahan dari protocol ini adalah username dan password dikirim secara Clear Text melalui jaringan komunikasi, sehingga dapat menjadi sasaran empuk  bagi program pemantau jaringan seperti packet Sniffer. Suatu daemon FTP melakukan listening pada port 21/TCP dan mengirim data pada port 20/TCP.

·         HTTP, HyperText Transfer Protocol. HTTP digunakan untuk transfer halaman web, sebelumnya orang menggunakan protokol gopher. Tetapi  Gopher hanya mendukung text, sehingga HTTP berkembang dan digunakan oleh orang banyak. Suatu daemon HTTP

·         SMTP, Simple Mail Transfer Protocol digunakan untuk mengirim electronic mail (Email). Baca tutorial tentang send-mail diRead the send mail-tutorial pada http://blacksun.box.sk/ dan anda akan belajar banyak tentang protocol ini, suatu daemon SMTP mendengan pada 25/TCP. Salah satu kelemahan dari protokol ini adalah tidak melakukan authentication terhadap klien, sehingga seseorang dapat dengan mudah mengunakan telnet ke port 25/TCP, dan mengirim email kepada siapa saja, dan dapat memanipulasi alamat sumber data.

·         POP, Post Office Protocol. Belakangan ini POP3 adalah standard yang paling popular. POP digunakan untuk menerima dan membaca email dari suatu halaman web. Suatu daemon POP3 melakukan listening  pada 110/TCP. Salah satu kelemahan protocol ini adalah mengirim username dan password secara Clear Text, sehingga dengan mudah dapat diambil dengan program packet Sniffer.

·         DHCP: Dynamic Host Configuration Protocol. Jika anda mendapatkan suatu Cable-connection dengan menggunakan DHCP akan mendapatkan IP dari ISP anda.
 
·         OSPF (Open Shortest Path First) & RIP (Routing Information Protocol) digunakan untuk menentukan metode yang terbaik dalam routing.
 
·         BOOTP digunakan untuk boot (biasanya) suatu diskless workstation akan membaca informasi boot pada server. Server standarnya melakukan listening  pada 67/UDP.

·         ARP & RARP: Address Resolution Protocol. Saya akan menjelaskannya dengan contoh: Jika anda ingin mengirim data ke suatu host dan anda memiliki MAC-address (Media Access Control, Ethernet-address) anda dapat melakukan query ke router untuk mendapatkan IP-nya, hal ini ditangani oleh ARP, jika anda memiliki IP dari sautu host dan anda ingin mendapatkan MAC-address-nya, anda dapat menggunakan RARP (Reverse Address Resolution Protocol).

·         Telnet (Network terminal protocol) digunakan untuk login secara remote ke komputer (biasanya pada sistem UNIX-base). Telnet mengirim username dan password dalam bentuk Clear Text melalui jaringan, sehingga mudah diambil orang lain dengan suatu Packet Sniffer. Ada protocol yang disebut sebagai SSH (Secured SHell) yang juga digunakan untuk login yang lebih aman secara  remote: dimana data yang akan dikirim di enkripsi, sehingga data yang diperoleh packet Sniffer menjadi tidak berarti. Telnet dan SSH sering digunakan pada lingkungan UNIX. Suatu daemon telnet melakukan listening  pada 23/TCP dan daemon SSH melakukan listening pada 22/TCP.

·         Suatu protocol khusus pada sistem UNIX-base adalah finger, dan sudah sekarang jarang ditemukan. UNIX yang menjalankan daemon finger, standar-nya melakukan pendengaran  pada 79/TCP & 79/UDP. Kelemahan finger adalah akan memberikan informasi yang berharga keluar (seperti nama account, nomor telepon sehingga memungkinkan untuk pemakaian serangan Social-Engineering). Terdapat banyak kelemahan pada daemon finger dan sangat tidak aman.


TCP dan UDP Port
=====================================================================================
port 20 = bangun koneksi (FTP)
     21 = transfer
port 22 = SSH (lebih secure ketimbang Telnet)
port 23 = Telnet
port 25 = SMTP
port 80 = HTTP
port 110= POP3
port 137= Net BIOS
port 143= IMAP
port 139= SMB
port 443= HTTPs

Aplikasi yg menggunakan UDP;
DNS, SNMP,TFTP(Trivial FTP), RPC, LDAP, video streaming, radio streaming, game online
-tidak ada error handling, dan flow control


Port

Port dalam arti bahasa Indonesianya adalah lubang. Tetapi kalau dalam komputer port diasumsikan sebagai pintu service. Misalnya di komputer A membuka port 21, maka kita tahu bahwa komputer A membuka diri untuk sebuah pelayanan ftp (file transfer protocol. Berikut ini adalah daftar standar untuk port :
No
Protokol
Label Port
Nama Port
Keterangan

19
tcp/udp
chargen
Character
Generator karakter ini mengembalikan deretan karakter-karakter. Walaupun sebagian besar layanan yang ada sekarang terbatas ke 512 byte, namun bisa dijumpai server yang mengirimkan karakter secara terus menerus sampai hubungan ke port ini diputuskan. Seringkali di server-server lama, jika jumlah klien yang membuka hubungan mencapai nilai ratusan secara sekaligus, CPU time akan terkonsumsi secara besar-besaran, mebuat sang server merangkak. Serangan tipe Denial of Service paling sederhana adalah dengan me-redireksi keluaran port 19 ke port lain (mentargetkan mesin-mesin Windows NT)

20/2
tcp
ftp
Generation
Protokol untuk menangani pentransferan file(-file) dari satu komputer ke komputer lainnya. Protokol ini menggunakan dua saluran, yang satu sebagai saluran untuk mengendalikan lalulintas data, sedangkan yang satunya lagi untuk dilintasi oleh data itu sendiri. Proses autentifikasi berdasar login/password. FTP adalah metode paling sering digunakan di situs-situs web untuk mengirim file (seringkali akses 'ftp only' diberikan kepada para pelanggan webhosting). Siapapun yang berhasil login akan diberikan hak yang sama berdasar id (jadi boleh menulis ke direktori 'home' milik user tsb), atau bahkan di banyak server, boleh membaca / tulis direktori milik pengguna lain. Eksploit-eksploit yang beredar termasuk untuk program-program wu_ftpd, ncftpd, ftpbounce, dll.

23
tcp
telnet
File Transfer
Metode login jarak jauh yang paling populer. Walaupun tidak seaman ssh (data yang melintasi tidak dienkripsi secara otomatis), masih terlalu banyak server-server yang mengizinkan login jarak jauh langsung tipe ini (sebagian besar UNIX, beberapa VMS). Metode ini pulalah yang paling sering diserang oleh chracker-chracker, terkadang dengan se-membabibuta mengetikkan root/daemon/dll, dan mencobakan password-password default. Seringkali mesin-mesin yang sebenarnya tidak berfungsi melayanin user (seperti dns, webserver, etc) menjalankan fungsi ini walaupun sebetulnya, tidak begitu diperlukan. 

25
tcp
mail
Protocol
Protokol pentransferan pesan sederhana, adalah standar de facto untuk internet. Termasuk salah satu port yang dijadikan sasaran eksploit-eksploit, yang  berjumlah sampai puluhan saking populernya. Karena protokol ini memerlukan akses berprivilese tinggi (seringkali setara root/admin) supaya bisa menulis ke direktori milik user manapun juga. Sebaiknya dihilangkan bagi mesin-mesin yang tidak begitu memerlukannya. 

48
tcp/udp
auditd
Telnet
Digunakan oleh daemon audit komputer-komputer Digital untuk menjalankan tugas-tugas administrasi. Banyak sniffer yang mentargetkan port ini.

53
tcp/udp
dns
Simple Mail
salah satu layanan yang cukup vital, dijalankan di server-server, berfungsi untuk memberikan informasi berbentuk alamat IP xxx.xxx.xxx.xxx untuk setiap permintaan penterjemahan dari nama-nama domain. Eksploit nameserver bisa dicari di internet atau di arsip kecoak.

79
tcp
finger
Transfer
daemon yang bertugas memberikan informasi mengenai pengguna-pengguna suatu sistem kepada sang peminta (seringkali siapa saja). Pada versi-versi lama Unix, perintah:
finger user@host1@host2@etc...(termasuk firewall) firewall.

80/ 8000/8080/dll
tcp
http
WWW,  
HyperText
Transfer
Protocol
Protokol pentransferan data berformat HTML (webpage-webpage) lainnya dari server kepada publik. Port ini sangat populer dijadikan sasaran para chracker (terutama ditargetkanoleh program-program pelacak kelemahan CGI), sebab banyaprogram CGI yang bisa dieksploit. Mesin-mesin yang menyediakan servis 'Frontpage Extensions' secara default terkenal berlobang besar, dan di-'patch'. Ada juga serangan dari pengunjung yang mencoba mengakses direktori-direktori yang terlindung password (contohnya di situs-situs porno) dengan cara mem-brute force proses otentifikasi (UserID dan
Password), sebab serangan semacam ini tidak direkam oleh log server.
110
tcp/udp
pop3
Post Office
Protocol v3
Protokol standar pemeriksaan email jarak jauh. Biasanya user (atau program e-mail client user) melog-on untuk memeriksa dan mengambil pesan email yang diterima lewat mailbox server. Hilangkan jika anda tidak membutuhkan layanan ini pada suatu server. Protokol ini mengizinkan siapapun untuk memasukkan kombinasi (lewat skrip) user+password secara 'brute force' tanpa mencatat log.

111
tcp/udp
sunrpc
Sun Remote
Procedure Call
Beberapa portscanner mentargetkan port ini, dan terdapat beberapa program yang mengeksploit port ini (mesin-mesin Sun/Solaris).

139
tcp/udp
netbios-ssn
NetBIOS
Session Service
Port inilah yang biasanya digunakan sebagai sarana komunikasi dengan atau antara mesin-mesin Microsoft
(NT/95/98). Penyerang seringkali mentargetkan 'shared device' yang bisa diakses lewat internet. Juga terdapat banyak program 'nuker' yang men-denial-of-service-kan mesin-mesin Windows via port 139. Selain di mesin-mesin NT, mesin-mesin Unix juga menjalankan servis di port ini, yaitu Samba, yang memberikan kemudahan bernetwork antara mesin platform Unix dengan mesin Windows. Jalankan ADMSMB scan atau eksploit untuk memeriksa vulnerabilitas. 

143
tcp/udp
imap2
Interactive Mail
Access Protocol
Protokol pengaksesan e-mail lainnya. Seringkali berjalan tanpa diperlukan. Mesin-mesin UNIX (terutama Linux) yang menjalankan imap instalasi default terbuka terhadap serangan yang bisa berakibat pemberian privilese root kepada sang chracker.

443
tcp
https
Hypertext
Transfer
Protocol-Secure
Daemon penerima permintaan tipe http yang berjalan diatas 'secure layer' (terenkripsi). Lihat keterangan untuk port 80 diatas.

512
tcp
exec
Remote
Process
Execution
Mengizinkan eksekusi proses jarak jauh dengan sistem
autentifikasi berdasar file /etc/passwd.

513
tcp
rlogin
Remote Login
Protocol
Port inilah yang digunakan jika anda melakukan 'rlogin' ke suatu host. Dengan rlogin, user di host A tidak perlu melewati proses login lewat telnet ke host B seperti biasa, namun bisa langsung masuk ke home directorynya di host B (tanpa password). Jika seorang chracker berhasil menjebol root di salah satu host, rlogin adalah sarana paling cocok untuk digunakan 'meloncat' ke host lain dalam network yang sama dan mengambil alih kontrol.



*Sumber : Buku Panduan Komunikasi Data, catatan kuliah

Label:

0 Komentar:

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda