Android

Příkaz Netcat (nc) s příklady

Gigatron Junska akcija - Kursor TV

Gigatron Junska akcija - Kursor TV

Obsah:

Anonim

Netcat (nebo nc) je obslužný program příkazového řádku, který čte a zapisuje data přes síťová připojení pomocí protokolů TCP nebo UDP. Je to jeden z nejvýkonnějších nástrojů v arzenálu správců sítí a systémů a je považován za švýcarský armádní nůž síťových nástrojů.

Netcat je multiplatformní a je k dispozici pro systémy Linux, macOS, Windows a BSD. Pomocí Netcat můžete ladit a sledovat síťová připojení, vyhledávat otevřené porty, přenášet data jako proxy a další. Balíček Netcat je předinstalován na MacOS a populárních distribucích Linuxu, jako je Ubuntu.

Syntaxe Netcat

Nejzákladnější syntaxe obslužného programu Netcat má následující podobu:

nc host port

Na Ubuntu můžete použít netcat nebo nc . Oba jsou symlinks k openBSD verzi Netcat.

Ve výchozím nastavení se Netcat pokusí zahájit připojení TCP k zadanému hostiteli a portu. Pokud chcete navázat připojení UDP, použijte volbu -u :

nc -u host port

Skenování portů

Prohledávání portů je pro Netcat jedním z nejčastějších způsobů použití. Můžete skenovat jeden port nebo rozsah portů.

Chcete-li například vyhledat otevřené porty v rozsahu 20–80, použijte následující příkaz:

nc -z -v 10.10.8.8 20-80

Volba -z řekne nc aby prohledávala pouze otevřené porty, aniž by jim zaslala data a možnost -v poskytla více podrobných informací.

Výstup bude vypadat asi takto:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Můžete také použít Netcat k nalezení serverového softwaru a jeho verze. Pokud například pošlete příkaz „EXIT“ na server na výchozím portu SSH 22:

echo "EXIT" | nc 10.10.8.8 22

Výstup bude vypadat asi takto:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.

Chcete-li vyhledat porty UDP, jednoduše přidejte do příkazu volbu -u jak je uvedeno níže:

nc -z -v -u 10.10.8.8 20-80

Ve většině situací je Nmap lepší nástroj než Netcat pro komplexní skenování portů.

Odesílání souborů přes Netcat

Netcat lze použít k přenosu dat z jednoho hostitele na druhého vytvořením základního modelu klient / server.

Toto funguje tak, že nastaví Netcat, aby poslouchal na konkrétním portu (pomocí volby -l ) na přijímajícím hostiteli, a poté navázal pravidelné TCP spojení od druhého hostitele a poslal soubor přes něj.

Na příjmu spusťte následující příkaz, který otevře port 5555 pro příchozí připojení a přesměruje výstup do souboru:

nc -l 5555 > file_name

Z odesílajícího hostitele se připojte k přijímajícímu hostiteli a odešlete soubor:

nc receiving.host.com 5555 < file_name

Chcete-li přenést adresář, můžete pomocí dehtu archivovat adresář na zdrojovém hostiteli a extrahovat archiv na cílovém hostiteli.

Na přijímajícím hostiteli nastavte nástroj Netcat tak, aby poslouchal příchozí připojení na portu 5555. Příchozí data jsou odvedena do příkazu tar, který extrahuje archív:

nc -l 5555 | tar xzvf -

Na odesílajícím hostiteli zabalte adresář a odešlete data připojením k procesu naslouchání nc na přijímajícím hostiteli:

tar czvf - /path/to/dir | nc receiving.host.com 5555

Můžete sledovat průběh přenosu na obou koncích. Po dokončení zadejte připojení CTRL+C

Vytvoření jednoduchého chatového serveru

Postup pro vytvoření online chatu mezi dvěma nebo více hostiteli je stejný jako při přenosu souborů.

Na prvním hostiteli spusťte proces Netcat pro poslech na portu 5555:

nc -l 5555

Z druhého hostitele spusťte následující příkaz pro připojení k portu pro poslech:

nc first.host.com 5555

Pokud nyní napíšete zprávu a stisknete ENTER , zobrazí se na obou hostitelích.

Chcete-li připojení ukončit, zadejte CTRL+C

Provádění požadavku HTTP

Ačkoli existují mnohem lepší nástroje pro požadavky HTTP, například curl, můžete také použít Netcat k odesílání různých požadavků na vzdálené servery.

Chcete-li například načíst manuálovou stránku Netcat z webu OpenBSD, zadejte:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

Úplná odpověď včetně hlaviček HTTP a HTML kódu bude vytištěna v terminálu.

Závěr

V tomto tutoriálu jste se naučili, jak pomocí nástroje Netcat navázat a otestovat připojení TCP a UDP.

Další informace naleznete na manuálové stránce Netcat a přečtěte si o všech dalších výkonných možnostech příkazu Netcat.

terminál netcat