Netcat (nebo nc
) je příkaz-line nástroj, který čte a zapisuje data přes připojení k síti, pomocí protokolu TCP nebo UDP. Je to jeden z nejsilnějších nástrojů v síti a správci systému arzenálu, a to, jak je považováno za švýcarský armádní nůž síťových nástrojů.
Netcat je multiplatformní a je k dispozici pro Linux, macOS, Windows a BSD. Netcat můžete použít k ladění a monitorování síťových připojení, skenování otevřených portů, přenosu dat, jako proxy a další.,
balíček Netcat je předinstalován na MacOS a populárních distribucích Linuxu, jako je Ubuntu, Debian nebo CentOS.
Netcat Syntaxe #
nejvíce základní syntaxe Netcat nástroj má následující podobu:
nc host port
Na Ubuntu, můžete použít buď netcat
nebo nc
. Oba jsou symlinks na openBSD verzi Netcat.
ve výchozím nastavení se Netcat pokusí spustit připojení TCP k zadanému hostiteli a portu., Pokud byste chtěli vytvořit UDP připojení, použijte -u
možnosti:
nc -u host port
Skenování Portů #
Skenování portů je jedním z nejčastějších použití pro Netcat. Můžete skenovat jeden port nebo rozsah portů.,
například, skenování pro otevřené porty v rozmezí 20-80 byste použít následující příkaz:
nc -z -v 10.10.8.8 20-80
-z
možnost vám říct, nc
pouze skenování pro otevřené porty, bez odesílání dat na nich a -v
možnost poskytnout podrobnější informace.
výstup bude vypadat takto:
Pokud chcete tisknout pouze řádky s otevřenými porty, můžete výsledky filtrovat pomocí příkazu grep
.,
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!
k nalezení serverového softwaru a jeho verze můžete také použít Netcat. Například, pokud si poslat e „EXIT“ příkaz k serveru na výchozí SSH port 22 :
echo "EXIT" | nc 10.10.8.8 22
výstup bude vypadat nějak takto:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4Protocol mismatch.
pro skenování UDP portů jednoduše přidat -u
možnost příkazu, jak je uvedeno níže:
nc -z -v -u 10.10.8.8 20-80
Typicky, Nmap je 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 do druhého vytvořením základního modelu klienta/serveru.
Toto funguje podle nastavení Netcat naslouchat na konkrétní port (pomocí -l
možnost) na přijímající a pak pravidelné TCP spojení z jiné hostitele a odeslání souboru přes to.,
Na přijímání, spusťte následující příkaz, který otevře port 5555 pro příchozí spojení a přesměrovat výstup do souboru:
nc -l 5555 > file_name
Od odesílajícího hostitele připojte se k přijímající a poslat soubor:
nc receiving.host.com 5555 < file_name
převést adresář, můžete použít tar
archivní adresář na zdrojovém hostiteli a rozbalit archiv na cílového hostitele.
na přijímajícím hostiteli nastavte nástroj Netcat pro poslech příchozího připojení na portu 5555., Příchozí data je odváděna do tar
příkaz, který bude extrahovat archiv:
nc -l 5555 | tar xzvf -
Na odesílající hostitel pack adresáře a odeslat data pomocí připojení k poslechu nc
procesu na přijímající:
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 CTRL+C
pro uzavření připojení.
vytvoření jednoduchého chatovací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í host spustit Netcat procesu naslouchat na portu 5555:
nc -l 5555
Z druhého hostitele, spusťte následující příkaz pro připojení k naslouchání portu:
nc first.host.com 5555
Nyní, pokud jste typ zprávy a stiskněte tlačítko ENTER
, bude zobrazena na obou hostitelů.
Chcete-li připojení zavřít, zadejteCTRL+C
.
Provedení požadavku HTTP #
i když existují mnohem lepší nástroje pro HTTP požadavky, například curl
, můžete také použít Netcat posílat různé požadavky na vzdálené servery.,
například, získat Netcat manuálové stránky OpenBSD web, zadejte:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
kompletní odpovědi, včetně HTTP hlavičky a HTML kód bude vytištěn v terminálu.
závěr #
v tomto tutoriálu jste se naučili používat nástroj Netcat k vytvoření a testování připojení TCP a UDP.
pro více informací navštivte stránku Netcat man a přečtěte si o všech dalších výkonných možnostech příkazu Netcat.
Leave a Reply