Selasa, 27 Maret 2012

Teknik Scanning Port

          Sebagai seorang pemula yang melakukan perbaikan otomotif, saya dapat berjuang berjam-jam untuk menyesuaikan alat sederhana saya (palu, duct tape, dsb.) untuk tugas yang ada. Ketika saya gagal dan menyerahkannya pada mekanik sebenarnya, ia mencari dalam kotak perangkatnya hingga menemukan alat yang tepat yang membuat pekerjaan tersebut menjadi mudah. Seni scanning port juga serupa. Para ahli memahami beragam teknik pemindaian dan memilih satu (atau kombinasi) yang sesuai untuk tugas yang ada. User tidak berpengalaman dan script kiddies, di lain pihak, berusaha menyelesaikan semua masalah dengan scan SYN baku. Oleh karena Nmap gratis, satu-satunya penghalang menguasai scanning port adalah pengetahuan. Hal itu tentu saja mengalahkan dunia otomotif, setelah membutuhkan keahlian tinggi untuk menentukan bahwa anda butuh kompresor pegas strut, lalu anda mesti harus membayar ribuan dolar untuknya.
Kebanyakan jenis scan hanya tersedia untuk user privilege. Hal ini karena mereka mengirim dan menerima paket raw, yang membutuhkan akses root pada sistem Unix. Pada sistem Windows, menggunakan akun administrator disarankan, meski terkadang Nmap dapat bekerja untuk unprivileged users ketika WinPcap telah dimuatkan ke SO. Kebutuhan akan privilege root merupakan sebuah batasan serius ketika Nmap dirilis pada tahun 1997, karena banyak user hanya mempunyai akses ke shared shell. Saat ini, hal tersebut berbeda. Komputer telah lebih murah, lebih banyak orang memiliki akses langsung Internet always-on, dan banyak sistem Unix desktop (termasuk Linux dan Mac OS X). Versi Nmap Windows kini tersedia, membuatnya berjalan di lebih banyak desktop. Karena alasan-alasan ini, user memiliki sedikit alasan untuk menjalankan Nmap dari akun shared shell yang terbatas. Ini merupakan keberuntungan, karena opsi privilege membuat Nmap lebih powerful dan fleksibel.
Meski Nmap berusaha memberikan hasil yang akurat, namun perlu diperhatikan bahwa seluruh pandangannya didasarkan pada paket yang dikembalikan oleh mesin target (atau firewall di depan mereka). Host tersebut mungkin tidak dapat dipercaya dan responnya bertujuan membingungkan atau mengacaukan Nmap. Yang lebih umum adalah host yang tidak sesuai dengan RFC yang tidak menanggapi sebagaimana yang seharusnya atas probe Nmap. Scan FIN, NULL, dan Xmas terutama rentan terhadap masalah ini. Isu tersebut adalah spesifik untuk jenis scan tertentu dan didiskusikan dalam entri jenis scan individual.
Bagian ini mendokumentasikan selusin atau lebih teknik scan port yang didukung oleh Nmap. Hanya satu metode yang boleh digunakan di satu waktu, kecuali scan UDP (-sU) dapat digabungkan dengan sembarang jenis scan TCP. Sebagai pengingat, opsi jenis scan port adalah dalam bentuk -s<C>, dengan <C> merupakan karakter utama dalam nama scan, biasanya yang pertama. Satu pengecualian untuk ini adalah scan bounce FTP yang telah kuno (-b). Secara baku, Nmap melakukan SYN Scan, meski ia menggantinya dengan scan connect bila user tidak memiliki privilege untuk mengirim paket raw (membutuhkan akses root pada Unix) atau bila dispesifikasikan target IPv6. Dari semua scan yang ada di bawah ini, unprivileged user hanya dapat menjalankan scan connect dan FTP bounce.
-sS (TCP SYN scan)
SYN scan merupakan opsi scan baku dan terpopuler dengan alasan yang baik. Ia dapat dilakukan dengan cepat, memeriksa ribuan port per detik pada jaringan yang cepat tidak dihalangi oleh firewall yang membatasi. Scan SYN relatif tidak mengganggu dan tersembunyi, karena ia tidak pernah melengkapi koneksi TCP. Ia juga bekerja terhadap stack TCP yang sesuai alih-alih tergantung pada platform khusus sebagaimana scan FIN/NULL/Xmas, Maimon dan idle. Ia juga memungkinkan pembedaan yang tegas dan handal antara status openclosed, danfiltered.
Teknik ini seringkali diacu sebagai pemeriksaan setengah terbuka (half-open scanning), karena anda tidak membuka seluruh koneksi TCP. Anda mengirim sebuah paket SYN, seperti anda ingin melakukan koneksi sesungguhnya dan kemudian menunggu tanggapan. SYN/ACK menandakan port sedang mendengarkan (open), RST (reset) menandakan tidak sedang mendengarkan. Jika tidak ada tanggapan setelah beberapa kali pengiriman ulang, port ditandai sebagai tersaring (filtered). Port juga ditandai sebagai tersaring bila diterima kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13).
-sT (TCP connect scan)
Scan TCP connect merupakan jenis scan baku TCP ketika scan SYN tidak dapat digunakan. Hal ini terjadi ketika user tidak memiliki privilege untuk paket raw atau ketika melakukan pemeriksaan jaringan IPv6. Alih-alih menulis paket raw sebagaimana dilakukan jenis scan lainnya, Nmap meminta SO membuat koneksi dengan mesin target dan port dengan memberikan system call connect. Ini merupakan system call yang digunakan oleh web browsers, klien P2P, dan kebanyakan aplikasi jaringan lainnya untuk membuat koneksi. Ia merupakan bagian dari interface pemrograman yang dikenal sebagai Berkeley Sockets API. Nmap juga menggunakan API ini untuk memperoleh informasi status setiap usaha koneksi.
Ketika tersedia SYN scan, ia merupakan pilihan yang lebih baik. Nmap kurang memiliki kendali atas call connect daripada paket raw, membuatnya kurang efisien. System call membuat koneksi lengkap untuk membuka port target daripada membuat reset setengah-terbuka (half-open reset) yang dilakukan SYN scan. Hal ini tidak saja lebih lambat dan membutuhkan lebih banyak paket untuk memperoleh informasi yang sama, namun juga mesin target kemungkinan mencatat koneksi. IDS yang baik akan mendeteksi hal ini, namun kebanyakan mesin tidak memiliki sistem alarm tersebut. Kebanyakan layanan pada sistem Unix umum akan membuat catatan ke syslog, dan seringkali pesan kesalahan yang rumit, ketika Nmap membuka dan menutup koneksi tanpa mengirim data. Layanan yang benar-benar buruk akan crash ketika hal ini terjadi, meskipun tidak umum. Administrator yang melihat serangkaian usaha koneksi dari sistem tunggal di lognya seharusnya tahu bahwa ia telah diperiksa dengan metode connect.
-sU (UDP scan)
Walau kebanyakan layanan populer di Internet menggunakan protokol TCP, layanan UDP luas dipergunakan. DNS, SNMP, dan DHCP (port 53, 161/162, dan 67/68) adalah tiga yang paling umum. Karena pemeriksaan UDP umumnya lebih lambat dan lebih sulit dibanding TCP, beberapa audit keamanan mengabaikan port ini. Ini merupakan kesalahan, karena eksploitasi layanan UDP cukup umum dan penyerang tentu saja tidak mengabaikan seluruh protokol. Untungnya, Nmap dapat membantu inventori port UDP.
Scan UDP diaktifkan dengan opsi -sU. Ia dapat digabungkan dengan jenis scan TCP seperti SYN scan (-sS) untuk memeriksa kedua buah protokol sekaligus.
Scan UDP bekerja dengan mengirimkan header UDP kosong (tanpa data) ke setiap port yang diinginkan. Jika diperoleh kesalahan ICMP port unreachable (tipe 3, kode 3), port itu closed. Kesalahan ICMP lainnya (tipe 3, kode 1, 2, 9, 10, atau 13) menandakan port sebagai filtered. Seringkali, sebuah layanan akan menanggapi dengan paket UDP, membuktikan bahwa iaopen. Jika tidak ada tanggapan setelah transmisi ulang, port dianggap open|filtered. Hal ini berarti bahwa port dapat berada dalam keadaan open, atau mungkin packet filter memblokir komunikasi. Deteksi versi (-sV) dapat digunakan untuk membantu membedakan antara port yang terbuka dengan yang disaring.
Tantangan terbesar scanning UDP adalah melakukannya dengan cepat. Port terbuka dan tersaring jarang mengirimkan tanggapan, membuat Nmap time out dan kemudian melakukan transmisi ulang bilamana probe atau respon hilang. Port tertutup seringkali merupakan masalah yang lebih besar. Mereka umumnya mengirimkan ulang kesalahan ICMP port unreachable. Namun tidak seperti paket RST yang dikirim oleh port TCP tertutup sebagai respon atas scan SYN atau connect, banyak host secara baku membatasi pesan ICMP port unreachable. Linux dan Solaris terutama sangat ketat mengenai hal ini. Sebagai contoh, kernel Linux 2.4.20 membatasi pesan destination unreachable ke satu per detik (dalam net/ipv4/icmp.c).
Nmap mendeteksi pembatasan ini dan memperlambat kerjanya untuk menghindari pemenuhan jaringan dengan paket-paket tidak perlu yang akan di-drop oleh mesin target. Sayangnya, pembatasan ala Linux dengan satu paket per detik membuat pemeriksaan 65.536 membutuhkan waktu lebih 18 jam. Ide untuk mempercepat scan UDP termasuk pemeriksaan lebih banyak host secara paralel, melakukan pemeriksaan atas port-port populer dulu, pemeriksaan di belakang firewall, dan menggunakan --host-timeout untuk melewati host lambat.
-sN-sF-sX (TCP NULL, FIN, dan Xmas scan)
Ketiga jenis scan ini (bahkan kemungkinan lebih dengan adanya opsi --scanflags yang dijelaskan pada bagian berikutnya) mengeksploitasi kelemahan dalam RFC TCP untuk membedakan antara port open dan closed. Halaman 65 RFC 793 mengatakan bawha “if the [destination] port state is CLOSED .... an incoming segment not containing a RST causes a RST to be sent in response.” Lalu halaman berikutnya mendiskusikan paket yang dikirim ke port terbuka tanpa bit SYN, RST, atau ACK diset, menyatakan bahwa : “you are unlikely to get here, but if you do, drop the segment, and return.”
Ketika memeriksa sistem yang sesuai dengan teks RFC ini, sembarang paket yang tidak berisikan bit SYN, RST, atau ACK akan berakibat pengembalian RST bila port tertutup dan tidak ada respon bila port terbuka. Selama ketiga bit ini tidak disertakan, sembarang kombinasi ketiga bit lainnya (FIN, PSH, dan URG) adalah OK. Nmap mengeksploitasi celah ini dengan ketiga jenis scan berikut :
Null scan (-sN)
Tidak mengirimkan bit(header flag TCP adalah 0)
FIN scan (-sF)
Hanya menset bit FIN TCP.
Xmas scan (-sX)
Menset flag FIN, PSH, dan URG, menerangi paket seperti sebuah pohon Natal.
Ketiga jenis scan ini serupa perilakunya kecuali untuk flag TCP yang diset dalam paket probe. Jika diterima paket RST, port dianggap closed, tidak ada respon berarti ia open|filtered. Port ditandai filtered bila diterima kesalahan ICMP unreachable (tipe 3, kode 1, 2, 3, 9, 10, atau 13).
Keuntungan utama jenis scan ini adalah bahwa mereka dapat menyusup melalui non-stateful firewall dan router packet filtering tertentu. Keunggulan lain adalah bahwa ketiga scan ini lebih tersembunyi bahkan bila dibandingkan dengan SYN scan. Jangan mengandalkan hal ini karena produk IDS modern dapat dikonfigurasi untuk mendeteksi mereka. Kelemahan utama adalah tidak semua sistem mematuhi RFC 793 secara tepat. Sejumlah sistem mengirim respon RST atas probe tanpa perduli apakah port terbuka atau tertutup. Hal ini membuat seluruh port dianggap sebagai closed. Sistem operasi utama yang melakukan hal ini adalah Microsoft Windows, banyak device Cisco devices, BSDI, dan IBM OS/400. Scan ini tidak bekerja terhadap kebanyakan sistem berbasis Unix. Kekurangan lainnya adalah scan ini tidak dapat membedakan antara port open dengan port tertentu yang filtered, memberikan anda tanggapanopen|filtered.
-sA (TCP ACK scan)
Scan ini berbeda dengan yang telah didiskusikan sejauh ini yaitu ia tidak pernah menentukan port open (or even open|filtered). Ia digunakan untuk memetakan aturan firewall, menentukan apakah mereka stateful atau tidak dan port mana saja yang disaring.
Paket probe scan ACK hanya memiliki flag ACK di-set (kecuali anda menggunakan --scanflags). Ketika memeriksa sistem yang tidak disaring, port open dan closed keduanya akan mengembalikan paket RST. Nmap kemudian menandakan mereka sebagai unfiltered, yang berarti mereka dapat dicapai oleh paket ACK, namun belum dapat ditentukan apakah merekaopen atau closed. Port yang tidak menanggapi, atau mengirim kembali pesan kesalahan ICMP (tipe 3, kode 1, 2, 3, 9, 10, atau 13), dianggap sebagai filtered.
-sW (TCP Window scan)
Window scan serupa dengan ACK scan kecuali bahwa ia mengeksploitasi detil implementasi pada sistem tertentu yang membedakan port terbuka dengan port tertutup, alih-alih selalu menampilkan unfiltered ketika dikembalikan RST. Ia melakukan hal ini dengan memeriksa field TCP Window paket RST yang dikembalikan. Pada beberapa sistem, port terbuka menggunakan ukuran jendela positif (bahkan untuk paket RST) sementara port tertutup memiliki jendela nol. Sehingga alih-alih selalu menampilkan port sebagai unfiltered ketika menerima kembali RST, Window scan menampilkan port sebagai open atau closed jika nilai TCP Window dalam reset tersebut positif atau nol.
Scan ini mengandalkan detil implementasi sedikit sistem yang ada di Internet, sehingga anda tidak dapat selalu mempercayainya. Sistem yang tidak mendukungnya biasanya akan mengembalikan semua port sebagai closed. Tentu saja, adalah mungkin mesin benar-benar tidak memiliki port terbuka. Jika kebanyakan port yang diperiksa adalah closed namun beberapa angka port umum (seperti 22, 25, 53) adalah filtered, informasi ini kemungkinan benar. Seringkali, sistem akan memberitahukan perilaku sebaliknya. Jika scan anda menunjukkan bahwa 1000 port terbuka dan tiga port tertutup atau disaring, maka ketiga port tersebut mungkin saja adalah port yang terbuka.
-sM (TCP Maimon scan)
Scan Maimon dinamakan dengan nama penemunya, Uriel Maimon. Ia menjelaskan teknik ini dalam Phrack Magazine issue #49 (November 1996). Nmap, yang menyertakan teknik ini, dirilis dua isu kemudian. Teknik ini sama persis dengan scan NULL, FIN, dan Xmas, kecuali probenya adalah FIN/ACK. Menurut RFC 793 (TCP), paket RST seharusnya dihasilkan sebagai tanggapan atas probe tersebut entah port terbuka atau tertutup. Namun demikian, Uriel memperhatikan bahwa banyak sistem berbasis BSD men-drop paket jika port terbuka.
--scanflags (Custom TCP scan)
User Nmap mahir tidak perlu membatasi dirinya pada jenis scan yang tersedia secara baku. Opsi --scanflags memungkinkan anda merancang scan anda sendiri dengan menspesifikasikan sembarang flag TCP.. Biarkan cairan kreatif anda mengalir, sementara mengakali intrusion detection system yang vendornya sekedar membaca man page Nmap menambahkan aturan khusus!
Argumen --scanflags dapat berupa nilai flag numerik seperti 9 (PSH dan FIN), namun menggunakan nama simbolik lebih mudah. Gabungkan saja sembarang kombinasi URGACKPSH,RSTSYN, dan FIN. Sebagai contoh, --scanflags URGACKPSHRSTSYNFIN menset semuanya, meskipun ia tidak terlalu bermanfaat untuk pemeriksaan. Urutan spesifikasi tidaklah relevan.
Selain dengan menspesifikasikan flag yang diinginkan, anda dapat pula memberikan jenis scan TCP (seperti -sA atau -sF). Jenis dasar tersebut memberitahu Nmap bagaimana menginterpretasikan respon. Sebagai contoh, SYN scan menganggap no-response sebagai indikasi port filtered, sementara FIN scan mengganggapnya sebagai open|filtered. Nmap akan berperilaku sama dengan jenis scan dasar, kecuali ia akan menggunakan flag TCP yang anda spesifikasikan Jika anda tidak menspesifikasikan tipe dasar, akan digunakan SYN scan.
-sI <zombie host>[:<probeport>] (idle scan)
Metode scan tingkat tinggi ini memungkinkan scan port TCP secara tersembunyi (artinya tidak ada paket dikirim ke target dari alamat IP anda yang sebenarnya). Alih-alih, serangan side-channel mengeksploitasi pembuatan urutan ID fragmentasi IP yang mudah ditebak pada host zombi untuk memperoleh informasi tentang port terbuka pada target. Sistem IDS akan menampilkan scan berasal dari mesin zombi yang anda spesifikasikan (yang harus up dan memenuhi beberapa kriteria). Jenis scan menarik ini terlalu kompleks untuk dijelaskan dalam panduan referensi ini, sehingga saya menulis dan menaruh paper informal dengan detil penuh di http://nmap.org/book/idlescan.html.
Selain sangat tersembunyi (karena sifat blind-nya), jenis scan ini mengijinkan pemetaan relasi kepercayaan berbasis IP antar mesin. Daftar port menampilkan port terbuka dari perspektif host zombi. Sehingga anda dapat berusaha memeriksa target dengan menggunakan beragam zombi yang anda anggap terpercaya (melalui aturan router/packet filter).
Anda dapat menambah tanda titik dua diikuti nomor port pada host zombi jika anda ingin memeriksa port tertentu pada zombi untuk perubahan ID IP. Jika tidak Nmap akan menggunakan port baku yang digunakan untuk ping TCP (80).
-sO (IP protocol scan)
Scan protokol IP memungkinkan anda menentukan protokol IP mana (TCP, ICMP, IGMP, dsb.) yang didukung oleh mesin target. Secara teknis ini bukanlah scan port, karena ia menggunakan nomor protokol IP alih-alih nomor port TCP atau UDP. Namun ia tetap menggunakan opsi -p untuk memilih nomor protokol yang diperiksa, melaporkan hasilnya dalam format tabel port normal, dan bahkan menggunakan mesin scan yang sama dengan metode scanning port sebenarnya. Ia cukup dekat dengan scan port sehingga berada di sini.
Selain memiliki fungsi tertentu, scan protokol mendemonstrasikan kekuatan software open-source. Meskipun ide dasarnya cukup sederhana, saya tidak berpikir atau menerima permintaan untuk menambah fungsionalitas semacam itu. Lalu pada musim panas tahun 2000, Gerhard Rieger menerima ide tersebut, menulis patch yang bagus untuk mengimplementasikannya, dan mengirimnya ke milis nmap-hackers. Saya menggabungkan patch tersebut ke Nmap dan merilis versi baru di hari berikutnya. Sedikit software komersial memiliki user yang cukup antusias untuk merancang dan memberikan kontribusi perbaikan!
Scan protocol bekerja dalam cara yang sama dengan scan UDP. Alih-alih beriterasi atas field nomor port paket UDP, ia mengirim header paket IP dan beriterasi pada field protokol IP delapan-bit. Header biasanya kosong, tidak berisi data dan bahkan tiada header yang sesuai untuk protokol yang diklaim. Tiga pengecualian adalah TCP, UDP, dan ICMP. Header protokol yang sesuai untuk mereka disertakan karena beberapa sistem tidak akan mengirimnya dan karena Nmap telah memiliki fungsi untuk membuatnya. Alih-alih mengamati pesan ICMP port unreachable, scan protocol mencari pesan ICMP protocol unreachable. Bila Nmap menerima respon dalam sembarang protokol dari host target, Nmap menandai protokol tersebut sebagaiopen. Kesalahan ICMP protocol unreachable (tipe 3, kode 2) menyebabkan protokol ditandai sebagai closed. Kesalahan ICMP unreachable lainnya (tipe 3, kode 1, 3, 9, 10, atau 13) menyebabkan protokol ditandai filtered (meskipun mereka membuktikan bahwa ICMP open di waktu yang sama). Jika tidak menerima respon setelah transmisi ulang, protokol ditandai sebagai open|filtered
-b <FTP relay host> (FTP bounce scan)
Satu fitur menarik protokol FTP (RFC 959) mendukung koneksi FTP proxy. Hal ini memungkinkan user untuk koneksi ke satu server FTP, lalu meminta file dikirimkan ke server pihak ketiga. Fitur tersebut rentan terhadap penyalahgunaan di banyak tingkat, sehingga banyak server berhenti mendukungnya. Salah satu penyalahgunaan yang dibolehkan fitur ini adalah membuat server FTP melakukan scan port ke host lain. Cukup minta server FTP mengirim sebuah file ke setiap port yang diinginkan pada host target. Pesan kesalahan akan menjelaskan apakah port terbuka atau tidak. Hal ini merupakan cara yang baik untuk melewati firewall karena server FTP organisasi biasanya lebih memiliki akses ke host internal daripada host Internet. Nmap mendukung scan bounce FTP dengan opsi -b option. Ia mengambil argumen dalam bentuk <username>:<password>@<server>:<port><Server> adalah nama atau alamat IP server FTP yang rentan. Sebagaimana dengan URL normal, anda dapat menghilangkan <username>:<password>, sehingga menggunakan login anonim (user: anonymous password:-wwwuser@) . Nomor port (dan tanda titik dua sebelumnya) dapat dihilangkan juga, sehingga menggunakan port FTP baku (21) pada <server>.
Kerentanan ini meluas di tahun 1997 ketika Nmap dirilis, namun telah diperbaiki. Server-server yang rentan masih ada, sehingga patut dicoba bila teknik yang lainnya gagal. Jika tujuan anda adalah melewati firewall, scan jaringan target untuk port 21 (atau bahkan untuk sembarang layanan FTP jika anda scan seluruh port dengan deteksi versi) yang terbuka, lalu coba scan bounce. Nmap akan memberitahu anda apakah host rentan atau tidak. Jika anda hanya ingin menutupi jejak anda, anda tidak perlu (dan bahkan tidak seharusnya) membatasi diri anda pada host pada jaringan target. Sebelum anda memeriksa alamat Internet acak untuk mencari server FTP yang rentan, pertimbangkan bahwa sysadmin mungkin tidak akan menghargai anda menggunakan server mereka dengan cara ini.

Selasa, 20 Maret 2012

Dasar Scanning Port

       Meskipun selama ini Nmap telah mengalami perkembangan fungsionalitas, namun ia bermula sebagai sebuah scanner port yang efisien, dan hal itu tetap menjadi fungsi utamanya. Perintah sederhana nmap <target> akan memeriksa lebih dari 1660 port TCP pada host <target>. Ketika banyak scanner port secara tradisional membagi seluruh port ke dalam status terbuka (open) atau tertutup (closed), Nmap lebih granular. Ia membagi port menjadi enam status : openclosedfilteredunfilteredopen|filtered, or closed|filtered.
Status ini bukan merupakan properti intrinsik dari port itu sendiri, namun menggambarkan bagaimana Nmap memandang mereka. Sebagai contoh, scan Nmap dari jaringan yang sama dengan target mungkin menampilkan port 135/tcp sebagai terbuka, sementara scan yang sama pada waktu dan opsi yang sama dari Internet mungkin menunjukkan bahwa port tersebut filtered.
Enam status port yang dikenali Nmap
open
Sebuah aplikasi secara aktif menerima koneksi paket TCP atau UDP pada port ini. Menemukan port terbuka ini seringkali merupakan tujuan utama scanning port. Orang dengan pikiran keamanan (security-minded) tahu bahwa setiap port terbuka merupakan celah untuk serangan. Penyerang dan pen-testers ingin mengeksploitasi port terbuka, namun administrator berusaha menutup atau melindungi mereka dengan firewall tanpa mengganggu user yang berhak. Port terbuka juga menarik bagi scan bukan keamanan karena mereka memberitahu layanan yang dapat digunakan pada jaringan.
closed
Port tertutup dapat diakses (ia menerima dan menanggapi paket probe Nmap), namun tidak ada aplikasi yang mendengarkan padanya. Mereka bermanfaat dengan menunjukkan bahwa host up pada alamat IP tersebut (host discovery, atau ping scanning), dan sebagai bagian deteksi SO. Oleh karena port tertutup dapat dijangkau, bermanfaat untuk mencoba scan di waktu yang lain jikalau port tersebut terbuka. Administrator mungkin perlu mempertimbangkan untuk memblok port tersebut dengan firewall. Lalu mereka akan muncul dalam status filtered, yang akan didiskusikan.
filtered
Nmap tidak dapat menentukan apakah port terbuka karena packet filtering mencegah probenya mencapai port. Filter ini dapat dilakukan oleh device firewall, aturan pada router, atau software firewall pada host. Port ini membuat penyerang frustrasi karena mereka memberikan sedikit informasi. Terkadang mereka menanggapi dengan pesan kesalahan ICMP misalnya tipe 3 kode 13 (tujuan tidak dapat dicapai: komunikasi dilarang secara administratif), namun yang lebih umum adalah filter yang hanya men-drop probe tanpa memberi tanggapan. Hal ini memaksa Nmap berusaha beberapa kali untuk memastikan probe tidak di-drop akibat jaringan yang padat. Hal ini sangat memperlambat proses scan.
unfiltered
Status unfiltered berarti bahwa port dapat diakses, namun Nmap tidak dapat menentukan apakah ia open atau closed. Hanya scan ACK, yang digunakan untuk mengetahui aturan firewall, menggolongkan port ke dalam status ini. Pemeriksaan port unfiltered dengan tipe pemeriksaan lain seperti Window scan, SYN scan, atau FIN scan, dapat membantu mengetahui apakah port terbuka.
open|filtered
Nmap menganggap port dalam status ini bila ia tidak dapat menentukan apakah port open atau filtered. Hal ini terjadi untuk jenis pemeriksaan ketika port terbuka tidak memberi respon. Tidak adanya tanggapan dapat pula berarti bahwa packet filter men-drop probe atau respon yang diberikan. Sehingga Nmap tidak dapat mengetahui dengan tepat apakah port terbuka atau difilter. Scan UDP, IP protocol, FIN, NULL, dan Xmas mengklasifikasikan port dengan cara ini.
closed|filtered
Status ini digunakan ketika Nmap tidak dapat menentukan apakah port tertutup atau di-filter. Ia hanya digunakan pada scan idle ID IP.

Sabtu, 17 Maret 2012

Port scanning untuk melihat target di internet

Dalam melakukan hacking jarak jauh (remote), langkah paling awal yang harus dilakukan sebelum proses hacking dilakukan adalah melihat servis yang diberikan oleh server / target di Internet. Dalam konsep jaringan komputer klien-server, setiap program / servis akan menempati sebuah port dalam tatanan protokol TCP (Transmission Control Protocol). Sebagai gambaran kombinasi port-program/servis yang cukup familiar dengan pengguna umum Internet adalah:

            25        smtp server
80                web server
110            pop server

Cara paling sederhana untuk melihat status servis pada server target di Internet adalah menggunakan software port scanner seperti nmap di Linux yang dibuat oleh fyodor@insecure.org.

Nmap di rancang untuk memungkinkan seorang sistem administrator atau perorangan yang iseng untuk melakukan scan jaringan yang besar, melihat mesin yang sedang beroperasi & servis yang mereka berikan. Cukup banyak teknik scan yang diberikan oleh nmap seperti  UDP, TCP connect(), TCP SYN (half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping sweep), FIN, ACK sweep, Xmas  Tree,  SYN sweep, dan Null scan. Di samping itu, nmap juga memberikan banyak fitur seperti remote OS detection via TCP/IP fingerprinting,  stealth  scanning,  kalkulasi dynamic   delay   &       retransmission, parallel scanning, detection of down hosts via parallel  pings,  decoy  scanning,  port filtering detection, direct (non-portmapper) RPC scanning,      fragmentation scanning, dan spesifikasi yang flexible dari target & port.

Saya kebetulan menggunakan Linux Mandrake 8.0 di komputer Pentium 133MHz di rumah. Linux Mandrake 8.0 menyediakan nmap dalam distribusinya. Port scanner nmap dapat digunakan menggunakan command line (di ketik di promt $ atau #) atau menggunakan grafik interface di Linux. Saya sendiri lebih suka menggunakan command line, karena kita dapat mengontrol lebih banyak parameter.

Cuplikan contoh hasil port scan tiga (3) situs Indonesia di Internet, yaitu:

            www.detik.com
            www.telkom.co.id
            ibank.klikbca.com


[root@gate onno]# nmap -v -sS -O www.detik.com

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host www.detik.com (202.158.66.181) appears to be up ... good.
Initiating SYN half-open stealth scan against www.detik.com
Interesting ports on www.detik.com (202.158.66.181):
(The 1513 ports scanned but not shown below are in state: filtered)
Port       State       Service
20/tcp     closed      ftp-data
21/tcp     closed      ftp
22/tcp     open        ssh
25/tcp     closed      smtp
80/tcp     open        http
110/tcp    closed      pop-3
443/tcp    closed      https
1417/tcp   closed      timbuktu-srv1
5900/tcp   closed      vnc
5901/tcp   closed      vnc-1

TCP Sequence Prediction: Class=random positive increments
                         Difficulty=3193299 (Good luck!)

Nmap run completed -- 1 IP address (1 host up) scanned in 580 seconds


[root@gate onno]# nmap -v -sS -O www.telkom.co.id

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host  (202.134.2.15) appears to be up ... good.
Interesting ports on  (202.134.2.15):
(The 1493 ports scanned but not shown below are in state: closed)
Port       State       Service
7/tcp      open        echo
9/tcp      open        discard
13/tcp     open        daytime
19/tcp     open        chargen
37/tcp     open        time
80/tcp     open        http
111/tcp    open        sunrpc
137/tcp    filtered    netbios-ns
138/tcp    filtered    netbios-dgm
139/tcp    filtered    netbios-ssn
199/tcp    open        smux
512/tcp    open        exec
513/tcp    open        login
514/tcp    open        shell
543/tcp    open        klogin
544/tcp    open        kshell
882/tcp    open        unknown
883/tcp    open        unknown
1234/tcp   open        hotline
1352/tcp   open        lotusnotes
1524/tcp   filtered    ingreslock
2041/tcp   filtered    interbase
2401/tcp   open        cvspserver
6000/tcp   filtered    X11
6112/tcp   open        dtspc
12345/tcp  filtered    NetBus
12346/tcp  filtered    NetBus
27665/tcp  filtered    Trinoo_Master
32771/tcp  open        sometimes-rpc5
32773/tcp  open        sometimes-rpc9

TCP Sequence Prediction: Class=truly random
                         Difficulty=9999999 (Good luck!)


Nmap run completed -- 1 IP address (1 host up) scanned in 284 seconds
[root@gate onno]#




[root@yc1dav onno]# nmap -vv -sS -O ibank.klikbca.com

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host  (202.158.15.52) appears to be down, skipping it.
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap run completed -- 1 IP address (0 hosts up) scanned in 43 seconds


Tampak diantara ke tiga (3) situs di atas, ibank.klikbca.com merupakan situs yang palings serius pertahanannya. Bahkan oleh nmap yang melakukan stealth probe gagal untuk melihat port yang aktif di ibank.klikbca.com (sebetulnya port 443 terbuka di ibank.klikbca.com).

www.telkom.co.id merupakan situs yang termasuk paling parah pertahanannya, demikian banyak port yang terbuka di Internet sehingga membuat kita berfikir apakah betul ini Telkom yang hebat itu? Koq sampai demikian ceroboh? Atau di sengaja? Entahlah.

www.detik.com cukup baik hanya membuka penuh port 80 (Web) dan 22 (SSH); di samping ada beberapa port lain yang beroperasi tapi tertutup bagi umum di Internet untuk mengakses-nya.

Cara menjalankan nmap juga tampak relatif sederhana, menggunakan format

            # nmap [tipe scan] [option] nama-target-mesin

Jika PC anda tersambung ke Internet, maka port scanning akan dijalankan secara otomatis oleh nmap & menampilkan hasil seperti tampak di atas.

Ada beberapa tipe scan yang sering digunakan untuk melihat port nama saja yang terbuka dari ribuan port; beberapa perintah yang ada seperti, -sT, -sF, -sR dsb. Yang sering saya gunakan adalah:

-sS - TCP SYN scan: teknik ini kadang di sebut “half-open” scanning, karena anda tidak membuka penuh hubungan TCP. Jika di responds dengan SYN|ACK maka port berarti terbuka. Bila responds berupa RST menunjukan servis tidak jalan. Pada saat SYN|ACK di terima, nmap akan meresponds dengan RST. Dengan teknik ini, sedikit situs yang akan mencatat scanning yang dilakukan. Hal ini di sebut stealth scannning.

Ada banyak option yang mengatur cara kerja nmap, beberapa yang sering saya gunakan misalnya:

            -P0 – tidak melakukan ping ke target, untuk menghindari kita terlihat oleh target.

-f  - menggunakan potongan paket kecil-kecil (fragmented) agar sulit di deteksi oleh software pendeteksi penyusup.

            -v – verbose mode, untuk melihat hasil antara proses scan pada layar.

            -O – mencoba menebak sistem operasi yang digunakan oleh mesin target.


Untuk melihat penjelasan lengkap berbagai pilihan yang ada di nmap, ada baiknya membaca manual nmap yang dapat diperoleh dengan men-tik

            $ man nmap

di prompt Linux.

Setelah kita mengetahui port / servis yang dijalankan di mesin target, kita perlu mengetahui jenis software untuk servis tersebut. Dan mencoba membaca-baca di situs underground kelemahan software tersebut, sukur-sukur kalau kita menemukan eksploit software tersebut. Biasanya eksploit yang tersedia perlu di compile menggunakan compiler C.

Perlu di ingat & di pahami proses hacking akan terdiri dari empat (4) langkah utama yaitu:

Step 1: Memperoleh akses ke situs.
Step 2: Menghack root.
Step 3: Menutupi bekas-bekas anda.
Step 4: Membuat backdoor untuk menjaga account.

Kita baru mencapai Step 0, usaha untuk membuka akses ke situs. Perjalanan masih lama & membutuhkan banyak waktu & proses belajar.