Perintah Netcat (nc) adalah alat yang ampuh untuk menganalisis koneksi jaringan, memindai port yang terbuka, mentransfer data, dll. Ini adalah utilitas jaringan untuk membaca dari dan menulis ke koneksi jaringan menggunakan protokol TCP atau UDP.
Cara menginstal netcat
Ini adalah alat lintas platform dan tersedia untuk Linux, macOS, Windows dan BSD. Kita akan menginstal netcat pada mesin Ubuntu 18.04 menggunakan apt install
atau kompilasi dari kode sumber.
Instalasi menggunakan apt cukup sederhana, Anda hanya perlu mengetikkan perintah berikut di terminal:
sudo apt install netcat
Di CentOS 8
Ncat dapat diinstal dengan paket nmap di RHEL 8/CentOS 8. Gunakan perintah dnf seperti di bawah ini
sudo dnf install nmap
Cara menginstal netcat dari kode sumber
Mengkompilasi netcat dari kode sumber tidak semudah menginstal melalui apt install
, tetapi jika Anda mengikuti langkah-langkah di bawah ini, Anda dapat menginstalnya dengan mudah.
Download source code dari website netcat dengan perintah berikut
wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz
Ekstrak arsip yang baru diunduh. Untuk melakukannya, Anda dapat menjalankan:
tar -xzvf netcat-0.7.1.tar.gz
cd
ke direktori yang berisi kode sumber paket dan ketik ./configure
untuk mengonfigurasi paket untuk sistem Anda.
cd netcat-0.7.1
./configure
Jika Anda mendapatkan pesan kesalahan seperti ini - "tidak ada kompiler C yang dapat diterima yang ditemukan di $PATH" saat menjalankan perintah ./configure, pastikan Anda telah menginstal kompiler gcc. Untuk menginstalnya ketik perintah berikut:
apt-get install build-essential
Menjalankan configure
butuh beberapa saat.
Setelah konfigurasi berhasil selesai jalankan:
sudo make
dan
sudo make install
Anda dapat menghapus program biner dan file objek dari direktori kode sumber dengan mengetikkan make clean
. Untuk juga menghapus file yang configure
dibuat, jalankan make distclean
perintah.
Contoh Netcat
Sebelum mulai menjelajahi beberapa perintah netcat, penting untuk diketahui bahwa jika Anda mengikat ke port terkenal (0-1023) dengan nc, Anda memerlukan hak akses root. Jika tidak, Anda dapat menjalankan nc sebagai pengguna biasa.
1) Uji apakah port TCP tertentu dari host jarak jauh terbuka
nc -vn 192.168.40.146 2424
Keluaran jika port 2424 pada server jauh ditutup
nc: connect to 192.168.40.146 port 2424 (tcp) failed: Connection refused
Keluaran jika port pada server jauh dibuka (misalnya port 22)
Connection to 192.168.40.146 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
2) Lakukan pemindaian port TCP terhadap host jarak jauh
Perintah di bawah ini akan memeriksa port dari 20 hingga 25 pada host jarak jauh dan mencetak hasilnya.
nc -vnz -w 1 192.168.40.146 20-25
Outputnya akan terlihat seperti ini
nc: connect to 192.168.40.146 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 21 (tcp) failed: Connection refused
Connection to 192.168.40.146 22 port [tcp/*] succeeded!
nc: connect to 192.168.40.146 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 25 (tcp) failed: Connection refused
3) Lakukan pemindaian port UDP terhadap host jarak jauh
nc -vnzu 192.168.40.146 1-65535
Output hanya akan menampilkan port yang memungkinkan koneksi udp.
Connection to 192.168.40.146 2424 port [udp/*] succeeded!
Connection to 192.168.40.146 12354 port [udp/*] succeeded!
4) Kirim paket UDP uji ke host jarak jauh
echo -n "udp test" | nc -u -w1 192.168.40.146 2424
Perintah di atas akan mengirim paket UDP uji dengan batas waktu 1 detik ke host jarak jauh di port 2424
5) Salin file (mis., test.txt) dari satu host ke host lain
Di host penerima (192.168.40.146 dalam kasus saya) jalankan:
nc -lp 2424 > test.txt
Pada host pengirim (192.168.40.144) jalankan perintah berikut:
nc 192.168.40.146 2424 < test.txt
Ini akan menyalin file test.txt dari host pengirim ke host penerima melalui port 2424. pastikan untuk mengizinkan koneksi masuk pada port 2424 pada host penerima.
6) Mentransfer seluruh direktori (termasuk isinya) dari satu host ke host lain
Di host penerima, jalankan:
nc -l 2424 | tar xvf -
Pada host pengirim jalankan perintah berikut:
tar cvf - /path/to/dir | nc 192.168.40.146 2424
7) Buat cadangan terkompresi dari hard drive (mis., /dev/sdc) pada host jarak jauh
Pada host jarak jauh jalankan:
nc -lp 2424 | sudo dd of=/path/to/image.img.gz
Pada host lokal jalankan perintah berikut:
dd if=/dev/sdc | gzip -c | nc 192.168.40.146 2424
8) Memulihkan hard drive (mis. /dev/sdc) dari image disk terkompresi yang disimpan di host jarak jauh
Di host lokal jalankan:
nc -lp 2424 | gunzip -c | sudo dd of=/dev/sdc
Pada remote host jalankan perintah berikut:
cat /path/to/image.img.gz | nc 192.168.40.144 2424
9) Jalankan obrolan online tidak aman antara dua host
Pada satu host (misalnya 192.168.40.144) jalankan perintah di bawah ini:
nc -lp 2424
Pada host lain (misalnya 192.168.40.146) jalankan perintah berikut:
nc 192.168.40.144 2424
Setelah menjalankan perintah ini, apa pun yang diketik di kedua terminal akan terlihat di kedua mesin host.
10) Jalankan server web dengan halaman web statis
Jalankan perintah di bawah ini pada host lokal (misalnya 192.168.40.144) untuk memulai server web yang melayani test.html pada port 80. Perhatikan bahwa Anda harus menjalankan dengan hak sudo karena 80 berada dalam jangkauan port terkenal (1-1023)
while true; do sudo nc -lp 80 < test.html; done
Sekarang buka http://192.168.40.144/test.html
dari host lain untuk mengaksesnya.
11) Dengarkan pada port TCP menggunakan alamat IPv6
Anda dapat menggunakan perintah berikut untuk mengizinkan nc menggunakan alamat IPv6 saat mendengarkan pada port TCP.
nc -6 -l 2424
Periksa apakah itu berfungsi dengan perintah di bawah ini
sudo netstat -nap | grep 2424
Outputnya akan terlihat seperti ini
tcp6 0 0 :::2424 :::* LISTEN 15665/nc
12) Streaming file video dari server agar klien dapat menonton video streaming menggunakan pemutar video (mis., mplayer)
Di server video (192.168.40.144):
cat sample_video.avi | nc -l 2424
Pada host klien (192.168.40.146):
nc 192.168.40.144 2424 | mplayer -vo x11 -cache 3000 -
Baca Juga:
- Cara menggunakan Perintah Linux Netcat sebagai Pemindai Port
- Cara Membuat Obrolan Sederhana dengan netcat di Linux
Seperti yang Anda lihat netcat adalah alat yang hebat untuk jaringan TCP/IP dan ini adalah salah satu alat paling favorit sysadmin ketika datang untuk melakukan pemecahan masalah dan eksperimen terkait jaringan. Itulah mengapa banyak distro Linux dikirimkan dengan netcat yang sudah diinstal sebelumnya.