8 Ukaz Netcat (nc) s primeri


Netcat (ali na kratko nc) je preprosto, a zmogljivo omrežno orodje ukazne vrstice, ki se uporablja za izvajanje kakršnih koli operacij v Linuxu, povezanih z vtičnicami domene TCP, UDP ali UNIX.

Netcat se lahko uporablja za pregledovanje vrat, preusmeritev vrat kot poslušalca vrat (za dohodne povezave); lahko se uporablja tudi za odpiranje oddaljenih povezav in toliko drugih stvari. Poleg tega ga lahko uporabite kot zakulisje za dostop do ciljnega strežnika.

V tem članku bomo s primeri pojasnili ukaze za uporabo Netcat.

Kako namestiti in uporabljati Netcat v Linuxu

Za namestitev paketa netcat v sistem uporabite privzeti upravitelj paketov za distribucijo Linuxa.

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

Ko je paket netcat nameščen, lahko nadaljujete z učenjem uporabe ukaza netcat v naslednjih primerih.

Netcat se lahko uporablja za pregledovanje vrat: če želite vedeti, katera vrata so odprta in izvajajo storitve na ciljnem računalniku. Lahko skenira eno ali več ali več odprtih vrat.

Tu je primer, možnost -z nastavi nc tako, da preprosto išče poslušajoče demone, ne da bi jim dejansko poslal podatke. Možnost -v omogoča podroben način in -w določa časovno omejitev za povezavo, ki je ni mogoče vzpostaviti.

$ 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

Netcat vam omogoča prenos datotek med dvema računalnikoma ali strežnikoma Linux, oba sistema pa morata imeti nameščen nc.

Če želite na primer kopirati slikovno datoteko ISO iz enega računalnika v drugega in spremljati potek prenosa (s pomočjo pripomočka pv), v računalniku pošiljatelja/strežnika (kjer datoteka ISO obstaja) zaženite naslednji ukaz.

To bo zagnalo nc v načinu poslušanja (zastava -l ) na vratih 3000.

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

V sprejemniškem/odjemalskem računalniku zaženite naslednji ukaz, da dobite datoteko.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Netcat lahko uporabite tudi za takojšnje ustvarjanje preprostega strežnika za sporočanje v ukazni vrstici. Kot v prejšnjem primeru uporabe, mora biti nc nameščen v obeh sistemih, ki se uporabljajo za klepetalnico.

V enem sistemu zaženite naslednji ukaz, da ustvarite strežnik za klepet, ki posluša na vratih 5000.

$ nc -l -vv -p 5000

V drugem sistemu zaženite naslednji ukaz, da zaženete klepetalnico v računalniku, v katerem se izvaja strežnik za sporočila.

$ nc 192.168.56.1 5000

Vključite možnost -l ukaza nc, ki se uporablja za ustvarjanje osnovnega, negotovega spletnega strežnika, ki v učne namene služi statičnim spletnim datotekam. Če želite to dokazati, ustvarite datoteko .html , kot je prikazano.

$ vim index.html

V datoteko dodajte naslednje vrstice HTML.

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

Shranite spremembe v datoteki in zapustite.

Nato strežite zgornjo datoteko prek HTTP, tako da zaženete naslednji ukaz, ki bo omogočil neprekinjeno delovanje strežnika HTTP.

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

Nato odprite spletni brskalnik in lahko dostopate do vsebine z naslednjim naslovom.

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

Upoštevajte, da lahko zaustavite strežnik HTTP Netcat s pritiskom na [Ctrl + C] .

Druga koristna uporaba Netcata je odpravljanje težav s povezavo s strežnikom. Tu lahko z Netcatom preverite, katere podatke strežnik pošilja kot odgovor na ukaze, ki jih izda odjemalec.

Naslednji ukaz pridobi domačo stran example.com.

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

Rezultat zgornjega ukaza vključuje glave, ki jih pošlje spletni strežnik in jih je mogoče uporabiti za odpravljanje težav.

Netcat lahko uporabite tudi za pridobivanje pasic za vrata. V tem primeru vam bo povedal, katera storitev se izvaja za določenimi vrati. Če želite na primer vedeti, katera vrsta storitve se izvaja za vrati 22 na določenem strežniku, zaženite naslednji ukaz (192.168.56.110 zamenjajte z naslovom IP ciljnega strežnika). Oznaka -n pomeni onemogočanje iskanja DNS ali storitev.

$ nc -v -n 192.168.56.110 80

Netcat podpira tudi ustvarjanje vtičnic toka za domeno UNIX. Naslednji ukaz bo ustvaril in poslušal vtičnico toka za domeno UNIX.

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

Netcat lahko zaženete tudi kot zakulisje. Vendar to zahteva več dela. Če je Netcat nameščen na ciljnem strežniku, lahko z njim ustvarite zakulisje in dobite oddaljeni ukazni poziv.

Če želite uporabiti zakulisje, morate Netcat poslušati na izbranih vratih (npr. Vrata 3001) na ciljnem strežniku, nato pa se lahko na to vrata povežete iz svoje naprave, kot sledi.

To je ukaz, namenjen za zagon na oddaljenem strežniku, kjer možnost -d onemogoči branje s stdina, -e pa določa ukaz za zagon v ciljnem sistemu.

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

Nenazadnje lahko Netcat uporabimo kot posrednik za različne storitve/protokole, vključno s HTTP, SSH in še veliko več. Za več informacij glejte njegovo priročno stran.

$ man nc

V tem članku smo razložili 8 praktičnih primerov uporabe ukazov Netcat. Če poznate druge primere praktične uporabe, jih delite z nami prek spodnjega obrazca za povratne informacije. Lahko tudi zastavite vprašanje.