[[oktatas:linux|< Linux]] ====== netcat ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2019 * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: http://szit.hu ===== A netcatról ===== Kézikönyve szerint a netcat TCP/IP svájci bicskája. Egy egyszerű unix eszköz, ami képes olvasni és írni a hálózati kapcsolatokba, TCP vagy UDP protokollt használva. ===== Telepítés ===== apt install netcat ===== Indítás ===== Az netcat indítható netcat vagy nc paranccsal is. Valójában mindkettő egy szimbolikus link a /bin/nc.traditional programra. Alapvető szintaxis: $ netcat [opciók] gép port A netcat alapértelmezetten TCP kapcsolatot használ. Használata így hasonlít a telnet parancshoz. Ne felejtsd el, hogy az adatok titkosítatlanul áramlanak a kapcsolatban. Ha UDP protokollt szeretnél kiépíteni, használd a -u kapcsolót. $ netcat -u gép port Megadható porttartomány is: $ netcat gép kezdőport-utolsó_port ===== Port szkennelés ===== A -z kapcsoló hatására nem épít kapcsolatot a netcat, csak ellenőrzést végez. $ netcat -z -v zold.lan 1-1023 A -v hatására bőbeszédű üzemmódba kapcsoltunk. Gyorsabb eredményt kaphatunk, ha IP cím alapján hivatkozunk a célgépre. $ netcat -z -n -v 192.168.10.3 1-1023 A -n kapcsolóval kikapcsoljuk az IP címek DNS névfeloldását. A kimenet ehhez hasonló lehet: (UNKNOWN) [192.168.10.3] 80 (http) open (UNKNOWN) [192.168.10.3] 22 (ssh) open Egy port megvizsgálása, időlimittel: $ netcat -zvw3 192.168.10.3 22 192.168.10.3 [192.168.10.3] 22 (ssh) open ===== Kommunikáció ===== Egy gépen állítsuk be, hogy hallgatózzon 9000-s porton: $ netcat -l -p 9000 A netcat ezek után figyeli 9000-s portot. Rendszergazdai jog nélkül 1024 alatt nem nyithat portot. Egy másik gépen indítsuk egy kliens programot. A netcat számára IP címnek az előző gép címét írjuk: netcat 192.168.10.3 9000 A netcat nem adja vissza várakozási jelet. Ekkor írjunk be tetszőleges szöveget, majd Enter billentyűvel nyugtázzuk. A beírt szöveg megjelenik az első számítógépen is. A bevitelt Ctrl+C-vel szakíthatjuk meg. Megadhatunk időlimitet is: nc -w 10 192.168.10.3 9000 ===== Fájl küldése ===== Az első gépen irányítsuk a netcat kimenetét egy állományba: netcat -l -p 9000 > gy.txt A másik gépen készítsünk egy fájlt: cat > adat.txt alma körte barack szilva Ctrl+d Most indítsuk el a netcat programot: netcat 192.168.10.3 9000 < adat.txt Lehet így is: cat adat.txt | netcat 192.168.10.3 9000 Szakítsuk meg az átvitelt Ctlr+C-vel: Ctrl+C Az első gépen is kilép a netcat. Nézzük meg a gy.txt tartalmát: $ cat gy.txt Ha bemenet tömörített, fogadó oldalon kibonthatjuk: $ netcat -l -p 9000 | tar xzvf - Küldő oldalon ekkor: $ tar -czf - adat.txt | netcat 192.168.10.3 9000 ===== Webszerver ===== Készítsünk egy egyszerű HTML oldalt. Legyen a neve index.html. A szervernek szánt oldalon: $ print 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | netcat -l -p 9000 Kliens oldalon indítsunk egy böngészőt és írjuk be a szerver címét, porttal: 192.168.10.3:9000 Ha végtelen ciklusban tesszük, folyamatosan szolgáltatja az oldalt: while true print 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | netcat -l -p 9000 done ===== Forrás ===== * [[https://www.digitalocean.com/community/tutorials/how-to-use-netcat-to-establish-and-test-tcp-and-udp-connections-on-a-vps|https://www.digitalocean.com/]] (2019)