8 Netcat (nc) naredba s primjerima


Netcat (ili skraćeno nc) jednostavan je, ali moćan mrežni alat naredbenog retka koji se koristi za izvođenje bilo koje operacije u Linuxu vezane uz TCP, < jake>UDP ili UNIX-domenske utičnice.

Netcat se može koristiti za skeniranje porta, preusmjeravanje porta, kao slušatelj porta (za dolazne veze); također se može koristiti za otvaranje udaljenih veza i mnoge druge stvari. Osim toga, možete ga koristiti kao backdoor za pristup ciljnom poslužitelju.

U ovom ćemo članku objasniti naredbe korištenja Netcat s primjerima.

Kako instalirati i koristiti Netcat u Linuxu

Da biste instalirali netcat paket na svoj sustav, koristite zadani upravitelj paketa za svoju distribuciju Linuxa.

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

Kada netcat paket instalirate, možete nastaviti kako biste naučili korištenje netcat naredbe u sljedećim primjerima.

Skeniranje priključaka

Netcat se može koristiti za skeniranje portova: da biste znali koji su portovi otvoreni i izvode usluge na ciljnom računalu. Može skenirati jedan ili više ili niz otvorenih portova.

Evo primjera, opcija -z postavlja nc da jednostavno skenira slušajuće demone, bez stvarnog slanja ikakvih podataka njima. Opcija -v omogućuje opširni način rada, a -w određuje vremensko ograničenje za vezu koja se ne može uspostaviti.

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

Prijenos datoteka između Linux poslužitelja

Netcat vam omogućuje prijenos datoteka između dva Linux računala ili poslužitelja i oba ova sustava moraju imati instaliran nc.

Na primjer, da biste kopirali datoteku ISO slike s jednog računala na drugo i pratili napredak prijenosa (pomoću uslužnog programa pv), pokrenite sljedeću naredbu na računalu pošiljatelju/poslužitelju (gdje postoji ISO datoteka).

Ovo će pokrenuti nc u modu slušanja (oznaka -l) na portu 3000.

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

I na računalu primatelja/klijenta pokrenite sljedeću naredbu za dobivanje datoteke.

nc 192.168.1.4 3000 | pv | tar -zxf -

Napravite poslužitelj za razgovor naredbenog retka

Također možete koristiti Netcat za trenutno kreiranje jednostavnog poslužitelja za razmjenu poruka putem naredbenog retka. Kao u prethodnom primjeru upotrebe, nc mora biti instaliran na oba sustava koja se koriste za sobu za razgovor.

Na jednom sustavu pokrenite sljedeću naredbu da biste kreirali chat poslužitelj koji sluša na portu 5000.

nc -l -vv -p 5000

Na drugom sustavu pokrenite sljedeću naredbu za pokretanje sesije razgovora na računalu na kojem je pokrenut poslužitelj za razmjenu poruka.

nc 192.168.56.1 5000

Stvorite osnovni web poslužitelj

S -l opcijom nc naredbe koja se koristi za stvaranje osnovnog, nesigurnog web poslužitelja za posluživanje statičkih web datoteka u svrhu učenja. Da biste to demonstrirali, stvorite .html datoteku kao što je prikazano.

vim index.html

Dodajte sljedeće HTML retke u datoteku.

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

Spremite promjene u datoteku i izađite.

Zatim poslužite gornju datoteku preko HTTP-a pokretanjem sljedeće naredbe, koja će omogućiti neprekinuti rad HTTP poslužitelja.


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

Zatim otvorite web preglednik i možete pristupiti sadržaju pomoću sljedeće adrese.

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

Imajte na umu da Netcat HTTP poslužitelj možete zaustaviti pritiskom na [Ctrl+ C].

Rješavanje problema s vezom Linux poslužitelja

Još jedna korisna upotreba Netcat-a je rješavanje problema s vezom na poslužitelj. Ovdje možete koristiti Netcat da provjerite koje podatke poslužitelj šalje kao odgovor na naredbe koje izdaje klijent.

Sljedeća naredba dohvaća početnu stranicu example.com.

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

Izlaz gornje naredbe uključuje zaglavlja poslana od strane web-poslužitelja koja se mogu koristiti za rješavanje problema.

Pronađite uslugu koja radi na priključku

Također možete koristiti Netcat za dobivanje port bannera. U ovom slučaju, reći će vam koja se usluga izvodi iza određenog priključka. Na primjer, da biste saznali koja se vrsta usluge izvodi iza priključka 22 na određenom poslužitelju, pokrenite sljedeću naredbu (zamijenite 192.168.56.110 IP adresom ciljnog poslužitelja). Oznaka -n znači onemogućiti DNS ili pretraživanje usluge.

nc -v -n 192.168.56.110 80

Stvorite Stream Sockets

Netcat također podržava stvaranje utičnica toka UNIX domene. Sljedeća naredba će kreirati i slušati na utičnici toka UNIX domene.

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

Stvorite stražnja vrata

Također možete pokrenuti Netcat kao backdoor. Međutim, to zahtijeva više posla. Ako je Netcat instaliran na ciljnom poslužitelju, možete ga koristiti za stvaranje stražnjih vrata, za dobivanje daljinskog naredbenog retka.

Za djelovanje backdoor-a potreban vam je Netcat za slušanje odabranog porta (npr. port 3001) na ciljnom poslužitelju, a zatim se možete spojiti na ovaj port sa svog računala kako slijedi.

Ovo je naredba namijenjena za izvođenje na udaljenom poslužitelju gdje opcija -d onemogućuje čitanje iz stdin-a, a -e navodi naredbu za izvođenje na ciljnom sustavu.

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

Posljednje, ali ne manje važno, Netcat se može koristiti kao proxy za različite usluge/protokole uključujući HTTP, SSH i mnoge druge. Za više informacija pogledajte njegovu stranicu s uputama.

man nc

U ovom smo članku objasnili 8 praktičnih primjera korištenja Netcat naredbi. Ako znate bilo koji drugi praktični slučaj(eve) upotrebe, podijelite s nama putem obrasca za povratne informacije u nastavku. Možete postaviti i pitanje.