Gunakan Netcat untuk Mentransfer File

Tutorial ini menawarkan penjelasan mudah tentang cara menggunakan Netcat untuk mentransfer file antar perangkat.

Netcat adalah alat jaringan command line yang digunakan untuk membuat koneksi TCP/UDP dan analisis jaringan. Fitur Netcat meliputi:

  • Koneksi keluar dan masuk, TCP atau UDP, ke atau dari port mana pun
  • Ini dapat digunakan untuk membuka port lokal
  • Mendukung transfer file antar perangkat
  • Netcat dapat digunakan untuk memindai port.
  • Netcat dapat digunakan untuk meraih spanduk
  • Pemeriksaan maju/mundur DNS penuh, dengan peringatan yang sesuai
  • Kemampuan untuk menggunakan alamat sumber jaringan yang dikonfigurasi secara lokal
  • Kemampuan pemindaian port bawaan, dengan pengacakan
  • Kemampuan perutean sumber longgar bawaan
  • Mode pengiriman lambat, satu baris setiap N detik
  • Hex dump dari data yang dikirim dan diterima
  • Kemampuan opsional untuk membiarkan service program lain membuat koneksi
  • Responden opsi telnet opsional

Menginstal Netcat:

Sebelum memulai, saya ingin mengklarifikasi bahwa meskipun saya menggunakan perintah “netcat” dalam tutorial ini, Anda juga dapat menggunakan perintah “nc.”

Untuk memulai, instal Netcat dengan menjalankan perintah yang ditunjukkan di bawah ini di distribusi Linux berbasis Debian.

sudo apt install netcat

Untuk menginstal Netcat di Red Hat atau Centos, jalankan:

yum install -y nc

Anda perlu mengulangi proses di semua perangkat yang ingin Anda transfer datanya. Untuk tutorial ini, saya membuat engine virtual dengan IP 192.168.1.102.

Untuk tutorial ini, saya juga akan menggunakan perintah pv yang menjadi default di distro Linux. Perintah ini digunakan untuk menampilkan progres transfer file.

Untuk menginstalnya, jalankan:

sudo apt install pv

Mengirim file menggunakan Netcat:

Dalam contoh ini, perangkat 192.168.1.102 akan menerima file; perangkat lain akan mengirimkannya. Dari perangkat penerima, jalankan perintah berikut menggantikan linuxhint.deb dengan nama file sebenarnya yang ingin Anda transfer. Opsi -l (Mendengarkan koneksi masuk) menginstruksikan Netcat untuk mendengarkan koneksi masuk pada port 9899.

netcat -l 9899 > [FileName]

Seperti yang Anda lihat, Netcat tetap mendengarkan pada port 9899, ​​menunggu file. Sekarang, dari perangkat pengirim, jalankan perintah di bawah ini, ganti alamat IP dengan IP perangkat penerima Anda dan linuxhint.deb dengan nama file. Opsi -w digunakan untuk menentukan batas waktu dalam hitungan detik.

netcat -w 2 192.168.1.102 9899 < [FileName]

Seperti yang Anda lihat di bawah, file linuxhint.deb telah dipindahkan ke direktori saat ini di sisi penerima.

Jika Anda tidak memiliki file untuk dikirim di direktori saat ini, atau penerima tidak ingin menyimpannya di direktori saat ini, Anda dapat menentukan jalur.

Pada contoh di bawah ini, penerima akan menyimpan file linuxhint.deb ke dalam direktori linuxhint.

Pada contoh di bawah ini, pengirim memiliki file yang ingin dia kirim di subdirektori linuxhint2:

Seperti yang Anda lihat, file berhasil disimpan di direktori linuxhint receiver.

Menampilkan kemajuan dalam transfer file:

Anda juga dapat mengimplementasikan perintah pv untuk menunjukkan kemajuan dalam transfer file. Di sisi penerima, tambahkan pipa diikuti dengan perintah pv yang digunakan untuk memantau kemajuan data melalui pipa dan spesifikasi file masuk.

netcat -l 9899 | pv > LinuxHint

Kemudian pada perangkat pengirim, jalankan perintah yang dijelaskan pada contoh sebelumnya seperti yang ditunjukkan di bawah ini.

nc -w 2 192.168.1.102 9899 < users.txt

Output Pv dapat diedit untuk mengubah unit file; periksa halaman manual dari perintah ini untuk menunjukkan kemajuan di unit lain selain byte.

Kompres dan kirim direktori menggunakan Netcat:

Menggunakan perintah di bawah ini, Anda dapat mengompres dan mengirim direktori.

Pada perangkat penerima, ketik perintah di bawah ini, ganti linuxhint2 dengan nama direktori terkompresi yang ingin Anda terima dari perangkat ini.

netcat -l 9899 > linuxhint2

Pada perangkat pengirim, jalankan perintah di bawah ini, ganti linuxhint2 dengan nama direktori yang ingin Anda kompres dan kirim. Juga, ganti IP 192.168.1.102 dengan alamat IP receiver Anda.

tar cfvz - linuxhint2 | netcat -w 2 192.168.1.102 9899 linuxhint2/

Seperti yang Anda lihat, file telah diterima dengan benar dan diekstraksi menggunakan perintah di bawah ini:

tar xvzf <FileName>

Direktori linuxhint2 dieks
traksi dengan isinya.

Mentransfer seluruh disk atau partisi menggunakan Netcat:

Anda juga dapat mentransfer seluruh disk atau partisi menggunakan Netcat dengan perintah yang ditunjukkan di bawah ini. Pada contoh di bawah ini, saya akan mentransfer partisi disk eksternal ke partisi sisi penerima.

Di sisi penerima, ketik perintah berikut, ganti port dengan yang Anda gunakan dan disk atau partisi tujuan dengan milik Anda.

netcat 9899 -l | bzip2 -d | dd of=/dev/sdb

Di sisi pengiriman, jalankan perintah berikut untuk mengganti disk atau partisi (sdb1), alamat IP dan port penerima Anda.

bzip2 -c /dev/sdb1 | netcat 192.168.1.102 9899

Dalam kasus saya, perangkat drive saya penuh, tetapi kita dapat melihat prosedur selesai.

Jika Anda memasang perangkat tempat Anda menyimpan cadangan, Anda harus melihat data di titik pemasangan.

mount /dev/sdb /media

Kesimpulan:

Transfer file adalah salah satu fitur Netcat terbaik.

Dalam tutorial sebelumnya tentang Netcat untuk port scan, kesimpulannya tidak menguntungkan untuk program ini sebelum alternatif seperti Nmap. Di antara keterbatasan umum Netcat, kami melihatnya tidak mendukung pemindaian beberapa port. Transfer file tidak dienkripsi, dan penyerang dapat meluncurkan serangan Man in the MIddle untuk mencegat data dalam transfer file Netcat.

Penting untuk memperjelas bahwa mentransfer file melalui Netcat bukanlah pilihan yang aman jika tindakan enkripsi tidak diterapkan. Netcat tidak menyertakan fitur enkripsi, tetapi dapat digabungkan dengan PGP atau alternatif yang mendekati masalah ini seperti Cryptcat, yang sangat mirip dengan Netcat dengan sedikit perbedaan: Cryptcat tidak mendukung opsi -t untuk negosiasi Telnet dan tidak mendukung batas waktu stdin (-Q). Di sisi lain, Cryptcat menambahkan fungsionalitas baru seperti enkripsi. Alternatif aman lainnya termasuk transfer file melalui protokol ssh ( scp ).

Saya harap tutorial ini bermanfaat. Ikuti terus Linux Hint untuk tips dan tutorial Linux lainnya.

Related Posts