8 Netcat (nc) komanda ar piemēriem


Netcat (vai īsi sakot nc) ir vienkāršs, tomēr jaudīgs tīkla komandrindas rīks, ko izmanto jebkuras operācijas veikšanai Linux, kas saistīta ar TCP, UDP vai UNIX domēna ligzdām.

Netcat var izmantot ostu skenēšanai, portu novirzīšanai, kā ostu klausītāju (ienākošajiem savienojumiem); to var izmantot arī, lai atvērtu attālos savienojumus un tik daudz citu lietu. Turklāt jūs varat to izmantot kā aizmugurējo durvju, lai piekļūtu mērķa serverim.

Šajā rakstā mēs izskaidrosim Netcat lietošanas komandas ar piemēriem.

Kā instalēt un izmantot Netcat Linux

Lai sistēmā netcat instalētu pakotni, Linux izplatīšanai izmantojiet noklusējuma pakotņu pārvaldnieku.

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

Kad netcat pakotne ir instalēta, varat turpināt tālāk aprakstītajos piemēros, lai uzzinātu komandas netcat lietojumu.

Netcat var izmantot ostu skenēšanai: lai uzzinātu, kuras ostas ir atvērtas un kurās darbojas pakalpojumi mērķa mašīnā. Tas var skenēt vienu vai vairākus vai atvērtu portu diapazonu.

Šis ir piemērs: opcija -z iestata nc, lai tā vienkārši meklētu klausīšanās dēmonus, faktiski nesūtot tiem nekādus datus. Opcija -v iespējo daudzveidīgu režīmu, un -w norāda savienojuma taimautu, kuru nevar izveidot.

$ 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 ļauj pārsūtīt failus starp diviem Linux datoriem vai serveriem, un abās šajās sistēmās jābūt instalētai nc.

Piemēram, lai kopētu ISO attēla failu no viena datora uz citu un uzraudzītu pārsūtīšanas gaitu (izmantojot utilītu pv), sūtītāja/servera datorā (kur atrodas ISO fails) izpildiet šādu komandu.

Tas darbosies nc klausīšanās režīmā ( -l karodziņš) 3000 ostā.

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

Uztvērējā/klienta datorā palaidiet šo komandu, lai iegūtu failu.

$ nc 192.168.1.4 3000 | pv | tar -zxf -

Varat arī izmantot Netcat, lai uzreiz izveidotu vienkāršu komandrindas ziņojumapmaiņas serveri. Tāpat kā iepriekšējā lietošanas piemērā, nc ir jāinstalē abās tērzēšanas telpā izmantotajās sistēmās.

Vienā sistēmā palaidiet šādu komandu, lai izveidotu tērzēšanas serveri, kas klausās 5000 portā.

$ nc -l -vv -p 5000

Otrajā sistēmā palaidiet šo komandu, lai palaistu tērzēšanas sesiju mašīnā, kurā darbojas ziņojumapmaiņas serveris.

$ nc 192.168.56.1 5000

Ar komandu nc izmantojiet opciju -l , ko izmanto, lai izveidotu pamata, nedrošu tīmekļa serveri, kas māca statiskos tīmekļa failus. Lai to parādītu, izveidojiet failu .html , kā parādīts.

$ vim index.html

Pievienojiet failā šādas HTML rindas.

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

Saglabājiet izmaiņas failā un izejiet.

Pēc tam izpildiet iepriekš minēto failu, izmantojot HTTP, izpildot šādu komandu, kas ļaus HTTP serverim darboties nepārtraukti.

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

Pēc tam atveriet tīmekļa pārlūku un varat piekļūt saturam, izmantojot šo adresi.

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

Ņemiet vērā, ka varat apturēt Netcat HTTP serveri, nospiežot [Ctrl + C] .

Vēl viens noderīgs Netcat lietojums ir servera savienojuma problēmu novēršana. Šeit jūs varat izmantot Netcat, lai pārbaudītu, kādus datus serveris sūta, atbildot uz klienta izdotajām komandām.

Šī komanda izgūst vietnes example.com sākumlapu.

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

Iepriekš minētās komandas izvade satur tīmekļa servera sūtītās galvenes, kuras var izmantot problēmu novēršanai.

Varat arī izmantot Netcat, lai iegūtu ostas reklāmkarogus. Šajā gadījumā tas jums pateiks, kāds pakalpojums darbojas aiz noteiktas ostas. Piemēram, lai uzzinātu, kāda veida pakalpojumi darbojas aiz 22. porta konkrētā serverī, izpildiet šādu komandu (aizstājiet 192.168.56.110 ar mērķa servera IP adresi). Karogs -n nozīmē atspējot DNS vai pakalpojumu meklēšanu.

$ nc -v -n 192.168.56.110 80

Netcat atbalsta arī UNIX domēna straumes ligzdu izveidi. Šī komanda izveidos un klausīsies UNIX domēna straumes ligzdā.

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

Jūs varat vadīt Netcat kā aizmuguri. Tomēr tas prasa vairāk darba. Ja Netcat ir instalēts mērķa serverī, varat to izmantot, lai izveidotu aizmugurējo durvju, lai iegūtu attālu komandu uzvedni.

Lai darbotos aizmugurē, jums ir nepieciešams Netcat, lai klausītos mērķa servera izvēlētajā portā (piem., Portā 3001), un pēc tam jūs varat izveidot savienojumu ar šo portu no sava datora šādi.

Šī ir komanda, kas paredzēta darbībai attālajā serverī, kur opcija -d atspējo lasīšanu no stdin, un -e norāda komandu, kas jāizpilda mērķa sistēmā.

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

Visbeidzot, bet ne mazāk svarīgi, Netcat var izmantot kā starpniekserveri dažādiem pakalpojumiem/protokoliem, tostarp HTTP, SSH un daudziem citiem. Lai iegūtu vairāk informācijas, skatiet tā rokasgrāmatu.

$ man nc

Šajā rakstā mēs esam izskaidrojuši 8 praktiskus Netcat komandu lietošanas piemērus. Ja jūs zināt kādu citu praktisku lietojumu (-us), dalieties ar mums, izmantojot zemāk esošo atsauksmju veidlapu. Jūs varat arī uzdot jautājumu.