8 Netcat (nc) ຄໍາສັ່ງທີ່ມີຕົວຢ່າງ


Netcat (ຫຼື nc ໃນສັ້ນ) ແມ່ນເຄື່ອງມື ສຳ ລັບລະບົບເຄືອຂ່າຍທີ່ງ່າຍດາຍແຕ່ມີປະສິດທິພາບທີ່ໃຊ້ໃນການເຮັດວຽກໃດໆໃນ Linux ທີ່ກ່ຽວຂ້ອງກັບ TCP, UDP, ຫຼືເຕົ້າຮັບໂດເມນຂອງ UNIX.

Netcat ສາມາດໃຊ້ ສຳ ລັບການສະແກນ port, ການປ່ຽນເສັ້ນທາງ port, ເປັນຜູ້ຟັງທີ່ Port (ສຳ ລັບການເຊື່ອມຕໍ່ຂາເຂົ້າ); ມັນຍັງສາມາດຖືກນໍາໃຊ້ເພື່ອເປີດການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກແລະສິ່ງອື່ນໆຈໍານວນຫຼາຍ. ນອກຈາກນີ້, ທ່ານສາມາດໃຊ້ມັນເປັນບ່ອນນັ່ງທາງຫລັງເພື່ອໃຫ້ສາມາດເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍເປົ້າ ໝາຍ.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະອະທິບາຍ ຄຳ ສັ່ງການ ນຳ ໃຊ້ Netcat ດ້ວຍຕົວຢ່າງ.

ວິທີການຕິດຕັ້ງແລະໃຊ້ Netcat ໃນ Linux

ການຕິດຕັ້ງແພັກເກດສຸດທິໃນລະບົບຂອງທ່ານ, ໃຊ້ຕົວຈັດການຊຸດເລີ່ມຕົ້ນ ສຳ ລັບການແຈກຈ່າຍ Linux ຂອງທ່ານ.

$ yum install nc                  [On CentOS/RHEL]
$ dnf install nc                  [On Fedora 22+ and RHEL 8]
$ sudo apt-get install Netcat     [On Debian/Ubuntu]

ເມື່ອຊຸດ netcat ຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດສືບຕໍ່ຮຽນຮູ້ການ ນຳ ໃຊ້ ຄຳ ສັ່ງຂອງ netcat ໃນຕົວຢ່າງຕໍ່ໄປນີ້.

Netcat ສາມາດໃຊ້ ສຳ ລັບການສະແກນພອດ: ເພື່ອຮູ້ວ່າທ່າເຮືອໃດທີ່ເປີດແລະບໍລິການຢູ່ໃນເຄື່ອງເປົ້າ ໝາຍ. ມັນສາມາດສະແກນແບບ ports ແບບດຽວຫລືຫຼາຍຫລືຊ່ວງຂອງພອດເປີດ.

ນີ້ແມ່ນຕົວຢ່າງ, ຕົວເລືອກ -z ຊຸດ nc ເພື່ອສະແກນຫາຟັງສຽງໂດຍບໍ່ຕ້ອງສົ່ງຂໍ້ມູນໃດໆໃຫ້ພວກເຂົາ. ຕົວເລືອກ -v ຊ່ວຍໃຫ້ໂຫມດ verbose ແລະ -w ລະບຸເວລາ ໝົດ ເວລາ ສຳ ລັບການເຊື່ອມຕໍ່ທີ່ບໍ່ສາມາດສ້າງຕັ້ງໄດ້.

$ nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
$ nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
$ nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Netcat ຊ່ວຍໃຫ້ທ່ານສາມາດໂອນໄຟລ໌ລະຫວ່າງສອງຄອມພິວເຕີ້ Linux ຫຼື server ແລະທັງສອງລະບົບເຫຼົ່ານີ້ຕ້ອງໄດ້ຕິດຕັ້ງ nc.

ຍົກຕົວຢ່າງ, ເພື່ອ ສຳ ເນົາເອກະສານຮູບພາບ ISO ຈາກຄອມພິວເຕີ້ໄປຫາຄອມພິວເຕີ້ອື່ນແລະຕິດຕາມຄວາມຄືບ ໜ້າ ໃນການໂອນຍ້າຍ (ໃຊ້ pv utility), ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ໃນຄອມພິວເຕີ້ຜູ້ສົ່ງ/ເຊີຟເວີ (ບ່ອນທີ່ມີເອກະສານ ISO ຢູ່).

ສິ່ງນີ້ຈະໃຊ້ແບບຟັງໃນຟັງ ( -l ທຸງ) ຢູ່ທີ່ພອດ 3000.

$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

ແລະຢູ່ໃນເຄື່ອງຮັບ/ຄອມພິວເຕີ້ຂອງລູກຄ້າ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຈະໄດ້ເອກະສານ.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

ທ່ານຍັງສາມາດໃຊ້ Netcat ເພື່ອສ້າງເຄື່ອງແມ່ຂ່າຍການສົ່ງຂໍ້ຄວາມແບບງ່າຍໆແບບທັນທີ. ເຊັ່ນດຽວກັບຕົວຢ່າງການ ນຳ ໃຊ້ທີ່ຜ່ານມາ, nc ຕ້ອງໄດ້ຕິດຕັ້ງຢູ່ທັງສອງລະບົບທີ່ໃຊ້ ສຳ ລັບຫ້ອງສົນທະນາ.

ໃນລະບົບ ໜຶ່ງ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອສ້າງ server ສົນທະນາທີ່ຟັງຢູ່ພອດ 5000.

$ nc -l -vv -p 5000

ໃນລະບົບອື່ນ, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເປີດການສົນທະນາກັບເຄື່ອງທີ່ເຄື່ອງແມ່ຂ່າຍຂໍ້ຄວາມ ກຳ ລັງແລ່ນຢູ່.

$ nc 192.168.56.1 5000

ເລືອກຕົວເລືອກ -l ຂອງ ຄຳ ສັ່ງ nc ທີ່ໃຊ້ໃນການສ້າງເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ທີ່ບໍ່ປອດໄພຂັ້ນພື້ນຖານເພື່ອຮັບໃຊ້ເອກະສານເວບແບບຄົງທີ່ເພື່ອຈຸດປະສົງການຮຽນຮູ້. ເພື່ອສະແດງສິ່ງນີ້, ສ້າງເອກະສານ .html ຕາມທີ່ສະແດງ.

$ vim index.html

ຕື່ມສາຍ HTML ຕໍ່ໄປນີ້ໃນແຟ້ມ.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

ບັນທຶກການປ່ຽນແປງຂອງເອກະສານແລະອອກ.

ຫຼັງຈາກນັ້ນໃຫ້ບໍລິການເອກະສານຂ້າງເທິງຜ່ານ HTTP ໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເຊິ່ງຈະຊ່ວຍໃຫ້ server HTTP ສາມາດເຮັດວຽກໄດ້ຢ່າງຕໍ່ເນື່ອງ.

$ while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

ຈາກນັ້ນເປີດເວັບບຣາວເຊີແລະສາມາດເຂົ້າເຖິງເນື້ອຫາໂດຍໃຊ້ທີ່ຢູ່ດັ່ງຕໍ່ໄປນີ້.

http://localhost:8080
OR
http://SERVER_IP:8080

ໃຫ້ສັງເກດວ່າທ່ານສາມາດຢຸດເຊົາເຄື່ອງແມ່ຂ່າຍຂອງ Netcat HTTP ໂດຍການກົດ [Ctrl + C] .

ການ ນຳ ໃຊ້ທີ່ເປັນປະໂຫຍດອີກອັນ ໜຶ່ງ ຂອງ Netcat ແມ່ນການແກ້ໄຂບັນຫາການເຊື່ອມຕໍ່ເຊີຟເວີ. ນີ້, ທ່ານສາມາດໃຊ້ Netcat ເພື່ອກວດສອບຂໍ້ມູນໃດທີ່ເຊີບເວີ ກຳ ລັງສົ່ງເພື່ອຕອບສະ ໜອງ ຄຳ ສັ່ງທີ່ອອກໂດຍລູກຄ້າ.

ຄຳ ສັ່ງຕໍ່ໄປນີ້ດຶງເອົາ ໜ້າ ທຳ ອິດຂອງ example.com.

$ printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

ຜົນໄດ້ຮັບຂອງ ຄຳ ສັ່ງຂ້າງເທິງນີ້ລວມມີຫົວຂໍ້ທີ່ສົ່ງໂດຍ web-server ເຊິ່ງສາມາດໃຊ້ເພື່ອຈຸດປະສົງການແກ້ໄຂບັນຫາ.

ທ່ານຍັງສາມາດໃຊ້ Netcat ເພື່ອໄດ້ຮັບປ້າຍໂຄສະນາ port. ໃນກໍລະນີນີ້, ມັນຈະບອກທ່ານວ່າບໍລິການໃດທີ່ ກຳ ລັງແລ່ນຢູ່ຫລັງທ່າເຮືອທີ່ແນ່ນອນ. ຕົວຢ່າງເພື່ອຈະຮູ້ວ່າການບໍລິການປະເພດໃດທີ່ເຮັດວຽກຢູ່ຫລັງພອດ 22 ໃນເຄື່ອງແມ່ຂ່າຍສະເພາະ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ (ທົດແທນ 192.168.56.110 ດ້ວຍທີ່ຢູ່ IP ຂອງເຊີຟເວີເປົ້າ ໝາຍ). ທຸງ -n ໝາຍ ຄວາມວ່າຈະປິດການຊອກຫາ DNS ຫຼືການຊອກຫາການບໍລິການ.

$ nc -v -n 192.168.56.110 80

Netcat ຍັງສະຫນັບສະຫນູນການສ້າງເຕົ້າຮັບສາຍນ້ໍາໂດເມນ UNIX. ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະສ້າງແລະຟັງຢູ່ໃນເຕົ້າຮັບສາຍນ້ ຳ ຂອງ UNIX.

$ nc -lU /var/tmp/mysocket &
$ ss -lpn | grep "/var/tmp/"

ນອກນັ້ນທ່ານຍັງສາມາດແລ່ນ Netcat ເປັນ Backdoor ໄດ້. ເຖິງຢ່າງໃດກໍ່ຕາມ, ສິ່ງນີ້ຮຽກຮ້ອງໃຫ້ມີວຽກງານເພີ່ມເຕີມ. ຖ້າ Netcat ຖືກຕິດຕັ້ງຢູ່ໃນເຊີຟເວີເປົ້າ ໝາຍ, ທ່ານສາມາດໃຊ້ມັນເພື່ອສ້າງ Backdoor, ເພື່ອໃຫ້ໄດ້ຮັບ ຄຳ ສັ່ງຈາກໄລຍະໄກ.

ເພື່ອປະຕິບັດກັບທາງຫລັງ, ທ່ານຕ້ອງການ Netcat ເພື່ອຟັງທີ່ Port ທີ່ເລືອກ (ຕົວຢ່າງ: ພອດ 3001) ໃນເຊີຟເວີເປົ້າ ໝາຍ ແລະຫຼັງຈາກນັ້ນທ່ານສາມາດເຊື່ອມຕໍ່ພອດນີ້ຈາກເຄື່ອງຂອງທ່ານດັ່ງຕໍ່ໄປນີ້.

ນີ້ແມ່ນ ຄຳ ສັ່ງທີ່ມີຈຸດປະສົງໃຫ້ໃຊ້ໃນ server ຫ່າງໄກສອກຫຼີກເຊິ່ງຕົວເລືອກ -d ບໍ່ສາມາດອ່ານຈາກ stdin, ແລະ -e ລະບຸ ຄຳ ສັ່ງທີ່ຈະໃຊ້ໃນລະບົບເປົ້າ ໝາຍ.

$ nc -L -p 3001 -d -e cmd.exe 

ສຸດທ້າຍ, Netcat ສາມາດໃຊ້ເປັນໂປແກຼມຕົວແທນ ສຳ ລັບການບໍລິການ/ໂປໂຕຄອນທີ່ແຕກຕ່າງກັນລວມທັງ HTTP, SSH, ແລະອີກຫຼາຍໆຢ່າງ. ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ ໜ້າ ຜູ້ຊາຍຂອງມັນ.

$ man nc

ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ອະທິບາຍ 8 ຕົວຢ່າງການ ນຳ ໃຊ້ ຄຳ ສັ່ງຂອງ Netcat. ຖ້າທ່ານຮູ້ກໍລະນີການ ນຳ ໃຊ້ພາກປະຕິບັດອື່ນ, ແບ່ງປັນກັບພວກເຮົາຜ່ານແບບຟອມ ຄຳ ຕິຊົມຂ້າງລຸ່ມນີ້. ທ່ານສາມາດຖາມ ຄຳ ຖາມເຊັ່ນກັນ.