8 Netcat (nc) Mysallar bilen buýruk


Netcat (ýa-da gysgaça nc), TCP, UDP ýa-da UNIX-domen rozetkalary bilen baglanyşykly Linux-da islendik amaly ýerine ýetirmek üçin ulanylýan ýönekeý, ýöne güýçli torlaýyn buýruk setiridir.

Netcat porty skanirlemek, porty gönükdirmek, port diňleýji hökmünde (gelýän birikmeler üçin) ulanylyp bilner; uzak aralyklary we başga-da köp zatlary açmak üçin hem ulanylyp bilner. Mundan başga-da, maksatly serwere girmek üçin ony açyk meýdanda ulanyp bilersiňiz.

Bu makalada Netcat ulanyş buýruklaryny mysallar bilen düşündireris.

Linux-da Netcat-y nädip gurmaly we ulanmaly

Netcat paketini ulgamyňyza gurmak üçin Linux paýlamak üçin deslapky paket dolandyryjysyny ulanyň.

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

Netcat bukjasy gurlansoň, aşakdaky mysallarda netcat buýrugynyň ulanylyşyny öwrenip bilersiňiz.

Netcat porty skanirlemek üçin ulanylyp bilner: haýsy portlaryň açykdygyny we maksatly enjamda hyzmatlaryň bardygyny bilmek. Bir ýa-da birnäçe ýa-da açyk portlaryň bir toparyny skanirläp biler.

Ine bir mysal, -z opsiýasy, nemleri diňlemek üçin skanerlemek üçin nc düzýär, aslynda hiç hili maglumat ibermezden. -v opsiýasy söz re modeimine mümkinçilik berýär we -w döredilip bilinmeýän birikme wagtyny kesgitleýär.

$ 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, iki Linux kompýuteriniň ýa-da serweriň arasynda faýl geçirmäge mümkinçilik berýär we bu ulgamlaryň ikisinde hem nc gurlan bolmaly.

Mysal üçin, ISO şekil faýlyny bir kompýuterden beýlekisine göçürmek we geçirişiň gidişine gözegçilik etmek üçin (pv kömekçi programmasyny ulanyp), iberiji/serwer kompýuterinde (ISO faýly bar ýerinde) aşakdaky buýrugy işlediň.

3000 portda nc diňlemek tertibinde ( -l baýdak) işlär.

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

Alyjy/müşderi kompýuterinde faýly almak üçin aşakdaky buýrugy işlediň.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Şeýle hem, ýönekeý buýruk setiri habarlaşma serwerini derrew döretmek üçin Netcat-dan peýdalanyp bilersiňiz. Öňki ulanylyş mysalynda bolşy ýaly, söhbetdeşlik otagy üçin ulanylýan iki ulgamda nc gurulmalydyr.

Bir ulgamda 5000 portda diňleýän söhbet serwerini döretmek üçin aşakdaky buýrugy işlediň.

$ nc -l -vv -p 5000

Beýleki ulgamda, habarlaşma serweriniň işleýän maşynyna söhbet sessiýasyny başlatmak üçin aşakdaky buýrugy işlediň.

$ nc 192.168.56.1 5000

Öwrenmek maksady bilen statiki web faýllaryna hyzmat etmek üçin esasy, ygtybarly web serwerini döretmek üçin ulanylýan nc buýrugynyň -l opsiýasyna göz aýlaň. Muny görkezmek üçin görkezilişi ýaly .html faýly dörediň.

$ vim index.html

Faýla aşakdaky HTML setirlerini goşuň.

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

Faýldaky üýtgeşmeleri ýazdyryň we çykyň.

Soňra ýokardaky faýly HTTP serweriniň üznüksiz işlemegine mümkinçilik berýän aşakdaky buýrugy işledip, HTTP-e hyzmat ediň.

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

Soňra web brauzeri açyň we aşakdaky adresi ulanyp mazmuna girip bilersiňiz.

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

Netcat HTTP serwerini [Ctrl + C] basyp saklap biljekdigiňize üns beriň.

Netcat-yň başga bir peýdaly ulanylyşy, serwer birikmesi meselelerini çözmekdir. Bu ýerde, müşderi tarapyndan berlen buýruklara jogap hökmünde serweriň haýsy maglumatlary iberýändigini barlamak üçin Netcat ulanyp bilersiňiz.

Aşakdaky buýruk mysal.com-nyň baş sahypasyny alýar.

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

Aboveokardaky buýrugyň netijesi, näsazlyklary düzetmek üçin ulanyp boljak web-serwer tarapyndan iberilen sözbaşylary öz içine alýar.

Port bannerlerini almak üçin Netcat-dan hem peýdalanyp bilersiňiz. Bu ýagdaýda belli bir portuň aňyrsynda haýsy hyzmatyň işleýändigini size habar berer. Mysal üçin, belli bir serwerdäki 22-nji portuň aňyrsynda haýsy hyzmatyň işleýändigini bilmek üçin aşakdaky buýrugy işlediň (192.168.56.110 maksatly serweriň IP adresi bilen çalşyň). -n baýdagy DNS ýa-da hyzmat gözleglerini öçürmegi aňladýar.

$ nc -v -n 192.168.56.110 80

Netcat, şeýle hem UNIX-domen akym rozetkalaryny döretmegi goldaýar. Aşakdaky buýruk UNIX-domen akym rozetkasyny döreder we diňlär.

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

Netcat-ny arka tarapda işledip bilersiňiz. Şeýle-de bolsa, bu has köp iş talap edýär. Netcat maksatly serwerde gurnalan bolsa, uzakdaky buýruk soramasyny almak üçin ony açyk howada döretmek üçin ulanyp bilersiňiz.

Yzky howada hereket etmek üçin, maksatly serwerde saýlanan porty (meselem, 3001 port) diňlemek üçin Netcat gerek, soňra bu porta aşakdaky ýaly enjamyňyzdan birigip bilersiňiz.

Bu uzakdaky serwerde işlemek üçin niýetlenen buýruk, bu ýerde -d opsiýasy stdin okamagy gadagan edýär we -e maksatly ulgamda işlemek buýrugyny kesgitleýär.

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

Iň soňkusy, Netcat, dürli hyzmatlar/protokollar üçin HTTP, SSH we başgalar üçin proksi hökmünde ulanylyp bilner. Has giňişleýin maglumat üçin onuň adam sahypasyna serediň.

$ man nc

Bu makalada Netcat buýrugyny ulanmagyň 8 amaly mysalyny düşündirdik. Başga amaly ulanylyş ýagdaýlaryny bilýän bolsaňyz, aşakdaky seslenme formasy arkaly biziň bilen paýlaşyň. Şeýle hem bir sorag berip bilersiňiz.