GNU/Linux >> Belajar Linux >  >> Linux

Perintah Netcat (nc) dengan Contoh

Netcat (atau nc ) adalah utilitas baris perintah yang membaca dan menulis data di seluruh koneksi jaringan, menggunakan protokol TCP atau UDP. Ini adalah salah satu alat paling kuat di gudang administrator jaringan dan sistem, dan dianggap sebagai pisau alat jaringan tentara Swiss.

Netcat adalah lintas platform, dan tersedia untuk Linux, macOS, Windows, dan BSD. Anda dapat menggunakan Netcat untuk men-debug dan memantau koneksi jaringan, memindai port yang terbuka, mentransfer data, sebagai proxy, dan banyak lagi.

Paket Netcat sudah diinstal sebelumnya pada macOS dan distribusi Linux populer seperti Ubuntu, Debian, atau CentOS.

Sintaks Netcat #

Sintaks paling dasar dari utilitas Netcat mengambil bentuk berikut:

nc [options] host port

Di Ubuntu, Anda dapat menggunakan netcat atau nc . Keduanya terhubung ke Netcat versi openBSD.

Secara default, Netcat akan mencoba memulai koneksi TCP ke host dan port yang ditentukan. Jika Anda ingin membuat koneksi UDP, gunakan -u pilihan:

nc -u host port

Pemindaian Port #

Memindai port adalah salah satu kegunaan paling umum untuk Netcat. Anda dapat memindai satu port atau rentang port.

Misalnya, untuk memindai port terbuka dalam kisaran 20-80 Anda akan menggunakan perintah berikut:

nc -z -v 10.10.8.8 20-80

-z opsi akan memberi tahu nc untuk hanya memindai port yang terbuka, tanpa mengirimkan data apa pun ke port tersebut dan -v pilihan untuk memberikan lebih banyak informasi verbose.

Outputnya akan terlihat seperti ini:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

Jika Anda hanya ingin mencetak baris dengan port terbuka, Anda dapat memfilter hasilnya dengan grep perintah.

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

Anda juga dapat menggunakan Netcat untuk menemukan perangkat lunak server dan versinya. Misalnya, jika Anda mengirim perintah “EXIT” ke server pada port SSH default 22:

echo "EXIT" | nc 10.10.8.8 22

Outputnya akan terlihat seperti ini:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.

Untuk memindai port UDP cukup tambahkan -u pilihan ke perintah seperti gambar di bawah ini:

nc -z -v -u 10.10.8.8 20-80

Biasanya, Nma adalah alat yang lebih baik daripada Netcat untuk pemindaian port yang kompleks.

Mengirim File melalui Netcat #

Netcat dapat digunakan untuk mentransfer data dari satu host ke host lain dengan membuat model klien/server dasar.

Ini bekerja dengan mengatur Netcat untuk mendengarkan pada port tertentu (menggunakan -l option) pada host penerima dan kemudian membuat koneksi TCP biasa dari host lain dan mengirim file melaluinya.

Pada penerimaan jalankan perintah berikut yang akan membuka port 5555 untuk koneksi masuk dan mengarahkan output ke file:

nc -l 5555 > file_name

Dari host pengirim, sambungkan ke host penerima dan kirim file:

nc receiving.host.com 5555 < file_name

Untuk mentransfer direktori, Anda dapat menggunakan tar untuk mengarsipkan direktori pada host sumber dan mengekstrak arsip pada host tujuan.

Pada host penerima, atur alat Netcat untuk mendengarkan koneksi masuk pada port 5555. Data yang masuk disalurkan ke tar perintah, yang akan mengekstrak arsip:

nc -l 5555 | tar xzvf -

Pada host pengirim, kemas direktori dan kirim data dengan menghubungkan ke nc listening yang mendengarkan proses pada host penerima:

tar czvf - /path/to/dir | nc receiving.host.com 5555

Anda dapat melihat kemajuan transfer di kedua ujungnya. Setelah selesai, ketik CTRL+C untuk menutup koneksi.

Membuat Server Obrolan Sederhana #

Prosedur untuk membuat obrolan online antara dua atau lebih host sama seperti saat mentransfer file.

Pada host pertama, mulai proses Netcat untuk mendengarkan pada port 5555:

nc -l 5555

Dari host kedua, jalankan perintah berikut untuk terhubung ke port mendengarkan:

nc first.host.com 5555

Sekarang, jika Anda mengetik pesan dan tekan ENTER itu akan ditampilkan di kedua host.

Untuk menutup koneksi, ketik CTRL+C .

Melakukan permintaan HTTP #

Meskipun ada alat yang jauh lebih baik untuk permintaan HTTP seperti curl , Anda juga dapat menggunakan Netcat untuk mengirim berbagai permintaan ke server jarak jauh.

Misalnya, untuk mengambil halaman manual Netcat dari situs web OpenBSD, Anda harus mengetik:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

Respons lengkap, termasuk header HTTP dan kode HTML, akan dicetak di terminal.

Kesimpulan #

Dalam tutorial ini, Anda telah mempelajari cara menggunakan utilitas Netcat untuk membuat dan menguji koneksi TCP dan UDP.

Untuk informasi lebih lanjut, kunjungi halaman manual Netcatdan baca tentang semua opsi hebat lainnya dari perintah Netcat.

Jika Anda memiliki pertanyaan atau komentar, silakan tinggalkan komentar di bawah.


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah kepala Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah Nohup dengan Contoh

  1. Perintah Echo di Linux (Dengan Contoh)

  2. Perintah man di Linux dengan Contoh

  3. Perintah AWK di Linux dengan Contoh