8 Netcat (nc) Kommando med eksempler


Netcat (eller kort sagt nc) er et enkelt, men kraftig nettverkskommandolinjeverktøy som brukes til å utføre enhver operasjon i Linux relatert til TCP, UDP, eller UNIX-domene-sockets.

Netcat kan brukes til portskanning, portomdirigering, som en portlytter (for innkommende tilkoblinger); den kan også brukes til å åpne eksterne tilkoblinger og så mange andre ting. Dessuten kan du bruke den som en bakdør for å få tilgang til en målserver.

I denne artikkelen vil vi forklare Netcat brukskommandoer med eksempler.

Hvordan installere og bruke Netcat i Linux

For å installere netcat-pakken på systemet ditt, bruk standardpakkebehandlingen for Linux-distribusjonen.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Når netcat-pakken er installert, kan du fortsette videre for å lære bruken av netcat-kommandoen i de følgende eksemplene.

Portskanning

Netcat kan brukes til portskanning: for å vite hvilke porter som er åpne og kjører tjenester på en målmaskin. Den kan skanne en enkelt eller flere eller en rekke åpne porter.

Her er et eksempel, -z-alternativet setter nc til å skanne etter lyttende demoner, uten å sende noen data til dem. Alternativet -v aktiverer detaljert modus og -w spesifiserer en tidsavbrudd for tilkobling som ikke kan opprettes.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Overfør filer mellom Linux-servere

Netcat lar deg overføre filer mellom to Linux-datamaskiner eller -servere, og begge disse systemene må ha nc installert.

For eksempel, for å kopiere en ISO-bildefil fra en datamaskin til en annen og overvåke overføringsfremdriften (ved hjelp av pv-verktøyet), kjør følgende kommando på avsender-/serverdatamaskinen (der ISO-filen finnes).

Dette vil kjøre nc i lyttemodus (-l flagg) på port 3000.

tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

Og på mottaker-/klientdatamaskinen, kjør følgende kommando for å hente filen.

nc 192.168.1.4 3000 | pv | tar -zxf -

Opprett en kommandolinje chat-server

Du kan også bruke Netcat til å lage en enkel kommandolinjemeldingsserver umiddelbart. Som i forrige brukseksempel må nc installeres på begge systemene som brukes for chatterommet.

På ett system, kjør følgende kommando for å opprette chat-serveren som lytter på port 5000.

nc -l -vv -p 5000

På det andre systemet, kjør følgende kommando for å starte en chat-økt til en maskin der meldingsserveren kjører.

nc 192.168.56.1 5000

Opprett en grunnleggende webserver

Med -l-alternativet til nc-kommandoen som brukes til å lage en grunnleggende, usikker webserver for å betjene statiske nettfiler for læringsformål. For å demonstrere dette, lag en .html-fil som vist.

vim index.html

Legg til følgende HTML-linjer i filen.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

Lagre endringer i filen og avslutt.

Server deretter filen ovenfor over HTTP ved å kjøre følgende kommando, som gjør at HTTP-serveren kan kjøre kontinuerlig.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Åpne deretter en nettleser og få tilgang til innholdet ved å bruke følgende adresse.

http://localhost:8080
OR
http://SERVER_IP:8080

Merk at du kan stoppe Netcat HTTP-serveren ved å trykke [Ctrl+ C].

Feilsøk Linux-servertilkobling

En annen nyttig bruk av Netcat er å feilsøke servertilkoblingsproblemer. Her kan du bruke Netcat for å bekrefte hvilke data en server sender som svar på kommandoer utstedt av klienten.

Følgende kommando henter hjemmesiden til example.com.

printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

Utdataene fra kommandoen ovenfor inkluderer overskriftene sendt av webserveren som kan brukes til feilsøkingsformål.

Finn en tjeneste som kjører på port

Du kan også bruke Netcat for å få portbannere. I dette tilfellet vil den fortelle deg hvilken tjeneste som kjører bak en bestemt port. For å vite hvilken type tjeneste som kjører bak port 22 på en bestemt server, kjør følgende kommando (erstatt 192.168.56.110 med målserverens IP-adresse). -n-flagget betyr å deaktivere DNS- eller tjenesteoppslag.

nc -v -n 192.168.56.110 80

Lag en Stream Sockets

Netcat støtter også opprettelse av strømsockets for UNIX-domene. Følgende kommando vil opprette og lytte på en strømsocket for UNIX-domene.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Lag en bakdør

Du kan like godt kjøre Netcat som en bakdør. Dette krever imidlertid mer arbeid. Hvis Netcat er installert på en målserver, kan du bruke den til å lage en bakdør, for å få en ekstern ledetekst.

For å fungere som en bakdør må du Netcat lytte på en valgt port (f.eks. port 3001) på målserveren, og deretter kan du koble til denne porten fra maskinen din som følger.

Dette er kommandoen som skal kjøres på den eksterne serveren der -d-alternativet deaktiverer lesing fra stdin, og -e spesifiserer kommandoen som skal kjøres på målsystemet.

nc -L -p 3001 -d -e cmd.exe 

Sist men ikke minst kan Netcat brukes som en proxy for forskjellige tjenester/protokoller, inkludert HTTP, SSH og mange flere. For mer informasjon, se man-siden.

man nc

I denne artikkelen har vi forklart 8 praktiske eksempler på bruk av Netcat-kommandoer. Hvis du kjenner til andre praktiske brukssaker, del med oss via tilbakemeldingsskjemaet nedenfor. Du kan stille et spørsmål også.