Netcat 101: Using Netcat To Direct Network Traffic, HakTip 90
Innholdsfortegnelse:
- Netcat Syntax
- Port skanning
- Sende filer gjennom Netcat
- Opprette en enkel chatserver
- Utfører en HTTP-forespørsel
- Konklusjon
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
:
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 terminalDocker kjører kommando med eksempler

Kommandoen for docker-kjøring oppretter en container fra et gitt bilde og starter beholderen ved å bruke en gitt kommando. Det er en av de første kommandoene du bør bli kjent med når du begynner å jobbe med Docker.
Curl-kommando i linux med eksempler

Curl er et kommandolinjeverktøy for overføring av data fra eller til en server designet for å fungere uten brukerinteraksjon. I denne opplæringen vil vi vise deg hvordan du bruker krøllverktøyet gjennom praktiske eksempler og detaljerte forklaringer på de vanligste krøllalternativene.
Linux kutt kommando med eksempler

Cut er et verktøy for kommandolinjer som lar deg klippe deler av linjer fra spesifiserte filer eller data i rør og skrive ut resultatet til standardutdata. I denne opplæringen vil vi vise deg hvordan du bruker Linux cut-kommandoen gjennom praktiske eksempler og detaljerte forklaringer på de vanligste kuttalternativene.