8 Perintah Netcat (nc) dengan Contoh


Netcat (atau nc singkatnya) adalah alat baris perintah jaringan sederhana namun kuat yang digunakan untuk melakukan operasi apa pun di Linux yang terkait dengan TCP, < soket domain kuat>UDP, atau UNIX.

Netcat dapat digunakan untuk pemindaian port, pengalihan port, sebagai pendengar port (untuk koneksi masuk); itu juga dapat digunakan untuk membuka koneksi jarak jauh dan banyak hal lainnya. Selain itu, Anda dapat menggunakannya sebagai pintu belakang untuk mendapatkan akses ke server target.

Pada artikel ini, kami akan menjelaskan perintah penggunaan Netcat beserta contohnya.

Cara Menginstal dan Menggunakan Netcat di Linux

Untuk menginstal paket netcat di sistem Anda, gunakan manajer paket default untuk distribusi Linux Anda.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Setelah paket netcat diinstal, Anda dapat melanjutkan lebih jauh untuk mempelajari penggunaan perintah netcat dalam contoh berikut.

Pemindaian Pelabuhan

Netcat dapat digunakan untuk pemindaian port: untuk mengetahui port mana yang terbuka dan menjalankan layanan pada mesin target. Itu dapat memindai satu atau beberapa atau serangkaian port terbuka.

Berikut ini contohnya, opsi -z menyetel nc untuk sekadar memindai daemon yang mendengarkan, tanpa benar-benar mengirimkan data apa pun ke daemon tersebut. Opsi -v mengaktifkan mode verbose dan -w menentukan batas waktu untuk koneksi yang tidak dapat dibuat.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Mentransfer File Antar Server Linux

Netcat memungkinkan Anda mentransfer file antara dua komputer atau server Linux dan kedua sistem ini harus memiliki nc yang terinstal.

Misalnya, untuk menyalin file image ISO dari satu komputer ke komputer lain dan memantau kemajuan transfer (menggunakan utilitas pv), jalankan perintah berikut di komputer pengirim/server (di mana file ISO berada).

Ini akan menjalankan nc dalam mode mendengarkan (flag -l) pada port 3000.

tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

Dan di komputer penerima/klien, jalankan perintah berikut untuk mendapatkan file.

nc 192.168.1.4 3000 | pv | tar -zxf -

Buat Server Obrolan Baris Perintah

Anda juga dapat menggunakan Netcat untuk membuat server pesan baris perintah sederhana secara instan. Seperti pada contoh penggunaan sebelumnya, nc harus diinstal pada kedua sistem yang digunakan untuk ruang obrolan.

Pada satu sistem, jalankan perintah berikut untuk membuat server obrolan mendengarkan pada port 5000.

nc -l -vv -p 5000

Di sistem lain, jalankan perintah berikut untuk meluncurkan sesi obrolan ke mesin tempat server pesan berjalan.

nc 192.168.56.1 5000

Buat Server Web Dasar

Dengan opsi -l dari perintah nc yang digunakan untuk membuat server web dasar yang tidak aman untuk menyajikan file web statis untuk tujuan pembelajaran. Untuk mendemonstrasikannya, buat file .html seperti yang ditunjukkan.

vim index.html

Tambahkan baris HTML berikut dalam file.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

Simpan perubahan pada file dan keluar.

Kemudian sajikan file di atas melalui HTTP dengan menjalankan perintah berikut, yang memungkinkan server HTTP berjalan terus menerus.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Kemudian buka browser web dan dapat mengakses konten menggunakan alamat berikut.

http://localhost:8080
OR
http://SERVER_IP:8080

Perhatikan bahwa Anda dapat menghentikan server HTTP Netcat dengan menekan [Ctrl+ C].

Memecahkan Masalah Koneksi Server Linux

Penggunaan lain yang berguna dari Netcat adalah untuk memecahkan masalah koneksi server. Di sini, Anda dapat menggunakan Netcat untuk memverifikasi data apa yang dikirimkan server sebagai respons terhadap perintah yang dikeluarkan oleh klien.

Perintah berikut mengambil halaman beranda example.com.

printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

Output dari perintah di atas mencakup header yang dikirim oleh server web yang dapat digunakan untuk tujuan pemecahan masalah.

Temukan Layanan yang Berjalan di Port

Anda juga dapat menggunakan Netcat untuk mendapatkan banner port. Dalam hal ini, ini akan memberi tahu Anda layanan apa yang berjalan di belakang port tertentu. Misalnya untuk mengetahui jenis layanan apa yang berjalan di belakang port 22 pada server tertentu, jalankan perintah berikut (ganti 192.168.56.110 dengan alamat IP server target). Tanda -n berarti menonaktifkan DNS atau pencarian layanan.

nc -v -n 192.168.56.110 80

Buat Soket Aliran

Netcat juga mendukung pembuatan soket aliran domain UNIX. Perintah berikut akan membuat dan mendengarkan pada soket aliran domain UNIX.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Buat Pintu Belakang

Anda juga dapat menjalankan Netcat sebagai pintu belakang. Namun, hal ini memerlukan lebih banyak pekerjaan. Jika Netcat diinstal pada server target, Anda dapat menggunakannya untuk membuat pintu belakang, untuk mendapatkan prompt perintah jarak jauh.

Untuk bertindak sebagai pintu belakang, Anda memerlukan Netcat untuk mendengarkan port yang dipilih (misalnya port 3001) di server target dan kemudian Anda dapat menyambung ke port ini dari mesin Anda sebagai berikut.

Ini adalah perintah yang dimaksudkan untuk dijalankan di server jauh di mana opsi -d menonaktifkan pembacaan dari stdin, dan -e menentukan perintah untuk dijalankan pada sistem target.

nc -L -p 3001 -d -e cmd.exe 

Yang terakhir, Netcat dapat digunakan sebagai proxy untuk berbagai layanan/protokol termasuk HTTP, SSH, dan banyak lagi. Untuk informasi lebih lanjut, lihat halaman manualnya.

man nc

Dalam artikel ini, kami telah menjelaskan 8 contoh penggunaan perintah Netcat praktis. Jika Anda mengetahui kasus penggunaan praktis lainnya, sampaikan kepada kami melalui formulir masukan di bawah. Anda juga dapat mengajukan pertanyaan.