Petua & Trik dengan Perintah Netcat di Linux

Petua & Trik dengan Perintah Netcat di Linux

Netcat adalah utiliti rangkaian serba boleh yang boleh digunakan untuk membaca dan menulis ke sambungan TCP dan UDP pada port sewenang -wenangnya (seperti utiliti lain yang digunakan pada Linux, port di bawah 1024 memerlukan keistimewaan root/sudo). Secara lalai Netcat menggunakan sambungan TCP, tetapi UDP boleh ditentukan dengan -u bendera. Netcat boleh digunakan sebagai pelayan dan pelanggan. Apabila digunakan sebagai pelayan -L Bendera digunakan untuk mendengar sambungan. Sama dengan perintah kucing, Netcat dapat menerima maklumat dari stdin dan menulis ke stdout menjadikannya bagus untuk aliran kerja yang melibatkan paip dan pengalihan. The NC Perintah biasanya digunakan untuk membangkitkan Netcat untuk memudahkan penggunaan.

Dalam tutorial ini, anda akan belajar bagaimana melakukan perkara berikut dengan netcat:

  • Buat permintaan HTTP untuk merebut laman web
  • berbual dengan rakan di seluruh mesin
  • Salin fail antara mesin
  • melakukan pengimbasan pelabuhan
  • Lihat mesej dari Netcat dalam penyemak imbas web
  • buat dan sambungkan ke kerang terbalik
Petua & Trik dengan Perintah Netcat di Linux

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran-bebas
Perisian Netcat
Yang lain Keistimewaan Root untuk menggunakan port di bawah 1024
Konvensyen # - perintah linux akan dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Perintah Linux akan dilaksanakan sebagai pengguna yang tidak layak

Meraih laman web

Amaran
Sambungan Netcat tidak disulitkan. Contoh berikut menghantar data dengan jelas. Jangan gunakan Netcat untuk menghantar data sensitif pada rangkaian yang tidak boleh dipercayai seperti Internet dan Wi-Fi awam. Sekiranya anda perlu menghantar data dengan selamat, pertimbangkan OpenSSH.

Netcat boleh digunakan untuk membuat sambungan sewenang -wenangnya ke perkhidmatan rangkaian. Akibatnya, ia boleh digunakan untuk membuat permintaan HTTP ke pelayan web seperti pelayar web. Mari teruskan dan ambil halaman indeks dari google.com.
Masuk ke NC arahan diikuti oleh Tuan rumah dan juga pelabuhan Anda mahu menyambung ke.

$ nc Google.com 80 

Sekarang mari buat permintaan HTTP. Taip atau salin/tampal yang berikut dan tekan Enter dua kali.

Dapatkan /indeks.HTML HTTP/1.1


Anda harus melihat output yang serupa dengan tangkapan skrin ini.

Dapatkan laman web menggunakan Netcat

Berbual

Contoh ini mengandaikan bahawa anda mempunyai 2 komputer di rangkaian yang sama, dengan nama host HOST1 dan HOST2. Anggapan ini akan dibuat dalam contoh berikut. Untuk membuat sambungan pendengaran netcat di host1 masukkan yang berikut.

$ nc -lv 8888 

Ini mendengar sambungan di port 8888. The -v Bendera Menentukan output verbose yang akan memberi anda lebih banyak maklumat mengenai sambungan masuk.

Sekarang HOST2 Masukkan:

$ nc host1 8888 

Anda akan melihat bahawa mana -mana teks yang dimasukkan ke dalam terminal pada Host1 dihantar ke terminal pada Host2 dan sebaliknya. Ini boleh digunakan sebagai sembang adhoc antara dua pengguna di rangkaian yang sama.

Pemindahan fail

Netcat boleh digunakan untuk menyalin fail dari satu mesin ke mesin yang lain. Mari kita anggap anda mempunyai fail yang dipanggil ncNotes.TXT yang anda mahu pindahkan HOST1 ke HOST2

Pada Host1 masukkan yang berikut untuk membuat fail dan dengar sambungan masuk untuk memindahkannya ke port 2222:

$ echo "Ini adalah nota netcat saya"> ncNotes.TXT $ NC -L 2222 < ncnotes.txt 

Pada host2 masukkan yang berikut untuk menyalin/terima fail dan kemudian cetaknya ke stdout untuk mengesahkan bahawa pemindahan fail itu berjaya.

$ nc host1 2222> ncnotes.TXT $ CAT NCNOTES 

Bagaimana jika anda ingin memindahkan seluruh folder dan bukan hanya satu fail? Netcat tidak mampu melakukan ini sendiri, jadi kita perlu menggunakan arahan tar.

Masukkan yang berikut di Host1 untuk membuat folder yang dipenuhi dengan lima fail dan kemudian gunakan tar untuk membuat arkib dan paip di rangkaian dengan NetCat.

$ mkdir fail; sentuh fail/1 ... 5 $ tar -cvz fail | NC -L 8888 

Masukkan perkara berikut HOST2 Untuk memindahkan folder dan mengesahkan bahawa ia merangkumi semua lima fail.

$ nc host1 8888 | tar -xvz $ ls fail 

Pada tuan rumah1 yang -c Bendera digunakan untuk membuat arkib yang akan disalurkan ke Netcat, -v digunakan untuk output verbose supaya kita mempunyai maklum balas visual yang membolehkan kita tahu ini berlaku dan -z digunakan untuk memampatkan arkib supaya pemindahan rangkaian lebih cepat. Dalam contoh kami, mampatan tidak membuat banyak perbezaan sejak fail Folder dipenuhi dengan fail kosong, tetapi anda mungkin mahu memindahkan direktori/fail besar, jadi bagus untuk mengetahui. Pada tuan rumah2 yang -x Bendera digunakan untuk mengekstrak arkib yang disalurkan dari netcat, -v adalah untuk pengekstrakan secara verbose, dan -z adalah untuk mengurangkan arkib.

Pengimbasan pelabuhan

Netcat boleh digunakan sebagai pengimbas pelabuhan asas dengan menggunakan -z bendera.

Katakan anda sedang aktif HOST1 Dan anda ingin mengetahui sama ada pelayan SSH dijalankan pada host2. Dengan mengandaikan ia berjalan pada port lalai (22) dan tidak ada firewall menyekat akses kepadanya, anda boleh menggunakan arahan berikut untuk melihat apakah perkhidmatan sedang berjalan.

$ nc -zv host2 22 

Netcat juga boleh mengimbas pelbagai pelabuhan untuk melihat mana jika mana -mana daripada mereka dibuka. Ini boleh digunakan untuk menyimpulkan perkhidmatan apa yang dijalankan oleh mesin. Katakan anda sedang aktif HOST2 dan anda ingin melihat sama ada pelabuhan antara 1 dan 1024 dibuka HOST1; anda boleh menggunakan arahan berikut.

$ nc -zv host1 1-1024 

Bergantung pada versi Netcat yang telah anda pasangkan pada sistem anda, arahan sebelumnya akan melaporkan hanya pelabuhan terbuka atau ia akan mencetak garis untuk setiap pelabuhan yang dibuka dan ditutup. Sekiranya bekas adalah kes itu maka output sangat mudah dibaca, tetapi jika yang terakhir adalah kes itu maka output dapat membuktikan sukar untuk dihuraikan dan perintah berikut harus digunakan sebaliknya sehingga hanya port terbuka dipaparkan.

$ nc -zv host1 1-1024 2> & 1 | Grep berjaya 


Lihat mesej dalam penyemak imbas

Pada HOST1 sila isikan. The -k Bendera menyimpan sambungan hidup supaya dapat disambung semula lagi oleh mesin yang sama atau oleh mesin lain. Tanpa bendera ini HOST1 akan berhenti mendengar lebih banyak sambungan sebaik sahaja sambungan pertama dibuat.

$ echo "hello there" | NC -LKV 5555 

Pada HOST2 Buka penyemak imbas dan navigasi ke Host1: 5555

Anda mesti melihat perkataannya apa khabar di sana dipaparkan dalam penyemak imbas.

Shell terbalik

Netcat juga boleh digunakan untuk menubuhkan shell terbalik untuk mengendalikan mesin jauh dari rangkaian. Ini dilakukan dengan -e bendera. Dalam contoh ini, kami mahu menyambung ke shell bash HOST2 untuk mentadbirnya dari HOST1.

Pada HOST1 Masukkan:

$ nc -lv 6666 

Pada HOST2 Masukkan:

$ nc -v host1 6666 -e /bin /bash 

Sekarang HOST1 Masukkan yang berikut dan akan jelas bahawa kami mempunyai akses jauh ke shell bash HOST2.

$ hostname $ whoami $ ls 

Anda mesti melihat nama hos untuk HOST2, nama pengguna pengguna yang memulakan NC pada HOST2 dan fail mereka. Banyak versi Netcat tidak termasuk -e pilihan kerana ia berpotensi untuk penyalahgunaan. Mewujudkan shell jauh pada mesin yang mempunyai versi Netcat yang tidak termasuk pilihan -e akan memerlukan melaksanakan arahan NetCat yang sama pada Host1, sambil menggunakan program yang berbeza untuk membuat shell terbalik HOST2. Penyelesaian untuk ini wujud untuk Bash, Python, Perl, PHP dan banyak lagi.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Contoh Petua dan Trik Perintah Bash Berguna - Bahagian 1
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 3
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 4
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2
  • Pengenalan kepada Paip Dinamakan di Bash Shell
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 5