Thursday 2 October 2008

port scanning

Dokumen ini dibuat oleh: Prabhaker Mateti Associate Professor di Wright Sate University.

Port Scanning merupakan salah satu dari teknik serangan reconnaissance yang terkenal, digunakan untuk menemukan aneka service yang dapat dibobol. Seluruh mesin terhubung ke suatu Local Area Network (LAN) atau Internet yang menjalankan berbagai service "listen" pada port yang diketahui maupun yang tidak diketahui. Melalui Port Scanning, para hacker mencari berbagai port yang ada (seperti, service yang terdaftar pada suatu port). Pada dasarnya, suatu port scan secara konsisten mengirimkan suatu pesan kepada setiap port, sekali dalam satu waktu. Jenis respon yang diterima menemukan apakah port tersebut digunakan dan dengan begitu diketahui kelemahannya.


Apakah Port Scanning Termasuk Tindakan Ilegal?
-----------------------------------------------

Port Scanning seperti membunyikan bel pintu untuk melihat apakah ada seseorang di rumah. Hal ini bukanlah suatu tindakan melanggar hukum. Kecuali jika setelah itu terjadi tindakan kejahatan. Para polisi mungkin melakukan pertimbangan lain, jika bel pintu dipencet berulang-ulang yang menyebabkan penghuni rumah merasa terganggu. Kadangkala, jika suatu sistem komputer terpengaruh terlalu banyak dengan suatu port scan, seseorang dapat menganggap hal ini bukan sekedar port scan, tapi juga suatu serangan Denial-of-Service, yang dilakukan berulangkali.

Berbagai macam teknik scanning

Port Numbers
------------
Sebagaimana yang anda ketahui, IP address publik dikendalikan oleh registrar worlwide, dan merupakan standar dunia. Port number tidak dikontrol, tapi lebih port-port ini menjadi standar untuk service tertentu. Port number merupakan ciri khas dalam sistem komputer. Port number merupakan 16-bit nomor yang tidak ditandai. Port number dapat dibagi menjadi tiga range, yaitu:

· Well Known Ports (0 - 1023)

· Registered Ports (1024 - 49151)

· Dynamic and/or Private Ports (49152 - 65535).

Well-Known Ports
----------------
Port yang dimulai dari 0 hingga 1023 yang merupakan port standar dan ditandai sebagai service oleh pihak IANA (Internet Assigned Numbers Authority). Contohnya adalah sbb:

echo 7/tcp Echo
ftp-data 20/udp File Transfer [Default Data]
ftp 21/tcp File Transfer [Control]
ssh 22/tcp SSH Remote Login Protocol
telnet 23/tcp Telnet
domain 53/udp Domain Name Server
www-http 80/tcp World Wide Web HTTP

Non-Standard Ports
------------------
Melalui suatu port yang non-standar, maksudnya suatu port yang yang bernilai lebih dari 1023. Yang dalam range ini terdapat beberapa service "standar", misalnya:

wins 1512/tcp # Microsoft Windows Internet Name Service
radius 1812/udp # RADIUS authentication protocol
yahoo 5010 # Yahoo! Messenger
x11 6000-6063/tcp # X Window System

Beberapa program "jahat" seperti Trojan dan Virus memiliki jarak lebar yang berupa sejumlah port terbuka, biasanya merupakan petunjuk bahwa sistem tersebut terinfeksi virus.


Teknik Port Scan yang Sederhana
-------------------------------
Cobalah melakukan port scan (misalnya, mengirimkan secara hati-hati packet data pada suatu nomor port) masing-masing port dari 0 s/d 65535 ke komputer korban untuk melihat apakah ada port yang terbuka.

TCP connect(): Connect() system call tersedia oleh Sistem Operasi yang digunakan untuk membuka suatu koneksi ke setiap port tertentu pada mesin. Jika port ini dalam keadaan listening, maka connect() akan berhasil, jika sebaliknya berarti port tidak dapat dijangkau.

Strobe : Sebuah strobe melakukan scanning lokal, hanya mencari service yang dapat dieksploitasi oleh hacker. Nama tersebut diambil dari salah satu program TCP scanning orisinil, meskipun sekarang berbagai tool scanning telah memasukkan fitur ini.

ident protocol mengijinkan untuk membuka pemilik username pada berbagai proses yang terhubung melalui TCP, bahkan jika dalam proses tersebut tidak menginisiasi koneksi tersebut. Jadi, seandainya seseorang terhubung ke port 80 dan menggunakan identd untuk menemukan apakah HTTP server tersebut dijalankan sebagai root.


Stealth scan
------------
Ada satu masalah, dari sudut pandang hacker yang mencoba melakukan scan suatu port, dan melihatnya melalui log scan. Mereka melihat ada suatu incoming connection, tapi tidak ada data, jadi error dilog. Untuk menghindari hal ini maka digunakanlah teknik stealth scan. Teknik ini dirancang agar tidak terdeteksi oleh Auditing Tool. Tentu saja, ini merupakan adu kecerdasan antara seorang hacker dengan vendor firewall - perlu diperhatikan bahwa stealth scan saat ini bisa memakan beberapa bulan saat vendor firewall menyadari hal ini.

Port Scanner yang menscan suatu host dengan cepat melalui paket kosong pada berbagai port yang berlainan. Jadi, proses scanning menjadi sangat lambat (memakan waktu satu hari atau lebih). Inilah sebab mengapa dinamakan teknik stealth scan. Teknik lain dari Stealth scan adalah "inverse mapping", dimana saat anda mencoba mencari seluruh host dalam suatu jaringan dengan menjadikan "host unreachable" ICMP-messages pada seluruh IP yang tidak ada. Sewaktu message ini dibuat pada berbagai paket TCP/IP, seseorang dapat mengirimkan paket kosong (misalnya paket RST yang dikirim tanpa paket sebelumnya).

Fragmented packets: Merupakan scanner yang memisahkan TCP header kedalam beberapa IP fragment. Membypass beberapa paket filter firewall karena mereka tidak dapat melihat TCP header lengkap yang sesuai dengan rule filter firewall mereka. Beberapa paket filter dan firewall melakukan antrian seluruh IP fragment, tapi banyak jaringan tidak dapat memberikan performance "loss" disebabkan antrian paket tersebut.

SYN scanning: Teknik ini juga dikenal sebagai half-open scanning, karena suatu koneksi TCP yang tidak lengkap. Sebuah paket SYN dikirim (sebagaimana jika kita akan membuka suatu koneksi) dan host sasaran meresponnya dengan suatu SYN-ACK, hal ini menunjukkan bahwa port tersebut dalam keadaan "listening", dan suatu RST menunjukkan suatu non-listener. Server tersebut tidak akan memproses informasi melalui lapisan TCP karena koneksi yang tidak lengkap.

FIN scanning: Tipikal TCP scan yang mencoba membuka seluruh koneksi (setidaknya sebagian). Merupakan teknik lain yang mengirimkan paket error ke sebuah port, dengan harapan port listening akan mengirim balik pesan error yang berbeda daripada port yang tertutup. Scanner mengirimkan suatu paket FIN, yang akan menutup koneksi yang terbuka. Port tertutup menjawab paket FIN dengan suatu RST. Port terbuka, dengan kata lain, mengabaikan pertanyaan paket tersebut. Jika tidak ada service yang listening pada port sasaran, maka sistem operasi akan membuat sebuah pesan erron. Jika ada service yang listening maka secara sistem operasi secara diam-diam mengirim paket incoming. Oleh karena itu, menunjukkan adanya service yang dijalankan pada port tersebut. Bagaimanapun, saat paket yang di kirimkan secara tiba-tiba akan diblok oleh firewall, hal ini bukanlah scan yang efektif.

Teknik lainnya yang telah digunakan secara konsisten dari XMAS scan, dimana seluruh flag dalam paket TCP yang diset, atau NULL scan dimana tak satupun bit yang diset. Bagaimanapun, sistem operasi yang berbeda akan merespon dengna cara yang berbeda pula terhadap scan jenis ini, dan menjadi penting untuk mengidentifikasi Sistem Operasi bahkan berikut versi dan patch-levelnya.


Bounce Scans
-------------
Kemampuan dalam menyembunyikan jejak sangat penting bagi seorang hacker. Oleh karena itu para hacker menjelajah internet guna mencari sistem yang dapat mereka jadikan tempat sembunyi aktifitas serangan mereka.

FTP bouce scanning: mengambil keuntungan dari suatu celah keamanan dari protokol FTP itu sendiri. Memerlukan koneksi ftp proxy. Bouncing melalui FTP server akan menyembunyikan asal-muasal serangan hacker tersebut. Sebagai contoh, www.evil.com menyediakan suatu koneksi kontrol ke FTP server-PI (Protocol Interpreter) dari www.target.com maka memerlukan server-PI yang menginisiasi suatu active-server-DTP (Data Transfer Process) untuk mengirimkan file darimana saja di Internet.

Suatu port scanner dapat mengeksploitasi hal ini untuk menscan port TCP dari proxy ftp server. Anda dapat menghubungi suatu FTP server dibalik firewall, dan melakukan port scan yang biasanya diblok (misalnya: port 139). Jika FTP server mengijinkan pembacaan dari dan penulisan ke suatu direktori (seperti halnya /incoming) anda dapat mengirimkan data yang berlainan ke port yang terbuka tersebut.

Keuntungan dari teknik ini tentu saja sulit terdeteksi dan berpotensi melumpuhkan firewall. Keuntungan utamanya adalah prosesnya lambat, dan banyak implementasi FTP server, akhirnya di 'disabled' pada fitur proxy tersebut.


Finger: Kebanyakan finger server mengijinkan perintah-perintah untuk diteruskan melaluinya. Fingger mendukung recursice query. Sebuah query seperti halnya "rob@foo@bar" akan menanyakan "bar" untuk menetapkan "rob@foo", menyebabkan "bar" menjadi query "foo". Teknik ini b9iasa digunakan untuk menyembunyikan sumber asli permintaan tersebut.


E-mail: Para Spammers mencoba menyebarkan spam mereka melalui berbagai SMTP server. Hasilnya, penelusuran terhadap SMTP sangat umum terlihat pada berbagai mesin di Internet.

SOCKS mengijinkan hampir seluruh protokol ditembus melalui mesin tingkat lanjut. Hasilnya, pelacakan terhadap SOCKS merupakan hal yang lumrah didunia Internet.

HTTP proxy: Kebanyakan web server mendukung proxy yang seluruh web traffic dapat diarahkan ke server tunggal untuk memfilternya selayaknya caching untuk memperbaiki performance. Banyak dari server ini mengalami miskonfigurasi yang membolehkan proxy ke berbagai permintaan dari Internet, menyebabkan seorang hacker dapat melancarkan serangan mereka terhadap website melalui pihak ketiga. Penelusuran terhadap HTTP proxy juga merupakan salah satu hal yang lumrah di Internet.

IRC BNC: para hacker suka sekali menyembunyikan identitas IRC mereka dengan mem-bounce koneksi mereka melalui mesin lain. Suatu program khusus yang dikenal sebagai "BNC" digunakan untuk tujuan ini.


UDP Scanning
------------
Port Scan biasanya dimaksudkan untuk melakukan scanning port TCP, yang koneksinya terorientasi dan oleh karena itu memberikan umpan balik yang baik bagi para hacker. Respon UDP dalam suatu cara yang berbeda. Dengan tujuan untuk menemukan port UDP, sang hacker umumnya mengirimkan datagram UDP kosong. JIka port dalam keadaan listening, service tersebut akan mengirimkan kembali suatu pesan error atau mengambaikan incoming datagram. Jika port tersebut tertutup, maka seringkali sistem operasi mengirimkan kembali suatu pesan "ICMP Port Unreachable". Dengan demikian, anda dapat menemukan apakah suatu port itu tertutup, dan dengan ditentukannya port yang terbuka. Paket UDP yang lain, atau ICMP error dipastikan datang, jadi UDP scanner terhadap susunan ini harus mengimplementasikan transmisi ulang paket yang nampak hilang (atau anda akan mendapatkan serangkaian error).

Selain itu, teknik scanning ini tergolong lambat karena pertimbangan mesin yang mengimplementasikan ketentuan dari RFC 1812 dan batasan nilai ICMP error message. Sebagai contoh, sebuah kernel mungkin batas tujuan unreachable message generation hingga 80/4 detik, dengan penalty 1/4 detik jika melampaui batas.

Beberapa orang menganggap UDP scanning tanpa titik - (sebenarnya tidak begitu). Terkadang misalnya, RPCbind dapat ditemukan bersembunyi pada port UDP yang tidak terdokumentasi di suatu tempat diatas 32770. Jadi tidak menjadi soal bahwa port 111 diblok oleh firewall. Namun dapatkah anda menemukan port yang lebih tinggi dari 30.000 dalam keadaan listening? Tentu saja anda dapat melakukannya dengan bantuan UDP scanner.



ICMP Scanning
--------------
Ini bukanlah port scanning sesungguhnya, saat ICMP tidak memiliki suatu port yang abstrak. Namun terkadang digunakan untuk menentukan host apa dalam suatu jaringan dengan melakukan ping secara keseluruhan. ICMP scanning dapat dilakukan secara paralel, jadi dapat berlangsung dengan cepat.

Fingerprinting suatu Sistem Operasi:
------------------------------------
Metode scanning terakhir dikenal dengan Fingerprinting. Fingerprinting merupakan teknik interpretasi respon dari suatu sistem dengan tujuan untuk mendapatkan gambaran pastinya. Kombinasi yang tidak umum dari data yang dikirimkan ke sistem dengan tujuan memicu respon sistem ini. Sistem memberikan respon yang sama pada data yang benar, tapi sesungguhnya mereka jarang merespon cara yang sama pada data yang salah.


Daftar Port yang resmi: http://www.iana.org/assignments/port-numbers

Rekomendasi Port Scanner: http://www.insecure.org/nmap/

No comments: