Android

Netcat (nc) -kommando med exempel

The basics of working with Netcat - Part 1

The basics of working with Netcat - Part 1

Innehållsförteckning:

Anonim

Netcat (eller nc) är ett kommandoradsverktyg som läser och skriver data över nätverksanslutningar med TCP- eller UDP-protokoll. Det är ett av de kraftfullaste verktygen i nätverket och systemadministratörsarsenalen och det betraktas som en schweizisk armékniv av nätverksverktyg.

Netcat är en plattform som är tillgänglig för Linux, macOS, Windows och BSD. Du kan använda Netcat för att felsöka och övervaka nätverksanslutningar, söka efter öppna portar, överföra data, som en proxy och mer. Netcat-paketet är förinstallerat på macOS och populära Linux-distributioner som Ubuntu.

Netcat Syntax

Den mest grundläggande syntaxen i Netcat-verktyget har följande form:

nc host port

På Ubuntu kan du använda antingen netcat eller nc . De är båda symlänkar till openBSD-versionen av Netcat.

Som standard kommer Netcat att försöka starta en TCP-anslutning till den angivna värden och porten. Om du vill upprätta en UDP-anslutning använder du alternativet -u :

nc -u host port

Portskanning

Skanna portar är en av de vanligaste användningarna för Netcat. Du kan skanna en enda port eller ett portintervall.

Till exempel för att söka efter öppna portar i området 20-80 använder du följande kommando:

nc -z -v 10.10.8.8 20-80

Alternativet -z berättar för nc att bara söka efter öppna portar utan att skicka data till dem och alternativet -v att ge mer ordinär information.

Utgången ser ut så här:

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!

Du kan också använda Netcat för att hitta serverprogramvaran och dess version. Om du till exempel skickar ett "EXIT" -kommando till servern på standard SSH-port 22:

echo "EXIT" | nc 10.10.8.8 22

Utgången ser ut så här:

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

För att söka efter UDP-portar lägger du bara till -u alternativet i kommandot som visas nedan:

nc -z -v -u 10.10.8.8 20-80

I de flesta situationer är Nmap ett bättre verktyg än Netcat för komplex portskanning.

Skicka filer via Netcat

Netcat kan användas för att överföra data från en värd till en annan genom att skapa en grundläggande klient / servermodell.

Detta fungerar genom att ställa in Netcat att lyssna på en specifik port (med alternativet -l ) på den mottagande värden och sedan upprätta en vanlig TCP-anslutning från den andra värden och skicka filen över den.

På mottagningskörningen följer följande kommando som öppnar port 5555 för inkommande anslutning och omdirigerar utgången till filen:

nc -l 5555 > file_name

Anslut till den mottagande värden från den sändande värden och skicka filen:

nc receiving.host.com 5555 < file_name

För att överföra en katalog kan du använda tar för att arkivera katalogen på källvärd och för att extrahera arkivet på destinationsvärd.

På den mottagande värden ställer du in Netcat-verktyget för att lyssna på en inkommande anslutning på port 5555. De inkommande data rörs till tjärkommandot som kommer att extrahera arkivet:

nc -l 5555 | tar xzvf -

På den sändande värden packar du katalogen och skickar data genom att ansluta till den lyssnande nc processen på den mottagande värden:

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

Du kan se överföringsförloppet i båda ändarna. När du är klar skriver du CTRL+C att stänga anslutningen.

Skapa en enkel chattserver

Proceduren för att skapa en onlinechatt mellan två eller flera värdar är densamma som vid överföring av filer.

På den första värden startar en Netcat-process för att lyssna på port 5555:

nc -l 5555

Från den andra värden kör följande kommando för att ansluta till lyssningsporten:

nc first.host.com 5555

Om du skriver ett meddelande och trycker på ENTER kommer det att visas på båda värdarna.

CTRL+C att stänga anslutningen.

Utför en HTTP-begäran

Även om det finns mycket bättre verktyg för HTTP-förfrågningar som curl, kan du också använda Netcat för att skicka olika förfrågningar till fjärrservrar.

För att till exempel hämta Netcat-man-sidan från OpenBSD-webbplatsen skriver du:

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

Det fullständiga svaret inklusive HTTP-rubriker och HTML-kod kommer att skrivas ut i terminalen.

Slutsats

I den här handledning har du lärt dig hur du använder Netcat-verktyget för att upprätta en och testa TCP- och UDP-anslutningar.

För mer information, besök Netcat man-sidan och läs om alla andra kraftfulla alternativ i Netcat-kommandot.

netcat terminal