8 Netcat (nc) komanda su pavyzdžiais


Netcat (arba nc trumpai) yra paprastas, bet galingas tinklo komandų eilutės įrankis, naudojamas Linux operacijoms, susijusioms su TCP, UDP arba UNIX domeno lizdai.

Netcat gali būti naudojamas prievadų nuskaitymui, prievado peradresavimui, kaip prievado klausytojas (įeinantiems ryšiams); jis taip pat gali būti naudojamas nuotoliniam ryšiui atidaryti ir daugeliui kitų dalykų. Be to, galite naudoti jį kaip užpakalines duris, kad gautumėte prieigą prie tikslinio serverio.

Šiame straipsnyje su pavyzdžiais paaiškinsime Netcat naudojimo komandas.

Kaip įdiegti ir naudoti „Netcat“ sistemoje „Linux“.

Norėdami įdiegti netcat paketą savo sistemoje, naudokite numatytąją „Linux“ platinimo paketų tvarkyklę.

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

Įdiegę netcat paketą, toliau pateiktuose pavyzdžiuose galite sužinoti apie netcat komandos naudojimą.

Prievadų nuskaitymas

Netcat gali būti naudojamas prievadų nuskaitymui: norint sužinoti, kurie prievadai yra atidaryti ir kurie naudoja paslaugas tiksliniame kompiuteryje. Jis gali nuskaityti vieną ar kelis arba daugybę atvirų prievadų.

Štai pavyzdys: parinktis -z nustato nc, kad paprasčiausiai ieškotų besiklausančių demonų, nesiunčiant jiems jokių duomenų. Parinktis -v įgalina išsamų režimą, o -w nurodo ryšio skirtąjį laiką, kurio negalima užmegzti.

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

Perkelkite failus tarp „Linux“ serverių

Naudodami Netcat galite perkelti failus tarp dviejų „Linux“ kompiuterių arba serverių ir abiejose šiose sistemose turi būti įdiegta nc.

Pavyzdžiui, norėdami nukopijuoti ISO atvaizdo failą iš vieno kompiuterio į kitą ir stebėti perdavimo eigą (naudodami pv įrankį), siuntėjo/serverio kompiuteryje (kur yra ISO failas) paleiskite šią komandą.

Tai veiks nc klausymosi režimu (žyma -l) 3000 prievade.

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

Ir imtuvo/kliento kompiuteryje paleiskite šią komandą, kad gautumėte failą.

nc 192.168.1.4 3000 | pv | tar -zxf -

Sukurkite komandinės eilutės pokalbių serverį

Taip pat galite naudoti Netcat, kad iš karto sukurtumėte paprastą komandinės eilutės pranešimų siuntimo serverį. Kaip ir ankstesniame naudojimo pavyzdyje, nc turi būti įdiegta abiejose pokalbių kambariui naudojamose sistemose.

Vienoje sistemoje paleiskite šią komandą, kad sukurtumėte pokalbių serverį, klausantį prievado 5000.

nc -l -vv -p 5000

Kitoje sistemoje paleiskite šią komandą, kad paleistumėte pokalbio seansą įrenginyje, kuriame veikia pranešimų serveris.

nc 192.168.56.1 5000

Sukurkite pagrindinį žiniatinklio serverį

Naudodami nc komandos parinktį -l, naudojamą kuriant pagrindinį, nesaugų žiniatinklio serverį, kuris aptarnautų statinius žiniatinklio failus mokymosi tikslais. Norėdami tai parodyti, sukurkite .html failą, kaip parodyta.

vim index.html

Į failą pridėkite šias HTML eilutes.

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

Išsaugokite pakeitimus faile ir išeikite.

Tada pateikite aukščiau pateiktą failą per HTTP vykdydami šią komandą, kuri leis HTTP serveriui veikti nuolat.


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

Tada atidarykite žiniatinklio naršyklę ir galėsite pasiekti turinį naudodami šį adresą.

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

Atminkite, kad galite sustabdyti Netcat HTTP serverį paspausdami [Ctrl + C].

„Linux“ serverio ryšio trikčių šalinimas

Kitas naudingas Netcat naudojimo būdas yra serverio ryšio trikčių šalinimas. Čia galite naudoti Netcat, kad patikrintumėte, kokius duomenis serveris siunčia atsakydamas į kliento pateiktas komandas.

Ši komanda nuskaito pagrindinį example.com puslapį.

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

Aukščiau pateiktos komandos išvestyje yra žiniatinklio serverio siunčiamos antraštės, kurios gali būti naudojamos trikčių šalinimo tikslais.

Raskite paslaugą, veikiančią prievade

Taip pat galite naudoti Netcat, kad gautumėte prievado reklamjuostes. Tokiu atveju jis jums pasakys, kokia paslauga veikia už tam tikro prievado. Pavyzdžiui, norėdami sužinoti, kokio tipo paslauga konkrečiame serveryje veikia už prievado 22, paleiskite šią komandą (pakeiskite 192.168.56.110 tikslinio serverio IP adresu). Žyma -n reiškia išjungti DNS arba paslaugų paieškas.

nc -v -n 192.168.56.110 80

Sukurkite srauto lizdus

Netcat taip pat palaiko UNIX domeno srauto lizdų kūrimą. Ši komanda sukurs ir klausys UNIX domeno srauto lizdą.

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

Sukurkite užpakalines duris

Taip pat galite paleisti Netcat kaip užpakalines duris. Tačiau tai reikalauja daugiau darbo. Jei Netcat yra įdiegtas tiksliniame serveryje, galite jį naudoti kurdami galines duris ir gauti nuotolinę komandų eilutę.

Jei norite veikti kaip užpakalinės durys, jums reikia Netcat, kad galėtumėte klausytis pasirinkto tikslinio serverio prievado (pvz., prievado 3001), tada galite prisijungti prie šio prievado iš savo įrenginio, kaip nurodyta toliau.

Tai komanda, skirta vykdyti nuotoliniame serveryje, kur parinktis -d išjungia skaitymą iš stdin, o -e nurodo komandą, kurią reikia vykdyti tikslinėje sistemoje.

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

Paskutinis, bet ne mažiau svarbus dalykas, Netcat gali būti naudojamas kaip įvairių paslaugų/protokolų, įskaitant HTTP, SSH ir daugelio kitų, tarpinis serveris. Daugiau informacijos rasite jo vadovo puslapyje.

man nc

Šiame straipsnyje paaiškinome 8 praktinius Netcat komandų naudojimo pavyzdžius. Jei žinote kokių nors kitų praktinių naudojimo atvejų, pasidalykite su mumis naudodami toliau pateiktą atsiliepimų formą. Taip pat galite užduoti klausimą.