[[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)