1. Home
  2. Port Scanning Menggunakan Netcat dan NetTCPIP

Port Scanning Menggunakan Netcat dan NetTCPIP

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيْم

Introduction

Tujuan dari port scanning adalah untuk mengetahui apakah port (terutama port TCP) tertentu pada suatu end-point statusnya open, closed, atau filtered. Open artinya port tersebut akan merespon connection request. Closed artinya port tersebut menolak (refused) connection request. Sedangkan filtered artinya ada firewall yang mem-block packet yang dikirimkan ke port tersebut, sehingga packet tersebut tidak sampai ke port tujuan.

Ada banyak cara untuk melakukan port scanning, salah satu tool yang paling kompleks adalah Nmap. Namun ada cara yang lebih simpel yang bisa digunakan untuk tujuan yang sama tanpa meng-install software apapun. Yaitu Netcat pada Linux, dan NetTCPIP pada Windows.

Netcat

Netcat adalah network utility yang sudah ter-install secara default pada Linux, misalnya Ubuntu. Salah satu fitur yang ada pada Netcat adalah port scanning. Dan Netcat bisa langsung digunakan dari terminal dengan command yang simpel.

netcat -vzw5 <IP_ADDRESS> <PORT>

netcat > command yang digunakan untuk menggunakan Netcat. Command ini bisa juga disingkat menjadi “nc”.
-v > verbose, adalah flag yang berfungsi untuk menampilkan informasi status dari port yang sedang di-scan.
-z > zero I/O, adalah flag yang jika digunakan, maka Netcat hanya akan mengecek apakah port yang dituju open atau closed tanpa mengirimkan data apapun. Penjelasan lebih teknisnya lagi, Netcat hanya akan menunggu sampai ia menerima packet SYN-ACK, atau RST dari target, kemudian langsung menutup koneksi. Apabila tidak menggunakan flag -z, maka Netcat akan menerima packet SYN-ACK, kemudian membalas dengan packet ACK. Sehingga koneksi antara 2 end-point ini menjadi fully established. Sederhananya, flag -z hanya mengetuk pintu target, dan langsung kabur saat pemilik rumah hendak membuka pintu.
-w > timeout, -w5 artinya Netcat akan menunggu selama 5 detik, dan apabila tidak ada respon dari target selama 5 detik, maka Netcat akan menganggap koneksi ke target adalah timeout.

Contoh Netcat 1

Di atas adalah contoh menggunakan Netcat untuk meng-scan port 80 pada IP 103.XXX.XXX.XXX. Karena kita menggunakan flag -v, maka Netcat menampilkan informasi “succeeded!” yang artinya status port tersebut adalah open. Tanpa flag -v, maka tidak ada informasi yang ditampilkan. Kemudian kita juga menggunakan flag -z, sehingga Netcat langsung menutup koneksi dan kita langsung kembali ke console. Jika flag -z tidak digunakan, maka ada delay sebelum kembali ke console karena koneksi antara kita dengan target menjadi fully established. Dan flag -w5 juga digunakan. Jadi jika selama 5 detik tidak ada respon dari target, maka Netcat menganggap timeout. Yang artinya packet kita tidak sampai ke port tujuan karena mungkin ter-filter oleh firewall.

Contoh Netcat 2

Selanjutnya kita meng-scan port 81 ke IP target yang sama. Ketika command dijalankan, ada delay selama 5 detik, lalu kemudian informasi “time out” ditampilkan. Ini karena tidak ada respon dari target selama 5 detik, sehingga Netcat menganggap koneksi ke target adalah timeout. Ini bisa disebabkan oleh firewall yang mem-block port tersebut, atau target dikonfigurasi untuk hanya diam dan tidak memberikan respon apa-apa saat ada packet yang sampai ke port tersebut.

Contoh Netcat 3

Contoh selanjutnya adalah port scanning ke port 22 dengan hasil “Connection refused”. Artinya packet yang dikirimkan oleh Netcat sampai ke port tujuan, akan tetapi target langsung mengirimkan penolakan berupa packet dengan flag RST. Ibaratnya seperti kita memanggil seseorang, “halo dek”, orang tersebut tahu kita memanggilnya, akan tetapi dia hanya menjawab “gak”.

Contoh Netcat 4

Netcat bisa melakukan scan ke lebih dari 1 port. dan juga port range dengan menggunakan 1 baris command saja. Pada contoh di atas, kita melakukan port scanning ke port 22, 80, dan 443 sampai 450.

NetTCPIP

Bagaimana jika kita ingin melakukan port scanning dari Windows? Sedangkan Netcat secara default hanya tersedia di Linux. Caranya adalah menggunakan NetTCPIP. NetTCPIP adalah module yang secara default ada di setiap OS Windows, dan dapat digunakan melalui Powershell. Kekurangan NetTCPIP dibandingkan Netcat adalah, NetTCPIP hanya bisa meng-scan 1 port saja dalam 1 baris command.

Test-NetConnection <IP_ADDRESS> -Port <PORT_NUMBER>

Test-NetConnection > cmdlet yang digunakan untuk melakukan diagnosa koneksi jaringan, misalnya port scanning. Command ini bisa disingkat menjadi “tnc”.
-Port > adalah parameter untuk memasukkan port yang ingin kita scan. Parameter ini bisa disingkat menjadi -p saja.

Contoh Test-NetConnection 1

Pada contoh ini kita melakukan scan ke port 443 IP 103.XXX.XXX.XXX. “TcpTestSucceeded : True” artinya status port 443 pada IP tersebut adalah open.

Contoh Test-NetConnection 2

Pada contoh ini kita menggunakan singkatan dari cmdlet Test-NetConnection, yaitu “tnc”, dan juga singkatan dari parameter -Port, yaitu “-p”. “TcpTestSucceeded : False” menunjukkan bahwa status port yang kita scan adalah closed/timeout.

Kesimpulan

Untuk memahami bagaimana cara port scanning bekerja, maka kita sangat perlu untuk terlebih dahulu memahami bagaimana cara kerja TCP, dan bagaimana packet itu berpindah dari satu poin ke poin yang lain di dalam suatu jaringan.

Updated on October 11, 2024

Was this article helpful?

Leave a Comment