Android

Netcat (nc) kommando med eksempler

Netcat 101: Using Netcat To Direct Network Traffic, HakTip 90

Netcat 101: Using Netcat To Direct Network Traffic, HakTip 90

Innholdsfortegnelse:

Anonim

Netcat (eller nc) er et kommandolinjeverktøy som leser og skriver data på tvers av nettverkstilkoblinger, ved hjelp av TCP- eller UDP-protokollene. Det er et av de kraftigste verktøyene i nettverket og systemadministratorens arsenal, og det anses som en sveitsisk hærkniv av nettverksverktøy.

Netcat er plattform og er tilgjengelig for Linux, macOS, Windows og BSD. Du kan bruke Netcat til å feilsøke og overvåke nettverkstilkoblinger, søke etter åpne porter, overføre data, som en proxy og mer. Netcat-pakken er forhåndsinstallert på macOS og populære Linux-distribusjoner som Ubuntu.

Netcat Syntax

Den mest grunnleggende syntaks for Netcat-verktøyet har følgende form:

nc host port

På Ubuntu kan du bruke enten netcat eller nc . De er begge symlinker til openBSD-versjonen av Netcat.

Som standard vil Netcat prøve å starte en TCP-forbindelse til den angitte verten og porten. Hvis du vil etablere en UDP-forbindelse, bruker du alternativet -u :

nc -u host port

Port skanning

Skanning av porter er en av de vanligste bruksområdene for Netcat. Du kan skanne en enkelt port eller et portområde.

For å søke etter åpne porter i området 20-80, bruker du for eksempel følgende kommando:

nc -z -v 10.10.8.8 20-80

Alternativet -z vil fortelle nc å bare søke etter åpne porter, uten å sende noen data til dem, og alternativet -v for å gi mer ordinær informasjon.

Utgangen vil se slik ut:

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å bruke Netcat til å finne serverprogramvaren og dens versjon. Hvis du for eksempel sender en “EXIT” -kommando til serveren på standard SSH-port 22:

echo "EXIT" | nc 10.10.8.8 22

Utgangen vil se slik ut:

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

For å søke etter UDP-porter, legger du bare -u til kommandoen som vist nedenfor:

nc -z -v -u 10.10.8.8 20-80

I de fleste situasjoner er Nmap et bedre verktøy enn Netcat for kompleks portskanning.

Sende filer gjennom Netcat

Netcat kan brukes til å overføre data fra en vert til en annen ved å lage en grunnleggende klient / servermodell.

Dette fungerer ved å stille Netcat til å lytte på en bestemt port (ved å bruke -l alternativet) på den mottakende verten og deretter opprette en vanlig TCP-forbindelse fra den andre verten og sende filen over den.

Følgende kommando på mottakskjøringen åpner port 5555 for innkommende tilkobling og omdirigerer utdataene til filen:

nc -l 5555 > file_name

Fra den sendende verten koble deg til den mottakende verten og send filen:

nc receiving.host.com 5555 < file_name

For å overføre en katalog kan du bruke tar til å arkivere katalogen på kildeverten og til å trekke ut arkivet på destinasjonsverten.

På den mottakende verten angir Netcat-verktøyet til å lytte etter en innkommende tilkobling på port 5555. De innkomne dataene blir sendt til tjærekommandoen som vil trekke ut arkivet:

nc -l 5555 | tar xzvf -

På den sendende verten pakker du katalogen og sender dataene ved å koble til den lyttende nc prosessen på den mottakende verten:

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

Du kan se overføringsfremgangen i begge ender. Når det er fullført, skriver du CTRL+C å lukke forbindelsen.

Opprette en enkel chatserver

Fremgangsmåten for å opprette en online chat mellom to eller flere verter er den samme som når du overfører filer.

På den første verten starter en Netcat-prosess for å lytte på port 5555:

nc -l 5555

Fra den andre verten kjører du følgende kommando for å koble til lytteporten:

nc first.host.com 5555

Hvis du skriver en melding og trykker ENTER , vises den på begge vertene.

For å lukke forbindelsen, skriv CTRL+C

Utfører en HTTP-forespørsel

Selv om det er mye bedre verktøy for HTTP-forespørsler som krøll, kan du også bruke Netcat til å sende forskjellige forespørsler til eksterne servere.

For å hente Netcat-man-siden fra OpenBSD-nettstedet, skriver du for eksempel:

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

Det fulle svaret inkludert HTTP-overskrifter og HTML-kode vil bli skrevet ut i terminalen.

Konklusjon

I denne opplæringen har du lært hvordan du bruker Netcat-verktøyet til å etablere a og teste TCP- og UDP-tilkoblinger.

For mer informasjon, besøk Netcat-mannssiden og les om alle andre kraftige alternativer i Netcat-kommandoen.

netcat terminal