Android

Netcat (nc) kommando med eksempler

Chat in the terminal with WRITE - Linux

Chat in the terminal with WRITE - Linux

Indholdsfortegnelse:

Anonim

Netcat (eller nc) er et kommandolinjeværktøj, der læser og skriver data på tværs af netværksforbindelser ved hjælp af TCP- eller UDP-protokoller. Det er et af de mest kraftfulde værktøjer i netværks- og systemadministratorens arsenal, og det betragtes som en schweizisk hærkniv af netværksværktøjer.

Netcat er tværplatform, og det er tilgængeligt for Linux, macOS, Windows og BSD. Du kan bruge Netcat til at fejlsøge og overvåge netværksforbindelser, scanne efter åbne porte, overføre data, som en proxy og mere. Netcat-pakken er forinstalleret på macOS og populære Linux-distributioner som Ubuntu.

Netcat Syntax

Den mest basale syntaks i Netcat-værktøjet har følgende form:

nc host port

På Ubuntu kan du bruge enten netcat eller nc . De er begge symlinks til openBSD-versionen af ​​Netcat.

Som standard vil Netcat forsøge at starte en TCP-forbindelse til den specificerede vært og port. Hvis du vil oprette en UDP-forbindelse, skal du bruge indstillingen -u :

nc -u host port

Port scanning

Scanning af porte er en af ​​de mest almindelige anvendelser til Netcat. Du kan scanne en enkelt port eller et portområde.

For eksempel for at scanne efter åbne porte i området 20-80 bruger du følgende kommando:

nc -z -v 10.10.8.8 20-80

Indstillingen -z fortæller nc om kun at scanne efter åbne porte, uden at sende nogen data til dem, og -v indstillingen for at give mere ordlyd information.

Outputet ser sådan ud:

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 også bruge Netcat til at finde serversoftwaren og dens version. Hvis du f.eks. Sender en “EXIT” -kommando til serveren på standard SSH-port 22:

echo "EXIT" | nc 10.10.8.8 22

Outputet ser sådan ud:

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

For at scanne efter UDP-porte skal du blot tilføje -u indstillingen til kommandoen som vist nedenfor:

nc -z -v -u 10.10.8.8 20-80

I de fleste situationer er Nmap et bedre værktøj end Netcat til kompleks havnescanning.

Afsendelse af filer via Netcat

Netcat kan bruges til at overføre data fra en vært til en anden ved at oprette en grundlæggende klient / servermodel.

Dette fungerer ved at indstille Netcat til at lytte på en bestemt port (ved hjælp af indstillingen -l ) på den modtagende vært og derefter oprette en almindelig TCP-forbindelse fra den anden vært og sende filen over den.

På den modtagende kørsel er følgende kommando, der åbner port 5555 for indgående forbindelse og omdirigerer output til filen:

nc -l 5555 > file_name

Fra den afsendende vært skal du oprette forbindelse til den modtagende vært og sende filen:

nc receiving.host.com 5555 < file_name

For at overføre et bibliotek kan du bruge tar til at arkivere biblioteket på kildeværten og til at udpakke arkivet på destinationshost.

På den modtagende vært skal Netcat-værktøjet indstilles til at lytte efter en indgående forbindelse på port 5555. De indkommende data ledes til tar-kommandoen, der udtrækker arkivet:

nc -l 5555 | tar xzvf -

På den afsendende vært pakkes biblioteket og sender dataene ved at oprette forbindelse til den lytterende nc proces på den modtagende vært:

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

Du kan se overførselsforløbet i begge ender. Når CTRL+C afsluttet, skal du indtaste forbindelsen.

Oprettelse af en simpel chatserver

Proceduren for at oprette en online chat mellem to eller flere værter er den samme som ved overførsel af filer.

På den første vært starter en Netcat-proces for at lytte på port 5555:

nc -l 5555

Kør følgende kommando fra den anden vært for at oprette forbindelse til lytteporten:

nc first.host.com 5555

Hvis du nu skriver en meddelelse og trykker ENTER vises den på begge værter.

Skriv CTRL+C at lukke forbindelsen.

Udfører en HTTP-anmodning

Selvom der er meget bedre værktøjer til HTTP-anmodninger, såsom krøller, kan du også bruge Netcat til at sende forskellige anmodninger til fjernservere.

For eksempel at hente Netcat-man-siden fra OpenBSD-webstedet, skriver du:

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

Det fulde svar inklusive HTTP-overskrifter og HTML-kode udskrives i terminalen.

Konklusion

I denne tutorial har du lært, hvordan du bruger Netcat-værktøjet til at etablere en og teste TCP- og UDP-forbindelser.

For mere information kan du besøge Netcat-man-siden og læse om alle andre magtfulde indstillinger i Netcat-kommandoen.

netcat terminal