< Linux

netcat

Szerző: Sallai András

Copyright © Sallai András, 2019

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

$ 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/ (2019)