Android

Perintah Netcat (nc) dengan contoh-contoh

Tutorial Terminal emulator

Tutorial Terminal emulator

Daftar Isi:

Anonim

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

Netcat adalah cross-platform dan tersedia untuk Linux, macOS, Windows, dan BSD. Anda dapat menggunakan Netcat untuk men-debug dan memonitor koneksi jaringan, memindai port terbuka, mentransfer data, sebagai proxy, dan lainnya. Paket Netcat sudah diinstal sebelumnya pada macOS dan distribusi Linux populer seperti Ubuntu.

Sintaks Netcat

Sintaks paling dasar dari utilitas Netcat mengambil bentuk berikut:

nc host port

Di Ubuntu, Anda bisa menggunakan netcat atau nc . Keduanya adalah symlink ke versi OpenBSD dari Netcat.

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

nc -u host port

Pemindaian Port

Port pemindaian adalah salah satu kegunaan paling umum untuk Netcat. Anda dapat memindai port tunggal atau rentang port.

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

nc -z -v 10.10.8.8 20-80

Opsi -z akan memberitahu nc untuk hanya memindai port terbuka, tanpa mengirim data apa pun kepada mereka dan opsi -v 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 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 succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Anda juga dapat menggunakan Netcat untuk menemukan perangkat lunak server dan versinya. Misalnya, jika Anda mengirim perintah "EXIT" ke server pada port SSH standar 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 opsi -u ke perintah seperti yang ditunjukkan di bawah ini:

nc -z -v -u 10.10.8.8 20-80

Dalam sebagian besar situasi, Nmap 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 berfungsi dengan mengatur Netcat untuk mendengarkan pada port tertentu (menggunakan opsi -l ) pada host penerima dan kemudian membuat koneksi TCP reguler dari host lain dan mengirimkan file di atasnya.

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

nc -l 5555 > file_name

Dari host pengirim hubungkan 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 untuk mengekstrak arsip pada host tujuan.

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

nc -l 5555 | tar xzvf -

Pada host pengirim pak direktori dan mengirim data dengan menghubungkan ke proses nc mendengarkan pada host penerima:

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

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

Membuat Server Obrolan Sederhana

Prosedur untuk membuat obrolan online antara dua host atau lebih sama dengan ketika mentransfer file.

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

nc -l 5555

Dari host kedua jalankan perintah berikut untuk menghubungkan ke port mendengarkan:

nc first.host.com 5555

Sekarang jika Anda mengetik pesan dan menekan ENTER 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 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 penuh termasuk header HTTP dan kode HTML akan dicetak di terminal.

Kesimpulan

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

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

terminal netcat